Skip to content

Commit bdbddd4

Browse files
[Paladin] Move MID1 Set to Impact and Spelldata
1 parent 6b50970 commit bdbddd4

1 file changed

Lines changed: 41 additions & 27 deletions

File tree

engine/class_modules/paladin/sc_paladin_retribution.cpp

Lines changed: 41 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,15 @@ struct divine_storm_second_sunrise_tempest_t : public holy_power_consumer_t<pala
415415
triggers_crusade_stacks = false;
416416
triggers_righteous_cause = false;
417417
}
418+
void impact(action_state_t* s) override
419+
{
420+
holy_power_consumer_t::impact( s );
421+
if ( p()->sets->has_set_bonus( PALADIN_RETRIBUTION, MID1, B4 ) && p()->talents.expurgation->ok() )
422+
{
423+
double mult = p()->sets->set( PALADIN_RETRIBUTION, MID1, B4 )->effectN( 2 ).percent() * base_multiplier;
424+
p()->trigger_expurgation( execute_state->target, mult );
425+
}
426+
}
418427
};
419428

420429
struct divine_storm_tempest_t : public holy_power_consumer_t<paladin_melee_attack_t>
@@ -433,6 +442,15 @@ struct divine_storm_tempest_t : public holy_power_consumer_t<paladin_melee_attac
433442
triggers_crusade_stacks = false;
434443
triggers_righteous_cause = false;
435444
}
445+
void impact( action_state_t* s ) override
446+
{
447+
holy_power_consumer_t::impact( s );
448+
if ( p()->sets->has_set_bonus( PALADIN_RETRIBUTION, MID1, B4 ) && p()->talents.expurgation->ok() )
449+
{
450+
double mult = p()->sets->set( PALADIN_RETRIBUTION, MID1, B4 )->effectN( 2 ).percent() * base_multiplier;
451+
p()->trigger_expurgation( execute_state->target, mult );
452+
}
453+
}
436454
};
437455

438456
struct divine_storm_second_sunrise_t : public holy_power_consumer_t<paladin_melee_attack_t>
@@ -468,6 +486,15 @@ struct divine_storm_second_sunrise_t : public holy_power_consumer_t<paladin_mele
468486
if ( p()->talents.tempest_of_the_lightbringer->ok() )
469487
tempest->schedule_execute();
470488
}
489+
void impact( action_state_t* s ) override
490+
{
491+
holy_power_consumer_t::impact( s );
492+
if ( p()->sets->has_set_bonus( PALADIN_RETRIBUTION, MID1, B4 ) && p()->talents.expurgation->ok() )
493+
{
494+
double mult = p()->sets->set( PALADIN_RETRIBUTION, MID1, B4 )->effectN( 2 ).percent() * base_multiplier;
495+
p()->trigger_expurgation( execute_state->target, mult );
496+
}
497+
}
471498
};
472499

473500
struct divine_storm_t: public holy_power_consumer_t<paladin_melee_attack_t>
@@ -542,30 +569,15 @@ struct divine_storm_t: public holy_power_consumer_t<paladin_melee_attack_t>
542569
if ( p()->talents.tempest_of_the_lightbringer->ok() )
543570
tempest->schedule_execute();
544571

545-
bool has_echo = false;
546-
547572
if ( sunrise_echo && p()->cooldowns.second_sunrise_icd->up() )
548573
{
549574
if ( rng().roll( p()->talents.herald_of_the_sun.second_sunrise->effectN( 1 ).percent() ) )
550575
{
551576
p()->cooldowns.second_sunrise_icd->start();
552577
// TODO(mserrano): validate the correct delay here
553578
sunrise_echo->start_action_execute_event( 200_ms );
554-
has_echo = true;
555579
}
556580
}
557-
// ToDo Fluttershy: If this ever gets sensible results, move to impact
558-
if ( !background && p()->sets->has_set_bonus( PALADIN_RETRIBUTION, MID1, B4 ) && p()->talents.expurgation->ok() )
559-
{
560-
// ToDo Fluttershy: Rewrite to spell data later
561-
double mult = .5;
562-
if ( has_echo )
563-
mult *= 2;
564-
if ( p()->talents.tempest_of_the_lightbringer->ok() )
565-
mult *= 1.2;
566-
567-
p()->trigger_expurgation( execute_state->target, mult );
568-
}
569581
}
570582

571583
void impact( action_state_t* s ) override
@@ -584,6 +596,11 @@ struct divine_storm_t: public holy_power_consumer_t<paladin_melee_attack_t>
584596
p()->active.sun_sear->execute();
585597
}
586598
}
599+
if ( p()->sets->has_set_bonus( PALADIN_RETRIBUTION, MID1, B4 ) && p()->talents.expurgation->ok() )
600+
{
601+
double mult = p()->sets->set(PALADIN_RETRIBUTION, MID1, B4)->effectN(2).percent() * base_multiplier;
602+
p()->trigger_expurgation( execute_state->target, mult );
603+
}
587604
}
588605
};
589606

@@ -652,18 +669,6 @@ struct templars_verdict_t : public holy_power_consumer_t<paladin_melee_attack_t>
652669
p()->resource_gain( RESOURCE_HOLY_POWER, c, p()->gains.hp_templars_verdict_refund );
653670
}
654671

655-
656-
if ( !background && p()->sets->has_set_bonus( PALADIN_RETRIBUTION, MID1, B4 ) && p()->talents.expurgation->ok() )
657-
{
658-
// ToDo Fluttershy: Rewrite to spell data later
659-
double mult = 1.0;
660-
if ( p()->buffs.empyrean_legacy->up() )
661-
{
662-
mult = p()->talents.tempest_of_the_lightbringer->ok() ? 1.6875 : 1.625;
663-
}
664-
p()->trigger_expurgation( execute_state->target, mult );
665-
}
666-
667672
if ( p()->buffs.empyrean_legacy->up() )
668673
{
669674
p()->active.empyrean_legacy->schedule_execute();
@@ -683,6 +688,15 @@ struct templars_verdict_t : public holy_power_consumer_t<paladin_melee_attack_t>
683688
}
684689
}
685690
}
691+
void impact(action_state_t* s) override
692+
{
693+
holy_power_consumer_t::impact(s);
694+
if ( p()->sets->has_set_bonus( PALADIN_RETRIBUTION, MID1, B4 ) && p()->talents.expurgation->ok() )
695+
{
696+
double mult = p()->sets->set( PALADIN_RETRIBUTION, MID1, B4 )->effectN( 1 ).percent() * base_multiplier;
697+
p()->trigger_expurgation( execute_state->target, mult );
698+
}
699+
}
686700
};
687701

688702
// Wake of Ashes (Retribution) ================================================

0 commit comments

Comments
 (0)