diff options
-rw-r--r-- | sql/updates/world/master/2024_02_07_00_world.sql | 7 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_priest.cpp | 34 |
2 files changed, 41 insertions, 0 deletions
diff --git a/sql/updates/world/master/2024_02_07_00_world.sql b/sql/updates/world/master/2024_02_07_00_world.sql new file mode 100644 index 00000000000..66db2ea0fd5 --- /dev/null +++ b/sql/updates/world/master/2024_02_07_00_world.sql @@ -0,0 +1,7 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_pri_heavens_wrath'; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(421558,'spell_pri_heavens_wrath'); + +DELETE FROM `spell_proc` WHERE `SpellId` IN (421558); +INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES +(421558,0x00,6,0x00000000,0x00018000,0x00000000,0x00000000,0x0,0x0,0x3,0x2,0x403,0x0,0x0,0,0,0,0); -- Heaven's Wrath diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index 873a876bd88..45395883e79 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -99,6 +99,7 @@ enum PriestSpells SPELL_PRIEST_HALO_SHADOW_HEAL = 390971, SPELL_PRIEST_HEAL = 2060, SPELL_PRIEST_HEALING_LIGHT = 196809, + SPELL_PRIEST_HEAVENS_WRATH = 421558, SPELL_PRIEST_HOLY_FIRE = 14914, SPELL_PRIEST_HOLY_MENDING_HEAL = 391156, SPELL_PRIEST_HOLY_NOVA = 132157, @@ -174,6 +175,9 @@ enum PriestSpells SPELL_PRIEST_TRAIL_OF_LIGHT_HEAL = 234946, SPELL_PRIEST_TRINITY = 214205, SPELL_PRIEST_TRINITY_EFFECT = 214206, + SPELL_PRIEST_ULTIMATE_PENITENCE = 421453, + SPELL_PRIEST_ULTIMATE_PENITENCE_DAMAGE = 421543, + SPELL_PRIEST_ULTIMATE_PENITENCE_HEAL = 421544, SPELL_PRIEST_VAMPIRIC_EMBRACE_HEAL = 15290, SPELL_PRIEST_VAMPIRIC_TOUCH_DISPEL = 64085, SPELL_PRIEST_VOID_SHIELD = 199144, @@ -1255,6 +1259,35 @@ class spell_pri_guardian_spirit : public AuraScript } }; +// 421558 - Heaven's Wrath +class spell_pri_heavens_wrath : public AuraScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_PRIEST_ULTIMATE_PENITENCE }); + } + + bool CheckProc(ProcEventInfo const& eventInfo) const + { + return !(eventInfo.GetSpellInfo()->Id == SPELL_PRIEST_ULTIMATE_PENITENCE_DAMAGE || eventInfo.GetSpellInfo()->Id == SPELL_PRIEST_ULTIMATE_PENITENCE_HEAL); + } + + void HandleEffectProc(AuraEffect const* aurEff, ProcEventInfo const& eventInfo) const + { + Unit* caster = eventInfo.GetActor(); + if (!caster) + return; + + int32 cdReduction = aurEff->GetAmount(); + caster->GetSpellHistory()->ModifyCooldown(SPELL_PRIEST_ULTIMATE_PENITENCE, Seconds(-cdReduction), true); + } + + void Register() override + { + OnEffectProc += AuraEffectProcFn(spell_pri_heavens_wrath::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY); + } +}; + // 120644 - Halo (Shadow) class spell_pri_halo_shadow : public SpellScript { @@ -2990,6 +3023,7 @@ void AddSC_priest_spell_scripts() RegisterSpellScript(spell_pri_guardian_spirit); RegisterSpellScript(spell_pri_halo_shadow); RegisterAreaTriggerAI(areatrigger_pri_halo); + RegisterSpellScript(spell_pri_heavens_wrath); RegisterSpellScript(spell_pri_holy_mending); RegisterSpellScript(spell_pri_holy_words); RegisterSpellScript(spell_pri_holy_word_salvation); |