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:
22
spec/System/TestAilments_spec.lua
Normal file
22
spec/System/TestAilments_spec.lua
Normal 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)
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user