Skip to content

Commit 4cc27c3

Browse files
committed
add support for Ancestral Empowerment, including combining Ancestral Empowerment with Fist of War
fix Fist of War/ancestrally boosted slams more AOE to inc AOE add test for Combined logic for Ancestral Empowerment and Fist of War
1 parent e455da4 commit 4cc27c3

7 files changed

Lines changed: 149 additions & 19 deletions

File tree

spec/System/TestSkills_spec.lua

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,4 +101,42 @@ describe("TestSkills", function()
101101
assert.True(build.calcsTab.calcsOutput.AncestralCallUptimeRatio ~= nil)
102102
assert.are.equal(3, build.calcsTab.calcsOutput.StrikeTargets)
103103
end)
104+
105+
it("Test Combined Ancestral Boosts - Ancestral Empowerment and Fist of War", function()
106+
build.itemsTab:CreateDisplayItemFromRaw([[
107+
New Item
108+
Fanatic Greathammer
109+
Quality: 0
110+
]])
111+
build.itemsTab:AddDisplayItem()
112+
runCallback("OnFrame")
113+
build.skillsTab:PasteSocketGroup("Leap Slam 20/0 1\nFist of War I 1/0 1")
114+
runCallback("OnFrame")
115+
build.configTab.input.customMods = "every second slam skill you use yourself is ancestrally boosted"
116+
build.configTab:BuildModList()
117+
runCallback("OnFrame")
118+
local fistOfWarOneMaxDmgEffect = build.calcsTab.calcsOutput.MaxAncestralEmpowermentCombinedDamageEffect
119+
120+
-- test that we are using the calcCombinedAncestralBoost function and the calcSection triggers are correct
121+
assert.True(build.calcsTab.calcsOutput.AncestralEmpowermentCombinedUptimeRatio ~= nil)
122+
assert.True(build.calcsTab.calcsOutput.AncestralEmpowermentUptimeRatio == nil)
123+
assert.True(build.calcsTab.calcsOutput.FistOfWarUptimeRatio == nil)
124+
125+
newBuild()
126+
build.itemsTab:CreateDisplayItemFromRaw([[
127+
New Item
128+
Fanatic Greathammer
129+
Quality: 0
130+
]])
131+
build.itemsTab:AddDisplayItem()
132+
runCallback("OnFrame")
133+
build.skillsTab:PasteSocketGroup("Leap Slam 20/0 1\nFist of War III 1/0 1")
134+
runCallback("OnFrame")
135+
build.configTab.input.customMods = "every second slam skill you use yourself is ancestrally boosted"
136+
build.configTab:BuildModList()
137+
runCallback("OnFrame")
138+
139+
-- test doubled effects of Fist of War III with Ancestral Empowerment
140+
assert.True(fistOfWarOneMaxDmgEffect < build.calcsTab.calcsOutput.MaxAncestralEmpowermentCombinedDamageEffect)
141+
end)
104142
end)

