Skip to content

Commit

Permalink
[Monk] Additional Fixes to Tiger's Ferocity (simulationcraft#9207)
Browse files Browse the repository at this point in the history
* Modify Tiger's Ferocity

- Remove player target from target list
- Modify damage during SEF

* add comment

* I'm smart
  • Loading branch information
JeremyMonk authored Aug 9, 2024
1 parent c652c41 commit bee81ac
Showing 1 changed file with 25 additions and 2 deletions.
27 changes: 25 additions & 2 deletions engine/class_modules/monk/sc_monk.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1364,12 +1364,23 @@ struct overwhelming_force_t : base_action_t
// Tiger's Ferocity ( Windwalker TWW1 4PC )
struct tigers_ferocity_t : public monk_melee_attack_t
{
tigers_ferocity_t( monk_t *p ) : monk_melee_attack_t( p, "tigers_ferocity", p->tier.tww1.ww_4pc_dmg )
std::vector<player_t *> &t_list;

tigers_ferocity_t( monk_t *p )
: monk_melee_attack_t( p, "tigers_ferocity", p->tier.tww1.ww_4pc_dmg ), t_list( target_cache.list )
{
background = dual = true;
aoe = -1;
reduced_aoe_targets = p->tier.tww1.ww_4pc->effectN( 2 ).base_value();
}

std::vector<player_t *> &target_list() const override
{
// The player's target is not hit by this ability so we need to modify the target list.
t_list = base_t::target_list();
t_list.erase( std::remove( t_list.begin(), t_list.end(), player->target ), t_list.end() );
return t_list;
}
};

// Tiger Palm base ability ===================================================
Expand Down Expand Up @@ -1498,7 +1509,19 @@ struct tiger_palm_t : public monk_melee_attack_t

if ( p()->sets->has_set_bonus( MONK_WINDWALKER, TWW1, B4 ) )
{
double damage = s->result_amount * p()->tier.tww1.ww_4pc->effectN( 1 ).percent();
double damage = s->result_amount;

if ( p()->buff.storm_earth_and_fire->up() )
{
// Damage during SEF is based on the actor's damage before the SEF modifier.
damage /= ( 1 + p()->talent.windwalker.storm_earth_and_fire->effectN( 1 ).percent() );

// Tested 09/08/2024. Tiger's Ferocity deals additional damage during SEF.
damage *= ( 1 + p()->talent.windwalker.storm_earth_and_fire->effectN( 1 ).percent() ) * 3;
}

damage *= p()->tier.tww1.ww_4pc->effectN( 1 ).percent();

tigers_ferocity->base_dd_min = tigers_ferocity->base_dd_max = damage;
tigers_ferocity->set_target( s->target );
tigers_ferocity->execute();
Expand Down

0 comments on commit bee81ac

Please sign in to comment.