[Warlock] Refine Seed of Corruption smart targeting and detonation#11440
Merged
nyterage merged 1 commit intosimulationcraft:midnightfrom May 5, 2026
Merged
Conversation
a7c84a7 to
da45b2e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Several Seed of Corruption behaviors have been tested in-game and replicated in SimC:
main_seed_targetvariable has been removed from the custom SoC stateseed_of_corruption_state_t, as it is no longer used. It was previously used for the logic that determined which target should be affected byPatient Zero, but testing done in PR #11405 confirmed that the behavior is more general and not specifically tied to the SoC debuff state. This is now handled through the player-scope variablepatient_zero_target.Let's expand on this last point.
In-game tests were done both with and without the Sow the Seeds talent, and the observed behavior is as the code comment indicates:
Explained more simply:
This logic has been implemented in SimC, mainly in the
available_targetsfunction, with the target cache being invalidated when needed.Since Seed of Corruption can now redirect the primary seed to a target different from the original cast target, some extra changes were needed in
snapshot_state()andexecute():snapshot_state()now useschain_target == 0to identify the primary seed, so Sow the Seeds effectiveness is assigned correctly even when the primary seed is redirected.execute()resolves the actual primary seed target from the generated target list and uses it for follow-up effects.In-game testing also confirmed that other actions/effects triggered by Seed of Corruption use the main seed’s actual target, not the original SoC cast target. This applies to actions/effects such as Shared Fate, Wicked Reaping (and by extension Soul Anathema), Demonic Soul, and the Patient Zero talent. This behavior has also been replicated in SimC.