From 8c0283728c7221af74592c71c9a22aab581573cf Mon Sep 17 00:00:00 2001 From: vaisest <4550061+vaisest@users.noreply.github.com> Date: Fri, 29 May 2026 21:14:36 +0300 Subject: [PATCH 1/3] Fix Flowing Metal by also summing elemental DR --- src/Modules/CalcDefence.lua | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Modules/CalcDefence.lua b/src/Modules/CalcDefence.lua index a48d96f92a..57f7c71245 100644 --- a/src/Modules/CalcDefence.lua +++ b/src/Modules/CalcDefence.lua @@ -2330,7 +2330,15 @@ function calcs.buildDefenceEstimations(env, actor) --armour/PDR calculations local armourReduct = 0 local impaleArmourReduct = 0 - local percentOfArmourApplies = (not modDB:Flag(nil, "ArmourDoesNotApplyTo"..damageType.."DamageTaken") and modDB:Sum("BASE", nil, "ArmourAppliesTo"..damageType.."DamageTaken") or 0) + local percentOfArmourApplies = 0.0 + if not modDB:Flag(nil, "ArmourDoesNotApplyTo" .. damageType .. "DamageTaken") then + percentOfArmourApplies = (modDB:Sum("BASE", nil, "ArmourAppliesTo" .. damageType .. "DamageTaken") or 0) + end + if not modDB:Flag(nil, "ArmourDoesNotApplyToElementalDamageTaken") + and (damageType == "Fire" or damageType == "Cold" or damageType == "Lightning") then + percentOfArmourApplies = percentOfArmourApplies + + (modDB:Sum("BASE", nil, "ArmourAppliesToElementalDamageTaken") or 0) + end local effectiveAppliedArmour = (output.Armour * percentOfArmourApplies / 100) * (1 + output.ArmourDefense) local effectiveArmourFromArmour = effectiveAppliedArmour; local effectiveArmourFromOther = { } From 28c1251eb2708dabab6f9dd50b250103f49e9fe3 Mon Sep 17 00:00:00 2001 From: vaisest <4550061+vaisest@users.noreply.github.com> Date: Fri, 29 May 2026 21:27:39 +0300 Subject: [PATCH 2/3] Longer lines --- src/Modules/CalcDefence.lua | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Modules/CalcDefence.lua b/src/Modules/CalcDefence.lua index 57f7c71245..95b7909a45 100644 --- a/src/Modules/CalcDefence.lua +++ b/src/Modules/CalcDefence.lua @@ -2334,10 +2334,8 @@ function calcs.buildDefenceEstimations(env, actor) if not modDB:Flag(nil, "ArmourDoesNotApplyTo" .. damageType .. "DamageTaken") then percentOfArmourApplies = (modDB:Sum("BASE", nil, "ArmourAppliesTo" .. damageType .. "DamageTaken") or 0) end - if not modDB:Flag(nil, "ArmourDoesNotApplyToElementalDamageTaken") - and (damageType == "Fire" or damageType == "Cold" or damageType == "Lightning") then - percentOfArmourApplies = percentOfArmourApplies - + (modDB:Sum("BASE", nil, "ArmourAppliesToElementalDamageTaken") or 0) + if not modDB:Flag(nil, "ArmourDoesNotApplyToElementalDamageTaken") and (damageType == "Fire" or damageType == "Cold" or damageType == "Lightning") then + percentOfArmourApplies = percentOfArmourApplies + (modDB:Sum("BASE", nil, "ArmourAppliesToElementalDamageTaken") or 0) end local effectiveAppliedArmour = (output.Armour * percentOfArmourApplies / 100) * (1 + output.ArmourDefense) local effectiveArmourFromArmour = effectiveAppliedArmour; From b7c3881f044d3a3763a41586bd810df6517c4a96 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Wed, 3 Jun 2026 21:22:04 +1000 Subject: [PATCH 3/3] clean up formatting --- src/Modules/CalcDefence.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Modules/CalcDefence.lua b/src/Modules/CalcDefence.lua index 95b7909a45..4507c270eb 100644 --- a/src/Modules/CalcDefence.lua +++ b/src/Modules/CalcDefence.lua @@ -2330,12 +2330,12 @@ function calcs.buildDefenceEstimations(env, actor) --armour/PDR calculations local armourReduct = 0 local impaleArmourReduct = 0 - local percentOfArmourApplies = 0.0 - if not modDB:Flag(nil, "ArmourDoesNotApplyTo" .. damageType .. "DamageTaken") then - percentOfArmourApplies = (modDB:Sum("BASE", nil, "ArmourAppliesTo" .. damageType .. "DamageTaken") or 0) + local percentOfArmourApplies = 0 + if not modDB:Flag(nil, "ArmourDoesNotApplyTo"..damageType.."DamageTaken") then + percentOfArmourApplies = modDB:Sum("BASE", nil, "ArmourAppliesTo"..damageType.."DamageTaken") end - if not modDB:Flag(nil, "ArmourDoesNotApplyToElementalDamageTaken") and (damageType == "Fire" or damageType == "Cold" or damageType == "Lightning") then - percentOfArmourApplies = percentOfArmourApplies + (modDB:Sum("BASE", nil, "ArmourAppliesToElementalDamageTaken") or 0) + if isElemental[damageType] and not modDB:Flag(nil, "ArmourDoesNotApplyToElementalDamageTaken") then + percentOfArmourApplies = percentOfArmourApplies + modDB:Sum("BASE", nil, "ArmourAppliesToElementalDamageTaken") end local effectiveAppliedArmour = (output.Armour * percentOfArmourApplies / 100) * (1 + output.ArmourDefense) local effectiveArmourFromArmour = effectiveAppliedArmour;