[Warlock] Model Demonfire Infusion RNG and refine DoT tick hit-result handling - #11644
Open
millanzarreta wants to merge 1 commit into
Open
[Warlock] Model Demonfire Infusion RNG and refine DoT tick hit-result handling#11644millanzarreta wants to merge 1 commit into
millanzarreta wants to merge 1 commit into
Conversation
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 models the Demonfire Infusion proc RNG based on extensive in-game testing and refines hit-result handling for several Warlock effects triggered by DoT ticks.
Demonfire Infusion RNG
Demonfire Infusion is described as having a
4%chance to trigger from periodic Immolate/Wither damage and a25%chance to trigger from Incinerate:Previously, SimC modeled these as separate flat RNG rolls on every cast/tick. In-game testing with different combinations of Immolate, Incinerate, and Infernal Bolt, as well as different Havoc and Fire and Brimstone (FnB) talent configurations, indicates that these percentages instead represent the mean contributions to a single shared Threshold accumulator advanced on spell impacts/ticks (with some exceptions when special target-scaling rules are used). The accumulator is shared by all eligible sources and preserves its overflow after a proc instead of resetting to zero. No ICD has been observed.
Each successful impact or DoT tick from the affected spells advances and checks the accumulator independently. Missed impacts/ticks do not contribute.
The source contributions to the accumulator are:
+Uniform(0, 0.08)+Uniform(0, 0.08)+Uniform(0, 0.50)+Uniform(0, 0.50 × T^(-2/3))+0.25For the uniform sources, twice the spell-data chance is used as the maximum so that the mean accumulator contribution matches that chance.
Test sample logs:
2026_07_Demonfire_Infusion_RNG_Testing.zip
Immolate and Wither
Immolate/Wither do not appear to have any scaling reduction based on the number of targets.
Wither is currently assumed to use the same periodic contribution as Immolate, consistent with both effects using the same
4%spell-data value.Incinerate, Fire and Brimstone, and Havoc
Incinerate advances the accumulator on every impact rather than once when the cast completes.
Without Fire and Brimstone:
Uniform(0, 0.50).Uniform(0, 0.50).With Fire and Brimstone selected,
Tis the total number of unique Incinerate impacts produced by the cast, including the main target, FnB targets, and Havoc. Every impact produced by that cast uses:The target count and overlap behavior have been tested with different Fire and Brimstone and Havoc configurations:
T.Uniform(0, 0.50 × T^(-2/3))) for both hits if the FnB talent is selected, or regularUniform(0, 0.50)rolls for both hits if that talent is not selected.In SimC,
incinerate_tandincinerate_fnb_tare two distinct actions, so a custom action state has been created for these spells to store the total number of unique Incinerate impacts produced by that cast. This ensures that every impact from the same cast uses the sameT, including the main, Havoc, and FnB impacts.Infernal Bolt
Infernal Bolt uses the same shared accumulator, also advancing it on impact, but behaves differently from Incinerate:
0.25value to the accumulator.0.25value to the accumulator.DoT tick hit-result handling
Several Warlock effects triggered by periodic damage have also been tested in-game to determine how they behave when a tick result is unsuccessful (tested making the enemy immune using Banish). Most of these effects only occur when the current tick is a successful hit.
Therefore, the following behavior has been adjusted: