Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions spec/System/TestSkills_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,23 @@ describe("TestSkills", function()
local finalCost = build.calcsTab.mainOutput.ManaCost
assert.are.equals(16, round(finalCost))
end)

it("Test stacking persistent buff supports of same category", function()
build.skillsTab:PasteSocketGroup("Arctic Armour 20/0 1\nClarity I 1/0 1")
build.skillsTab:PasteSocketGroup("Time of Need 20/0 1\nClarity II 1/0 1")
runCallback("OnFrame")
assert.are.equals(build.calcsTab.calcsOutput.BuffList, "Clarity I, Clarity II")

newBuild()
build.skillsTab:PasteSocketGroup("Arctic Armour 20/0 1\nClarity I 1/0 1\nClarity II 1/0 1")
build.skillsTab:PasteSocketGroup("Time of Need 20/0 1\nClarity II 1/0 1")
runCallback("OnFrame")
assert.are.equals(build.calcsTab.calcsOutput.BuffList, "Clarity II")

newBuild()
build.skillsTab:PasteSocketGroup("Arctic Armour 20/0 1\nClarity II 1/0 1")
build.skillsTab:PasteSocketGroup("Time of Need 20/0 1\nClarity II 1/0 1")
runCallback("OnFrame")
assert.are.equals(build.calcsTab.calcsOutput.BuffList, "Clarity II")
end)
end)
4 changes: 2 additions & 2 deletions src/Data/Skills/sup_dex.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4243,7 +4243,7 @@ skills["SupportPrecisionPlayer"] = {
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_precision_accuracy_rating_+%"] = {
mod("Accuracy", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Precision" } ),
mod("Accuracy", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Precision I" } ),
},
},
baseFlags = {
Expand Down Expand Up @@ -4279,7 +4279,7 @@ skills["SupportPrecisionPlayerTwo"] = {
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_precision_accuracy_rating_+%"] = {
mod("Accuracy", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Precision" } ),
mod("Accuracy", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Precision II" } ),
},
},
baseFlags = {
Expand Down
8 changes: 4 additions & 4 deletions src/Data/Skills/sup_int.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1793,7 +1793,7 @@ skills["SupportClarityPlayer"] = {
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_clarity_mana_regeneration_rate_+%"] = {
mod("ManaRegen", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Clarity" }),
mod("ManaRegen", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Clarity I" }),
},
},
baseFlags = {
Expand Down Expand Up @@ -1829,7 +1829,7 @@ skills["SupportClarityPlayerTwo"] = {
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_clarity_mana_regeneration_rate_+%"] = {
mod("ManaRegen", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Clarity" }),
mod("ManaRegen", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Clarity II" }),
},
},
baseFlags = {
Expand Down Expand Up @@ -6216,7 +6216,7 @@ skills["SupportMysticismPlayer"] = {
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_spell_damage_spirit_cost_spell_damage_+%_on_full_energy_shield"] = {
mod("Damage", "INC", nil, ModFlag.Spell, 0, { type = "Condition", var = "FullEnergyShield" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Mysticism" }),
mod("Damage", "INC", nil, ModFlag.Spell, 0, { type = "Condition", var = "FullEnergyShield" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Mysticism I" }),
},
},
baseFlags = {
Expand Down Expand Up @@ -6252,7 +6252,7 @@ skills["SupportMysticismPlayerTwo"] = {
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_spell_damage_spirit_cost_spell_damage_+%_on_full_energy_shield"] = {
mod("Damage", "INC", nil, ModFlag.Spell, 0, { type = "Condition", var = "FullEnergyShield" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Mysticism" }),
mod("Damage", "INC", nil, ModFlag.Spell, 0, { type = "Condition", var = "FullEnergyShield" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Mysticism II" }),
},
},
baseFlags = {
Expand Down
20 changes: 10 additions & 10 deletions src/Data/Skills/sup_str.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1293,7 +1293,7 @@ skills["SupportCannibalismPlayer"] = {
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_cannibalism_recover_%_maximum_life_on_kill"] = {
mod("LifeOnKill", "BASE", nil, 0, 0, { type = "PercentStat", stat = "Life", percent = 1 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Cannibalism" }),
mod("LifeOnKill", "BASE", nil, 0, 0, { type = "PercentStat", stat = "Life", percent = 1 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Cannibalism I" }),
},
},
baseFlags = {
Expand Down Expand Up @@ -1329,7 +1329,7 @@ skills["SupportCannibalismPlayerTwo"] = {
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_cannibalism_recover_%_maximum_life_on_kill"] = {
mod("LifeOnKill", "BASE", nil, 0, 0, { type = "PercentStat", stat = "Life", percent = 1 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Cannibalism" }),
mod("LifeOnKill", "BASE", nil, 0, 0, { type = "PercentStat", stat = "Life", percent = 1 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Cannibalism II" }),
},
},
baseFlags = {
Expand Down Expand Up @@ -2128,7 +2128,7 @@ skills["SupportDirestrikePlayer"] = {
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_attack_damage_spirit_cost_attack_damage_+%_on_low_life"] = {
mod("Damage", "INC", nil, ModFlag.Attack, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Direstrike" }),
mod("Damage", "INC", nil, ModFlag.Attack, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Direstrike I" }, { type = "Condition", var = "LowLife" }),
},
},
baseFlags = {
Expand Down Expand Up @@ -2164,7 +2164,7 @@ skills["SupportDirestrikePlayerTwo"] = {
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_attack_damage_spirit_cost_attack_damage_+%_on_low_life"] = {
mod("Damage", "INC", nil, ModFlag.Attack, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Direstrike" }),
mod("Damage", "INC", nil, ModFlag.Attack, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Direstrike II" }, { type = "Condition", var = "LowLife" }),
},
},
baseFlags = {
Expand Down Expand Up @@ -3958,7 +3958,7 @@ skills["SupportHerbalismPlayer"] = {
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_herbalism_life_recovery_+%_from_life_flasks"] = {
mod("FlaskLifeRecovery", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Herbalism" }),
mod("FlaskLifeRecovery", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Herbalism I" }),
},
},
baseFlags = {
Expand Down Expand Up @@ -3994,7 +3994,7 @@ skills["SupportHerbalismPlayerTwo"] = {
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_herbalism_life_recovery_+%_from_life_flasks"] = {
mod("FlaskLifeRecovery", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Herbalism" }),
mod("FlaskLifeRecovery", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Herbalism II" }),
},
},
baseFlags = {
Expand Down Expand Up @@ -6993,7 +6993,7 @@ skills["SupportThornskinPlayer"] = {
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_thorns_spirit_cost_thorns_damage_+%"] = {
mod("ThornsDamage", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Thornskin" }),
mod("ThornsDamage", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Thornskin I" }),
},
},
baseFlags = {
Expand Down Expand Up @@ -7029,7 +7029,7 @@ skills["SupportThornskinPlayerTwo"] = {
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_thorns_spirit_cost_thorns_damage_+%"] = {
mod("ThornsDamage", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Thornskin" }),
mod("ThornsDamage", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Thornskin II" }),
},
},
baseFlags = {
Expand Down Expand Up @@ -7703,7 +7703,7 @@ skills["SupportVitalityPlayer"] = {
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_vitality_life_regeneration_rate_per_minute_%"] = {
mod("LifeRegenPercent", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Vitality" }),
mod("LifeRegenPercent", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Vitality I" }),
div = 60,
},
},
Expand Down Expand Up @@ -7740,7 +7740,7 @@ skills["SupportVitalityPlayerTwo"] = {
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_vitality_life_regeneration_rate_per_minute_%"] = {
mod("LifeRegenPercent", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Vitality" }),
mod("LifeRegenPercent", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Vitality II" }),
div = 60,
},
},
Expand Down
4 changes: 2 additions & 2 deletions src/Export/Skills/sup_dex.txt
Original file line number Diff line number Diff line change
Expand Up @@ -910,7 +910,7 @@ statMap = {
#set SupportPrecisionPlayer
statMap = {
["support_precision_accuracy_rating_+%"] = {
mod("Accuracy", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Precision" } ),
mod("Accuracy", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Precision I" } ),
},
},
#mods
Expand All @@ -920,7 +920,7 @@ statMap = {
#set SupportPrecisionPlayerTwo
statMap = {
["support_precision_accuracy_rating_+%"] = {
mod("Accuracy", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Precision" } ),
mod("Accuracy", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Precision II" } ),
},
},
#mods
Expand Down
8 changes: 4 additions & 4 deletions src/Export/Skills/sup_int.txt
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ statMap = {
#set SupportClarityPlayer
statMap = {
["support_clarity_mana_regeneration_rate_+%"] = {
mod("ManaRegen", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Clarity" }),
mod("ManaRegen", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Clarity I" }),
},
},
#mods
Expand All @@ -304,7 +304,7 @@ statMap = {
#set SupportClarityPlayerTwo
statMap = {
["support_clarity_mana_regeneration_rate_+%"] = {
mod("ManaRegen", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Clarity" }),
mod("ManaRegen", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Clarity II" }),
},
},
#mods
Expand Down Expand Up @@ -1161,7 +1161,7 @@ statMap = {
#set SupportMysticismPlayer
statMap = {
["support_spell_damage_spirit_cost_spell_damage_+%_on_full_energy_shield"] = {
mod("Damage", "INC", nil, ModFlag.Spell, 0, { type = "Condition", var = "FullEnergyShield" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Mysticism" }),
mod("Damage", "INC", nil, ModFlag.Spell, 0, { type = "Condition", var = "FullEnergyShield" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Mysticism I" }),
},
},
#mods
Expand All @@ -1171,7 +1171,7 @@ statMap = {
#set SupportMysticismPlayerTwo
statMap = {
["support_spell_damage_spirit_cost_spell_damage_+%_on_full_energy_shield"] = {
mod("Damage", "INC", nil, ModFlag.Spell, 0, { type = "Condition", var = "FullEnergyShield" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Mysticism" }),
mod("Damage", "INC", nil, ModFlag.Spell, 0, { type = "Condition", var = "FullEnergyShield" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Mysticism II" }),
},
},
#mods
Expand Down
20 changes: 10 additions & 10 deletions src/Export/Skills/sup_str.txt
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ statMap = {
#set SupportCannibalismPlayer
statMap = {
["support_cannibalism_recover_%_maximum_life_on_kill"] = {
mod("LifeOnKill", "BASE", nil, 0, 0, { type = "PercentStat", stat = "Life", percent = 1 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Cannibalism" }),
mod("LifeOnKill", "BASE", nil, 0, 0, { type = "PercentStat", stat = "Life", percent = 1 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Cannibalism I" }),
},
},
#mods
Expand All @@ -260,7 +260,7 @@ statMap = {
#set SupportCannibalismPlayerTwo
statMap = {
["support_cannibalism_recover_%_maximum_life_on_kill"] = {
mod("LifeOnKill", "BASE", nil, 0, 0, { type = "PercentStat", stat = "Life", percent = 1 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Cannibalism" }),
mod("LifeOnKill", "BASE", nil, 0, 0, { type = "PercentStat", stat = "Life", percent = 1 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Cannibalism II" }),
},
},
#flags
Expand Down Expand Up @@ -487,7 +487,7 @@ statMap = {
#set SupportDirestrikePlayer
statMap = {
["support_attack_damage_spirit_cost_attack_damage_+%_on_low_life"] = {
mod("Damage", "INC", nil, ModFlag.Attack, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Direstrike" }),
mod("Damage", "INC", nil, ModFlag.Attack, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Direstrike I" }, { type = "Condition", var = "LowLife" }),
},
},
#mods
Expand All @@ -497,7 +497,7 @@ statMap = {
#set SupportDirestrikePlayerTwo
statMap = {
["support_attack_damage_spirit_cost_attack_damage_+%_on_low_life"] = {
mod("Damage", "INC", nil, ModFlag.Attack, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Direstrike" }),
mod("Damage", "INC", nil, ModFlag.Attack, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Direstrike II" }, { type = "Condition", var = "LowLife" }),
},
},
#mods
Expand Down Expand Up @@ -892,7 +892,7 @@ statMap = {
#set SupportHerbalismPlayer
statMap = {
["support_herbalism_life_recovery_+%_from_life_flasks"] = {
mod("FlaskLifeRecovery", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Herbalism" }),
mod("FlaskLifeRecovery", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Herbalism I" }),
},
},
#mods
Expand All @@ -902,7 +902,7 @@ statMap = {
#set SupportHerbalismPlayerTwo
statMap = {
["support_herbalism_life_recovery_+%_from_life_flasks"] = {
mod("FlaskLifeRecovery", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Herbalism" }),
mod("FlaskLifeRecovery", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Herbalism II" }),
},
},
#mods
Expand Down Expand Up @@ -1590,7 +1590,7 @@ statMap = {
#set SupportThornskinPlayer
statMap = {
["support_thorns_spirit_cost_thorns_damage_+%"] = {
mod("ThornsDamage", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Thornskin" }),
mod("ThornsDamage", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Thornskin I" }),
},
},
#mods
Expand All @@ -1600,7 +1600,7 @@ statMap = {
#set SupportThornskinPlayerTwo
statMap = {
["support_thorns_spirit_cost_thorns_damage_+%"] = {
mod("ThornsDamage", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Thornskin" }),
mod("ThornsDamage", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Thornskin II" }),
},
},
#mods
Expand Down Expand Up @@ -1746,7 +1746,7 @@ statMap = {
#set SupportVitalityPlayer
statMap = {
["support_vitality_life_regeneration_rate_per_minute_%"] = {
mod("LifeRegenPercent", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Vitality" }),
mod("LifeRegenPercent", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Vitality I" }),
div = 60,
},
},
Expand All @@ -1757,7 +1757,7 @@ statMap = {
#set SupportVitalityPlayerTwo
statMap = {
["support_vitality_life_regeneration_rate_per_minute_%"] = {
mod("LifeRegenPercent", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Vitality" }),
mod("LifeRegenPercent", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Vitality II" }),
div = 60,
},
},
Expand Down
Loading