From bee81ac72af6ab5efc215ec323b67f898db84c12 Mon Sep 17 00:00:00 2001 From: Jeremy <101205288+JeremyMonk@users.noreply.github.com> Date: Fri, 9 Aug 2024 14:08:19 -0500 Subject: [PATCH] [Monk] Additional Fixes to Tiger's Ferocity (#9207) * Modify Tiger's Ferocity - Remove player target from target list - Modify damage during SEF * add comment * I'm smart --- engine/class_modules/monk/sc_monk.cpp | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/engine/class_modules/monk/sc_monk.cpp b/engine/class_modules/monk/sc_monk.cpp index 71e60019301..cb82ce3753e 100644 --- a/engine/class_modules/monk/sc_monk.cpp +++ b/engine/class_modules/monk/sc_monk.cpp @@ -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 &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 &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 =================================================== @@ -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();