diff --git a/engine/player/unique_gear_midnight.cpp b/engine/player/unique_gear_midnight.cpp index c742a6f870f..8256dcdb712 100644 --- a/engine/player/unique_gear_midnight.cpp +++ b/engine/player/unique_gear_midnight.cpp @@ -3134,7 +3134,54 @@ void vile_vial_of_volatile_venom( special_effect_t& effect ) effect.disable_buff(); effect.has_use_buff_override = true; effect.execute_action = create_proc_action( "empowering_venom", effect ); +} + +// Fang of Umbral Malignance +// 1295219 Driver +// 1305853 Umbral Malignance DoT +// 1305854 Bursting Malignance AoE +void fang_of_umbral_malignance( special_effect_t& effect ) +{ + auto burst = create_proc_action( "bursting_malignance", effect, 1305854 ); + burst->base_multiplier *= role_mult( effect ); + struct fang_cb_t : public dbc_proc_callback_t + { + action_t* dot; + + fang_cb_t( const special_effect_t& e, action_t* burst_action ) : dbc_proc_callback_t( e.player, e ) + { + dot = create_proc_action( "umbral_malignance", e, 1305853 ); + dot->dot_max_stack = dot->data().max_stacks(); + dot->base_td = e.driver()->effectN( 1 ).average( e ); + dot->base_td_multiplier *= role_mult( e ); + dot->add_child( burst_action ); + } + + void execute( const spell_data_t*, player_t* t, action_state_t* ) override + { + dot->execute_on_target( t ); + } + }; + + auto cb = new fang_cb_t( effect, burst ); + auto burst_pct = effect.driver()->effectN( 2 ).percent(); + + effect.player->register_on_kill_callback( [ cb, burst, burst_pct ]( player_t* t ) { + if ( t->sim->event_mgr.canceled ) + return; + + if ( auto d = cb->dot->find_dot( t ); d && d->is_ticking() ) + { + burst->base_dd_min = burst->base_dd_max = d->tick_damage_over_remaining_time() * burst_pct; + burst->execute(); + + for ( auto new_target : cb->dot->target_list() ) + { + cb->dot->execute_on_target( new_target ); + } + } + } ); } // Gebbo's Bottomless Bag @@ -4320,6 +4367,7 @@ void register_special_effects() register_special_effect( 1297908, trinkets::font_of_venomous_rage ); register_special_effect( 1297911, DISABLED_EFFECT ); // Font of Venomous Rage equip driver register_special_effect( 1292291, trinkets::gebbos_bottomless_bag ); + register_special_effect( 1295219, trinkets::fang_of_umbral_malignance ); reset_version_check(); // Weapons register_special_effect( { 1253357, 1253359 }, weapons::torments_duality ); // umbral sabre & radiant foil