Skip to content

Commit 9a5df19

Browse files
authored
Scripts/Spells: Implement priest talent Protector of the Frail (TrinityCore#31451)
1 parent bfb06b7 commit 9a5df19

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_pri_protector_of_the_frail');
2+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
3+
(373036, 'spell_pri_protector_of_the_frail');
4+
5+
DELETE FROM `spell_proc` WHERE `SpellId` IN (373035);
6+
INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES
7+
(373035,0x00,6,0x00000001,0x00000000,0x00000000,0x00000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0,0,0,0); -- Protector of the Frail

src/server/scripts/Spells/spell_priest.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ enum PriestSpells
140140
SPELL_PRIEST_MIND_BOMB_STUN = 226943,
141141
SPELL_PRIEST_MISERY = 238558,
142142
SPELL_PRIEST_ORACULAR_HEAL = 26170,
143+
SPELL_PRIEST_PAIN_SUPPRESSION = 33206,
143144
SPELL_PRIEST_PAIN_TRANSFORMATION = 372991,
144145
SPELL_PRIEST_PAIN_TRANSFORMATION_HEAL = 372994,
145146
SPELL_PRIEST_PENANCE = 47540,
@@ -163,6 +164,7 @@ enum PriestSpells
163164
SPELL_PRIEST_PRAYER_OF_MENDING_HEAL = 33110,
164165
SPELL_PRIEST_PRAYER_OF_MENDING_JUMP = 155793,
165166
SPELL_PRIEST_PROTECTIVE_LIGHT_AURA = 193065,
167+
SPELL_PRIEST_PROTECTOR_OF_THE_FRAIL = 373035,
166168
SPELL_PRIEST_PURGE_THE_WICKED = 204197,
167169
SPELL_PRIEST_PURGE_THE_WICKED_DUMMY = 204215,
168170
SPELL_PRIEST_PURGE_THE_WICKED_PERIODIC = 204213,
@@ -2841,6 +2843,28 @@ class spell_pri_assured_safety : public spell_pri_prayer_of_mending_SpellScriptB
28412843
}
28422844
};
28432845

2846+
// 373036 - Protector of the Frail
2847+
class spell_pri_protector_of_the_frail : public SpellScript
2848+
{
2849+
bool Validate(SpellInfo const* /*spellInfo*/) override
2850+
{
2851+
return ValidateSpellEffect({ { SPELL_PRIEST_PROTECTOR_OF_THE_FRAIL, EFFECT_1 } });
2852+
}
2853+
2854+
void HandleEffectHit(SpellEffIndex /*effIndex*/) const
2855+
{
2856+
Unit* caster = GetCaster();
2857+
2858+
int32 cdReduction = sSpellMgr->AssertSpellInfo(SPELL_PRIEST_PROTECTOR_OF_THE_FRAIL, GetCastDifficulty())->GetEffect(EFFECT_1).CalcValue(caster);
2859+
caster->GetSpellHistory()->ModifyCooldown(SPELL_PRIEST_PAIN_SUPPRESSION, Milliseconds(cdReduction));
2860+
}
2861+
2862+
void Register() override
2863+
{
2864+
OnEffectHitTarget += SpellEffectFn(spell_pri_protector_of_the_frail::HandleEffectHit, EFFECT_0, SPELL_EFFECT_DUMMY);
2865+
}
2866+
};
2867+
28442868
// 204197 - Purge the Wicked
28452869
// Called by Penance - 47540, Dark Reprimand - 400169
28462870
class spell_pri_purge_the_wicked : public SpellScript
@@ -4065,6 +4089,7 @@ void AddSC_priest_spell_scripts()
40654089
RegisterSpellAndAuraScriptPair(spell_pri_prayer_of_mending, spell_pri_prayer_of_mending_aura);
40664090
RegisterSpellScript(spell_pri_prayer_of_mending_jump);
40674091
RegisterSpellScript(spell_pri_protective_light);
4092+
RegisterSpellScript(spell_pri_protector_of_the_frail);
40684093
RegisterSpellScript(spell_pri_holy_10_1_class_set_2pc);
40694094
RegisterSpellScript(spell_pri_holy_10_1_class_set_2pc_chooser);
40704095
RegisterSpellScript(spell_pri_holy_10_1_class_set_4pc);

0 commit comments

Comments
 (0)