Skip to content

Commit

Permalink
[monk] Remove stats objects shenanigans, as they only caused more con…
Browse files Browse the repository at this point in the history
…fusion. Defer background action init until after buffs are initialized. Defer RJW tick action init. (#9566)
  • Loading branch information
renanthera committed Sep 24, 2024
1 parent 2ba1d4c commit 8df3231
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 8 deletions.
29 changes: 21 additions & 8 deletions engine/class_modules/monk/sc_monk.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1535,8 +1535,7 @@ struct rising_sun_kick_t : public monk_melee_attack_t

attack_power_mod.direct = 0;

execute_action = new press_the_advantage_t<rising_sun_kick_dmg_t>( p, options_str );
execute_action->stats = stats;
execute_action = new press_the_advantage_t<rising_sun_kick_dmg_t>( p, options_str );

if ( p->talent.windwalker.glory_of_the_dawn->ok() )
{
Expand Down Expand Up @@ -5019,8 +5018,7 @@ struct chi_wave_t : public monk_spell_t

damage->sef_ability = sef_ability_e::SEF_CHI_WAVE;

stats = damage->stats;

add_child( damage );
add_child( heal );
}

Expand Down Expand Up @@ -5617,13 +5615,21 @@ struct rushing_jade_wind_buff_t : public monk_buff_t
action_t *rushing_jade_wind_tick;

rushing_jade_wind_buff_t( monk_t *player )
: monk_buff_t( player, "rushing_jade_wind", player->passives.rushing_jade_wind ),
rushing_jade_wind_tick( new tick_action_t( player ) )
: monk_buff_t( player, "rushing_jade_wind", player->passives.rushing_jade_wind ), rushing_jade_wind_tick( nullptr )
{
set_tick_time_behavior( buff_tick_time_behavior::CUSTOM );
set_tick_time_callback( [ this ]( const buff_t *, unsigned int ) { return _period; } );

set_tick_callback( [ this ]( buff_t *, int, timespan_t ) { rushing_jade_wind_tick->execute(); } );
set_tick_callback( [ this ]( buff_t *, int, timespan_t ) {
if ( rushing_jade_wind_tick )
rushing_jade_wind_tick->execute();

if ( action_t *rjw = p().find_action( "rushing_jade_wind_tick" ); rjw )
{
rushing_jade_wind_tick = rjw;
rjw->execute();
}
} );
set_tick_behavior( buff_tick_behavior::REFRESH );
set_refresh_behavior( buff_refresh_behavior::PANDEMIC );

Expand Down Expand Up @@ -7300,8 +7306,15 @@ void monk_t::init_spells()

shared.teachings_of_the_monastery =
_priority( talent.windwalker.teachings_of_the_monastery, talent.mistweaver.teachings_of_the_monastery );
}

void monk_t::init_background_actions()
{
base_t::init_background_actions();

// Active Action Spells
// we just look it up via `find_action` anyway, so it doesn't need to explicitly
// be set anywhere (for now)
new buffs::rushing_jade_wind_buff_t::tick_action_t( this );

// General
active_actions.chi_wave = new actions::chi_wave_t( this );
Expand Down
1 change: 1 addition & 0 deletions engine/class_modules/monk/sc_monk.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1371,6 +1371,7 @@ struct monk_t : public stagger_t<parse_player_effects_t, monk_t>
double composite_player_target_armor( player_t *target ) const override;
void create_pets() override;
void init_spells() override;
void init_background_actions() override;
void init_base_stats() override;
void init_scaling() override;
void create_buffs() override;
Expand Down

0 comments on commit 8df3231

Please sign in to comment.