diff --git a/engine/class_modules/sc_demon_hunter.cpp b/engine/class_modules/sc_demon_hunter.cpp index 12eba694eb0..c9bec69e0e3 100644 --- a/engine/class_modules/sc_demon_hunter.cpp +++ b/engine/class_modules/sc_demon_hunter.cpp @@ -1415,9 +1415,11 @@ class demon_hunter_t : public parse_player_effects_t int drain_stacks; demon_hunter_t* actor; double meta_drain_multiplier = 1.0; + // Fit against per-tick drain event schedules from logs (matches cumulative drain + // timing through end of meta, not just instantaneous rates); see PR #11549. double initial_drain = 15.0; - double exp_factor = 1.455; - double exp_power = 0.075; + double exp_factor = 1.40; + double exp_power = 0.0775; fury_state_t( demon_hunter_t* a ) : start_time( timespan_t::min() ), next_drain_event( nullptr ), drain_stacks( 0 ), actor( a ) @@ -12226,14 +12228,14 @@ double demon_hunter_t::fury_state_t::fury_drain_per_second( int stacks ) const if ( has_reduced_drain ) { - // Guess - drain *= 0.15; + // Reduced while casting Collapsing Star / channeling Void Ray. Measured ~0.127 from logs. + drain *= 0.127; } if ( drain_stacks < 1 ) { - // Slow after meta cast - drain = 15; + // Slow first second after meta cast. Measured ~10/s from logs. + drain = 10; } return drain;