diff --git a/src/actions/HeroAction.lua b/src/actions/HeroAction.lua index 5ba8167..5ebf76e 100644 --- a/src/actions/HeroAction.lua +++ b/src/actions/HeroAction.lua @@ -867,7 +867,7 @@ function _M.drawHeroRpc(agent, data) if not unitPool then return 7 end -- ssr硬性保底 local isSSRup = false - if unitPool["rare_"..HeroQuality.SSR] or 0 > 0 then + if (unitPool["rare_"..HeroQuality.SSR] or 0) > 0 then isSSRup = true end @@ -878,34 +878,57 @@ function _M.drawHeroRpc(agent, data) local values = {} -- check ssr up - if isSSRup then - local ssrUpMap = role:getProperty("ssrUp") or {} - local ssrFloorCnt = ssrUpMap[poolId] or 0 - if ssrFloorCnt >= (globalCsv.draw_ssr_guarantee or 40) - 1 then + local ssrUpMap = role:getProperty("ssrUp") or {} + local ssrFloorCnt = ssrUpMap[poolId] or 0 + if isSSRup and (ssrFloorCnt >= (globalCsv.draw_ssr_guarantee or 40) - 1) then + --if ssrFloorCnt >= (globalCsv.draw_ssr_guarantee or 40) - 1 then values[1] = HeroQuality.SSR ssrUpMap[poolId] = 0 - else - for idx, field in ipairs(condition) do - if not values[idx] then - local lpool = {} - local curIdx = 1 - while unitPool[field .. "_" .. curIdx] do - lpool[curIdx] = {unitPool[field .. "_" .. curIdx]} - curIdx = curIdx + 1 - end - - if next(lpool) then - values[idx] = math.randWeight(lpool, 1) - end + --else + -- for idx, field in ipairs(condition) do + -- if not values[idx] then + -- local lpool = {} + -- local curIdx = 1 + -- while unitPool[field .. "_" .. curIdx] do + -- lpool[curIdx] = {unitPool[field .. "_" .. curIdx]} + -- curIdx = curIdx + 1 + -- end + + -- if next(lpool) then + -- values[idx] = math.randWeight(lpool, 1) + -- end + -- end + -- end + -- if values[1] == HeroQuality.SSR then + -- ssrUpMap[poolId] = 0 + -- else + -- ssrUpMap[poolId] = ssrFloorCnt + 1 + -- end + --end + role:updateProperty({field="ssrUp", value = ssrUpMap, notNotify = true}) + else + for idx, field in ipairs(condition) do + if not values[idx] then + local lpool = {} + local curIdx = 1 + while unitPool[field .. "_" .. curIdx] do + lpool[curIdx] = {unitPool[field .. "_" .. curIdx]} + curIdx = curIdx + 1 + end + + if next(lpool) then + values[idx] = math.randWeight(lpool, 1) end end + end + if isSSRup then if values[1] == HeroQuality.SSR then ssrUpMap[poolId] = 0 else ssrUpMap[poolId] = ssrFloorCnt + 1 end + role:updateProperty({field="ssrUp", value = ssrUpMap, notNotify = true}) end - role:updateProperty({field="ssrUp", value = ssrUpMap, notNotify = true}) end -- libgit2 0.21.2