Skip to content

Commit dd15c34

Browse files
committed
[Unholy] Changes for newest PTR build
1 parent 5a3d256 commit dd15c34

File tree

1 file changed

+24
-8
lines changed

1 file changed

+24
-8
lines changed

engine/class_modules/sc_death_knight.cpp

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3287,6 +3287,8 @@ struct army_ghoul_pet_t final : public base_ghoul_pet_t
32873287
: base_ghoul_pet_t( owner, name, true )
32883288
{
32893289
affected_by_commander_of_the_dead = true;
3290+
if( name == "apoc_ghoul" && owner->bugs )
3291+
affected_by_commander_of_the_dead = false;
32903292
decomposition_can_extend = true;
32913293
tww1_4pc_proc = true;
32923294
affected_by_grave_mastery = true;
@@ -4952,7 +4954,8 @@ struct death_knight_action_t : public parse_action_effects_t<Base>
49524954

49534955
struct
49544956
{
4955-
bool mastery_dreadblade_crit_bonus;
4957+
bool mastery_dreadblade_crit_bonus_5;
4958+
bool mastery_dreadblade_crit_bonus_7;
49564959
} affected_by;
49574960

49584961
death_knight_action_t( std::string_view n, death_knight_t* p, const spell_data_t* s = spell_data_t::nil() )
@@ -5019,7 +5022,10 @@ struct death_knight_action_t : public parse_action_effects_t<Base>
50195022
}
50205023
}
50215024

5022-
affected_by.mastery_dreadblade_crit_bonus = p->mastery.dreadblade->ok() && this->data().affected_by( p->mastery.dreadblade->effectN( 5 ) );
5025+
affected_by.mastery_dreadblade_crit_bonus_5 =
5026+
p->mastery.dreadblade->ok() && this->data().affected_by( p->mastery.dreadblade->effectN( 5 ) );
5027+
affected_by.mastery_dreadblade_crit_bonus_7 =
5028+
p->mastery.dreadblade->ok() && this->data().affected_by( p->mastery.dreadblade->effectN( 7 ) );
50235029
}
50245030

50255031
std::string full_name() const
@@ -5073,9 +5079,13 @@ struct death_knight_action_t : public parse_action_effects_t<Base>
50735079
{
50745080
auto cd = action_base_t::composite_crit_damage_bonus_multiplier();
50755081

5076-
if ( p()->mastery.dreadblade->ok() && affected_by.mastery_dreadblade_crit_bonus )
5082+
if ( p()->mastery.dreadblade->ok() && affected_by.mastery_dreadblade_crit_bonus_5 )
50775083
cd *= 1.0 + p()->mastery.dreadblade->effectN( 5 ).percent() +
5078-
( p()->mastery.dreadblade->effectN( 5 ).sp_coeff() * p()->composite_mastery() / 100 );
5084+
( p()->mastery.dreadblade->effectN( 5 ).sp_coeff() * p()->cache.mastery_value() );
5085+
5086+
if ( p()->mastery.dreadblade->ok() && affected_by.mastery_dreadblade_crit_bonus_7 )
5087+
cd *= 1.0 + p()->mastery.dreadblade->effectN( 7 ).percent() +
5088+
( p()->mastery.dreadblade->effectN( 7 ).sp_coeff() * p()->cache.mastery_value() );
50795089

50805090
return cd;
50815091
}
@@ -6964,7 +6974,7 @@ struct reapers_mark_explosion_t final : public death_knight_spell_t
69646974
mod( 0.0 ),
69656975
grim_reaper_max( 0 ),
69666976
grim_reaper_threshold( 0 ),
6967-
exterminate_stacks( p->talent.deathbringer.exterminate->effectN( 3 ).base_value() )
6977+
exterminate_stacks( as<int>( p->talent.deathbringer.exterminate->effectN( 3 ).base_value() ) )
69686978
{
69696979
background = true;
69706980
cooldown->duration = 0_ms;
@@ -7279,7 +7289,7 @@ struct dark_transformation_t : public death_knight_spell_t
72797289
if ( p()->talent.unholy.unholy_pact.ok() )
72807290
p()->buffs.unholy_pact->trigger();
72817291

7282-
if ( p()->talent.unholy.commander_of_the_dead.ok() && !p()->bugs )
7292+
if ( p()->talent.unholy.commander_of_the_dead.ok() )
72837293
p()->buffs.commander_of_the_dead->trigger();
72847294

72857295
if ( p()->talent.unholy.unholy_blight.ok() )
@@ -7431,7 +7441,7 @@ struct army_of_the_dead_t final : public death_knight_summon_spell_t
74317441
harmful = false;
74327442
target = p;
74337443
p->pets.army_ghouls.set_creation_event_callback( pets::parent_pet_action_fn( this ) );
7434-
if ( p->talent.unholy.magus_of_the_dead.ok() && !p->talent.unholy.raise_abomination.ok() )
7444+
if ( p->talent.unholy.magus_of_the_dead.ok() && !p->talent.unholy.raise_abomination.ok() && !p->talent.unholy.legion_of_souls.ok() )
74357445
{
74367446
p->pets.army_magus.set_creation_event_callback( pets::parent_pet_action_fn( this ) );
74377447
}
@@ -11451,6 +11461,11 @@ struct legion_of_souls_t : public death_knight_spell_t
1145111461
{
1145211462
rider_duration = p->spell.apocalypse_now_data->duration();
1145311463
}
11464+
11465+
if ( p->talent.unholy.magus_of_the_dead.ok() )
11466+
{
11467+
p->pets.army_magus.set_creation_event_callback( pets::parent_pet_action_fn( this ) );
11468+
}
1145411469
}
1145511470

1145611471
void execute() override
@@ -11469,6 +11484,7 @@ struct legion_of_souls_t : public death_knight_spell_t
1146911484
}
1147011485

1147111486
p()->buffs.death_and_decay->trigger();
11487+
p()->pets.army_magus.spawn();
1147211488
}
1147311489

1147411490
void last_tick( dot_t* d ) override
@@ -16179,7 +16195,7 @@ void death_knight_action_t<Base>::apply_action_effects()
1617916195
parse_effects( p()->buffs.plaguebringer, p()->talent.unholy.plaguebringer );
1618016196
parse_effects( p()->buffs.commander_of_the_dead, p()->talent.unholy.commander_of_the_dead );
1618116197
// Dont parse effect 5 and 6 due to the way this effect works. Manually handled where necessaray.
16182-
parse_effects( p()->mastery.dreadblade, effect_mask_t( true ).disable( 5, 6 ) );
16198+
parse_effects( p()->mastery.dreadblade, effect_mask_t( true ).disable( 5, 6, 7 ) );
1618316199
parse_effects( p()->buffs.winning_streak_unholy, [ & ]( double v ) {
1618416200
v *= 0.1; // Divides by 10 in spell data
1618516201
if ( p()->buffs.dark_transformation->check() )

0 commit comments

Comments
 (0)