diff --git a/engine/class_modules/sc_evoker.cpp b/engine/class_modules/sc_evoker.cpp index 271945b3265..463056e4209 100644 --- a/engine/class_modules/sc_evoker.cpp +++ b/engine/class_modules/sc_evoker.cpp @@ -485,6 +485,11 @@ struct simplified_player_t : public player_t return debug_cast( player ); } + simplified_player_t* p() const + { + return debug_cast( player ); + } + action_t* damage_proc; double haste_modifier; @@ -499,6 +504,26 @@ struct simplified_player_t : public player_t set_action_stats( settings, p ); } + double composite_da_multiplier( const action_state_t* s ) const override + { + double m = spell_t::composite_da_multiplier( s ); + + m *= 1.0 + p()->cache.mastery_value(); + + for ( auto* b : p()->damage_buffs ) + { + if ( b->check() ) + { + m *= 1.0 + b->check_stack_value(); + } + } + + if ( haste_modifier > 0 ) + m *= 1.0 - haste_modifier + haste_modifier / p()->cache.spell_cast_speed(); + + return m; + } + void set_action_stats( bob_settings_t settings, simplified_player_t* p ) { double scaling_factor = pow( 1 + settings.scaling_factor, ( p->option.item_level - 489 ) ); @@ -637,26 +662,6 @@ struct simplified_player_t : public player_t snapshot_stats = new snapshot_stats_t( this, "" ); } - double composite_player_multiplier( school_e school ) const override - { - double m = player_t::composite_player_multiplier( school ); - - m *= 1.0 + cache.mastery_value(); - - for ( auto* b : damage_buffs ) - { - if ( b->check() ) - { - m *= 1.0 + b->check_stack_value(); - } - } - - if ( haste_modifier > 0 ) - m *= 1.0 - haste_modifier + haste_modifier / cache.spell_cast_speed(); - - return m; - } - void acquire_target( retarget_source event, player_t* context ) override { if ( ability->execute_event && ability->target->is_sleeping() )