Skip to content

Commit ce9717c

Browse files
mataidemarckaraujoclaudeLocalIdentity
authored
Add Predator's Mark support (Pounce's ally-based DamageTaken curse) (#2135)
* Add allies in range * Add Tests * Add support tooltip * Address PR review: use MinionPresenceCount, fix formatting, update txt source - act_str.lua + act_str.txt: change AlliesInSummonerRange -> MinionPresenceCount, collapse mod() to single line per project convention, add txt source change - CalcPerform: read already-computed MinionPresenceCount from player modDB and bridge it to enemyDB (capped at 15); remove custom ConfigAlliesInSummonerRange - ConfigOptions: remove custom alliesInRange option; existing multiplierMinionsInPresence (# of Minions in your Presence) handles it - CalcSections: remove Predator's Mark Allies display row - TestSkills_spec: update to use multiplierMinionsInPresence config var Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Make the mod work properly * Remove test --------- Co-authored-by: marckaraujo <marckaraujo86@gmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
1 parent a1c10ec commit ce9717c

5 files changed

Lines changed: 21 additions & 2 deletions

File tree

spec/System/TestSkills_spec.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1118,4 +1118,5 @@ describe("TestSkills", function()
11181118
local noParrySpellDmg = build.calcsTab.mainOutput.AverageDamage
11191119
assert.equals(withParrySpellDmg, noParrySpellDmg, "Parry should not affect spell damage")
11201120
end)
1121+
11211122
end)

src/Data/Skills/act_str.lua

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15209,6 +15209,14 @@ skills["WolfPounceMarkPlayer"] = {
1520915209
baseFlags = {
1521015210
duration = true,
1521115211
},
15212+
statMap = {
15213+
["skill_wolf_mark_damage_taken_+%_per_nearby_enemy"] = {
15214+
mod("DamageTaken", "INC", nil, 0, 0, { type = "Multiplier", var = "MinionPresenceCount", actor = "player", limitVar = "PredatorsMarkLimit", limitTotal = true }, { type = "GlobalEffect", effectType = "Curse" }),
15215+
},
15216+
["skill_wolf_mark_damage_taken_+%_cap"] = {
15217+
mod("Multiplier:PredatorsMarkLimit", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Curse" }),
15218+
},
15219+
},
1521215220
constantStats = {
1521315221
{ "base_skill_effect_duration", 8000 },
1521415222
{ "movement_speed_+%_final_while_performing_action", -70 },

src/Export/Skills/act_str.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -884,6 +884,14 @@ end,
884884
#skill WolfPounceMarkPlayer
885885
#set WolfPounceMarkPlayer
886886
#flags duration
887+
statMap = {
888+
["skill_wolf_mark_damage_taken_+%_per_nearby_enemy"] = {
889+
mod("DamageTaken", "INC", nil, 0, 0, { type = "Multiplier", var = "MinionPresenceCount", actor = "player", limitVar = "PredatorsMarkLimit", limitTotal = true }, { type = "GlobalEffect", effectType = "Curse" }),
890+
},
891+
["skill_wolf_mark_damage_taken_+%_cap"] = {
892+
mod("Multiplier:PredatorsMarkLimit", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Curse" }),
893+
},
894+
},
887895
#mods
888896
#skillEnd
889897

src/Modules/CalcSections.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -865,8 +865,8 @@ return {
865865
{ breakdown = "ParryRangeNonProj" },
866866
{ label = "Range modifiers", modName = "ParryRangeNonProj", cfg = "skill" },
867867
}, },
868-
{ label = "Parry Range Proj", haveOutput = "ParryRangeProj", { format = "{1:output:ParryRangeProj}m",
869-
{ breakdown = "ParryRangeProj" },
868+
{ label = "Parry Range Proj", haveOutput = "ParryRangeProj", { format = "{1:output:ParryRangeProj}m",
869+
{ breakdown = "ParryRangeProj" },
870870
{ label = "Range modifiers", modName = "ParryRangeProj", cfg = "skill" },
871871
}, },
872872
-- Mines

src/Modules/Calcs.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -598,6 +598,8 @@ function calcs.buildOutput(build, mode)
598598
elseif tag.type == "Multiplier" or tag.type == "MultiplierThreshold" then
599599
if not tag.actor then
600600
addVarTag(env.enemyMultipliersUsed, tag, mod)
601+
elseif tag.actor == "enemy" or tag.actor == "player" then
602+
addVarTag(env.multipliersUsed, tag, mod)
601603
end
602604
end
603605
end

0 commit comments

Comments
 (0)