aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMalcrom <malcromdev@gmail.com>2013-08-07 11:42:13 -0230
committerMalcrom <malcromdev@gmail.com>2013-08-07 11:42:13 -0230
commitf4815fbf808b808854f91e4d9a91145edba28ef9 (patch)
tree8ba910341892c75d872b39c0b361d236022f520e /src
parentf5e4fd67c3ce100507daffa042fa72ae01fa8ffc (diff)
Scripting/Mana Tombs: Move Yor scripting from EAI to CPP.
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp
index 6c0d653f213..1876cf68b7d 100644
--- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp
@@ -365,9 +365,63 @@ public:
};
+enum Yor
+{
+ SPELL_DOUBLE_BREATH = 38361,
+ EVENT_DOUBLE_BREATH = 1
+};
+
+class npc_yor : public CreatureScript
+{
+public:
+ npc_yor() : CreatureScript("npc_yor") { }
+
+ struct npc_yorAI : public ScriptedAI
+ {
+ npc_yorAI(Creature* creature) : ScriptedAI(creature) {}
+
+ void Reset() OVERRIDE {}
+
+ void EnterCombat(Unit* /*who*/) OVERRIDE
+ {
+ events.ScheduleEvent(EVENT_DOUBLE_BREATH, urand(6000,9000));
+ }
+
+ void UpdateAI(uint32 diff) OVERRIDE
+ {
+ if (!UpdateVictim())
+ return;
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_DOUBLE_BREATH:
+ if (me->IsWithinDist(me->GetVictim(), ATTACK_DISTANCE))
+ DoCastVictim(SPELL_DOUBLE_BREATH);
+ events.ScheduleEvent(EVENT_DOUBLE_BREATH, urand(6000,9000));
+ break;
+ default:
+ break;
+ }
+ }
+ DoMeleeAttackIfReady();
+ }
+
+ private:
+ EventMap events;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const OVERRIDE
+ {
+ return new npc_yorAI(creature);
+ }
+};
+
void AddSC_boss_nexusprince_shaffar()
{
new boss_nexusprince_shaffar();
new npc_ethereal_beacon();
new npc_ethereal_apprentice();
+ new npc_yor();
}