diff options
| author | offl <11556157+offl@users.noreply.github.com> | 2025-09-09 19:31:44 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-09 18:31:44 +0200 |
| commit | 19382995de1a30ad249388a8b6280dede02d24d5 (patch) | |
| tree | bd47c2f047a1c25433b5cda3cf9caf7db800975a /src/server/scripts/EasternKingdoms | |
| parent | f9a6d912891294e2b13f18356784f1d94a743586 (diff) | |
Scripts/Spells: Migrate some spell linked spells to spell scripts (#31182)
Diffstat (limited to 'src/server/scripts/EasternKingdoms')
| -rw-r--r-- | src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp | 70 |
1 files changed, 69 insertions, 1 deletions
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp index ad5f9e9588c..f641abf1763 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp @@ -31,6 +31,7 @@ EndScriptData */ #include "MotionMaster.h" #include "ObjectAccessor.h" #include "ScriptedCreature.h" +#include "SpellScript.h" #include "TemporarySummon.h" #include "Weather.h" #include "zulaman.h" @@ -46,7 +47,16 @@ enum Spells SPELL_ELECTRICAL_OVERLOAD = 43658, SPELL_EAGLE_SWOOP = 44732, SPELL_ZAP = 43137, - SPELL_SAND_STORM = 25160 + SPELL_SAND_STORM = 25160, + + SPELL_ELECTRICAL_STORM_AURA = 44007, + SPELL_TELEPORT_SELF = 44006, + + SPELL_ELECTRICAL_ARC_1 = 43653, + SPELL_ELECTRICAL_ARC_2 = 43654, + SPELL_ELECTRICAL_ARC_3 = 43655, + SPELL_ELECTRICAL_ARC_4 = 43656, + SPELL_ELECTRICAL_ARC_5 = 43659 }; enum Says @@ -466,8 +476,66 @@ class npc_akilzon_eagle : public CreatureScript } }; +// 43648 - Electrical Storm +class spell_akilzon_electrical_storm : public SpellScript +{ + PrepareSpellScript(spell_akilzon_electrical_storm); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_ELECTRICAL_STORM_AURA, SPELL_TELEPORT_SELF }); + } + + void HandleAfterHit() + { + Unit* target = GetHitUnit(); + target->CastSpell(target, SPELL_ELECTRICAL_STORM_AURA, true); + target->CastSpell(target, SPELL_TELEPORT_SELF, true); + } + + void Register() override + { + AfterHit += SpellHitFn(spell_akilzon_electrical_storm::HandleAfterHit); + } +}; + +// 43658 - Electrical Overload Graphic Pulse +class spell_akilzon_electrical_overload : public SpellScript +{ + PrepareSpellScript(spell_akilzon_electrical_overload); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo( + { + SPELL_ELECTRICAL_ARC_1, + SPELL_ELECTRICAL_ARC_2, + SPELL_ELECTRICAL_ARC_3, + SPELL_ELECTRICAL_ARC_4, + SPELL_ELECTRICAL_ARC_5 + }); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + Unit* caster = GetCaster(); + caster->CastSpell(caster, SPELL_ELECTRICAL_ARC_1, true); + caster->CastSpell(caster, SPELL_ELECTRICAL_ARC_2, true); + caster->CastSpell(caster, SPELL_ELECTRICAL_ARC_3, true); + caster->CastSpell(caster, SPELL_ELECTRICAL_ARC_4, true); + caster->CastSpell(caster, SPELL_ELECTRICAL_ARC_5, true); + } + + void Register() override + { + OnEffectHit += SpellEffectFn(spell_akilzon_electrical_overload::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + void AddSC_boss_akilzon() { new boss_akilzon(); new npc_akilzon_eagle(); + RegisterSpellScript(spell_akilzon_electrical_storm); + RegisterSpellScript(spell_akilzon_electrical_overload); } |
