From e18aaf3b81d3af8e0dbf516171a1d989114ea7cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1niel=20Zolt=C3=A1n=20Tolnai?= Date: Thu, 18 Dec 2025 13:51:53 +0100 Subject: [PATCH 1/2] Move armour defence type calculation for conditionals before misc calculations A few conditionals in the misc calculation use these, for example the ailment calculation via spell suppression via the evasion mastery that grants suppression based on evasion on items. --- src/Modules/CalcDefence.lua | 24 +++++++++++++++--------- src/Modules/CalcPerform.lua | 6 ++++++ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/Modules/CalcDefence.lua b/src/Modules/CalcDefence.lua index ab123f32ec..820ec7ce49 100644 --- a/src/Modules/CalcDefence.lua +++ b/src/Modules/CalcDefence.lua @@ -471,18 +471,11 @@ local function incomingDamageBreakdown(breakdownTable, poolsRemaining, output) return breakdownTable end --- Performs all ingame and related defensive calculations -function calcs.defence(env, actor) +-- Performs defensive calculations used by conditionals +function calcs.defenceForConditionals(env, actor) local modDB = actor.modDB - local enemyDB = actor.enemy.modDB local output = actor.output - local breakdown = actor.breakdown - - local condList = modDB.conditions - -- Action Speed - output.ActionSpeedMod = calcs.actionSpeedMod(actor) - -- Armour defence types for conditionals for _, slot in pairs({"Helmet","Gloves","Boots","Body Armour","Weapon 2","Weapon 3"}) do local armourData = actor.itemList[slot] and actor.itemList[slot].armourData @@ -505,6 +498,19 @@ function calcs.defence(env, actor) end end end +end + +-- Performs all ingame and related defensive calculations +function calcs.defence(env, actor) + local modDB = actor.modDB + local enemyDB = actor.enemy.modDB + local output = actor.output + local breakdown = actor.breakdown + + local condList = modDB.conditions + + -- Action Speed + output.ActionSpeedMod = calcs.actionSpeedMod(actor) -- Resistances output["PhysicalResist"] = 0 diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index b5d6957bd9..36f8577afb 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -3216,6 +3216,12 @@ function calcs.perform(env, skipEHP) modDB:AddList(env.weaponModList1) end + -- Process prerequisits for conditionals + calcs.defenceForConditionals(env, env.player) + if env.minion then + calcs.defenceForConditionals(env, env.minion) + end + -- Process misc buffs/modifiers doActorCharges(env, env.player) doActorMisc(env, env.player) From 6ea31d839b98311bffdeb7726d538fd478fac1ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1niel=20Zolt=C3=A1n=20Tolnai?= Date: Thu, 18 Dec 2025 16:06:55 +0100 Subject: [PATCH 2/2] Fix typo --- src/Modules/CalcPerform.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index 36f8577afb..03cd7f00bd 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -3216,7 +3216,7 @@ function calcs.perform(env, skipEHP) modDB:AddList(env.weaponModList1) end - -- Process prerequisits for conditionals + -- Process prerequisites for conditionals calcs.defenceForConditionals(env, env.player) if env.minion then calcs.defenceForConditionals(env, env.minion)