Skip to content

[Warlock] Model Demonfire Infusion RNG and refine DoT tick hit-result handling - #11644

Open
millanzarreta wants to merge 1 commit into
simulationcraft:midnightfrom
millanzarreta:wl-model-di-rng-dot-tick-hit
Open

[Warlock] Model Demonfire Infusion RNG and refine DoT tick hit-result handling#11644
millanzarreta wants to merge 1 commit into
simulationcraft:midnightfrom
millanzarreta:wl-model-di-rng-dot-tick-hit

Conversation

@millanzarreta

@millanzarreta millanzarreta commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

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 a 25% chance to trigger from Incinerate:

Periodic damage from Immolate has a 4% chance to fire a Demonfire bolt at 100% increased effectiveness.
Incinerate has a 25% chance to fire a Demonfire bolt at 100% increased effectiveness.

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:

Source Accumulator contribution per successful event
Immolate periodic tick +Uniform(0, 0.08)
Wither periodic tick +Uniform(0, 0.08)
Incinerate impact without FnB +Uniform(0, 0.50)
Incinerate impact with FnB +Uniform(0, 0.50 × T^(-2/3))
Infernal Bolt impact Fixed +0.25

For 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:

  • The main Incinerate impact contributes Uniform(0, 0.50).
  • A Havoc impact contributes another independent Uniform(0, 0.50).
  • Each impact can independently cross the threshold and trigger Demonfire Infusion on its impacted target.

With Fire and Brimstone selected, T is 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:

Uniform(0, 0.50 × T^(-2/3))

The target count and overlap behavior have been tested with different Fire and Brimstone and Havoc configurations:

  • The primary target is counted once.
  • A separate Havoc target is included in T.
  • FnB excludes the primary target and the Havoc target from its secondary target list.
  • If FnB and Havoc resolve to the same secondary target, that target produces only one secondary impact and is counted once.
  • If FnB and Havoc hit separate targets, both impacts are included.
  • Selecting the Fire and Brimstone talent enables this scaling even when no additional FnB impact is produced. That is, hitting 2 targets (a main target and a secondary Havoc target far enough away that FnB does not affect it) uses FnB's scaling rules (Uniform(0, 0.50 × T^(-2/3))) for both hits if the FnB talent is selected, or regular Uniform(0, 0.50) rolls for both hits if that talent is not selected.

In SimC, incinerate_t and incinerate_fnb_t are 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 same T, 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:

  • Every successful Infernal Bolt impact adds a fixed 0.25 value to the accumulator.
  • Thus, a Havoc impact behaves the same, adding a fixed 0.25 value to the accumulator.
  • Fire and Brimstone does not affect Infernal Bolt.

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:

  • Reverse Entropy can only trigger from successful Destruction periodic ticks.
  • Affliction Wither hidden aura callbacks related to Siphon Life and Seeds of Their Demise only occur on successful ticks.
  • Destruction Wither shard generation, crit shard generation, Flashpoint, hidden aura callbacks, and Demonfire Infusion only occur on successful ticks.
  • Agony energize attempts and stack increments only occur on successful ticks.
  • Immolate shard generation, crit shard generation, Flashpoint, hidden aura callbacks, and Demonfire Infusion only occur on successful ticks.
  • Incinerate and Infernal Bolt impacts can only trigger the Demonfire Infusion rng proc on successful hits.

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.

1 participant