src/Data/ModCache.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4879,7 +4879,7 @@ c["Every Rage also grants you 1% increased Minion Attack Speed"]={nil,"you 1% in
48794879
c["Every Rage also grants you 1% increased Minion Attack Speed Every Rage also grants you 1% increased Minion Damage"]={nil,"you 1% increased Minion Attack Speed Every Rage also grants you 1% increased Minion Damage "}
48804880
c["Every Rage also grants you 1% increased Minion Damage"]={nil,"you 1% increased Minion Damage "}
48814881
c["Every Third Slam skill that doesn't create Fissures which you use yourself causes 3 additional Aftershocks ahead and to each side of the initial area"]={nil,"Every Third Slam skill that doesn't create Fissures which you use yourself causes 3 additional Aftershocks ahead and to each side of the initial area "}
4882-
c["Every second Slam Skill you use yourself is Ancestrally Boosted"]={nil,"Every second Slam Skill you use yourself is Ancestrally Boosted "}
4882+
c["Every second Slam Skill you use yourself is Ancestrally Boosted"]={{[1]={[1]={skillType=93,type="SkillType"},flags=0,keywordFlags=0,name="AncestralEmpowerment",type="FLAG",value=true},[2]={[1]={skillType=93,type="SkillType"},flags=0,keywordFlags=0,name="AncestralEmpowermentDamageMultiplier",type="BASE",value=30},[3]={[1]={skillType=93,type="SkillType"},flags=0,keywordFlags=0,name="AncestralEmpowermentIncAoE",type="BASE",value=25}},nil}
48834883
c["Every second, inflicts Critical Weakness on enemies in your Presence for 1 second"]={{[1]={flags=0,keywordFlags=0,name="ApplyCriticalWeakness",type="FLAG",value=true}},nil}
48844884
c["Every second, inflicts Critical Weakness on enemies in your Presence for 15 seconds"]={{[1]={flags=0,keywordFlags=0,name="ApplyCriticalWeakness",type="FLAG",value=true}},nil}
48854885
c["Every second, inflicts Critical Weakness on enemies in your Presence for 18 seconds"]={{[1]={flags=0,keywordFlags=0,name="ApplyCriticalWeakness",type="FLAG",value=true}},nil}

src/Data/Skills/sup_str.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3436,7 +3436,7 @@ skills["FistOfWarSupportPlayer"] = {
34363436
},
34373437
baseMods = {
34383438
mod("FistOfWarDamageMultiplier", "BASE", 30),
3439-
mod("FistOfWarMOREAoE", "BASE", 25),
3439+
mod("FistOfWarIncAoE", "BASE", 25),
34403440
},
34413441
constantStats = {
34423442
{ "support_ancestral_slam_big_hit_max_count", 1 },
@@ -3477,7 +3477,7 @@ skills["FistOfWarSupportPlayerTwo"] = {
34773477
},
34783478
baseMods = {
34793479
mod("FistOfWarDamageMultiplier", "BASE", 30),
3480-
mod("FistOfWarMOREAoE", "BASE", 25),
3480+
mod("FistOfWarIncAoE", "BASE", 25),
34813481
},
34823482
constantStats = {
34833483
{ "support_ancestral_slam_big_hit_max_count", 1 },
@@ -3521,7 +3521,7 @@ skills["FistOfWarSupportPlayerThree"] = {
35213521
},
35223522
baseMods = {
35233523
mod("FistOfWarDamageMultiplier", "BASE", 60),
3524-
mod("FistOfWarMOREAoE", "BASE", 50),
3524+
mod("FistOfWarIncAoE", "BASE", 50),
35253525
},
35263526
constantStats = {
35273527
{ "support_ancestral_slam_big_hit_max_count", 1 },

src/Export/Skills/sup_str.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -769,7 +769,7 @@ statMap = {
769769
},
770770
},
771771
#baseMod mod("FistOfWarDamageMultiplier", "BASE", 30)
772-
#baseMod mod("FistOfWarMOREAoE", "BASE", 25)
772+
#baseMod mod("FistOfWarIncAoE", "BASE", 25)
773773
#mods
774774
#skillEnd
775775

@@ -782,7 +782,7 @@ statMap = {
782782
},
783783
},
784784
#baseMod mod("FistOfWarDamageMultiplier", "BASE", 30)
785-
#baseMod mod("FistOfWarMOREAoE", "BASE", 25)
785+
#baseMod mod("FistOfWarIncAoE", "BASE", 25)
786786
#mods
787787
#skillEnd
788788

@@ -798,7 +798,7 @@ statMap = {
798798
},
799799
},
800800
#baseMod mod("FistOfWarDamageMultiplier", "BASE", 60)
801-
#baseMod mod("FistOfWarMOREAoE", "BASE", 50)
801+
#baseMod mod("FistOfWarIncAoE", "BASE", 50)
802802
#mods
803803
#skillEnd
804804

src/Modules/CalcOffence.lua

Lines changed: 85 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3297,6 +3297,8 @@ function calcs.offence(env, actor, activeSkill)
32973297

32983298
output.FistOfWarDamageEffect = 1
32993299
output.AncestralCallDamageEffect = 1
3300+
output.AncestralEmpowermentDamageEffect = 1
3301+
output.AncestralEmpowermentCombinedDamageEffect = 1
33003302
if env.mode_combat then
33013303
local ruthlessEffect = env.configInput.ruthlessSupportMode or "AVERAGE"
33023304
local ruthlessBlowMaxCount = skillModList:Sum("BASE", cfg, "RuthlessBlowMaxCount")
@@ -3325,8 +3327,9 @@ function calcs.offence(env, actor, activeSkill)
33253327
skillModList:NewMod("Damage", "INC", modDB:Sum("INC", cfg, "AncestralBoostDamage"), sourceName, { type = "Condition", var = "FinalStrike" })
33263328
end
33273329

3328-
-- dynamic way of calcing the Ancestral Boost for supports without duplicating the code for each unique support
3329-
local function calcAncestralBoost(skillName, moreDmg, moreArea)
3330+
-- dynamic way of calcing the Ancestral Boost from a single source without duplicating the code
3331+
-- uptimeOverride: Ancestral Empowerment
3332+
local function calcAncestralBoost(skillName, moreDmg, incArea, uptimeOverride)
33303333
globalOutput.CreateWarcryOffensiveCalcSection = true -- labels for the CalcSection
33313334
local skillNameVar = skillName:gsub(" ", "") -- Fist Of War -> FistOfWar
33323335
local skillNameLabel = skillName:lower()
@@ -3336,11 +3339,11 @@ function calcs.offence(env, actor, activeSkill)
33363339
else
33373340
globalOutput[skillNameVar.."DamageMultiplier"] = ancestrallyBoostedIncDamageMulti
33383341
end
3339-
globalOutput[skillNameVar.."UptimeRatio"] = m_min( (1 / globalOutput.Speed) / globalOutput[skillNameVar.."Cooldown"], 1) * 100
3342+
globalOutput[skillNameVar.."UptimeRatio"] = uptimeOverride or m_min( (1 / globalOutput.Speed) / globalOutput[skillNameVar.."Cooldown"], 1) * 100
33403343
if globalBreakdown then
33413344
globalBreakdown[skillNameVar.."UptimeRatio"] = {
33423345
s_format("min( (1 / %.2f) ^8(second per attack)", globalOutput.Speed),
3343-
s_format("/ %.2f, 1) ^8("..skillNameLabel.." cooldown)", globalOutput[skillNameVar.."Cooldown"]),
3346+
s_format("/ %.2f, 1) ^8("..skillNameLabel.." cooldown)", uptimeOverride and (1 / globalOutput.Speed / (uptimeOverride / 100)) or globalOutput[skillNameVar.."Cooldown"]),
33443347
s_format("= %d%%", globalOutput[skillNameVar.."UptimeRatio"]),
33453348
}
33463349
end
@@ -3356,22 +3359,86 @@ function calcs.offence(env, actor, activeSkill)
33563359
globalOutput["Max"..skillNameVar.."DamageEffect"] = 1 + globalOutput[skillNameVar.."DamageMultiplier"]
33573360
if activeSkill.skillModList:Flag(nil, "Condition:WarcryMaxHit") then
33583361
output[skillNameVar.."DamageEffect"] = globalOutput["Max"..skillNameVar.."DamageEffect"]
3359-
skillModList:NewMod("AreaOfEffect", "MORE", moreArea or 0, "Max "..skillName.." Boosted AoE")
3360-
skillModList:NewMod("AreaOfEffect", "INC", ancestrallyBoostedIncArea, "Max "..skillName.." Boosted AoE")
3362+
skillModList:NewMod("AreaOfEffect", "INC", (incArea or 0) + ancestrallyBoostedIncArea, "Max "..skillName.." Boosted AoE")
33613363
else
33623364
output[skillNameVar.."DamageEffect"] = globalOutput["Avg"..skillNameVar.."DamageEffect"]
3363-
skillModList:NewMod("AreaOfEffect", "MORE", m_floor((moreArea or 0) * globalOutput[skillNameVar.."UptimeRatio"] / 100), "Avg "..skillName.." Boosted AoE")
3364-
skillModList:NewMod("AreaOfEffect", "INC", m_floor(ancestrallyBoostedIncArea * globalOutput[skillNameVar.."UptimeRatio"] / 100), "Avg "..skillName.." Boosted AoE")
3365+
skillModList:NewMod("AreaOfEffect", "INC", m_floor(((incArea or 0) + ancestrallyBoostedIncArea) * globalOutput[skillNameVar.."UptimeRatio"] / 100), "Avg "..skillName.." Boosted AoE")
3366+
end
3367+
calcAreaOfEffect(skillModList, skillCfg, skillData, skillFlags, globalOutput, globalBreakdown)
3368+
globalOutput.TheoreticalOffensiveWarcryEffect = globalOutput.TheoreticalOffensiveWarcryEffect * globalOutput["Avg"..skillNameVar.."DamageEffect"]
3369+
globalOutput.TheoreticalMaxOffensiveWarcryEffect = globalOutput.TheoreticalMaxOffensiveWarcryEffect * globalOutput["Max"..skillNameVar.."DamageEffect"]
3370+
end
3371+
3372+
-- combine Ancentral Empowerment with other sources of Slam Ancestral Boost, namely Fist of War, when both active
3373+
local function calcCombinedAncestralBoost(skillName, moreDmg, incArea, uptimeOverride, additionalSkillName)
3374+
globalOutput.CreateWarcryOffensiveCalcSection = true -- labels for the CalcSection
3375+
local skillNameVar = skillName:gsub(" ", "") -- Fist Of War -> FistOfWar
3376+
local skillNameLabel = skillName:lower()
3377+
3378+
if moreDmg then
3379+
globalOutput[skillNameVar.."DamageMultiplier"] = moreDmg * (1 + ancestrallyBoostedIncDamageMulti)
3380+
else
3381+
globalOutput[skillNameVar.."DamageMultiplier"] = ancestrallyBoostedIncDamageMulti
3382+
end
3383+
-- for CalcSections, set the AncestralEmpowerment damage for mod breakdown
3384+
globalOutput[skillNameVar.."CombinedDamageMultiplier"] = globalOutput[skillNameVar.."DamageMultiplier"]
3385+
skillNameVar = skillNameVar.."Combined"
3386+
local additionalSkillNameVar = additionalSkillName:gsub(" ", "")
3387+
local additionalSkillNameLabel = additionalSkillName:lower()
3388+
3389+
-- a lot of these are doubled up because it would be very long lines otherwise and hopefully this helps legibility
3390+
globalOutput[skillNameVar.."UptimeRatio"] = uptimeOverride or m_min( (1 / globalOutput.Speed) / globalOutput[skillNameVar.."Cooldown"], 1) * 100
3391+
globalOutput[skillNameVar.."UptimeRatio"] = globalOutput[skillNameVar.."UptimeRatio"] + (globalOutput[additionalSkillNameVar.."UptimeRatio"] or 0) / 2
3392+
if globalBreakdown then
3393+
globalBreakdown[skillNameVar.."UptimeRatio"] = {
3394+
s_format("min( (1 / %.2f) ^8(second per attack)", globalOutput.Speed),
3395+
s_format("/ %.2f, 1) ^8("..skillNameLabel.." cooldown)", uptimeOverride and (1 / globalOutput.Speed / (uptimeOverride / 100)) or globalOutput[skillNameVar.."Cooldown"]),
3396+
"+",
3397+
s_format("min( (1 / %.2f) ^8(second per attack)", globalOutput.Speed),
3398+
s_format("/ %.2f, 1) ^8("..additionalSkillNameLabel.." cooldown)", globalOutput[additionalSkillNameVar.."Cooldown"]),
3399+
s_format("= %d%%", globalOutput[skillNameVar.."UptimeRatio"]),
3400+
}
3401+
end
3402+
globalOutput["Avg"..skillNameVar.."Damage"] = globalOutput[skillNameVar.."DamageMultiplier"]
3403+
globalOutput["Avg"..skillNameVar.."DamageEffect"] = 1 + globalOutput["Avg"..skillNameVar.."Damage"] * (uptimeOverride and uptimeOverride / 100 or (globalOutput[skillNameVar.."UptimeRatio"] / 100))
3404+
globalOutput["Avg"..skillNameVar.."DamageEffect"] = (globalOutput["Avg"..skillNameVar.."DamageEffect"] * (1 + globalOutput["Avg"..additionalSkillNameVar.."Damage"] * globalOutput[additionalSkillNameVar.."UptimeRatio"] / 100 / 2))
3405+
if globalBreakdown then
3406+
globalBreakdown["Avg"..skillNameVar.."DamageEffect"] = {
3407+
s_format("1 + (%.2f x %.2f) ^8("..skillNameLabel.." damage multiplier x ^8"..skillNameLabel.." uptime ratio)", globalOutput[skillNameVar.."DamageMultiplier"], uptimeOverride / 100),
3408+
s_format(" + (%.2f x %.2f) ^8("..additionalSkillNameLabel.." damage multiplier x ^8"..additionalSkillNameLabel.." uptime ratio)", globalOutput[additionalSkillNameVar.."DamageMultiplier"], globalOutput[additionalSkillNameVar.."UptimeRatio"] / 100 / 2),
3409+
s_format("= %.2f", globalOutput["Avg"..skillNameVar.."DamageEffect"]),
3410+
}
3411+
end
3412+
globalOutput["Avg"..skillNameVar.."Damage"] = globalOutput[skillNameVar.."DamageMultiplier"] + globalOutput[additionalSkillNameVar.."DamageMultiplier"]
3413+
globalOutput["Max"..skillNameVar.."DamageEffect"] = 1 + globalOutput[skillNameVar.."DamageMultiplier"] + globalOutput[additionalSkillNameVar.."DamageMultiplier"]
3414+
if activeSkill.skillModList:Flag(nil, "Condition:WarcryMaxHit") then
3415+
output[skillNameVar.."DamageEffect"] = globalOutput["Max"..skillNameVar.."DamageEffect"]
3416+
skillModList:NewMod("AreaOfEffect", "INC", (incArea or 0) + ancestrallyBoostedIncArea, "Max "..skillName.." Boosted AoE")
3417+
else
3418+
output[skillNameVar.."DamageEffect"] = globalOutput["Avg"..skillNameVar.."DamageEffect"]
3419+
skillModList:NewMod("AreaOfEffect", "INC", m_floor(((incArea or 0) + ancestrallyBoostedIncArea) * globalOutput[skillNameVar.."UptimeRatio"] / 100), "Avg "..skillName.." Boosted AoE")
33653420
end
33663421
calcAreaOfEffect(skillModList, skillCfg, skillData, skillFlags, globalOutput, globalBreakdown)
33673422
globalOutput.TheoreticalOffensiveWarcryEffect = globalOutput.TheoreticalOffensiveWarcryEffect * globalOutput["Avg"..skillNameVar.."DamageEffect"]
33683423
globalOutput.TheoreticalMaxOffensiveWarcryEffect = globalOutput.TheoreticalMaxOffensiveWarcryEffect * globalOutput["Max"..skillNameVar.."DamageEffect"]
33693424
end
33703425

33713426
globalOutput.FistOfWarCooldown = skillModList:Sum("BASE", cfg, "FistOfWarCooldown") or 0
3427+
if skillModList:Flag(cfg, "AncestralEmpowerment") and activeSkill.skillTypes[SkillType.Slam] and not activeSkill.skillTypes[SkillType.Vaal] and not activeSkill.skillTypes[SkillType.OtherThingUsesSkill] then
3428+
if globalOutput.FistOfWarCooldown ~= 0 then -- get the fist of war calcs in output to use in Empowerment
3429+
calcAncestralBoost("Fist Of War", (skillModList:Sum("BASE", nil, "FistOfWarDamageMultiplier") / 100), skillModList:Sum("BASE", nil, "FistOfWarIncAoE"))
3430+
globalOutput.TheoreticalOffensiveWarcryEffect = 1 -- reset effects from FistOfWar calc, we combine later
3431+
globalOutput.TheoreticalMaxOffensiveWarcryEffect = 1
3432+
3433+
calcCombinedAncestralBoost("Ancestral Empowerment", (skillModList:Sum("BASE", cfg, "AncestralEmpowermentDamageMultiplier") / 100), skillModList:Sum("BASE", cfg, "AncestralEmpowermentIncAoE"), 50, "Fist Of War")
3434+
globalOutput.FistOfWarUptimeRatio = nil -- hide from CalcSections, but we need it for the combined calc first
3435+
else
3436+
calcAncestralBoost("Ancestral Empowerment", (skillModList:Sum("BASE", cfg, "AncestralEmpowermentDamageMultiplier") / 100), skillModList:Sum("BASE", cfg, "AncestralEmpowermentIncAoE"), 50)
3437+
end
3438+
end
33723439
-- If Fist of War & Active Skill is a Slam Skill & NOT a Vaal Skill & NOT used by mirage or other
3373-
if globalOutput.FistOfWarCooldown ~= 0 and activeSkill.skillTypes[SkillType.Slam] and not activeSkill.skillTypes[SkillType.Vaal] and not activeSkill.skillTypes[SkillType.OtherThingUsesSkill] then
3374-
calcAncestralBoost("Fist Of War", (skillModList:Sum("BASE", nil, "FistOfWarDamageMultiplier") / 100), skillModList:Sum("BASE", nil, "FistOfWarMOREAoE"))
3440+
if not skillModList:Flag(cfg, "AncestralEmpowerment") and globalOutput.FistOfWarCooldown ~= 0 and activeSkill.skillTypes[SkillType.Slam] and not activeSkill.skillTypes[SkillType.Vaal] and not activeSkill.skillTypes[SkillType.OtherThingUsesSkill] then
3441+
calcAncestralBoost("Fist Of War", (skillModList:Sum("BASE", nil, "FistOfWarDamageMultiplier") / 100), skillModList:Sum("BASE", nil, "FistOfWarIncAoE"))
33753442
else
33763443
output.FistOfWarDamageEffect = 1
33773444
end
@@ -3727,6 +3794,12 @@ function calcs.offence(env, actor, activeSkill)
37273794
if output.AncestralCallDamageEffect ~= 1 then
37283795
t_insert(breakdown[damageType], s_format("x %.2f ^8(ancestral call effect modifier)", output.AncestralCallDamageEffect))
37293796
end
3797+
if output.AncestralEmpowermentDamageEffect ~= 1 then
3798+
t_insert(breakdown[damageType], s_format("x %.2f ^8(ancestral empowerment effect modifier)", output.AncestralEmpowermentDamageEffect))
3799+
end
3800+
if output.AncestralEmpowermentCombinedDamageEffect ~= 1 then
3801+
t_insert(breakdown[damageType], s_format("x %.2f ^8(ancestral empowerment + effect modifier)", output.AncestralEmpowermentCombinedDamageEffect))
3802+
end
37303803
if globalOutput.OffensiveWarcryEffect ~= 1 and not activeSkill.skillModList:Flag(nil, "Condition:WarcryMaxHit") then
37313804
t_insert(breakdown[damageType], s_format("x %.2f ^8(aggregated warcry exerted effect modifier)", globalOutput.OffensiveWarcryEffect))
37323805
end
@@ -3735,9 +3808,9 @@ function calcs.offence(env, actor, activeSkill)
37353808
end
37363809
end
37373810
if activeSkill.skillModList:Flag(nil, "Condition:WarcryMaxHit") then
3738-
output.allMult = output.ScaledDamageEffect * output.FistOfWarDamageEffect * output.AncestralCallDamageEffect * globalOutput.MaxOffensiveWarcryEffect
3811+
output.allMult = output.ScaledDamageEffect * output.FistOfWarDamageEffect * output.AncestralCallDamageEffect * output.AncestralEmpowermentDamageEffect * output.AncestralEmpowermentCombinedDamageEffect * globalOutput.MaxOffensiveWarcryEffect
37393812
else
3740-
output.allMult = output.ScaledDamageEffect * output.FistOfWarDamageEffect * output.AncestralCallDamageEffect * globalOutput.OffensiveWarcryEffect
3813+
output.allMult = output.ScaledDamageEffect * output.FistOfWarDamageEffect * output.AncestralCallDamageEffect * output.AncestralEmpowermentDamageEffect * output.AncestralEmpowermentCombinedDamageEffect * globalOutput.OffensiveWarcryEffect
37413814
end
37423815
local allMult = output.allMult
37433816
if pass == 1 then

src/Modules/CalcSections.lua

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,20 @@ return {
415415
{ format = "" },
416416
{ format = "{2:output:ExertedAttackMaxHitEffect}", { modName = "ExertIncrease", cfg = "skill" }, { modName = "ExertAttackIncrease", cfg = "skill" }, },
417417
},
418+
{ label = "Ancest. Empower +", bgCol = colorCodes.MAINHANDBG, haveOutput = "AncestralEmpowermentCombinedUptimeRatio",
419+
{ format = "{2:output:AvgAncestralEmpowermentCombinedDamageEffect}", { breakdown = "AvgAncestralEmpowermentCombinedDamageEffect"}, },
420+
{ format = "{2:output:AvgAncestralEmpowermentCombinedDamage}", { modName = { "AncestralEmpowermentDamageMultiplier", "FistOfWarDamageMultiplier" }, cfg = "skill" }, { modName = "AncestralBoostDamage", cfg = "skill" }, },
421+
{ format = "{0:output:AncestralEmpowermentCombinedUptimeRatio}%", { breakdown = "AncestralEmpowermentCombinedUptimeRatio" }, },
422+
{ format = "" },
423+
{ format = "{2:output:MaxAncestralEmpowermentCombinedDamageEffect}" },
424+
},
425+
{ label = "Anc. Empowerment", bgCol = colorCodes.MAINHANDBG, haveOutput = "AncestralEmpowermentUptimeRatio",
426+
{ format = "{2:output:AvgAncestralEmpowermentDamageEffect}", { breakdown = "AvgAncestralEmpowermentDamageEffect"}, },
427+
{ format = "{2:output:AvgAncestralEmpowermentDamage}", { modName = "AncestralEmpowermentDamageMultiplier", cfg = "skill"}, { modName = "AncestralBoostDamage", cfg = "skill" }, },
428+
{ format = "{0:output:AncestralEmpowermentUptimeRatio}%", { breakdown = "AncestralEmpowermentUptimeRatio" }, },
429+
{ format = "" },
430+
{ format = "{2:output:MaxAncestralEmpowermentDamageEffect}" },
431+
},
418432
{ label = "Fist of War", bgCol = colorCodes.MAINHANDBG, haveOutput = "FistOfWarUptimeRatio",
419433
{ format = "{2:output:AvgFistOfWarDamageEffect}", { breakdown = "AvgFistOfWarDamageEffect"}, },
420434
{ format = "{2:output:AvgFistOfWarDamage}", { modName = "FistOfWarDamageMultiplier", cfg = "skill"}, { modName = "AncestralBoostDamage", cfg = "skill" }, },

0 commit comments

Comments
 (0)