Skip to content

[Warlock] Refine target filtering for several spells#11439

Merged
nyterage merged 2 commits intosimulationcraft:midnightfrom
millanzarreta:wl-target-list-and-aff-tweaks
May 5, 2026
Merged

[Warlock] Refine target filtering for several spells#11439
nyterage merged 2 commits intosimulationcraft:midnightfrom
millanzarreta:wl-target-list-and-aff-tweaks

Conversation

@millanzarreta
Copy link
Copy Markdown
Contributor

@millanzarreta millanzarreta commented May 4, 2026

Several changes to the Warlock module related to targeting for some spells:

  • Prefer target_filter_callback for simple filters
  • Prefer using range::erase_remove instead of removing entries one by one with a while loop in several places.
  • For Dark Harvest, the target cache is invalidated on each tick to allow dynamic target selection in each tick, matching in-game behavior.
  • In-game, Shadow of Nathreza always deals damage to the main target, but only damages secondary targets if they have the Corruption or Wither DoT applied. This behavior was not previously implemented in sims and has now been added in this PR.
  • For Incinerate, inside the init() function, it is more correct to call action_base_t::init() (the immediate parent of warlock_spell_t) rather than spell_t::init(). A comment has also been added to clarify that warlock_spell_t::init() is intentionally not called, because the purpose of this override is to replace its behavior.
  • In-game, Channel Demonfire cannot be cast if there are no valid targets, so, in sims, its ready() function has been adjusted to match that behavior.

@nyterage nyterage merged commit 9840468 into simulationcraft:midnight May 5, 2026
28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants