aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/EasternKingdoms
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2025-09-09 19:31:44 +0300
committerGitHub <noreply@github.com>2025-09-09 18:31:44 +0200
commit19382995de1a30ad249388a8b6280dede02d24d5 (patch)
treebd47c2f047a1c25433b5cda3cf9caf7db800975a /src/server/scripts/EasternKingdoms
parentf9a6d912891294e2b13f18356784f1d94a743586 (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.cpp70
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);
}