Scripts/Spells: Implement priest talent Archangel (#31710)

This commit is contained in:
Cristian Vintila
2026-03-06 23:16:58 +02:00
committed by GitHub
parent 020b170b2b
commit b58493c08a
2 changed files with 34 additions and 0 deletions

View File

@@ -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');

View File

@@ -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);