Skip to content
Open
55 changes: 55 additions & 0 deletions spec/System/TestSkills_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,59 @@ describe("TestSkills", function()
local finalCost = build.calcsTab.mainOutput.ManaCost
assert.are.equals(16, round(finalCost))
end)

it("Test Ancestral Call - Ancestral Boost calcs", function()
build.itemsTab:CreateDisplayItemFromRaw([[
New Item
Fanatic Greathammer
Quality: 0
]])
build.itemsTab:AddDisplayItem()
runCallback("OnFrame")

build.skillsTab:PasteSocketGroup("Boneshatter 20/0 1\nAncestral Call I 1/0 1")
runCallback("OnFrame")

assert.True(build.calcsTab.calcsOutput.AvgAncestralCallDamageEffect ~= nil)
assert.True(build.calcsTab.calcsOutput.AncestralCallUptimeRatio ~= nil)
assert.are.equal(3, build.calcsTab.calcsOutput.StrikeTargets)
end)

it("Test Combined Ancestral Boosts - Ancestral Empowerment and Fist of War", function()
build.itemsTab:CreateDisplayItemFromRaw([[
New Item
Fanatic Greathammer
Quality: 0
]])
build.itemsTab:AddDisplayItem()
runCallback("OnFrame")
build.skillsTab:PasteSocketGroup("Leap Slam 20/0 1\nFist of War I 1/0 1")
runCallback("OnFrame")
build.configTab.input.customMods = "every second slam skill you use yourself is ancestrally boosted"
build.configTab:BuildModList()
runCallback("OnFrame")
local fistOfWarOneMaxDmgEffect = build.calcsTab.calcsOutput.MaxAncestralEmpowermentCombinedDamageEffect

-- test that we are using the calcCombinedAncestralBoost function and the calcSection triggers are correct
assert.True(build.calcsTab.calcsOutput.AncestralEmpowermentCombinedUptimeRatio ~= nil)
assert.True(build.calcsTab.calcsOutput.AncestralEmpowermentUptimeRatio == nil)
assert.True(build.calcsTab.calcsOutput.FistOfWarUptimeRatio == nil)

newBuild()
build.itemsTab:CreateDisplayItemFromRaw([[
New Item
Fanatic Greathammer
Quality: 0
]])
build.itemsTab:AddDisplayItem()
runCallback("OnFrame")
build.skillsTab:PasteSocketGroup("Leap Slam 20/0 1\nFist of War III 1/0 1")
runCallback("OnFrame")
build.configTab.input.customMods = "every second slam skill you use yourself is ancestrally boosted"
build.configTab:BuildModList()
runCallback("OnFrame")

-- test doubled effects of Fist of War III with Ancestral Empowerment
assert.True(fistOfWarOneMaxDmgEffect < build.calcsTab.calcsOutput.MaxAncestralEmpowermentCombinedDamageEffect)
end)
end)
14 changes: 6 additions & 8 deletions src/Data/ModCache.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2328,7 +2328,7 @@ c["30% increased Accuracy Rating against Rare or Unique Enemies"]={{[1]={[1]={ac
c["30% increased Accuracy Rating at Close Range"]={{[1]={[1]={type="Condition",var="AtCloseRange"},flags=0,keywordFlags=0,name="AccuracyVsEnemy",type="INC",value=30}},nil}
c["30% increased Accuracy Rating while moving"]={{[1]={[1]={type="Condition",var="Moving"},flags=0,keywordFlags=0,name="Accuracy",type="INC",value=30}},nil}
c["30% increased Archon Buff duration"]={{[1]={flags=0,keywordFlags=0,name="Duration",type="INC",value=30}}," Archon Buff "}
c["30% increased Area of Effect of Ancestrally Boosted Attacks"]={{[1]={flags=0,keywordFlags=0,name="AreaOfEffect",type="INC",value=30}}," of Ancestrally Boosted Attacks "}
c["30% increased Area of Effect of Ancestrally Boosted Attacks"]={{[1]={flags=1,keywordFlags=0,name="AncestralBoostAreaOfEffect",type="INC",value=30}},nil}
c["30% increased Armour"]={{[1]={flags=0,keywordFlags=0,name="Armour",type="INC",value=30}},nil}
c["30% increased Armour while Bleeding"]={{[1]={[1]={type="Condition",var="Bleeding"},flags=0,keywordFlags=0,name="Armour",type="INC",value=30}},nil}
c["30% increased Armour while Surrounded"]={{[1]={[1]={type="Condition",var="Surrounded"},flags=0,keywordFlags=0,name="Armour",type="INC",value=30}},nil}
Expand Down Expand Up @@ -2566,8 +2566,7 @@ c["4% chance that if you would gain Rage on Hit, you instead gain up to your max
c["4% increased Area of Effect"]={{[1]={flags=0,keywordFlags=0,name="AreaOfEffect",type="INC",value=4}},nil}
c["4% increased Area of Effect for Attacks"]={{[1]={flags=1,keywordFlags=0,name="AreaOfEffect",type="INC",value=4}},nil}
c["4% increased Area of Effect for Attacks per Enemy you've Ignited in the last 8 seconds, up to 40%"]={{[1]={flags=1,keywordFlags=0,name="AreaOfEffect",type="INC",value=4}}," per Enemy you've Ignited in the last 8 seconds, up to 40% "}
c["4% increased Area of Effect of Ancestrally Boosted Attacks"]={{[1]={flags=0,keywordFlags=0,name="AreaOfEffect",type="INC",value=4}}," of Ancestrally Boosted Attacks "}
c["4% increased Area of Effect of Ancestrally Boosted Attacks Ancestrally Boosted Attacks deal 8% increased Damage"]={{[1]={flags=0,keywordFlags=0,name="AreaOfEffect",type="INC",value=4}}," of Ancestrally Boosted Attacks Ancestrally Boosted Attacks deal 8% increased Damage "}
c["4% increased Area of Effect of Ancestrally Boosted Attacks"]={{[1]={flags=1,keywordFlags=0,name="AncestralBoostAreaOfEffect",type="INC",value=4}},nil}
c["4% increased Attack Damage per 75 Item Armour and Evasion Rating on Equipped Shield"]={{[1]={[1]={div=75,statList={[1]="ArmourOnWeapon 2",[2]="EvasionOnWeapon 2"},type="PerStat"},[2]={type="Condition",var="UsingShield"},flags=1,keywordFlags=0,name="Damage",type="INC",value=4}},nil}
c["4% increased Attack Speed"]={{[1]={flags=1,keywordFlags=0,name="Speed",type="INC",value=4}},nil}
c["4% increased Attack Speed while a Rare or Unique Enemy is in your Presence"]={{[1]={[1]={actor="enemy",type="ActorCondition",varList={[1]="NearbyRareOrUniqueEnemy",[2]="RareOrUnique"}},flags=1,keywordFlags=0,name="Speed",type="INC",value=4}},nil}
Expand Down Expand Up @@ -4343,10 +4342,9 @@ c["Alternating every 5 seconds: Take 40% less Damage from Hits"]={nil,"Alternati
c["Always Hits"]={{[1]={[1]={type="Condition",var="{Hand}Attack"},flags=0,keywordFlags=0,name="CannotBeEvaded",type="FLAG",value=true}},nil}
c["Always Poison on Hit with this weapon"]={{[1]={[1]={type="Condition",var="{Hand}Attack"},[2]={neg=true,skillType=167,type="SkillType"},flags=8192,keywordFlags=0,name="PoisonChance",type="OVERRIDE",value=100}},nil}
c["Always deals Critical Hits against Heavy Stunned Enemies"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="HeavyStunned"},[2]={type="Condition",var="{Hand}Attack"},flags=0,keywordFlags=0,name="CritChance",type="OVERRIDE",value=100}},nil}
c["Ancestrally Boosted Attacks deal 16% increased Damage"]={nil,"Ancestrally Boosted Attacks deal 16% increased Damage "}
c["Ancestrally Boosted Attacks deal 30% increased Damage"]={nil,"Ancestrally Boosted Attacks deal 30% increased Damage "}
c["Ancestrally Boosted Attacks deal 30% increased Damage On Heavy Stunning a Rare or Unique Enemy, your next Attack within 4 seconds will be Ancestrally Boosted"]={nil,"Ancestrally Boosted Attacks deal 30% increased Damage On Heavy Stunning a Rare or Unique Enemy, your next Attack within 4 seconds will be Ancestrally Boosted "}
c["Ancestrally Boosted Attacks deal 8% increased Damage"]={nil,"Ancestrally Boosted Attacks deal 8% increased Damage "}
c["Ancestrally Boosted Attacks deal 16% increased Damage"]={{[1]={flags=1,keywordFlags=0,name="AncestralBoostDamage",type="INC",value=16}},nil}
c["Ancestrally Boosted Attacks deal 30% increased Damage"]={{[1]={flags=1,keywordFlags=0,name="AncestralBoostDamage",type="INC",value=30}},nil}
c["Ancestrally Boosted Attacks deal 8% increased Damage"]={{[1]={flags=1,keywordFlags=0,name="AncestralBoostDamage",type="INC",value=8}},nil}
c["Any number of Poisons from this Weapon can affect a target at the same time"]={{[1]={flags=0,keywordFlags=0,name="PoisonCanStack",type="FLAG",value=true},[2]={[1]={type="Condition",var="{Hand}Attack"},[2]={neg=true,skillType=167,type="SkillType"},flags=0,keywordFlags=0,name="PoisonStacks",type="OVERRIDE",value=math.huge}},nil}
c["Apply 10 Critical Weakness to Enemies when Consuming a Mark on them"]={{[1]={flags=0,keywordFlags=0,name="ApplyCriticalWeakness",type="FLAG",value=true}},nil}
c["Apply Debilitate to Enemies 3 Metres in front of you while your Shield is raised"]={nil,"Apply Debilitate to Enemies 3 Metres in front of you while your Shield is raised "}
Expand Down Expand Up @@ -4881,7 +4879,7 @@ c["Every Rage also grants you 1% increased Minion Attack Speed"]={nil,"you 1% in
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 "}
c["Every Rage also grants you 1% increased Minion Damage"]={nil,"you 1% increased Minion Damage "}
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 "}
c["Every second Slam Skill you use yourself is Ancestrally Boosted"]={nil,"Every second Slam Skill you use yourself is Ancestrally Boosted "}
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}
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}
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}
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}
Expand Down
7 changes: 7 additions & 0 deletions src/Data/SkillStatMap.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2512,6 +2512,13 @@ return {
["slam_aftershock_chance_%"] = {
mod("AftershockChance", "BASE", nil)
},
-- Final Strike
["final_strike_is_ancestrally_boosted"] = {
flag("FinalStrikeAncestrallyBoosted"),
},
["is_final_strike"] = {
flag("Condition:FinalStrike"),
},
-- Curse
["curse_effect_+%"] = {
mod("CurseEffect", "INC", nil),
Expand Down
5 changes: 5 additions & 0 deletions src/Data/Skills/sup_int.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2584,6 +2584,11 @@ skills["SupportCrescendoPlayerTwo"] = {
label = "Crescendo II",
incrementalEffectiveness = 0.054999999701977,
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_crescendo_non_final_strike_attack_speed_+%_final"] = {
mod("Speed", "MORE", nil, ModFlag.Attack, 0, { type = "Condition", var = "FinalStrike", neg = true})
},
},
baseFlags = {
},
constantStats = {
Expand Down
24 changes: 21 additions & 3 deletions src/Data/Skills/sup_str.lua
Original file line number Diff line number Diff line change
Expand Up @@ -149,8 +149,17 @@ skills["SupportAncestralCallPlayer"] = {
label = "Ancestral Call I",
incrementalEffectiveness = 0.054999999701977,
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["ancestral_call_spirit_strike_interval_ms"] = {
mod("AncestralCallCooldown", "BASE", nil),
div = 1000,
},
},
baseFlags = {
},
baseMods = {
mod("AdditionalStrikeTarget", "BASE", 2),
},
constantStats = {
{ "ancestral_call_spirit_strike_interval_ms", 5000 },
},
Expand Down Expand Up @@ -181,8 +190,17 @@ skills["SupportAncestralCallPlayerTwo"] = {
label = "Ancestral Call II",
incrementalEffectiveness = 0.054999999701977,
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["ancestral_call_spirit_strike_interval_ms"] = {
mod("AncestralCallCooldown", "BASE", nil),
div = 1000,
},
},
baseFlags = {
},
baseMods = {
mod("AdditionalStrikeTarget", "BASE", 2),
},
constantStats = {
{ "ancestral_call_spirit_strike_interval_ms", 3000 },
},
Expand Down Expand Up @@ -3418,7 +3436,7 @@ skills["FistOfWarSupportPlayer"] = {
},
baseMods = {
mod("FistOfWarDamageMultiplier", "BASE", 30),
mod("FistOfWarMOREAoE", "BASE", 25),
mod("FistOfWarIncAoE", "BASE", 25),
},
constantStats = {
{ "support_ancestral_slam_big_hit_max_count", 1 },
Expand Down Expand Up @@ -3459,7 +3477,7 @@ skills["FistOfWarSupportPlayerTwo"] = {
},
baseMods = {
mod("FistOfWarDamageMultiplier", "BASE", 30),
mod("FistOfWarMOREAoE", "BASE", 25),
mod("FistOfWarIncAoE", "BASE", 25),
},
constantStats = {
{ "support_ancestral_slam_big_hit_max_count", 1 },
Expand Down Expand Up @@ -3503,7 +3521,7 @@ skills["FistOfWarSupportPlayerThree"] = {
},
baseMods = {
mod("FistOfWarDamageMultiplier", "BASE", 60),
mod("FistOfWarMOREAoE", "BASE", 50),
mod("FistOfWarIncAoE", "BASE", 50),
},
constantStats = {
{ "support_ancestral_slam_big_hit_max_count", 1 },
Expand Down
5 changes: 5 additions & 0 deletions src/Export/Skills/sup_int.txt
Original file line number Diff line number Diff line change
Expand Up @@ -436,6 +436,11 @@ statMap = {

#skill SupportCrescendoPlayerTwo
#set SupportCrescendoPlayerTwo
statMap = {
["support_crescendo_non_final_strike_attack_speed_+%_final"] = {
mod("Speed", "MORE", nil, ModFlag.Attack, 0, { type = "Condition", var = "FinalStrike", neg = true})
},
},
#mods
#skillEnd

Expand Down
20 changes: 17 additions & 3 deletions src/Export/Skills/sup_str.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,25 @@ local skills, mod, flag, skill = ...

#skill SupportAncestralCallPlayer
#set SupportAncestralCallPlayer
statMap = {
["ancestral_call_spirit_strike_interval_ms"] = {
mod("AncestralCallCooldown", "BASE", nil),
div = 1000,
},
},
#baseMod mod("AdditionalStrikeTarget", "BASE", 2)
#mods
#skillEnd

#skill SupportAncestralCallPlayerTwo
#set SupportAncestralCallPlayerTwo
statMap = {
["ancestral_call_spirit_strike_interval_ms"] = {
mod("AncestralCallCooldown", "BASE", nil),
div = 1000,
},
},
#baseMod mod("AdditionalStrikeTarget", "BASE", 2)
#mods
#skillEnd

Expand Down Expand Up @@ -755,7 +769,7 @@ statMap = {
},
},
#baseMod mod("FistOfWarDamageMultiplier", "BASE", 30)
#baseMod mod("FistOfWarMOREAoE", "BASE", 25)
#baseMod mod("FistOfWarIncAoE", "BASE", 25)
#mods
#skillEnd

Expand All @@ -768,7 +782,7 @@ statMap = {
},
},
#baseMod mod("FistOfWarDamageMultiplier", "BASE", 30)
#baseMod mod("FistOfWarMOREAoE", "BASE", 25)
#baseMod mod("FistOfWarIncAoE", "BASE", 25)
#mods
#skillEnd

Expand All @@ -784,7 +798,7 @@ statMap = {
},
},
#baseMod mod("FistOfWarDamageMultiplier", "BASE", 60)
#baseMod mod("FistOfWarMOREAoE", "BASE", 50)
#baseMod mod("FistOfWarIncAoE", "BASE", 50)
#mods
#skillEnd

Expand Down
Loading
Loading