From feeab62482f0a4e0d3de756ca78ae33de1132706 Mon Sep 17 00:00:00 2001 From: vaisest <4550061+vaisest@users.noreply.github.com> Date: Thu, 27 Aug 2026 20:46:10 +0300 Subject: [PATCH 1/3] Fix Conjoined Spire AoE calc --- src/Modules/CalcOffence.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Modules/CalcOffence.lua b/src/Modules/CalcOffence.lua index 8458c4e468f..a2eea54f74f 100644 --- a/src/Modules/CalcOffence.lua +++ b/src/Modules/CalcOffence.lua @@ -1182,6 +1182,10 @@ function calcs.offence(env, actor, activeSkill) end end if skillFlags.area or skillData.radius or (skillFlags.mine and activeSkill.skillTypes[SkillType.Aura]) then + -- add totem limit output early for conjoined spire + if skillFlags.totem then + output.ActiveTotemLimit = skillModList:Sum("BASE", skillCfg, "ActiveTotemLimit", "ActiveBallistaLimit") + end calcAreaOfEffect(skillModList, skillCfg, skillData, skillFlags, output, breakdown) end if activeSkill.skillTypes[SkillType.Aura] then From 0797a2b0f00b655bd7fbd32a454b74365fa35e36 Mon Sep 17 00:00:00 2001 From: vaisest <4550061+vaisest@users.noreply.github.com> Date: Thu, 27 Aug 2026 20:54:00 +0300 Subject: [PATCH 2/3] Test --- spec/System/TestOffence_spec.lua | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/spec/System/TestOffence_spec.lua b/spec/System/TestOffence_spec.lua index da782f9f679..f28cbc3c632 100644 --- a/spec/System/TestOffence_spec.lua +++ b/spec/System/TestOffence_spec.lua @@ -352,4 +352,17 @@ describe("TestOffence", function() assert.are.equals(1, build.calcsTab.mainOutput[outputName]) end) end + it("uses the final totem limit when scaling area of effect", function() + build.skillsTab:PasteSocketGroup("Searing Bond of Detonation 20/0 1") + build.configTab.input.customMods = [[ + +3 to Maximum Power Charges + Skills used by Totems have 10% more Area of Effect per maximum number of Summoned Totems + ]] + build.configTab:BuildModList() + runCallback("OnFrame") + + -- 1 base totem + 6 maximum power charges, so 70% more area of effect. + assert.are.equals(7, build.calcsTab.mainOutput.ActiveTotemLimit) + assert.are.equals(1.7, build.calcsTab.mainOutput.AreaOfEffectMod) + end) end) From d72340c9ff860df906d39ad7f50fe615311d92e9 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Thu, 29 Oct 2026 17:44:10 +1100 Subject: [PATCH 3/3] Simplify --- src/Modules/CalcOffence.lua | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/Modules/CalcOffence.lua b/src/Modules/CalcOffence.lua index a2eea54f74f..4d776ef9818 100644 --- a/src/Modules/CalcOffence.lua +++ b/src/Modules/CalcOffence.lua @@ -1181,11 +1181,10 @@ function calcs.offence(env, actor, activeSkill) output.StrikeTargets = baseStrikeCount + skillModList:Sum("BASE", skillCfg, "AdditionalStrikeTarget") end end + if skillFlags.totem then + output.ActiveTotemLimit = skillModList:Sum("BASE", skillCfg, "ActiveTotemLimit", "ActiveBallistaLimit") + end if skillFlags.area or skillData.radius or (skillFlags.mine and activeSkill.skillTypes[SkillType.Aura]) then - -- add totem limit output early for conjoined spire - if skillFlags.totem then - output.ActiveTotemLimit = skillModList:Sum("BASE", skillCfg, "ActiveTotemLimit", "ActiveBallistaLimit") - end calcAreaOfEffect(skillModList, skillCfg, skillData, skillFlags, output, breakdown) end if activeSkill.skillTypes[SkillType.Aura] then @@ -1434,7 +1433,6 @@ function calcs.offence(env, actor, activeSkill) total = s_format("= %.2f ^8per second", output.TotemPlacementSpeed), }) end - output.ActiveTotemLimit = skillModList:Sum("BASE", skillCfg, "ActiveTotemLimit", "ActiveBallistaLimit") output.TotemsSummoned = env.modDB:Override(nil, "TotemsSummoned") or output.ActiveTotemLimit if breakdown then breakdown.ActiveTotemLimit = {