@@ -3678,7 +3678,7 @@ struct rjw_tick_action_t : public monk_melee_attack_t
3678
3678
rjw_tick_action_t ( const std::string& name, monk_t * p, const spell_data_t * data )
3679
3679
: monk_melee_attack_t ( name, p, data )
3680
3680
{
3681
- ww_mastery = true ;
3681
+ ww_mastery = true ;
3682
3682
3683
3683
dual = background = true ;
3684
3684
aoe = -1 ;
@@ -5355,11 +5355,15 @@ struct stagger_self_damage_t : public residual_action::residual_periodic_action_
5355
5355
5356
5356
if ( d->is_ticking () )
5357
5357
{
5358
- damage_remaining += d->state ->result_amount ; // Assumes base_td == damage, no modifiers or crits
5358
+ auto dot_state = debug_cast<residual_action::residual_periodic_state_t *>( d->state );
5359
+ damage_remaining += dot_state -> tick_amount; // Assumes base_td == damage, no modifiers or crits
5359
5360
damage_remaining *= percent_amount;
5360
- d-> state -> result_amount -= damage_remaining;
5361
+ dot_state -> tick_amount -= damage_remaining;
5361
5362
}
5362
5363
5364
+ sim->print_debug ( " {} partially clears stagger by {:.2f}% ({} / tick)." , player->name (), percent_amount * 100.0 ,
5365
+ damage_remaining );
5366
+
5363
5367
p ()->stagger_damage_changed ();
5364
5368
5365
5369
return damage_remaining;
@@ -5545,6 +5549,9 @@ struct purifying_brew_t : public monk_spell_t
5545
5549
{
5546
5550
p ()->buff .fit_to_burst ->trigger ( p ()->buff .fit_to_burst ->max_stack () );
5547
5551
}
5552
+
5553
+ // Reduce stagger damage
5554
+ p ()->active_actions .stagger_self_damage ->clear_partial_damage ( data ().effectN ( 1 ).percent () );
5548
5555
}
5549
5556
};
5550
5557
@@ -9616,12 +9623,13 @@ double monk_t::stagger_pct( int target_level )
9616
9623
{
9617
9624
double stagger_base = stagger_base_value ();
9618
9625
9619
- double k_value = 0 ;
9620
- double lvl = level ();
9626
+ double k_value = 0 ;
9627
+ double lvl = level ();
9621
9628
double level_check = target_level - lvl;
9622
9629
9623
9630
// End game raiding of each expansion uses the player's level for +1, +2, and +3 level targets
9624
- if ( ( lvl == 60 || lvl == 70 || lvl == 80 || lvl == 85 || lvl == 90 || lvl == 100 || lvl == 110 ) && 0 <= level_check && level_check <= 3 )
9631
+ if ( ( lvl == 60 || lvl == 70 || lvl == 80 || lvl == 85 || lvl == 90 || lvl == 100 || lvl == 110 ) &&
9632
+ 0 <= level_check && level_check <= 3 )
9625
9633
k_value = dbc.npc_armor_mitigation_constant ( lvl );
9626
9634
else
9627
9635
k_value = dbc.npc_armor_mitigation_constant ( target_level );
0 commit comments