Fix maximum shock double counting. (#5173)

* Fix maximum shock double counting.

* Adding test case that would catch this bug

Co-authored-by: Wires77 <Wires77@users.noreply.github.com>
This commit is contained in:
QuickStick
2022-11-23 15:40:03 +11:00
committed by GitHub
parent 911bdd878f
commit cf1632fb2f
2 changed files with 23 additions and 1 deletions

View File

@@ -0,0 +1,22 @@
describe("TestAilments", function()
before_each(function()
newBuild()
end)
teardown(function()
-- newBuild() takes care of resetting everything in setup()
end)
it("maximum shock value", function()
-- Shock Nova
build.skillsTab:PasteSocketGroup("Slot: Weapon 1\nShock Nova 4/0 Default 1\n")
runCallback("OnFrame")
assert.are.equals(round(50 + 10), build.calcsTab.mainOutput.MaximumShock)
-- Voltaxic Rift
build.itemsTab:CreateDisplayItemFromRaw("New Item\nAssassin Bow\n+40% to Maximum Effect of Shock")
build.itemsTab:AddDisplayItem()
runCallback("OnFrame")
assert.are.equals(round(50 + 10 + 40), build.calcsTab.mainOutput.MaximumShock)
end)
end)

View File

@@ -3082,7 +3082,7 @@ function calcs.perform(env, avoidCache)
end
override = m_max(override, effect or 0)
end
output["Maximum"..ailment] = modDB:Override(nil, ailment.."Max") or (ailmentData[ailment].max + modDB:Sum("BASE", nil, ailment.."Max") + env.player.mainSkill.baseSkillModList:Sum("BASE", nil, ailment.."Max"))
output["Maximum"..ailment] = modDB:Override(nil, ailment.."Max") or (ailmentData[ailment].max + env.player.mainSkill.baseSkillModList:Sum("BASE", nil, ailment.."Max"))
output["Current"..ailment] = m_floor(m_min(m_max(override, enemyDB:Sum("BASE", nil, ailment.."Val")), output["Maximum"..ailment]) * (10 ^ ailmentData[ailment].precision)) / (10 ^ ailmentData[ailment].precision)
for _, mod in ipairs(val.mods(output["Current"..ailment])) do
enemyDB:AddMod(mod)