From ed351ca7e8a64c737ee8b812b3fce0946235f799 Mon Sep 17 00:00:00 2001 From: AdamZ Date: Mon, 28 Sep 2026 08:30:36 -0700 Subject: [PATCH] Fix Sacrifice Support life calculation for totems --- src/Data/Skills/sup_int.lua | 6 ++---- src/Export/Skills/sup_int.txt | 6 ++---- src/Modules/CalcOffence.lua | 12 ++++++++++++ 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/Data/Skills/sup_int.lua b/src/Data/Skills/sup_int.lua index 91f7e208919..2797a1425e9 100644 --- a/src/Data/Skills/sup_int.lua +++ b/src/Data/Skills/sup_int.lua @@ -5893,12 +5893,10 @@ skills["SupportSacrifice"] = { statDescriptionScope = "gem_stat_descriptions", statMap = { ["support_sacrifice_sacrifice_%_of_current_life"] = { - mod("Multiplier:SacrificePercent", "BASE", nil, 0, 0, { type = "PercentStat", stat = "LifeUnreserved", percent = 1, actor = "parent" }), + skill("sacrificeLifePercent", nil), }, ["support_sacrifice_gain_%_of_sacrificed_life_as_added_chaos_damage"] = { - mod("ChaosMin", "BASE", nil, 0, 0, { type = "Multiplier", var = "SacrificePercent" }), - mod("ChaosMax", "BASE", nil, 0, 0, { type = "Multiplier", var = "SacrificePercent" }), - div = 100, + skill("sacrificeLifeAsChaos", nil), }, }, qualityStats = { diff --git a/src/Export/Skills/sup_int.txt b/src/Export/Skills/sup_int.txt index 49b46e471e2..83c748dfb18 100644 --- a/src/Export/Skills/sup_int.txt +++ b/src/Export/Skills/sup_int.txt @@ -814,12 +814,10 @@ return function(skills, mod, flag, skill) #skill SupportSacrifice statMap = { ["support_sacrifice_sacrifice_%_of_current_life"] = { - mod("Multiplier:SacrificePercent", "BASE", nil, 0, 0, { type = "PercentStat", stat = "LifeUnreserved", percent = 1, actor = "parent" }), + skill("sacrificeLifePercent", nil), }, ["support_sacrifice_gain_%_of_sacrificed_life_as_added_chaos_damage"] = { - mod("ChaosMin", "BASE", nil, 0, 0, { type = "Multiplier", var = "SacrificePercent" }), - mod("ChaosMax", "BASE", nil, 0, 0, { type = "Multiplier", var = "SacrificePercent" }), - div = 100, + skill("sacrificeLifeAsChaos", nil), }, }, #mods diff --git a/src/Modules/CalcOffence.lua b/src/Modules/CalcOffence.lua index 8458c4e468f..f58152825dd 100644 --- a/src/Modules/CalcOffence.lua +++ b/src/Modules/CalcOffence.lua @@ -1905,6 +1905,18 @@ function calcs.offence(env, actor, activeSkill) skillModList:NewMod("PhysicalMax", "BASE", m_floor(output.ManaCost * multiplier), "Sacrificial Zeal", ModFlag.Spell) end + if skillData.sacrificeLifePercent then + local life + if skillFlags.totem then + life = output.TotemLife + else + life = output.LifeUnreserved + end + local add = m_floor(life * skillData.sacrificeLifePercent / 100 * (skillData.sacrificeLifeAsChaos / 100)) + skillModList:NewMod("ChaosMin", "BASE", add, "Sacrifice Support") + skillModList:NewMod("ChaosMax", "BASE", add, "Sacrifice Support") + end + runSkillFunc("preDamageFunc") if activeSkill.skillTypes[SkillType.Brand] then