diff --git a/spec/System/TestDefence_spec.lua b/spec/System/TestDefence_spec.lua index e03890fd60..265e035b35 100644 --- a/spec/System/TestDefence_spec.lua +++ b/spec/System/TestDefence_spec.lua @@ -603,6 +603,19 @@ describe("TestDefence", function() end) it("energy shield bypass tests #pet", function() + -- Mastery + build.configTab.input.customMods = [[ + +40 to maximum life + +200 to energy shield + 50% of chaos damage taken does not bypass energy shield + You have no intelligence + +60% to all resistances + ]] + build.configTab:BuildModList() + runCallback("OnFrame") + assert.are.equals(300, build.calcsTab.calcsOutput.FireMaximumHitTaken) + assert.are.equals(200, build.calcsTab.calcsOutput.ChaosMaximumHitTaken) + -- Negative overrides positive build.configTab.input.customMods = [[ +40 to maximum life diff --git a/src/Modules/CalcDefence.lua b/src/Modules/CalcDefence.lua index 9602f367da..241372e3b8 100644 --- a/src/Modules/CalcDefence.lua +++ b/src/Modules/CalcDefence.lua @@ -1886,7 +1886,7 @@ function calcs.buildDefenceEstimations(env, actor) output[damageType.."EnergyShieldBypass"] = 100 output.AnyBypass = true else - output[damageType.."EnergyShieldBypass"] = m_max(modDB:Sum("BASE", nil, damageType.."EnergyShieldBypass") or 0, modDB:Sum("OVERRIDE", nil, damageType.."EnergyShieldBypass") or 0) + output[damageType.."EnergyShieldBypass"] = modDB:Override(nil, damageType.."EnergyShieldBypass") or modDB:Sum("BASE", nil, damageType.."EnergyShieldBypass") or 0 if output[damageType.."EnergyShieldBypass"] ~= 0 then output.AnyBypass = true end