diff --git a/engine/player/unique_gear_midnight.cpp b/engine/player/unique_gear_midnight.cpp index 67abca8f54d..60aed219ec5 100644 --- a/engine/player/unique_gear_midnight.cpp +++ b/engine/player/unique_gear_midnight.cpp @@ -3137,7 +3137,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 @@ -4381,6 +4428,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 ); register_special_effect( 1297761, trinkets::voracious_heart_of_ulatek ); register_special_effect( 1297760, DISABLED_EFFECT ); // Voracious Heart of Ula'tek equip driver reset_version_check();