diff options
author | Malcrom <malcromdev@gmail.com> | 2013-07-09 07:10:48 -0230 |
---|---|---|
committer | Malcrom <malcromdev@gmail.com> | 2013-07-09 07:10:48 -0230 |
commit | 17398a4043bced0f086b23e63644e290690ee7d7 (patch) | |
tree | 32d1430251a06a78e91dfb37c71ca687f929b846 | |
parent | ebe1ef249286644c7be7f33b574801c530c68e9a (diff) |
Core / Scripting: Coverted a couple Shattered Halls npc scripts to use events
-rw-r--r-- | src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp | 19 | ||||
-rw-r--r-- | src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp | 25 |
2 files changed, 33 insertions, 11 deletions
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp index 28d1445d15f..2f2e639d58a 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp @@ -66,6 +66,12 @@ enum SetData SETDATA_PEON_DEATH = 2 }; +enum Events +{ + // Fel Orc Convert + EVENT_HEMORRHAGE = 1 +}; + // ######################################################## // Grand Warlock Nethekurse // ######################################################## @@ -314,13 +320,14 @@ class npc_fel_orc_convert : public CreatureScript void Reset() OVERRIDE { me->SetNoCallAssistance(true); //we don't want any assistance (WE R HEROZ!) - Hemorrhage_Timer = 3000; } void MoveInLineOfSight(Unit* /*who*/) OVERRIDE { } void EnterCombat(Unit* /*who*/) OVERRIDE { + events.ScheduleEvent(EVENT_HEMORRHAGE, 3000); + if (instance) if (Creature* Kurse = Unit::GetCreature(*me, instance->GetData64(NPC_GRAND_WARLOCK_NETHEKURSE))) if (Kurse && me->IsWithinDist(Kurse, 45.0f)) @@ -344,18 +351,20 @@ class npc_fel_orc_convert : public CreatureScript if (!UpdateVictim()) return; - if (Hemorrhage_Timer <= diff) + events.Update(diff); + + if (uint32 EVENT_HEMORRHAGE = events.ExecuteEvent()) { DoCastVictim(SPELL_HEMORRHAGE); - Hemorrhage_Timer = 15000; - } else Hemorrhage_Timer -= diff; + events.ScheduleEvent(EVENT_HEMORRHAGE, 15000); + } DoMeleeAttackIfReady(); } private: InstanceScript* instance; - uint32 Hemorrhage_Timer; + EventMap events; }; CreatureAI* GetAI(Creature* creature) const OVERRIDE diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp index 03bb002809b..4444c745275 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp @@ -61,6 +61,12 @@ enum SetData SETDATA_YELL = 1 }; +enum Events +{ + // Omrogg Heads + EVENT_DEATH_YELL = 1 +}; + struct Yell { int32 id; @@ -397,11 +403,13 @@ class npc_omrogg_heads : public CreatureScript struct npc_omrogg_headsAI : public ScriptedAI { - npc_omrogg_headsAI(Creature* creature) : ScriptedAI(creature) { } + npc_omrogg_headsAI(Creature* creature) : ScriptedAI(creature) + { + instance = creature->GetInstanceScript(); + } void Reset() OVERRIDE { - Death_Timer = 4000; DeathYell = false; } @@ -410,7 +418,10 @@ class npc_omrogg_heads : public CreatureScript void SetData(uint32 data, uint32 value) { if (data == SETDATA_DATA && value == SETDATA_YELL) + { + events.ScheduleEvent(EVENT_DEATH_YELL, 4000); DeathYell = true; + } } void UpdateAI(uint32 diff) OVERRIDE @@ -418,16 +429,18 @@ class npc_omrogg_heads : public CreatureScript if (!DeathYell) return; - if (Death_Timer <= diff) + events.Update(diff); + + if (uint32 EVENT_DEATH_YELL = events.ExecuteEvent()) { Talk(YELL_DIE_R); - Death_Timer = false; me->setDeathState(JUST_DIED); - } else Death_Timer -= diff; + } } private: - uint32 Death_Timer; + InstanceScript* instance; + EventMap events; bool DeathYell; }; |