Skip to content
Merged
Show file tree
Hide file tree
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
1 change: 1 addition & 0 deletions engine/class_modules/apl/apl_death_knight.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ void blood( player_t* p )
high_prio_actions->add_action( "raise_dead,use_off_gcd=1" );
high_prio_actions->add_action( "death_strike,if=buff.coagulopathy.up&buff.coagulopathy.remains<=gcd" );
high_prio_actions->add_action( "dancing_rune_weapon" );
high_prio_actions->add_action( "abomination_limb" );

deathbringer->add_action( "death_strike,if=(runic_power.deficit<20|(runic_power.deficit<26&buff.dancing_rune_weapon.up))" );
deathbringer->add_action( "reapers_mark" );
Expand Down
38 changes: 35 additions & 3 deletions engine/class_modules/sc_death_knight.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -685,6 +685,7 @@ struct death_knight_td_t : public actor_target_data_t
propagate_const<buff_t*> brittle;

// Blood
propagate_const<buff_t*> abomination_limb;
propagate_const<buff_t*> tightening_grasp;

// Frost
Expand Down Expand Up @@ -1458,6 +1459,7 @@ struct death_knight_t : public parse_player_effects_t
const spell_data_t* virulent_plague;

// Blood
const spell_data_t* abomination_limb_debuff;
const spell_data_t* blood_shield;
const spell_data_t* bloodied_blade_stacks_buff;
const spell_data_t* bloodied_blade_final_buff;
Expand Down Expand Up @@ -8374,8 +8376,34 @@ struct reapers_mark_t final : public death_knight_spell_t
// Death Knight Abilities
// ==========================================================================

// Dark Transformation ======================================================
// Abomination Limb =========================================================
struct abomination_limb_t : public death_knight_spell_t
{
abomination_limb_t( death_knight_t* p, std::string_view options_str = "" )
: death_knight_spell_t( "abomination_limb", p, p->talent.blood.abomination_limb )
{
harmful = false;
parse_options( options_str );
}

void tick( dot_t* dot ) override
{
death_knight_spell_t::tick( dot );

for ( auto& target : p()->sim->target_non_sleeping_list )
{
auto td = get_td( target );
if ( !td->debuff.abomination_limb->check() )
{
td->debuff.tightening_grasp->trigger();
td->debuff.abomination_limb->trigger();
return;
}
}
}
};

// Dark Transformation ======================================================
struct dark_transformation_t : public death_knight_spell_t
{
dark_transformation_t( std::string_view n, death_knight_t* p, std::string_view options_str = "" )
Expand Down Expand Up @@ -13946,6 +13974,8 @@ action_t* death_knight_t::create_action( std::string_view name, std::string_view
return new raise_dead_t( this, options_str );

// Blood Actions
if ( name == "abomination_limb" )
return new abomination_limb_t( this, options_str );
if ( name == "blood_boil" )
return new blood_boil_t( this, options_str );
if ( name == "consumption" )
Expand Down Expand Up @@ -14849,9 +14879,10 @@ void death_knight_t::spell_lookups()
spell.virulent_plague = conditional_spell_lookup( talent.unholy.outbreak.ok(), 191587 );

// Blood
spell.abomination_limb_debuff = conditional_spell_lookup( talent.blood.abomination_limb.ok(), 1263566 );
spell.blood_shield = conditional_spell_lookup( mastery.blood_shield->ok(), 77535 );
spell.bloodied_blade_stacks_buff = conditional_spell_lookup( talent.blood.bloodied_blade->ok(), 460499 );
spell.bloodied_blade_final_buff = conditional_spell_lookup( talent.blood.bloodied_blade->ok(), 460500 );
spell.bloodied_blade_stacks_buff = conditional_spell_lookup( talent.blood.bloodied_blade.ok(), 460499 );
spell.bloodied_blade_final_buff = conditional_spell_lookup( talent.blood.bloodied_blade.ok(), 460500 );
spell.blood_mist_buff = conditional_spell_lookup( talent.blood.blood_mist.ok(), 1263729 );
spell.blood_mist_damage = conditional_spell_lookup( talent.blood.blood_mist.ok(), 1263752 );
spell.blood_mist_rp_gain = conditional_spell_lookup( talent.blood.blood_mist.ok(), 1263774 );
Expand Down Expand Up @@ -15309,6 +15340,7 @@ inline death_knight_td_t::death_knight_td_t( player_t& target, death_knight_t& p
->set_default_value_from_effect( 1 );

// Blood
debuff.abomination_limb = make_debuff( p.talent.blood.abomination_limb.ok(), *this, "abomination_limb", p.spell.abomination_limb_debuff );
debuff.tightening_grasp = make_debuff( p.talent.blood.gorefiends_grasp.ok(), *this, "tightening_grasp", p.spell.tightening_grasp_debuff );

// Frost
Expand Down
Loading