[Warlock] Improve Gaze trinket and related proc handling#11339
Open
millanzarreta wants to merge 9 commits intosimulationcraft:midnightfrom
Open
[Warlock] Improve Gaze trinket and related proc handling#11339millanzarreta wants to merge 9 commits intosimulationcraft:midnightfrom
millanzarreta wants to merge 9 commits intosimulationcraft:midnightfrom
Conversation
…ger_callbacks module workarounds
…ng event init and correct pet buff source/target pairs
c8a6ead to
a6dd934
Compare
…ell over spell_data_t and add summon spells
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.
This PR aims to make the necessary adjustments to the Warlock module to handle the Gaze of the Alnseer trinket procs correctly, while also leaving the implementation in a more general state so it can support similar procs in the future.
By default, the trinket procs from impacts, aura gains, and the execution of certain spells. The tricky part is that this also includes many hidden auras and spells. For most other RPPM-based trinkets, these extra triggers are not especially important, since they are driven more by time than by events. This trinket driver, however, has a 100% proc chance with a 0.750s ICD (gaining one stack per proc), which makes it especially sensitive to the correct implementation of those triggers.
In the past, the trinket Mug's Moxie Jug behaved very similarly to this one. At the time, extensive testing was done on Warlock to determine which effects and spells triggered it. PR #10298 proposed an implementation for that behavior, but it was never merged due to the lack of warlock module reviewers and because it relied on certain workarounds to function properly. Those workarounds are no longer necessary, since the required mechanisms are now implemented in the SimC core. Even so, the extensive testing done in that PR is still valid, and most of the hidden triggers still behave the same way (that PR includes a spreadsheet with detailed information on which warlock spells and auras do and do not trigger the proc). In addition to confirming that behavior, new tests were also performed for newer spells and mechanics.
The findings are summarized below:
Only Proc From Class Abilities (415)flag, which prevents it from proccing off spells that do not have theAllow Class Ability Procs (416)flag, such as the damage from Doom and Ruination.SimC now correctly supports procs from buff/debuff gains, so only some refinements are needed regarding them: disabling these callbacks on dummy/tracking auras and setting their source and target units correctly.
For summons, energize effects, and some auras/spells, the decision was made not to create new
action_t/buff_tobjects in order to avoid added complexity/bloat and potential performance overhead. Instead, in these cases the callbacks are invoked directly where appropriate.