Skip to content

Commit

Permalink
[Warrior] Fix revenge buff - #3434
Browse files Browse the repository at this point in the history
  • Loading branch information
Collisionc committed Jan 22, 2017
1 parent 503d6b6 commit 1bad7f3
Showing 1 changed file with 17 additions and 13 deletions.
30 changes: 17 additions & 13 deletions engine/class_modules/sc_warrior.cpp
Expand Up @@ -522,9 +522,10 @@ struct warrior_t: public player_t
stat_e convert_hybrid_stat( stat_e s ) const override;
void assess_damage_imminent_pre_absorb( school_e, dmg_e, action_state_t* s ) override;
void assess_damage_imminent( school_e, dmg_e, action_state_t* s ) override;
void assess_damage( school_e, dmg_e, action_state_t* ) override;
void target_mitigation( school_e, dmg_e, action_state_t* ) override;
void copy_from( player_t* source ) override;
void merge( player_t& other ) override;
void copy_from( player_t* ) override;
void merge( player_t& ) override;

void datacollection_begin() override;
void datacollection_end() override;
Expand Down Expand Up @@ -3268,8 +3269,6 @@ struct shield_slam_t: public warrior_attack_t
{
parse_options( options_str );
energize_type = ENERGIZE_NONE;
if ( p -> specialization() == WARRIOR_PROTECTION )
base_multiplier *= 0.95;
}

double action_multiplier() const override
Expand Down Expand Up @@ -6245,6 +6244,20 @@ void warrior_t::assess_damage_imminent( school_e school, dmg_e dmg, action_state
}
}

void warrior_t::assess_damage( school_e school, dmg_e type, action_state_t* s )
{
player_t::assess_damage( school, type, s );

if ( s -> result == RESULT_DODGE || s -> result == RESULT_PARRY )
{
if ( cooldown.revenge_reset->up() )
{
buff.revenge->trigger();
cooldown.revenge_reset->start();
}
}
}

// warrior_t::target_mitigation ============================================

void warrior_t::target_mitigation( school_e school,
Expand Down Expand Up @@ -6300,15 +6313,6 @@ void warrior_t::target_mitigation( school_e school,
}
}

if ( ( s -> result == RESULT_DODGE || s -> result == RESULT_PARRY ) && !s -> action -> is_aoe() ) // AoE attacks do not reset revenge.
{
if ( cooldown.revenge_reset -> up() )
{
buff.revenge -> trigger();
cooldown.revenge_reset -> start();
}
}

if ( action_t::result_is_block( s -> block_result ) )
{
buff.dragon_scales -> trigger();
Expand Down

0 comments on commit 1bad7f3

Please sign in to comment.