Compare View
Commits (2)
Showing
1 changed file
Show diff stats
src/actions/HeroAction.lua
| @@ -867,7 +867,7 @@ function _M.drawHeroRpc(agent, data) | @@ -867,7 +867,7 @@ function _M.drawHeroRpc(agent, data) | ||
| 867 | if not unitPool then return 7 end | 867 | if not unitPool then return 7 end |
| 868 | -- ssr硬性保底 | 868 | -- ssr硬性保底 |
| 869 | local isSSRup = false | 869 | local isSSRup = false |
| 870 | - if unitPool["rare_"..HeroQuality.SSR] or 0 > 0 then | 870 | + if (unitPool["rare_"..HeroQuality.SSR] or 0) > 0 then |
| 871 | isSSRup = true | 871 | isSSRup = true |
| 872 | end | 872 | end |
| 873 | 873 | ||
| @@ -878,34 +878,57 @@ function _M.drawHeroRpc(agent, data) | @@ -878,34 +878,57 @@ function _M.drawHeroRpc(agent, data) | ||
| 878 | local values = {} | 878 | local values = {} |
| 879 | 879 | ||
| 880 | -- check ssr up | 880 | -- check ssr up |
| 881 | - if isSSRup then | ||
| 882 | - local ssrUpMap = role:getProperty("ssrUp") or {} | ||
| 883 | - local ssrFloorCnt = ssrUpMap[poolId] or 0 | ||
| 884 | - if ssrFloorCnt >= (globalCsv.draw_ssr_guarantee or 40) - 1 then | 881 | + local ssrUpMap = role:getProperty("ssrUp") or {} |
| 882 | + local ssrFloorCnt = ssrUpMap[poolId] or 0 | ||
| 883 | + if isSSRup and (ssrFloorCnt >= (globalCsv.draw_ssr_guarantee or 40) - 1) then | ||
| 884 | + --if ssrFloorCnt >= (globalCsv.draw_ssr_guarantee or 40) - 1 then | ||
| 885 | values[1] = HeroQuality.SSR | 885 | values[1] = HeroQuality.SSR |
| 886 | ssrUpMap[poolId] = 0 | 886 | ssrUpMap[poolId] = 0 |
| 887 | - else | ||
| 888 | - for idx, field in ipairs(condition) do | ||
| 889 | - if not values[idx] then | ||
| 890 | - local lpool = {} | ||
| 891 | - local curIdx = 1 | ||
| 892 | - while unitPool[field .. "_" .. curIdx] do | ||
| 893 | - lpool[curIdx] = {unitPool[field .. "_" .. curIdx]} | ||
| 894 | - curIdx = curIdx + 1 | ||
| 895 | - end | ||
| 896 | - | ||
| 897 | - if next(lpool) then | ||
| 898 | - values[idx] = math.randWeight(lpool, 1) | ||
| 899 | - end | 887 | + --else |
| 888 | + -- for idx, field in ipairs(condition) do | ||
| 889 | + -- if not values[idx] then | ||
| 890 | + -- local lpool = {} | ||
| 891 | + -- local curIdx = 1 | ||
| 892 | + -- while unitPool[field .. "_" .. curIdx] do | ||
| 893 | + -- lpool[curIdx] = {unitPool[field .. "_" .. curIdx]} | ||
| 894 | + -- curIdx = curIdx + 1 | ||
| 895 | + -- end | ||
| 896 | + | ||
| 897 | + -- if next(lpool) then | ||
| 898 | + -- values[idx] = math.randWeight(lpool, 1) | ||
| 899 | + -- end | ||
| 900 | + -- end | ||
| 901 | + -- end | ||
| 902 | + -- if values[1] == HeroQuality.SSR then | ||
| 903 | + -- ssrUpMap[poolId] = 0 | ||
| 904 | + -- else | ||
| 905 | + -- ssrUpMap[poolId] = ssrFloorCnt + 1 | ||
| 906 | + -- end | ||
| 907 | + --end | ||
| 908 | + role:updateProperty({field="ssrUp", value = ssrUpMap, notNotify = true}) | ||
| 909 | + else | ||
| 910 | + for idx, field in ipairs(condition) do | ||
| 911 | + if not values[idx] then | ||
| 912 | + local lpool = {} | ||
| 913 | + local curIdx = 1 | ||
| 914 | + while unitPool[field .. "_" .. curIdx] do | ||
| 915 | + lpool[curIdx] = {unitPool[field .. "_" .. curIdx]} | ||
| 916 | + curIdx = curIdx + 1 | ||
| 917 | + end | ||
| 918 | + | ||
| 919 | + if next(lpool) then | ||
| 920 | + values[idx] = math.randWeight(lpool, 1) | ||
| 900 | end | 921 | end |
| 901 | end | 922 | end |
| 923 | + end | ||
| 924 | + if isSSRup then | ||
| 902 | if values[1] == HeroQuality.SSR then | 925 | if values[1] == HeroQuality.SSR then |
| 903 | ssrUpMap[poolId] = 0 | 926 | ssrUpMap[poolId] = 0 |
| 904 | else | 927 | else |
| 905 | ssrUpMap[poolId] = ssrFloorCnt + 1 | 928 | ssrUpMap[poolId] = ssrFloorCnt + 1 |
| 906 | end | 929 | end |
| 930 | + role:updateProperty({field="ssrUp", value = ssrUpMap, notNotify = true}) | ||
| 907 | end | 931 | end |
| 908 | - role:updateProperty({field="ssrUp", value = ssrUpMap, notNotify = true}) | ||
| 909 | end | 932 | end |
| 910 | 933 | ||
| 911 | 934 |