Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 21 additions & 1 deletion spec/System/TestDefence_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -358,6 +358,26 @@ describe("TestDefence", function()
build.skillsTab.socketGroupList = {}
end)

it("foulborn resistance conversion remains stable across recalculation", function()
build.configTab.input.enemyIsBoss = "None"
build.configTab.input.customMods = "\z
+300 to fire resistance\n\z
modifiers to fire resistance also apply to cold and lightning resistances at 50% of their value\n\z
mana is increased by 100% of overcapped lightning resistance\n\z
"
build.configTab:BuildModList()
runCallback("OnFrame")

assert.are.equals(90, build.calcsTab.calcsOutput.LightningResistTotal)
assert.are.equals(15, build.calcsTab.calcsOutput.LightningResistOverCap)

build.configTab:BuildModList()
runCallback("OnFrame")

assert.are.equals(90, build.calcsTab.calcsOutput.LightningResistTotal)
assert.are.equals(15, build.calcsTab.calcsOutput.LightningResistOverCap)
end)

-- fun part
it("armoured max hits", function()
build.configTab.input.enemyIsBoss = "None"
Expand Down Expand Up @@ -1177,4 +1197,4 @@ describe("TestDefence", function()
assert.are.equals(0, floor(poolsRemaining.Life))
assert.are.equals(0, floor(poolsRemaining.OverkillDamage))
end)
end)
end)
2 changes: 1 addition & 1 deletion src/Modules/CalcDefence.lua
Original file line number Diff line number Diff line change
Expand Up @@ -532,7 +532,7 @@ function calcs.resistances(actor)
end
end
end

for _, resFrom in ipairs(resistTypeList) do
local res
for _, resTo in ipairs(resistTypeList) do
Expand Down
12 changes: 10 additions & 2 deletions src/Modules/CalcPerform.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3189,8 +3189,16 @@ function calcs.perform(env, skipEHP)

-- Foulborn Choir of the Storm, needs to be after main auras (incase purity of lightning/elements auras) but before extra auras (Radiant Faith)
if modDB:Flag(nil, "ManaIncreasedByOvercappedLightningRes") then
-- Calclate resistances for ManaIncreasedByOvercappedLightningRes
calcs.resistances(env.player)
-- Calculate resistances for ManaIncreasedByOvercappedLightningRes without mutating conversion mods on the player ModDB.
local tempResistActor = {
modDB = new("ModDB", modDB),
output = output,
activeSkillList = env.player.activeSkillList,
enemy = env.player.enemy,
}
tempResistActor.player = tempResistActor
tempResistActor.modDB.actor = tempResistActor
calcs.resistances(tempResistActor)
-- Set the life/mana reservations again as we now have increased mana from overcapped lightning resistance
doActorLifeMana(env.player)
doActorLifeManaReservation(env.player, true)
Expand Down
Loading