[Warlock] Move crit-based bonus damage to composite_da_multiplier#11438
Merged
nyterage merged 1 commit intosimulationcraft:midnightfrom May 5, 2026
Merged
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.
The Warlock has several spells that gain a bonus damage based on the player’s base critical strike chance. In SimC, this damage was being applied in
calculate_direct_amountinstead ofcomposite_da_multiplier, which was not conceptually correct. The necessary changes have been made to move this crit-based bonus damage to the appropriate place.For spells without travel time, the final result is the same in both cases. However, applying the damage modifier in
composite_da_multiplieris more correct, and also allows the damage modifier to be properly shown in debug logs.For spells with travel time,
composite_da_multiplieris applied duringexecute(), whilecalculate_direct_amountis applied onimpact(), which is conceptually different. In-game, this damage bonus is calculated onexecute(): this was tested using a trinket that grants a large critical strike chance bonus afterexecute()but beforeimpact(), and the impact damage was not affected by the trinket. This reinforces that, like most spell damage modifiers, this crit-based damage bonus is snapshotted at execute() rather than on impact.