Skip to content

Commit c03e939

Browse files
cupkaxLocalIdentity
andauthored
Fix Consecrated Ground not reducing curse effect (#10177)
* Fix conc ground not reducing curse effect * Fix handling for curses on minions --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
1 parent d815ced commit c03e939

2 files changed

Lines changed: 23 additions & 1 deletion

File tree

‎spec/System/TestDefence_spec.lua‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,25 @@ describe("TestDefence", function()
1717
return build.calcsTab.calcs.reducePoolsByDamage(nil, takenDamages, build.calcsTab.calcsEnv.player)
1818
end
1919

20+
it("applies Consecrated Ground curse reduction to the player and minion", function()
21+
build.skillsTab:PasteSocketGroup("Raise Zombie 20/0 1")
22+
build.configTab.input.conditionOnConsecratedGround = true
23+
build.configTab.input.playerCursedWithElementalWeakness = 20
24+
build.configTab:BuildModList()
25+
runCallback("OnFrame")
26+
27+
assert.are.equals(50, build.calcsTab.mainOutput.CurseEffectOnSelf)
28+
assert.are.equals(50, build.calcsTab.mainEnv.minion.output.CurseEffectOnSelf)
29+
local fireResistOnConsecratedGround = build.calcsTab.mainOutput.FireResist
30+
31+
newBuild()
32+
build.configTab.input.playerCursedWithElementalWeakness = 20
33+
build.configTab:BuildModList()
34+
runCallback("OnFrame")
35+
36+
assert.is_true(fireResistOnConsecratedGround > build.calcsTab.mainOutput.FireResist)
37+
end)
38+
2039
-- boring part
2140
it("no armour max hits", function()
2241
build.configTab.input.enemyIsBoss = "None"

‎src/Modules/CalcPerform.lua‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -780,7 +780,6 @@ local function doActorMisc(env, actor)
780780
if modDB:Flag(nil, "Condition:OnConsecratedGround") then
781781
local effect = 1 + modDB:Sum("INC", nil, "ConsecratedGroundEffect") / 100
782782
modDB:NewMod("LifeRegenPercent", "BASE", 5 * effect, "Consecrated Ground")
783-
modDB:NewMod("CurseEffectOnSelf", "INC", -50 * effect, "Consecrated Ground")
784783
modDB:NewMod("Accuracy", "INC", m_floor(modDB:Sum("INC", nil, "ConsecratedGroundAlsoAccuracy") * effect), "Consecrated Ground")
785784
end
786785
if modDB:Flag(nil, "Condition:PhantasmalMight") then
@@ -3113,6 +3112,10 @@ function calcs.perform(env, skipEHP)
31133112

31143113
-- Check for extra curses
31153114
for dest, modDB in pairs({[curses] = modDB, [minionCurses] = env.minion and env.minion.modDB}) do
3115+
if env.mode_combat and modDB:Flag(nil, "Condition:OnConsecratedGround") then
3116+
local effect = 1 + modDB:Sum("INC", nil, "ConsecratedGroundEffect") / 100
3117+
modDB:NewMod("CurseEffectOnSelf", "INC", -50 * effect, "Consecrated Ground")
3118+
end
31163119
for _, value in ipairs(modDB:List(nil, "ExtraCurse")) do
31173120
local gemModList = new("ModList"):ModList()
31183121
local grantedEffect = env.data.skills[value.skillId]

0 commit comments

Comments
 (0)