From b58493c08aff4c954294eeb97e66a6281fe1741c Mon Sep 17 00:00:00 2001 From: Cristian Vintila <127750549+cristianvnt@users.noreply.github.com> Date: Fri, 6 Mar 2026 23:16:58 +0200 Subject: [PATCH] Scripts/Spells: Implement priest talent Archangel (#31710) --- .../world/master/2026_03_06_03_world.sql | 3 ++ src/server/scripts/Spells/spell_priest.cpp | 31 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 sql/updates/world/master/2026_03_06_03_world.sql diff --git a/sql/updates/world/master/2026_03_06_03_world.sql b/sql/updates/world/master/2026_03_06_03_world.sql new file mode 100644 index 0000000000..062ac5088a --- /dev/null +++ b/sql/updates/world/master/2026_03_06_03_world.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ("spell_pri_archangel"); +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(472433, 'spell_pri_archangel'); diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index 89533e10e2..6d56de6bf2 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -48,6 +48,8 @@ enum PriestSpells SPELL_PRIEST_ANGELIC_FEATHER_AURA = 121557, SPELL_PRIEST_ANSWERED_PRAYERS = 394289, SPELL_PRIEST_APOTHEOSIS = 200183, + SPELL_PRIEST_ARCHANGEL = 197862, + SPELL_PRIEST_ARCHANGEL_AURA = 81700, SPELL_PRIEST_ARMOR_OF_FAITH = 28810, SPELL_PRIEST_ASSURED_SAFETY = 440766, SPELL_PRIEST_ATONEMENT = 81749, @@ -511,6 +513,34 @@ class spell_pri_aq_3p_bonus : public AuraScript } }; +// 197862 - Archangel (attached to 472433 - Evangelism) +class spell_pri_archangel : public SpellScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_PRIEST_ARCHANGEL, SPELL_PRIEST_ARCHANGEL_AURA }); + } + + bool Load() override + { + return GetCaster()->HasAura(SPELL_PRIEST_ARCHANGEL); + } + + void HandleDummy(SpellEffIndex /*effIndex*/) const + { + Unit* caster = GetCaster(); + caster->CastSpell(caster, SPELL_PRIEST_ARCHANGEL_AURA, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_IGNORE_CASTER_AURASTATE | TRIGGERED_DONT_REPORT_CAST_ERROR, + .TriggeringSpell = GetSpell() + }); + } + + void Register() override + { + OnEffectLaunch += SpellEffectFn(spell_pri_archangel::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } +}; + // 81749 - Atonement class spell_pri_atonement : public AuraScript { @@ -5353,6 +5383,7 @@ void AddSC_priest_spell_scripts() RegisterSpellScript(spell_pri_abyssal_reverie); RegisterSpellScript(spell_pri_answered_prayers); RegisterSpellScript(spell_pri_aq_3p_bonus); + RegisterSpellScript(spell_pri_archangel); RegisterSpellScript(spell_pri_assured_safety); RegisterSpellScript(spell_pri_atonement); RegisterSpellScript(spell_pri_atonement_effect);