aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAqua Deus <95978183+aquadeus@users.noreply.github.com>2025-05-24 19:21:55 +0200
committerGitHub <noreply@github.com>2025-05-24 19:21:55 +0200
commit7e896d6e426c676f254cc570097624bb70ac9baa (patch)
tree01079b2fe2e9679d53dd7f0287778c0ee61c07b7
parentecdd12ea6c0812fe2a57c98309ee782e7d20c633 (diff)
Scripts/Spells: Implement paladin talent Divine Auxiliary (#30984)
-rw-r--r--sql/updates/world/master/2025_05_24_01_world.sql4
-rw-r--r--src/server/scripts/Spells/spell_paladin.cpp31
2 files changed, 35 insertions, 0 deletions
diff --git a/sql/updates/world/master/2025_05_24_01_world.sql b/sql/updates/world/master/2025_05_24_01_world.sql
new file mode 100644
index 00000000000..7b9cf7c6209
--- /dev/null
+++ b/sql/updates/world/master/2025_05_24_01_world.sql
@@ -0,0 +1,4 @@
+DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_pal_divine_auxiliary';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(343721, 'spell_pal_divine_auxiliary'),
+(343527, 'spell_pal_divine_auxiliary');
diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp
index 31b59446aee..bbe85994bd9 100644
--- a/src/server/scripts/Spells/spell_paladin.cpp
+++ b/src/server/scripts/Spells/spell_paladin.cpp
@@ -56,6 +56,8 @@ enum PaladinSpells
SPELL_PALADIN_CONSECRATION_DAMAGE = 81297,
SPELL_PALADIN_CONSECRATION_PROTECTION_AURA = 188370,
SPELL_PALADIN_CRUSADING_STRIKES_ENERGIZE = 406834,
+ SPELL_PALADIN_DIVINE_AUXILIARY_ENERGIZE = 408386,
+ SPELL_PALADIN_DIVINE_AUXILIARY_TALENT = 406158,
SPELL_PALADIN_DIVINE_PURPOSE_TRIGGERED = 223819,
SPELL_PALADIN_DIVINE_STEED_HUMAN = 221883,
SPELL_PALADIN_DIVINE_STEED_DWARF = 276111,
@@ -491,6 +493,34 @@ class spell_pal_crusading_strikes : public AuraScript
}
};
+// 406158 - Divine Auxiliary (attached to 343721 - Final Reckoning and 343527 - Execution Sentence)
+class spell_pal_divine_auxiliary : public SpellScript
+{
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_PALADIN_DIVINE_AUXILIARY_ENERGIZE, SPELL_PALADIN_DIVINE_AUXILIARY_TALENT });
+ }
+
+ bool Load() override
+ {
+ return GetCaster()->HasAura(SPELL_PALADIN_DIVINE_AUXILIARY_TALENT);
+ }
+
+ void HandleEnergize() const
+ {
+ Unit* caster = GetCaster();
+ caster->CastSpell(caster, SPELL_PALADIN_DIVINE_AUXILIARY_ENERGIZE, CastSpellExtraArgsInit{
+ .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
+ .TriggeringSpell = GetSpell()
+ });
+ }
+
+ void Register() override
+ {
+ AfterCast += SpellCastFn(spell_pal_divine_auxiliary::HandleEnergize);
+ }
+};
+
// 223817 - Divine Purpose
class spell_pal_divine_purpose : public AuraScript
{
@@ -1747,6 +1777,7 @@ void AddSC_paladin_spell_scripts()
RegisterSpellScript(spell_pal_crusading_strikes);
RegisterSpellScript(spell_pal_consecration);
RegisterAreaTriggerAI(areatrigger_pal_consecration);
+ RegisterSpellScript(spell_pal_divine_auxiliary);
RegisterSpellScript(spell_pal_divine_purpose);
RegisterSpellScript(spell_pal_divine_shield);
RegisterSpellScript(spell_pal_divine_steed);