Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 35 additions & 5 deletions engine/class_modules/monk/sc_monk.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -946,6 +946,8 @@ struct rising_sun_kick_t : monk_melee_attack_t
.set_value( effect.percent() )
.set_note( "Applies when buffed by Mastery" )
.set_eff( &effect );

parse_effects( player->buff.mid2_ww_4pc, CONSUME_BUFF );
}

void impact( action_state_t *state ) override
Expand Down Expand Up @@ -1559,6 +1561,16 @@ struct spinning_crane_kick_t : public monk_melee_attack_t
.add_parse_callback( this, PARSE_CALLBACK_POST_EXECUTE, [ & ]( action_state_t * ) {
p()->buff.balanced_stratagem_physical->consume( this );
} );

if ( const auto &effect = player->sets->set( MONK_WINDWALKER, MID2, B4 )->effectN( 1 ).trigger()->effectN( 2 );
effect.ok() )
add_parse_entry( persistent_multiplier_effects )
.set_buff( player->buff.mid2_ww_4pc )
.set_value( effect.percent() )
.set_use_stacks( true )
.set_eff( &effect )
.add_parse_callback( this, PARSE_CALLBACK_POST_EXECUTE,
[ & ]( action_state_t * ) { p()->buff.mid2_ww_4pc->consume( this ); } );
}

result_amount_type report_amount_type( const action_state_t * ) const override
Expand Down Expand Up @@ -1721,9 +1733,8 @@ struct fists_of_fury_t : monk_melee_attack_t
{
struct tick_t : monk_melee_attack_t
{
tick_t( monk_t *player )
: monk_melee_attack_t( player, "fists_of_fury_damage",
player->talent.windwalker.fists_of_fury->effectN( 3 ).trigger() )
tick_t( monk_t *player, std::string_view name = "fists_of_fury_damage" )
: monk_melee_attack_t( player, name, player->talent.windwalker.fists_of_fury->effectN( 3 ).trigger() )
{
background = dual = true;
aoe = -1;
Expand Down Expand Up @@ -1760,6 +1771,7 @@ struct fists_of_fury_t : monk_melee_attack_t
monk_melee_attack_t::impact( state );

p()->buff.momentum_boost_damage->trigger();
p()->buff.mid2_ww_4pc->trigger();
}
};

Expand Down Expand Up @@ -1805,9 +1817,12 @@ struct fists_of_fury_t : monk_melee_attack_t
};

action_t *jadefire_stomp;
action_t *mid2_ww_tier;

fists_of_fury_t( monk_t *player, std::string_view options_str )
: monk_melee_attack_t( player, "fists_of_fury", player->talent.windwalker.fists_of_fury ), jadefire_stomp( nullptr )
: monk_melee_attack_t( player, "fists_of_fury", player->talent.windwalker.fists_of_fury ),
jadefire_stomp( nullptr ),
mid2_ww_tier( nullptr )
{
parse_options( options_str );

Expand All @@ -1826,6 +1841,13 @@ struct fists_of_fury_t : monk_melee_attack_t
jadefire_stomp = new jadefire_stomp_t( player );
add_child( jadefire_stomp );
}

if ( player->sets->has_set_bonus( MONK_WINDWALKER, MID2, B2 ) )
{
mid2_ww_tier = new tick_t( player, "fists_of_fury_damage_mid2_2pc" );
mid2_ww_tier->base_multiplier *= player->sets->set( MONK_WINDWALKER, MID2, B2 )->effectN( 1 ).percent();
add_child( mid2_ww_tier );
}
}

bool usable_moving() const override
Expand All @@ -1837,6 +1859,9 @@ struct fists_of_fury_t : monk_melee_attack_t
{
monk_melee_attack_t::execute();

if ( mid2_ww_tier )
mid2_ww_tier->execute_on_target( target );

p()->action.flurry_strikes->execute( flurry_strikes_t::FLURRY_STRIKES );
p()->buff.whirling_dragon_punch->trigger();
}
Expand Down Expand Up @@ -6000,6 +6025,8 @@ void monk_t::init_spells()
tier.mid1.brm_2pc = sets->set( MONK_BREWMASTER, MID1, B2 );
tier.mid1.brm_4pc = sets->set( MONK_BREWMASTER, MID1, B4 );
tier.mid1.brm_4pc_extra_kick = find_spell( 1272464 );

tier.mid2.ww_4pc_buff = sets->set( MONK_WINDWALKER, MID2, B4 )->effectN( 1 ).trigger();
}

// Register passives
Expand Down Expand Up @@ -6449,6 +6476,9 @@ void monk_t::create_buffs()
talent.windwalker.tigereye_brew_3_buff )
->set_cooldown( talent.windwalker.tigereye_brew_3->internal_cooldown() );

buff.mid2_ww_4pc = make_buff_fallback( sets->has_set_bonus( MONK_WINDWALKER, MID2, B4 ), this, "unbroken_rhythm",
tier.mid2.ww_4pc_buff );

// Conduit of the Celestials
buff.celestial_conduit =
make_buff_fallback( talent.conduit_of_the_celestials.celestial_conduit->ok(), this, "celestial_conduit",
Expand Down Expand Up @@ -7450,7 +7480,7 @@ struct monk_module_t : public module_t
return true;
}

void register_actor_initializers( sim_t* ) const override
void register_actor_initializers( sim_t * ) const override
{
}

Expand Down
4 changes: 4 additions & 0 deletions engine/class_modules/monk/sc_monk.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -588,6 +588,9 @@ struct monk_t : public stagger_t<parse_player_effects_t, monk_t>
propagate_const<buff_t *> predictive_training;
propagate_const<buff_t *> stand_ready;
propagate_const<buff_t *> whirling_steel;

// Tier
propagate_const<buff_t *> mid2_ww_4pc;
} buff;

struct
Expand Down Expand Up @@ -1112,6 +1115,7 @@ struct monk_t : public stagger_t<parse_player_effects_t, monk_t>

struct
{
const spell_data_t *ww_4pc_buff;
} mid2;

struct
Expand Down
Loading