diff --git a/engine/player/unique_gear_midnight.cpp b/engine/player/unique_gear_midnight.cpp index c742a6f870f..9390504afc4 100644 --- a/engine/player/unique_gear_midnight.cpp +++ b/engine/player/unique_gear_midnight.cpp @@ -3276,6 +3276,40 @@ void font_of_venomous_rage( special_effect_t& effect ) effect.execute_action = create_proc_action( "font_of_venemous_rage", effect ); } + +// Vashnik's Sanguine Rancor +// 1295553 Driver +// 1303479 Sanguine Rancor (stack buff) +// 1303483 Crimson Bile (aoe dmg) +// 1303484 Concentrated Bile (st dot) +void vashniks_sanguine_rancor( special_effect_t& effect ) +{ + auto damage = effect.driver()->effectN( 1 ).average( effect ); + + auto concentrated_bile = create_proc_action( "concentrated_bile", effect, 1303484 ); + concentrated_bile->base_td = damage * effect.driver()->effectN( 2 ).percent() + * concentrated_bile->base_tick_time / concentrated_bile->dot_duration; + concentrated_bile->base_td_multiplier *= role_mult( effect ); + + auto crimson_bile = create_proc_action( "crimson_bile", effect, 1303483 ); + crimson_bile->base_dd_min = crimson_bile->base_dd_max = damage; + crimson_bile->base_multiplier *= role_mult( effect ); + crimson_bile->add_child( concentrated_bile ); + + effect.custom_buff = create_buff( effect.player, effect.player->find_spell( 1303479 ) ) + ->set_expire_at_max_stack( true ) + ->set_expire_callback( [ crimson_bile, concentrated_bile ]( buff_t* b, int stacks, timespan_t ) { + // only erupt when the buff was consumed at max stacks, not when expired during combat end + if ( stacks < b->max_stack() ) + return; + auto n_targets = crimson_bile->target_list().size(); + crimson_bile->execute_on_target( b->player->target ); + if ( n_targets == 1 ) + concentrated_bile->execute_on_target( b->player->target ); + } ); + + new dbc_proc_callback_t( effect.player, effect ); +} } // namespace trinkets namespace weapons @@ -4320,6 +4354,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( 1295553, trinkets::vashniks_sanguine_rancor ); reset_version_check(); // Weapons register_special_effect( { 1253357, 1253359 }, weapons::torments_duality ); // umbral sabre & radiant foil