diff --git a/spec/System/TestSkills_spec.lua b/spec/System/TestSkills_spec.lua index 659e46690..d3cb37d10 100644 --- a/spec/System/TestSkills_spec.lua +++ b/spec/System/TestSkills_spec.lua @@ -1106,4 +1106,5 @@ describe("TestSkills", function() local noParrySpellDmg = build.calcsTab.mainOutput.AverageDamage assert.equals(withParrySpellDmg, noParrySpellDmg, "Parry should not affect spell damage") end) + end) diff --git a/src/Data/Skills/act_str.lua b/src/Data/Skills/act_str.lua index b291a4217..e44044a3d 100644 --- a/src/Data/Skills/act_str.lua +++ b/src/Data/Skills/act_str.lua @@ -15209,6 +15209,14 @@ skills["WolfPounceMarkPlayer"] = { baseFlags = { duration = true, }, + statMap = { + ["skill_wolf_mark_damage_taken_+%_per_nearby_enemy"] = { + mod("DamageTaken", "INC", nil, 0, 0, { type = "Multiplier", var = "MinionPresenceCount", actor = "player", limitVar = "PredatorsMarkLimit", limitTotal = true }, { type = "GlobalEffect", effectType = "Curse" }), + }, + ["skill_wolf_mark_damage_taken_+%_cap"] = { + mod("Multiplier:PredatorsMarkLimit", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Curse" }), + }, + }, constantStats = { { "base_skill_effect_duration", 8000 }, { "movement_speed_+%_final_while_performing_action", -70 }, diff --git a/src/Export/Skills/act_str.txt b/src/Export/Skills/act_str.txt index 81bff8e7a..1ad9e9261 100644 --- a/src/Export/Skills/act_str.txt +++ b/src/Export/Skills/act_str.txt @@ -884,6 +884,14 @@ end, #skill WolfPounceMarkPlayer #set WolfPounceMarkPlayer #flags duration +statMap = { + ["skill_wolf_mark_damage_taken_+%_per_nearby_enemy"] = { + mod("DamageTaken", "INC", nil, 0, 0, { type = "Multiplier", var = "MinionPresenceCount", actor = "player", limitVar = "PredatorsMarkLimit", limitTotal = true }, { type = "GlobalEffect", effectType = "Curse" }), + }, + ["skill_wolf_mark_damage_taken_+%_cap"] = { + mod("Multiplier:PredatorsMarkLimit", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Curse" }), + }, +}, #mods #skillEnd diff --git a/src/Modules/CalcSections.lua b/src/Modules/CalcSections.lua index ac2c815f9..d4ecb0919 100644 --- a/src/Modules/CalcSections.lua +++ b/src/Modules/CalcSections.lua @@ -865,8 +865,8 @@ return { { breakdown = "ParryRangeNonProj" }, { label = "Range modifiers", modName = "ParryRangeNonProj", cfg = "skill" }, }, }, - { label = "Parry Range Proj", haveOutput = "ParryRangeProj", { format = "{1:output:ParryRangeProj}m", - { breakdown = "ParryRangeProj" }, + { label = "Parry Range Proj", haveOutput = "ParryRangeProj", { format = "{1:output:ParryRangeProj}m", + { breakdown = "ParryRangeProj" }, { label = "Range modifiers", modName = "ParryRangeProj", cfg = "skill" }, }, }, -- Mines diff --git a/src/Modules/Calcs.lua b/src/Modules/Calcs.lua index 7f06f8bd6..bcaa8d885 100644 --- a/src/Modules/Calcs.lua +++ b/src/Modules/Calcs.lua @@ -598,6 +598,8 @@ function calcs.buildOutput(build, mode) elseif tag.type == "Multiplier" or tag.type == "MultiplierThreshold" then if not tag.actor then addVarTag(env.enemyMultipliersUsed, tag, mod) + elseif tag.actor == "enemy" or tag.actor == "player" then + addVarTag(env.multipliersUsed, tag, mod) end end end