Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions engine/player/unique_gear_midnight.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3385,6 +3385,41 @@ void font_of_venomous_rage( special_effect_t& effect )
effect.execute_action = create_proc_action<font_channel_t>( "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<generic_proc_t>( "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<generic_aoe_proc_t>( "crimson_bile", effect, 1303483 );

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since this effect splits damage and scales the 15% per target hit, should have the bool set for that after the spell id.

auto crimson_bile = create_proc_action<generic_aoe_proc_t>( "crimson_bile", effect, 1303483, true );

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i believe whenever the bool is not set, it is taken from the base as true? its using the generic 30% per target up to 150%

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<buff_t>( 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;
crimson_bile->set_target( b->player->target );
auto n_targets = crimson_bile->target_list().size();

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should use available_targets() instead, passing in the crimson bile target list as an arg so if distance targeting is enabled, it will know how many targets were actually in range.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

using
crimson_bile->set_target( b->player->target );
this will force a refresh of the target cache, which will then make the target_list call check if distance_targeting is enabled

am i correct?

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 );
}

// Stormbound Emblem of Dazar
// 1295275 on-use driver (The King's Unyielding Wind), 2 sec channel ticking every 0.5 sec
// 1294744 equip
Expand Down Expand Up @@ -4546,6 +4581,7 @@ void register_special_effects()
register_special_effect( 1297760, DISABLED_EFFECT ); // Voracious Heart of Ula'tek equip driver
register_special_effect( 1295275, trinkets::stormbound_emblem_of_dazar );
register_special_effect( 1294744, DISABLED_EFFECT ); // Stormbound Emblem of Dazar equip driver
register_special_effect( 1295553, trinkets::vashniks_sanguine_rancor );
reset_version_check();
// Weapons
register_special_effect( { 1253357, 1253359 }, weapons::torments_duality ); // umbral sabre & radiant foil
Expand Down
Loading