Scripts/Spells: Implement priest talent Protector of the Frail (#31451)

This commit is contained in:
Cristian Vintila
2025-12-23 01:10:46 +02:00
committed by GitHub
parent bfb06b771f
commit 9a5df19878
2 changed files with 32 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_pri_protector_of_the_frail');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(373036, 'spell_pri_protector_of_the_frail');
DELETE FROM `spell_proc` WHERE `SpellId` IN (373035);
INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES
(373035,0x00,6,0x00000001,0x00000000,0x00000000,0x00000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0,0,0,0); -- Protector of the Frail

View File

@@ -140,6 +140,7 @@ enum PriestSpells
SPELL_PRIEST_MIND_BOMB_STUN = 226943,
SPELL_PRIEST_MISERY = 238558,
SPELL_PRIEST_ORACULAR_HEAL = 26170,
SPELL_PRIEST_PAIN_SUPPRESSION = 33206,
SPELL_PRIEST_PAIN_TRANSFORMATION = 372991,
SPELL_PRIEST_PAIN_TRANSFORMATION_HEAL = 372994,
SPELL_PRIEST_PENANCE = 47540,
@@ -163,6 +164,7 @@ enum PriestSpells
SPELL_PRIEST_PRAYER_OF_MENDING_HEAL = 33110,
SPELL_PRIEST_PRAYER_OF_MENDING_JUMP = 155793,
SPELL_PRIEST_PROTECTIVE_LIGHT_AURA = 193065,
SPELL_PRIEST_PROTECTOR_OF_THE_FRAIL = 373035,
SPELL_PRIEST_PURGE_THE_WICKED = 204197,
SPELL_PRIEST_PURGE_THE_WICKED_DUMMY = 204215,
SPELL_PRIEST_PURGE_THE_WICKED_PERIODIC = 204213,
@@ -2841,6 +2843,28 @@ class spell_pri_assured_safety : public spell_pri_prayer_of_mending_SpellScriptB
}
};
// 373036 - Protector of the Frail
class spell_pri_protector_of_the_frail : public SpellScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellEffect({ { SPELL_PRIEST_PROTECTOR_OF_THE_FRAIL, EFFECT_1 } });
}
void HandleEffectHit(SpellEffIndex /*effIndex*/) const
{
Unit* caster = GetCaster();
int32 cdReduction = sSpellMgr->AssertSpellInfo(SPELL_PRIEST_PROTECTOR_OF_THE_FRAIL, GetCastDifficulty())->GetEffect(EFFECT_1).CalcValue(caster);
caster->GetSpellHistory()->ModifyCooldown(SPELL_PRIEST_PAIN_SUPPRESSION, Milliseconds(cdReduction));
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_pri_protector_of_the_frail::HandleEffectHit, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
// 204197 - Purge the Wicked
// Called by Penance - 47540, Dark Reprimand - 400169
class spell_pri_purge_the_wicked : public SpellScript
@@ -4065,6 +4089,7 @@ void AddSC_priest_spell_scripts()
RegisterSpellAndAuraScriptPair(spell_pri_prayer_of_mending, spell_pri_prayer_of_mending_aura);
RegisterSpellScript(spell_pri_prayer_of_mending_jump);
RegisterSpellScript(spell_pri_protective_light);
RegisterSpellScript(spell_pri_protector_of_the_frail);
RegisterSpellScript(spell_pri_holy_10_1_class_set_2pc);
RegisterSpellScript(spell_pri_holy_10_1_class_set_2pc_chooser);
RegisterSpellScript(spell_pri_holy_10_1_class_set_4pc);