From b252ad4d8f1345bac55bf89758da785b24db5771 Mon Sep 17 00:00:00 2001 From: cupkax Date: Sat, 8 Aug 2026 19:01:48 +1000 Subject: [PATCH 1/2] Fix conc ground not reducing curse effect --- src/Modules/CalcPerform.lua | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index 65b8a15b3e..5ae98b0646 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -770,7 +770,7 @@ local function doActorMisc(env, actor) if modDB:Flag(nil, "Condition:OnConsecratedGround") then local effect = 1 + modDB:Sum("INC", nil, "ConsecratedGroundEffect") / 100 modDB:NewMod("LifeRegenPercent", "BASE", 5 * effect, "Consecrated Ground") - modDB:NewMod("CurseEffectOnSelf", "INC", -50 * effect, "Consecrated Ground") + --modDB:NewMod("CurseEffectOnSelf", "INC", -50 * effect, "Consecrated Ground") -- Moved to L3087 modDB:NewMod("Accuracy", "INC", m_floor(modDB:Sum("INC", nil, "ConsecratedGroundAlsoAccuracy") * effect), "Consecrated Ground") end if modDB:Flag(nil, "Condition:PhantasmalMight") then @@ -3084,6 +3084,13 @@ function calcs.perform(env, skipEHP) end end + -- Consecrated Ground grants 50% reduced Effect of Curses on you + -- Moved curse reduction here so it properly affects curse effect on player + if env.mode_combat and modDB:Flag(nil, "Condition:OnConsecratedGround") then + local effect = 1 + modDB:Sum("INC", nil, "ConsecratedGroundEffect") / 100 + modDB:NewMod("CurseEffectOnSelf", "INC", -50 * effect, "Consecrated Ground") + end + -- Check for extra curses for dest, modDB in pairs({[curses] = modDB, [minionCurses] = env.minion and env.minion.modDB}) do for _, value in ipairs(modDB:List(nil, "ExtraCurse")) do From 4b45f8c19cc1d2f9285f8ae56844eb7b48059c24 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Mon, 24 Aug 2026 08:45:46 +1000 Subject: [PATCH 2/2] Fix handling for curses on minions --- spec/System/TestDefence_spec.lua | 19 +++++++++++++++++++ src/Modules/CalcPerform.lua | 12 ++++-------- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/spec/System/TestDefence_spec.lua b/spec/System/TestDefence_spec.lua index 2dcbbbb247..e6addf68c3 100644 --- a/spec/System/TestDefence_spec.lua +++ b/spec/System/TestDefence_spec.lua @@ -17,6 +17,25 @@ describe("TestDefence", function() return build.calcsTab.calcs.reducePoolsByDamage(nil, takenDamages, build.calcsTab.calcsEnv.player) end + it("applies Consecrated Ground curse reduction to the player and minion", function() + build.skillsTab:PasteSocketGroup("Raise Zombie 20/0 1") + build.configTab.input.conditionOnConsecratedGround = true + build.configTab.input.playerCursedWithElementalWeakness = 20 + build.configTab:BuildModList() + runCallback("OnFrame") + + assert.are.equals(50, build.calcsTab.mainOutput.CurseEffectOnSelf) + assert.are.equals(50, build.calcsTab.mainEnv.minion.output.CurseEffectOnSelf) + local fireResistOnConsecratedGround = build.calcsTab.mainOutput.FireResist + + newBuild() + build.configTab.input.playerCursedWithElementalWeakness = 20 + build.configTab:BuildModList() + runCallback("OnFrame") + + assert.is_true(fireResistOnConsecratedGround > build.calcsTab.mainOutput.FireResist) + end) + -- boring part it("no armour max hits", function() build.configTab.input.enemyIsBoss = "None" diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index 5ae98b0646..918cbdf5d9 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -770,7 +770,6 @@ local function doActorMisc(env, actor) if modDB:Flag(nil, "Condition:OnConsecratedGround") then local effect = 1 + modDB:Sum("INC", nil, "ConsecratedGroundEffect") / 100 modDB:NewMod("LifeRegenPercent", "BASE", 5 * effect, "Consecrated Ground") - --modDB:NewMod("CurseEffectOnSelf", "INC", -50 * effect, "Consecrated Ground") -- Moved to L3087 modDB:NewMod("Accuracy", "INC", m_floor(modDB:Sum("INC", nil, "ConsecratedGroundAlsoAccuracy") * effect), "Consecrated Ground") end if modDB:Flag(nil, "Condition:PhantasmalMight") then @@ -3084,15 +3083,12 @@ function calcs.perform(env, skipEHP) end end - -- Consecrated Ground grants 50% reduced Effect of Curses on you - -- Moved curse reduction here so it properly affects curse effect on player - if env.mode_combat and modDB:Flag(nil, "Condition:OnConsecratedGround") then - local effect = 1 + modDB:Sum("INC", nil, "ConsecratedGroundEffect") / 100 - modDB:NewMod("CurseEffectOnSelf", "INC", -50 * effect, "Consecrated Ground") - end - -- Check for extra curses for dest, modDB in pairs({[curses] = modDB, [minionCurses] = env.minion and env.minion.modDB}) do + if env.mode_combat and modDB:Flag(nil, "Condition:OnConsecratedGround") then + local effect = 1 + modDB:Sum("INC", nil, "ConsecratedGroundEffect") / 100 + modDB:NewMod("CurseEffectOnSelf", "INC", -50 * effect, "Consecrated Ground") + end for _, value in ipairs(modDB:List(nil, "ExtraCurse")) do local gemModList = new("ModList") local grantedEffect = env.data.skills[value.skillId]