fix(Core/Util): EventMap::RepeatEvent when eventId is retrieved by ExecuteEvent() call (#3426)
This commit is contained in:
parent
32da0eeb9e
commit
ab5933effa
131 changed files with 558 additions and 1012 deletions
|
|
@ -18,7 +18,7 @@
|
|||
#include <map>
|
||||
#include <ace/INET_Addr.h>
|
||||
|
||||
// Searcher for map of structs
|
||||
// Searcher for map of structs
|
||||
template<typename T, class S> struct Finder
|
||||
{
|
||||
T val_;
|
||||
|
|
@ -440,7 +440,7 @@ public:
|
|||
part[0] == right.part[0] &&
|
||||
part[1] == right.part[1] &&
|
||||
part[2] == right.part[2]
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
inline bool operator!=(flag96 const& right) const
|
||||
|
|
@ -541,20 +541,20 @@ bool CompareValues(ComparisionType type, T val1, T val2)
|
|||
{
|
||||
switch (type)
|
||||
{
|
||||
case COMP_TYPE_EQ:
|
||||
return val1 == val2;
|
||||
case COMP_TYPE_HIGH:
|
||||
return val1 > val2;
|
||||
case COMP_TYPE_LOW:
|
||||
return val1 < val2;
|
||||
case COMP_TYPE_HIGH_EQ:
|
||||
return val1 >= val2;
|
||||
case COMP_TYPE_LOW_EQ:
|
||||
return val1 <= val2;
|
||||
default:
|
||||
// incorrect parameter
|
||||
ABORT();
|
||||
return false;
|
||||
case COMP_TYPE_EQ:
|
||||
return val1 == val2;
|
||||
case COMP_TYPE_HIGH:
|
||||
return val1 > val2;
|
||||
case COMP_TYPE_LOW:
|
||||
return val1 < val2;
|
||||
case COMP_TYPE_HIGH_EQ:
|
||||
return val1 >= val2;
|
||||
case COMP_TYPE_LOW_EQ:
|
||||
return val1 <= val2;
|
||||
default:
|
||||
// incorrect parameter
|
||||
ABORT();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -578,7 +578,7 @@ class EventMap
|
|||
typedef std::multimap<uint32, uint32> EventStore;
|
||||
|
||||
public:
|
||||
EventMap() : _time(0), _phase(0) { }
|
||||
EventMap() : _time(0), _phase(0), _lastEvent(0) { }
|
||||
|
||||
/**
|
||||
* @name Reset
|
||||
|
|
@ -641,9 +641,13 @@ public:
|
|||
void SetPhase(uint8 phase)
|
||||
{
|
||||
if (!phase)
|
||||
{
|
||||
_phase = 0;
|
||||
}
|
||||
else if (phase <= 8)
|
||||
{
|
||||
_phase = (1 << (phase - 1));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -654,7 +658,9 @@ public:
|
|||
void AddPhase(uint8 phase)
|
||||
{
|
||||
if (phase && phase <= 8)
|
||||
{
|
||||
_phase |= (1 << (phase - 1));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -665,7 +671,9 @@ public:
|
|||
void RemovePhase(uint8 phase)
|
||||
{
|
||||
if (phase && phase <= 8)
|
||||
{
|
||||
_phase &= ~(1 << (phase - 1));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -679,10 +687,14 @@ public:
|
|||
void ScheduleEvent(uint32 eventId, uint32 time, uint32 group = 0, uint32 phase = 0)
|
||||
{
|
||||
if (group && group <= 8)
|
||||
{
|
||||
eventId |= (1 << (group + 15));
|
||||
}
|
||||
|
||||
if (phase && phase <= 8)
|
||||
{
|
||||
eventId |= (1 << (phase + 23));
|
||||
}
|
||||
|
||||
_eventMap.insert(EventStore::value_type(_time + time, eventId));
|
||||
}
|
||||
|
|
@ -711,22 +723,7 @@ public:
|
|||
*/
|
||||
void RepeatEvent(uint32 time)
|
||||
{
|
||||
if (Empty())
|
||||
return;
|
||||
|
||||
uint32 eventId = _eventMap.begin()->second;
|
||||
_eventMap.erase(_eventMap.begin());
|
||||
ScheduleEvent(eventId, time);
|
||||
}
|
||||
|
||||
/**
|
||||
* @name PopEvent
|
||||
* @brief Remove the first event in the map.
|
||||
*/
|
||||
void PopEvent()
|
||||
{
|
||||
if (!Empty())
|
||||
_eventMap.erase(_eventMap.begin());
|
||||
_eventMap.insert(EventStore::value_type(_time + time, _lastEvent));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -741,12 +738,17 @@ public:
|
|||
EventStore::iterator itr = _eventMap.begin();
|
||||
|
||||
if (itr->first > _time)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else if (_phase && (itr->second & 0xFF000000) && !((itr->second >> 24) & _phase))
|
||||
{
|
||||
_eventMap.erase(itr);
|
||||
}
|
||||
else
|
||||
{
|
||||
uint32 eventId = (itr->second & 0x0000FFFF);
|
||||
_lastEvent = itr->second;
|
||||
_eventMap.erase(itr);
|
||||
return eventId;
|
||||
}
|
||||
|
|
@ -755,28 +757,6 @@ public:
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @name GetEvent
|
||||
* @brief Returns the next event to execute.
|
||||
* @return Id of the event to execute.
|
||||
*/
|
||||
uint32 GetEvent()
|
||||
{
|
||||
while (!Empty())
|
||||
{
|
||||
EventStore::iterator itr = _eventMap.begin();
|
||||
|
||||
if (itr->first > _time)
|
||||
return 0;
|
||||
else if (_phase && (itr->second & 0xFF000000) && !(itr->second & (_phase << 24)))
|
||||
_eventMap.erase(itr);
|
||||
else
|
||||
return (itr->second & 0x0000FFFF);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @name DelayEvents
|
||||
* @brief Delays all events in the map. If delay is greater than or equal internal timer, delay will be 0.
|
||||
|
|
@ -796,9 +776,10 @@ public:
|
|||
ScheduleEvent(itr->second, delay);
|
||||
_eventMap.erase(itr);
|
||||
itr = _eventMap.begin();
|
||||
continue;
|
||||
}
|
||||
else
|
||||
++itr;
|
||||
|
||||
++itr;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -811,7 +792,9 @@ public:
|
|||
void DelayEvents(uint32 delay, uint32 group)
|
||||
{
|
||||
if (group > 8 || Empty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
EventStore delayed;
|
||||
|
||||
|
|
@ -820,10 +803,11 @@ public:
|
|||
if (!group || (itr->second & (1 << (group + 15))))
|
||||
{
|
||||
delayed.insert(EventStore::value_type(itr->first + delay, itr->second));
|
||||
_eventMap.erase(itr++);
|
||||
itr = _eventMap.erase(itr);
|
||||
continue;
|
||||
}
|
||||
else
|
||||
++itr;
|
||||
|
||||
++itr;
|
||||
}
|
||||
|
||||
_eventMap.insert(delayed.begin(), delayed.end());
|
||||
|
|
@ -837,14 +821,19 @@ public:
|
|||
void CancelEvent(uint32 eventId)
|
||||
{
|
||||
if (Empty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (EventStore::iterator itr = _eventMap.begin(); itr != _eventMap.end();)
|
||||
{
|
||||
if (eventId == (itr->second & 0x0000FFFF))
|
||||
_eventMap.erase(itr++);
|
||||
else
|
||||
++itr;
|
||||
{
|
||||
itr = _eventMap.erase(itr);
|
||||
continue;
|
||||
}
|
||||
|
||||
++itr;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -856,7 +845,9 @@ public:
|
|||
void CancelEventGroup(uint32 group)
|
||||
{
|
||||
if (!group || group > 8 || Empty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
uint32 groupMask = (1 << (group + 15));
|
||||
for (EventStore::iterator itr = _eventMap.begin(); itr != _eventMap.end();)
|
||||
|
|
@ -865,9 +856,10 @@ public:
|
|||
{
|
||||
_eventMap.erase(itr);
|
||||
itr = _eventMap.begin();
|
||||
continue;
|
||||
}
|
||||
else
|
||||
++itr;
|
||||
|
||||
++itr;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -880,11 +872,17 @@ public:
|
|||
uint32 GetNextEventTime(uint32 eventId) const
|
||||
{
|
||||
if (Empty())
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (EventStore::const_iterator itr = _eventMap.begin(); itr != _eventMap.end(); ++itr)
|
||||
if (eventId == (itr->second & 0x0000FFFF))
|
||||
return itr->first;
|
||||
for (auto const& itr : _eventMap)
|
||||
{
|
||||
if (eventId == (itr.second & 0x0000FFFF))
|
||||
{
|
||||
return itr.first;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -912,6 +910,7 @@ public:
|
|||
private:
|
||||
uint32 _time;
|
||||
uint32 _phase;
|
||||
uint32 _lastEvent;
|
||||
|
||||
EventStore _eventMap;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -491,24 +491,21 @@ public:
|
|||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
events.Update(diff);
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_GHOUL_MOVE_TO_PIT:
|
||||
me->GetMotionMaster()->MovePoint(1, 2364.77f, -5776.14f, 151.36f);
|
||||
if (Creature* gothik = ObjectAccessor::GetCreature(*me, gothikGUID))
|
||||
gothik->AI()->DoAction(SAY_GOTHIK_PIT);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_GHOUL_EMOTE:
|
||||
me->CastSpell(me, SPELL_GHOUL_EMERGE, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_GHOUL_RESTORE_STATE:
|
||||
me->SetReactState(REACT_DEFENSIVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
if (Player* owner = me->GetCharmerOrOwnerPlayerOrPlayerItself())
|
||||
me->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, frand(0.0f, 2 * M_PI));
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_GHOUL_CHECK_COMBAT, 1000);
|
||||
return;
|
||||
case EVENT_GHOUL_CHECK_COMBAT:
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ public:
|
|||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
events.Update(diff);
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_CHECK_PLAYER:
|
||||
{
|
||||
|
|
@ -218,7 +218,6 @@ public:
|
|||
}
|
||||
case EVENT_SUMMON_ARCHERS:
|
||||
SummonArchers();
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SUMMON_PEASANTS:
|
||||
_spoken = false;
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (uint32 evId = events.GetEvent())
|
||||
switch (uint32 evId = events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -231,28 +231,24 @@ public:
|
|||
events.RepeatEvent(5000);
|
||||
break;
|
||||
}
|
||||
events.PopEvent();
|
||||
me->setActive(false);
|
||||
EnterEvadeMode();
|
||||
return;
|
||||
case EVENT_SUMMON_SOLDIERS:
|
||||
for (uint8 i = 0; i < SUNWELL_DEFENDER_NUM; ++i)
|
||||
me->SummonCreature(NPC_SUNWELL_DEFENDER, SunwellDefenderPos[i], TEMPSUMMON_TIMED_DESPAWN, 33000 + (i / 5) * 5000);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_TALK_INTRO_0:
|
||||
case EVENT_TALK_INTRO_1:
|
||||
case EVENT_TALK_INTRO_2:
|
||||
case EVENT_TALK_INTRO_3:
|
||||
Talk(SAY_INTRO_0 + (evId - EVENT_TALK_INTRO_0));
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SALUTE:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE);
|
||||
for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
if (Creature* c = ObjectAccessor::GetCreature(*me, *itr))
|
||||
c->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SOLDIERS_RUN_AWAY:
|
||||
{
|
||||
|
|
@ -276,35 +272,29 @@ public:
|
|||
}
|
||||
else
|
||||
{
|
||||
events.PopEvent();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_GO_FIGHTPOINT:
|
||||
me->SetWalk(true);
|
||||
me->GetMotionMaster()->MovePoint(0, 11779.30f, -7065.43f, 24.92f);
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_TALK_SPAWN_0:
|
||||
case EVENT_TALK_SPAWN_1:
|
||||
Talk(SAY_SPAWN_0 + (evId - EVENT_TALK_SPAWN_0));
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SUMMON_MORLEN:
|
||||
if (Creature* c = me->SummonCreature(NPC_MORLEN_COLDGRIP, 11766.70f, -7050.57f, 25.17f, 5.56f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 5000))
|
||||
morlenGUID = c->GetGUID();
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_TALK_MORLEN_0:
|
||||
case EVENT_TALK_MORLEN_1:
|
||||
if (Creature* c = ObjectAccessor::GetCreature(*me, morlenGUID))
|
||||
c->AI()->Talk(SAY_MORLEN_0 + (evId - EVENT_TALK_MORLEN_0));
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPAWN_WAVE_1:
|
||||
case EVENT_SPAWN_WAVE_2:
|
||||
|
|
@ -364,7 +354,6 @@ public:
|
|||
break;
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_SUMMONS_ATTACK, 3000);
|
||||
break;
|
||||
case EVENT_SUMMONS_ATTACK:
|
||||
|
|
@ -378,14 +367,12 @@ public:
|
|||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
c->AI()->AttackStart(me);
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_OUTRO_0:
|
||||
case EVENT_OUTRO_1:
|
||||
case EVENT_OUTRO_2:
|
||||
case EVENT_OUTRO_3:
|
||||
Talk(SAY_OUTRO_0 + (evId - EVENT_OUTRO_0));
|
||||
events.PopEvent();
|
||||
if (evId == EVENT_OUTRO_3)
|
||||
events.ScheduleEvent(EVENT_OUTRO_KNEEL, 6000);
|
||||
break;
|
||||
|
|
@ -393,18 +380,15 @@ public:
|
|||
if (Player* p = ObjectAccessor::GetPlayer(*me, playerGUID))
|
||||
p->KilledMonsterCredit(NPC_THALORIEN_KILL_CREDIT, 0);
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_DISAPPEAR, 6000);
|
||||
break;
|
||||
case EVENT_DISAPPEAR:
|
||||
events.PopEvent();
|
||||
me->SetVisible(false);
|
||||
me->setActive(false);
|
||||
EnterEvadeMode();
|
||||
break;
|
||||
case EVENT_SET_FACING:
|
||||
me->SetFacingTo(2.45f);
|
||||
events.PopEvent();
|
||||
break;
|
||||
|
||||
case EVENT_SPELL_BLADESTORM:
|
||||
|
|
|
|||
|
|
@ -212,15 +212,13 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_DIREBREW_RESPAWN1:
|
||||
SummonSister(NPC_ILSA_DIREBREW);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_DIREBREW_RESPAWN2:
|
||||
SummonSister(NPC_URSULA_DIREBREW);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_DIREBREW_DISARM:
|
||||
me->CastSpell(me->GetVictim(), SPELL_DIREBREW_DISARM, false);
|
||||
|
|
@ -235,7 +233,6 @@ public:
|
|||
}
|
||||
if (me->GetHealthPct() < 35 && phase == 1)
|
||||
{
|
||||
events.PopEvent();
|
||||
SummonSister(NPC_URSULA_DIREBREW);
|
||||
return;
|
||||
}
|
||||
|
|
@ -325,7 +322,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SISTERS_BARREL:
|
||||
me->CastSpell(me->GetVictim(), SPELL_BARRELED, false);
|
||||
|
|
@ -703,7 +700,7 @@ public:
|
|||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
events.Update(diff);
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_CHECK_HOUR:
|
||||
{
|
||||
|
|
@ -744,7 +741,6 @@ public:
|
|||
{
|
||||
events.CancelEvent(EVENT_SPAWN_MOLE_MACHINE);
|
||||
events.ScheduleEvent(EVENT_FINISH_ATTACK, 20000);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_FINISH_ATTACK:
|
||||
|
|
|
|||
|
|
@ -679,18 +679,16 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 1:
|
||||
me->MonsterYell("Prepare yourselves, the bells have tolled! Shelter your weak, your young and your old! Each of you shall pay the final sum! Cry for mercy; the reckoning has come!", LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(11966);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
if (Unit* trigger = getTrigger())
|
||||
me->CastSpell(trigger, SPELL_START_FIRE, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
|
|
@ -710,7 +708,6 @@ public:
|
|||
}
|
||||
|
||||
FinishEvent(failed);
|
||||
events.PopEvent();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
@ -1103,7 +1100,7 @@ public:
|
|||
if (inFight && !UpdateVictim())
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_HH_PLAYER_TALK:
|
||||
{
|
||||
|
|
@ -1132,7 +1129,6 @@ public:
|
|||
case 4:
|
||||
me->CastSpell(me, SPELL_SHAKE_CAMERA_MEDIUM, true);
|
||||
player->MonsterSay("Now, know demise!", LANG_UNIVERSAL, 0);
|
||||
events.PopEvent();
|
||||
talkCount = 0;
|
||||
return; // pop and return, skip repeat
|
||||
}
|
||||
|
|
@ -1147,7 +1143,6 @@ public:
|
|||
AttackStart(player);
|
||||
me->GetMotionMaster()->MoveChase(player);
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_HORSEMAN_CLEAVE:
|
||||
|
|
@ -1173,7 +1168,6 @@ public:
|
|||
if (me->GetHealth() == me->GetMaxHealth())
|
||||
{
|
||||
me->CastSpell(me, SPELL_BODY_RESTORED_INFO, true);
|
||||
events.PopEvent();
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -371,20 +371,20 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_CALL_BAXTER:
|
||||
{
|
||||
EntryCheckPredicate pred(NPC_APOTHECARY_BAXTER);
|
||||
summons.DoAction(ACTION_RELEASE_HELPER, pred);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
case EVENT_CALL_FRYE:
|
||||
{
|
||||
EntryCheckPredicate pred(NPC_APOTHECARY_FRYE);
|
||||
summons.DoAction(ACTION_RELEASE_HELPER, pred);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
case EVENT_SPELL_PERFUME_SPRAY:
|
||||
|
|
@ -455,7 +455,6 @@ public:
|
|||
|
||||
void JustDied(Unit* ) { me->MonsterSay("...please don't think less of me.", LANG_UNIVERSAL, 0); }
|
||||
|
||||
|
||||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
|
|
@ -465,7 +464,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_PERFUME_SPRAY:
|
||||
me->CastSpell(me->GetVictim(), SPELL_COLOGNE_SPRAY, false);
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_CURSE_OF_EXERTION:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 50.0f, true))
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_VOID_STRIKE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_VOID_STRIKE, false);
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_CARRION_SWARM:
|
||||
me->CastSpell(me->GetVictim(), DUNGEON_MODE(SPELL_CARRION_SWARM_N, SPELL_CARRION_SWARM_H), false);
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_DISEASE_EXPULSION:
|
||||
me->CastSpell(me, DUNGEON_MODE(SPELL_DISEASE_EXPULSION_N, SPELL_DISEASE_EXPULSION_H), false);
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_SHADOW_BOLT:
|
||||
me->CastSpell(me->GetVictim(), DUNGEON_MODE(SPELL_SHADOW_BOLT_N, SPELL_SHADOW_BOLT_H), false);
|
||||
|
|
|
|||
|
|
@ -659,7 +659,7 @@ public:
|
|||
if (eventInRun)
|
||||
{
|
||||
actionEvents.Update(diff);
|
||||
switch (uint32 currentEvent = actionEvents.GetEvent())
|
||||
switch (uint32 currentEvent = actionEvents.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ACTION_PHASE1:
|
||||
SetRun(false);
|
||||
|
|
@ -815,7 +815,7 @@ public:
|
|||
SetEscortPaused(false);
|
||||
eventInRun = false;
|
||||
me->SetTarget(0);
|
||||
actionEvents.PopEvent(); // dont schedule next, do it in gossip select!
|
||||
// dont schedule next, do it in gossip select!
|
||||
break;
|
||||
//After Gossip 1 (waypoint 8)
|
||||
case EVENT_ACTION_PHASE2:
|
||||
|
|
@ -910,7 +910,6 @@ public:
|
|||
pInstance->SetData(DATA_START_WAVES, 1);
|
||||
|
||||
SummonNextWave();
|
||||
actionEvents.PopEvent();
|
||||
break;
|
||||
case EVENT_ACTION_PHASE2+9:
|
||||
if (pInstance)
|
||||
|
|
@ -919,7 +918,6 @@ public:
|
|||
Talk(SAY_PHASE210);
|
||||
eventInRun = false;
|
||||
SetEscortPaused(false);
|
||||
actionEvents.PopEvent();
|
||||
break;
|
||||
// After waypoint 22
|
||||
case EVENT_ACTION_PHASE3:
|
||||
|
|
@ -1110,7 +1108,6 @@ public:
|
|||
pInstance->SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_KILLED_EPOCH);
|
||||
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
actionEvents.PopEvent();
|
||||
eventInRun = false;
|
||||
break;
|
||||
case EVENT_ACTION_PHASE5:
|
||||
|
|
@ -1122,7 +1119,6 @@ public:
|
|||
cr->AddThreat(me, 0.0f);
|
||||
AttackStart(cr);
|
||||
}
|
||||
actionEvents.PopEvent();
|
||||
eventInRun = false;
|
||||
SetEscortPaused(true);
|
||||
break;
|
||||
|
|
@ -1150,7 +1146,6 @@ public:
|
|||
case EVENT_ACTION_PHASE5+3:
|
||||
eventInRun = false;
|
||||
me->SetVisible(false);
|
||||
actionEvents.PopEvent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1163,7 +1158,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (combatEvents.GetEvent())
|
||||
switch (combatEvents.ExecuteEvent())
|
||||
{
|
||||
case EVENT_COMBAT_EXORCISM:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||
|
|
@ -1202,7 +1197,6 @@ Creature* npc_arthas::npc_arthasAI::GetEventNpc(uint32 entry)
|
|||
|
||||
void npc_arthas::npc_arthasAI::ScheduleNextEvent(uint32 currentEvent, uint32 time)
|
||||
{
|
||||
actionEvents.PopEvent();
|
||||
actionEvents.ScheduleEvent(currentEvent + 1, time);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -323,7 +323,7 @@ public:
|
|||
|
||||
DoMeleeAttackIfReady();
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -358,7 +358,6 @@ public:
|
|||
me->StopMoving();
|
||||
DoResetThreat();
|
||||
me->GetMotionMaster()->MovePoint(10, OnyxiaMoveData[0].x, OnyxiaMoveData[0].y, OnyxiaMoveData[0].z);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_LIFTOFF:
|
||||
|
|
@ -374,19 +373,18 @@ public:
|
|||
me->SendMovementFlagUpdate();
|
||||
me->GetMotionMaster()->MoveTakeoff(11, OnyxiaMoveData[1].x + 1.0f, OnyxiaMoveData[1].y, OnyxiaMoveData[1].z, 12.0f);
|
||||
bManyWhelpsAvailable = true;
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_END_MANY_WHELPS_TIME, 10000);
|
||||
}
|
||||
break;
|
||||
case EVENT_END_MANY_WHELPS_TIME:
|
||||
bManyWhelpsAvailable = false;
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_FLY_S_TO_N:
|
||||
{
|
||||
me->SetSpeed(MOVE_RUN, 2.95f, false);
|
||||
me->GetMotionMaster()->MovePoint(5, OnyxiaMoveData[5].x, OnyxiaMoveData[5].y, OnyxiaMoveData[5].z);
|
||||
events.PopEvent();
|
||||
|
||||
whelpSpam = true;
|
||||
events.ScheduleEvent(EVENT_WHELP_SPAM, 90000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_LAIR_GUARD, 30000);
|
||||
|
|
@ -409,7 +407,6 @@ public:
|
|||
Talk(SAY_PHASE_3_TRANS);
|
||||
me->SendMeleeAttackStop(me->GetVictim());
|
||||
me->GetMotionMaster()->MoveLand(13, OnyxiaMoveData[0].x + 1.0f, OnyxiaMoveData[0].y, OnyxiaMoveData[0].z, 12.0f);
|
||||
events.PopEvent();
|
||||
DoResetThreat();
|
||||
}
|
||||
break;
|
||||
|
|
@ -420,7 +417,7 @@ public:
|
|||
me->SetFacingToObject(v);
|
||||
me->CastSpell(v, SPELL_FIREBALL, false);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.ScheduleEvent(EVENT_SPELL_FIREBALL_SECOND, 4000);
|
||||
}
|
||||
break;
|
||||
|
|
@ -431,7 +428,6 @@ public:
|
|||
me->SetFacingToObject(v);
|
||||
me->CastSpell(v, SPELL_FIREBALL, false);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
uint8 rand = urand(0, 99);
|
||||
if( rand < 33 )
|
||||
|
|
@ -448,7 +444,6 @@ public:
|
|||
if( newWP > 8 )
|
||||
newWP = 1;
|
||||
me->GetMotionMaster()->MovePoint(newWP, OnyxiaMoveData[newWP].x, OnyxiaMoveData[newWP].y, OnyxiaMoveData[newWP].z);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_PHASE_2_STEP_ACW:
|
||||
|
|
@ -457,7 +452,6 @@ public:
|
|||
if( newWP < 1 )
|
||||
newWP = 8;
|
||||
me->GetMotionMaster()->MovePoint(newWP, OnyxiaMoveData[newWP].x, OnyxiaMoveData[newWP].y, OnyxiaMoveData[newWP].z);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_PHASE_2_STEP_ACROSS:
|
||||
|
|
@ -465,7 +459,7 @@ public:
|
|||
me->SetFacingTo(OnyxiaMoveData[CurrentWP].o);
|
||||
me->MonsterTextEmote("Onyxia takes in a deep breath...", 0, true);
|
||||
me->CastSpell(me, OnyxiaMoveData[CurrentWP].spellId, false);
|
||||
events.PopEvent();
|
||||
|
||||
events.ScheduleEvent(EVENT_SPELL_BREATH, 8250);
|
||||
}
|
||||
break;
|
||||
|
|
@ -474,20 +468,16 @@ public:
|
|||
uint8 newWP = OnyxiaMoveData[CurrentWP].DestId;
|
||||
me->SetSpeed(MOVE_RUN, 2.95f, false);
|
||||
me->GetMotionMaster()->MovePoint(newWP, OnyxiaMoveData[newWP].x, OnyxiaMoveData[newWP].y, OnyxiaMoveData[newWP].z);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_START_PHASE_3:
|
||||
{
|
||||
me->SetSpeed(MOVE_RUN, 2.95f, false);
|
||||
me->GetMotionMaster()->MovePoint(12, OnyxiaMoveData[1].x, OnyxiaMoveData[1].y, OnyxiaMoveData[1].z);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_PHASE_3_ATTACK:
|
||||
{
|
||||
events.PopEvent();
|
||||
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
AttackStart(SelectTarget(SELECT_TARGET_TOPAGGRO, 0, 0, false));
|
||||
me->CastSpell(me, SPELL_BELLOWINGROAR, false);
|
||||
|
|
@ -512,8 +502,6 @@ public:
|
|||
{
|
||||
if( Creature* trigger = me->SummonCreature(12758, *me, TEMPSUMMON_TIMED_DESPAWN, 1000) )
|
||||
trigger->CastSpell(trigger, 17731, false);
|
||||
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_SUMMON_WHELP:
|
||||
|
|
@ -577,7 +565,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ public:
|
|||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
events.Update(diff);
|
||||
uint32 eventId = events.GetEvent();
|
||||
uint32 eventId = events.ExecuteEvent();
|
||||
if (eventId == EVENT_CHECK_PLAYER)
|
||||
{
|
||||
Player* player = ObjectAccessor::GetPlayer(*me, playerGUID);
|
||||
|
|
|
|||
|
|
@ -181,7 +181,6 @@ public:
|
|||
case EVENT_KRIK_HEALTH_CHECK:
|
||||
if (HealthBelowPct(10))
|
||||
{
|
||||
events.PopEvent();
|
||||
me->CastSpell(me, SPELL_FRENZY, true);
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_AMANITAR_SPAWN:
|
||||
{
|
||||
|
|
|
|||
|
|
@ -161,7 +161,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch ( events.GetEvent() )
|
||||
switch ( events.ExecuteEvent() )
|
||||
{
|
||||
case EVENT_CHECK_HEALTH:
|
||||
{
|
||||
|
|
@ -177,7 +177,6 @@ public:
|
|||
{
|
||||
Talk(EMOTE_HATCHES, me);
|
||||
SummonHelpers(false);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_BROOD_RAGE:
|
||||
|
|
@ -208,7 +207,6 @@ public:
|
|||
if (me->GetPositionZ() < 24)
|
||||
{
|
||||
me->CastSpell(me, SPELL_ENRAGE, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -238,7 +238,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_HERALD_HEALTH:
|
||||
{
|
||||
|
|
|
|||
|
|
@ -335,7 +335,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_JEDOGA_CYCLONE:
|
||||
{
|
||||
|
|
@ -361,7 +361,6 @@ public:
|
|||
}
|
||||
case EVENT_JEDOGA_MOVE_UP:
|
||||
{
|
||||
events.PopEvent();
|
||||
if (!summons.HasEntry(NPC_INITIATE))
|
||||
break;
|
||||
|
||||
|
|
@ -383,7 +382,6 @@ public:
|
|||
Talk(TEXT_SACRIFICE_2);
|
||||
summons.DespawnEntry(NPC_JEDOGA_CONTROLLER);
|
||||
MoveDown();
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_PRINCE_BLOODTHIRST:
|
||||
{
|
||||
|
|
@ -174,7 +174,6 @@ public:
|
|||
}
|
||||
case EVENT_PRINCE_VANISH:
|
||||
{
|
||||
events.PopEvent();
|
||||
//Count alive players
|
||||
uint8 count = 0;
|
||||
Unit* pTarget;
|
||||
|
|
@ -208,13 +207,11 @@ public:
|
|||
me->RemoveAura(SPELL_VANISH);
|
||||
}
|
||||
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_PRINCE_RESCHEDULE, 20000);
|
||||
break;
|
||||
}
|
||||
case EVENT_PRINCE_RESCHEDULE:
|
||||
{
|
||||
events.PopEvent();
|
||||
ScheduleEvents();
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/*
|
||||
/*
|
||||
* Originally written by Xinef - Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
|
||||
*/
|
||||
|
||||
|
|
@ -424,7 +424,7 @@ public:
|
|||
events.Update(diff);
|
||||
|
||||
// Special events which needs to be fired immidiately
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SARTHARION_BOUNDARY:
|
||||
if (me->GetPositionX() < 3218.86f || me->GetPositionX() > 3275.69f || me->GetPositionY() < 484.68f || me->GetPositionY() > 572.4f) // https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp#L31
|
||||
|
|
@ -441,11 +441,11 @@ public:
|
|||
return;
|
||||
case EVENT_SARTHARION_START_LAVA:
|
||||
SendLavaWaves(true);
|
||||
events.PopEvent();
|
||||
|
||||
return;
|
||||
case EVENT_SARTHARION_FINISH_LAVA:
|
||||
SendLavaWaves(false);
|
||||
events.PopEvent();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -463,7 +463,7 @@ public:
|
|||
void boss_sartharion::boss_sartharionAI::HandleSartharionAbilities()
|
||||
{
|
||||
// Handling of Sartharion Events
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SARTHARION_CAST_CLEAVE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_SARTHARION_CLEAVE, false);
|
||||
|
|
@ -523,14 +523,14 @@ void boss_sartharion::boss_sartharionAI::HandleSartharionAbilities()
|
|||
cr->CastSpell(cr, SPELL_CYCLONE_AURA_PERIODIC, true);
|
||||
}
|
||||
Talk(SAY_SARTHARION_BERSERK);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
events.RepeatEvent(2000);
|
||||
break;
|
||||
case EVENT_SARTHARION_BERSERK:
|
||||
summons.DespawnEntry(NPC_SAFE_AREA_TRIGGER);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -538,26 +538,26 @@ void boss_sartharion::boss_sartharionAI::HandleSartharionAbilities()
|
|||
void boss_sartharion::boss_sartharionAI::HandleDrakeAbilities()
|
||||
{
|
||||
// Handling of Drakes Events
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
// Dragon Calls
|
||||
case EVENT_SARTHARION_CALL_TENEBRON:
|
||||
Talk(SAY_SARTHARION_CALL_TENEBRON);
|
||||
if (Creature* tenebron = ObjectAccessor::GetCreature(*me, dragons[DRAGON_TENEBRON]))
|
||||
tenebron->AI()->DoAction(ACTION_CALL_DRAGON);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SARTHARION_CALL_SHADRON:
|
||||
Talk(SAY_SARTHARION_CALL_SHADRON);
|
||||
if (Creature* shadron = ObjectAccessor::GetCreature(*me, dragons[DRAGON_SHADRON]))
|
||||
shadron->AI()->DoAction(ACTION_CALL_DRAGON);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SARTHARION_CALL_VESPERON:
|
||||
Talk(SAY_SARTHARION_CALL_VESPERON);
|
||||
if (Creature* vesperon = ObjectAccessor::GetCreature(*me, dragons[DRAGON_VESPERON]))
|
||||
vesperon->AI()->DoAction(ACTION_CALL_DRAGON);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -733,7 +733,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_MINIBOSS_SHADOW_BREATH:
|
||||
if (!urand(0, 10))
|
||||
|
|
@ -776,7 +776,6 @@ public:
|
|||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_HATCH_EGGS, 25000);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_MINIBOSS_HATCH_EGGS:
|
||||
|
|
@ -810,7 +809,6 @@ public:
|
|||
|
||||
EntryCheckPredicate pred(NPC_TWILIGHT_EGG);
|
||||
summons.DoAction(ACTION_SWITCH_PHASE, pred);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1005,7 +1003,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_MINIBOSS_SHADOW_BREATH:
|
||||
if (!urand(0, 10))
|
||||
|
|
@ -1030,7 +1028,7 @@ public:
|
|||
pInstance->SetData(DATA_ADD_PORTAL, 0);
|
||||
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SPAWN_HELPERS, 2000);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_MINIBOSS_SPAWN_HELPERS:
|
||||
Talk(WHISPER_SUMMON_DICIPLE);
|
||||
|
|
@ -1041,7 +1039,7 @@ public:
|
|||
cr->SetPhaseMask(16, true);
|
||||
}
|
||||
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1235,7 +1233,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_MINIBOSS_SHADOW_BREATH:
|
||||
if (!urand(0, 10))
|
||||
|
|
@ -1260,7 +1258,7 @@ public:
|
|||
pInstance->SetData(DATA_ADD_PORTAL, 0);
|
||||
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SPAWN_HELPERS, 2000);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_MINIBOSS_SPAWN_HELPERS:
|
||||
Talk(WHISPER_SUMMON_DICIPLE);
|
||||
|
|
@ -1271,7 +1269,7 @@ public:
|
|||
cr->SetPhaseMask(16, true);
|
||||
}
|
||||
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -162,7 +162,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -340,7 +340,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -357,7 +357,6 @@ public:
|
|||
case EVENT_SPELL_RENEW:
|
||||
if( !MemoryGUID )
|
||||
{
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
if( urand(0, 1) )
|
||||
|
|
@ -417,14 +416,14 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case EVENT_MEMORY_SCALE:
|
||||
me->SetObjectScale(1.0f);
|
||||
events.ScheduleEvent(EVENT_MEMORY_START_ATTACK, 5000);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_MEMORY_START_ATTACK:
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
|
|
@ -437,7 +436,6 @@ public:
|
|||
events.ScheduleEvent(EVENT_SPELL_OLD_WOUNDS, 8000);
|
||||
events.ScheduleEvent(EVENT_SPELL_SHADOWS_PAST, 4000);
|
||||
events.ScheduleEvent(EVENT_SPELL_WAKING_NIGHTMARE, urand(20000, 30000));
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_OLD_WOUNDS:
|
||||
if( Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 10.0f, true) )
|
||||
|
|
@ -655,7 +653,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -231,7 +231,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -239,7 +239,7 @@ public:
|
|||
if( pInstance && !summons.empty() )
|
||||
if( Creature* ghoul = pInstance->instance->GetCreature(*summons.begin()) )
|
||||
ghoul->MonsterYell("[Zombie] .... . Brains ....", LANG_UNIVERSAL, 0);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SPELL_PLAGUE_STRIKE:
|
||||
if( me->GetVictim() )
|
||||
|
|
@ -440,7 +440,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -449,7 +449,7 @@ public:
|
|||
if (me->GetDistance(target) > 5.0f && me->GetDistance(target) < 30.0f)
|
||||
{
|
||||
me->CastSpell(target, SPELL_LEAP, false);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
events.RepeatEvent(1000);
|
||||
|
|
|
|||
|
|
@ -257,7 +257,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -655,7 +655,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) || ((me->GetEntry() == NPC_JACOB || me->GetEntry() == NPC_MOKRA) && me->HasAura(SPELL_BLADESTORM)) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -711,9 +711,7 @@ public:
|
|||
me->GetMotionMaster()->MovePoint(7, *mount);
|
||||
events.RepeatEvent(200);
|
||||
break;
|
||||
}
|
||||
|
||||
events.PopEvent();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case EVENT_MOUNT_CHARGE:
|
||||
|
|
@ -831,7 +829,7 @@ public:
|
|||
|
||||
/****************** HUNTER ******************/
|
||||
case EVENT_HUNTER_SPELL_DISENGAGE:
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_HUNTER_SPELL_LIGHTNING_ARROWS:
|
||||
me->CastSpell((Unit*)NULL, SPELL_LIGHTNING_ARROWS, false);
|
||||
|
|
@ -920,7 +918,7 @@ public:
|
|||
}
|
||||
break;
|
||||
case EVENT_WARRIOR_SPELL_ROLLING_THROW:
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
/*************** WARRIOR END ****************/
|
||||
}
|
||||
|
|
|
|||
|
|
@ -759,7 +759,7 @@ public:
|
|||
void Update(uint32 diff)
|
||||
{
|
||||
events.Update(diff);
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case EVENT_NULL:
|
||||
break;
|
||||
|
|
@ -776,7 +776,6 @@ public:
|
|||
DoSummonGrandChampion(temp1, 0);
|
||||
HandleGameObject(GO_MainGateGUID, true);
|
||||
events.ScheduleEvent(EVENT_CLOSE_GATE, 6000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_SUMMON_GRAND_CHAMPION_2:
|
||||
|
|
@ -786,7 +785,6 @@ public:
|
|||
DoSummonGrandChampion(temp2, 1);
|
||||
HandleGameObject(GO_MainGateGUID, true);
|
||||
events.ScheduleEvent(EVENT_CLOSE_GATE, 6000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_SUMMON_GRAND_CHAMPION_3:
|
||||
|
|
@ -797,23 +795,23 @@ public:
|
|||
DoSummonGrandChampion(number, 2);
|
||||
HandleGameObject(GO_MainGateGUID, true);
|
||||
events.ScheduleEvent(EVENT_CLOSE_GATE, 6000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_CLOSE_GATE:
|
||||
{
|
||||
HandleGameObject(GO_MainGateGUID, false);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_YELL_WELCOME_2:
|
||||
{
|
||||
if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) )
|
||||
if (Creature* tirion = instance->GetCreature(NPC_TirionGUID))
|
||||
{
|
||||
tirion->AI()->Talk(TEXT_WELCOME_2);
|
||||
}
|
||||
|
||||
events.RescheduleEvent(EVENT_SUMMON_GRAND_CHAMPION_1, 8000);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_GRAND_GROUP_1_MOVE_MIDDLE:
|
||||
{
|
||||
if( Creature* announcer = instance->GetCreature(NPC_AnnouncerGUID) )
|
||||
|
|
@ -831,7 +829,6 @@ public:
|
|||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_GRAND_GROUP_1_ATTACK, 3000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_GRAND_GROUP_1_ATTACK:
|
||||
|
|
@ -846,7 +843,6 @@ public:
|
|||
c->AI()->DoZoneInCombat();
|
||||
}
|
||||
Counter = 0;
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_GRAND_GROUP_2_MOVE_MIDDLE:
|
||||
|
|
@ -859,7 +855,6 @@ public:
|
|||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_GRAND_GROUP_2_ATTACK, 3000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_GRAND_GROUP_2_ATTACK:
|
||||
|
|
@ -873,7 +868,6 @@ public:
|
|||
c->AI()->AttackStart(target);
|
||||
c->AI()->DoZoneInCombat();
|
||||
}
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_GRAND_GROUP_3_MOVE_MIDDLE:
|
||||
|
|
@ -886,7 +880,6 @@ public:
|
|||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_GRAND_GROUP_3_ATTACK, 3000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_GRAND_GROUP_3_ATTACK:
|
||||
|
|
@ -900,7 +893,6 @@ public:
|
|||
c->AI()->AttackStart(target);
|
||||
c->AI()->DoZoneInCombat();
|
||||
}
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_GRAND_CHAMPIONS_MOVE_MIDDLE:
|
||||
|
|
@ -913,7 +905,6 @@ public:
|
|||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_GRAND_CHAMPIONS_MOUNTS_ATTACK, 3000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_GRAND_CHAMPIONS_MOUNTS_ATTACK:
|
||||
|
|
@ -928,7 +919,6 @@ public:
|
|||
c->AI()->DoZoneInCombat();
|
||||
c->CastSpell(c, 67865, true); // SPELL_TRAMPLE_AURA
|
||||
}
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_GRAND_CHAMPIONS_MOVE_SIDE:
|
||||
|
|
@ -952,7 +942,6 @@ public:
|
|||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_GRAND_CHAMPIONS_ATTACK, 15000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_GRAND_CHAMPIONS_ATTACK:
|
||||
|
|
@ -967,14 +956,13 @@ public:
|
|||
c->AI()->DoZoneInCombat();
|
||||
c->AI()->DoAction(2);
|
||||
}
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_GRATZ_SLAIN_CHAMPIONS:
|
||||
{
|
||||
if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) )
|
||||
tirion->AI()->Talk(TEXT_GRATZ_SLAIN_CHAMPIONS);
|
||||
events.PopEvent();
|
||||
|
||||
HandleGameObject(GO_EnterGateGUID, true);
|
||||
}
|
||||
break;
|
||||
|
|
@ -982,7 +970,6 @@ public:
|
|||
{
|
||||
if( Creature* announcer = instance->GetCreature(NPC_AnnouncerGUID) )
|
||||
announcer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_START_ARGENT_CHALLENGE_INTRO:
|
||||
|
|
@ -1032,7 +1019,6 @@ public:
|
|||
}
|
||||
}
|
||||
events.ScheduleEvent(EVENT_SUMMON_ARGENT_CHALLENGE, 4000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_SUMMON_ARGENT_CHALLENGE:
|
||||
|
|
@ -1044,7 +1030,6 @@ public:
|
|||
events.ScheduleEvent(EVENT_CLOSE_GATE, 5000);
|
||||
events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_SAY_1, 4000);
|
||||
events.ScheduleEvent(EVENT_ARGENT_SOLDIER_GROUP_ATTACK, 12500);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_ARGENT_CHALLENGE_SAY_1:
|
||||
|
|
@ -1053,14 +1038,12 @@ public:
|
|||
ac->AI()->Talk(Counter ? TEXT_EADRIC_SAY_1 : TEXT_PALETRESS_SAY_1);
|
||||
if( !Counter )
|
||||
events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_SAY_2, 6000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_ARGENT_CHALLENGE_SAY_2:
|
||||
{
|
||||
if( Creature* ac = instance->GetCreature(NPC_ArgentChampionGUID) )
|
||||
ac->AI()->Talk(TEXT_PALETRESS_SAY_2);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_ARGENT_SOLDIER_GROUP_ATTACK:
|
||||
|
|
@ -1076,7 +1059,6 @@ public:
|
|||
}
|
||||
if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) )
|
||||
tirion->AI()->Talk(TEXT_YOU_MAY_BEGIN);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_ARGENT_CHALLENGE_MOVE_FORWARD:
|
||||
|
|
@ -1086,7 +1068,6 @@ public:
|
|||
boss->GetMotionMaster()->MovePoint(0, 746.881f, 635.263f, 411.7f);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_ATTACK, 3000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_ARGENT_CHALLENGE_ATTACK:
|
||||
|
|
@ -1099,7 +1080,6 @@ public:
|
|||
boss->AI()->AttackStart(target);
|
||||
boss->AI()->DoZoneInCombat();
|
||||
}
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_ARGENT_CHALLENGE_RUN_MIDDLE:
|
||||
|
|
@ -1109,7 +1089,6 @@ public:
|
|||
boss->GetMotionMaster()->MovePoint(1, 747.13f, 628.037f, 411.2f);
|
||||
events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_LEAVE_CHEST, 6000);
|
||||
}
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_ARGENT_CHALLENGE_LEAVE_CHEST:
|
||||
|
|
@ -1128,7 +1107,6 @@ public:
|
|||
|
||||
events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_DISAPPEAR, 4000);
|
||||
events.ScheduleEvent(EVENT_RESTORE_ANNOUNCER_GOSSIP, 15000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_ARGENT_CHALLENGE_DISAPPEAR:
|
||||
|
|
@ -1138,7 +1116,6 @@ public:
|
|||
boss->GetMotionMaster()->MovePoint(0, SpawnPosition);
|
||||
boss->DespawnOrUnsummon(3000);
|
||||
}
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_SUMMON_BLACK_KNIGHT:
|
||||
|
|
@ -1161,7 +1138,6 @@ public:
|
|||
announcer->SetFacingToObject(bk_vehicle);
|
||||
announcer->AI()->Talk(TEXT_BK_RAFTERS);
|
||||
}
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_START_BLACK_KNIGHT_SCENE:
|
||||
|
|
@ -1174,7 +1150,6 @@ public:
|
|||
bk->AI()->Talk(TEXT_BK_SPOILED);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_BLACK_KNIGHT_CAST_ANNOUNCER, 2000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_BLACK_KNIGHT_CAST_ANNOUNCER:
|
||||
|
|
@ -1194,7 +1169,6 @@ public:
|
|||
}
|
||||
}
|
||||
events.ScheduleEvent(EVENT_BLACK_KNIGHT_KILL_ANNOUNCER, 1000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_BLACK_KNIGHT_KILL_ANNOUNCER:
|
||||
|
|
@ -1203,7 +1177,6 @@ public:
|
|||
bk_vehicle->AI()->DoAction(1);
|
||||
|
||||
events.ScheduleEvent(EVENT_BLACK_KNIGHT_MOVE_FORWARD, 4000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_BLACK_KNIGHT_MOVE_FORWARD:
|
||||
|
|
@ -1218,7 +1191,6 @@ public:
|
|||
if (announcer->IsAlive())
|
||||
Unit::Kill(announcer, announcer);
|
||||
events.ScheduleEvent(EVENT_BLACK_KNIGHT_SAY_TASK, 14000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_BLACK_KNIGHT_SAY_TASK:
|
||||
|
|
@ -1229,7 +1201,6 @@ public:
|
|||
bk->AI()->Talk(TEXT_BK_TASK);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_BLACK_KNIGHT_ATTACK, 5000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_BLACK_KNIGHT_ATTACK:
|
||||
|
|
@ -1243,7 +1214,6 @@ public:
|
|||
bk->AI()->DoZoneInCombat();
|
||||
bk->AI()->DoAction(1);
|
||||
}
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -252,14 +252,13 @@ public:
|
|||
return;
|
||||
}
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case EVENT_ENRAGE:
|
||||
{
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_RESPAWN_SPHERE:
|
||||
|
|
@ -315,7 +314,6 @@ public:
|
|||
events.RescheduleEvent(EVENT_EMERGE, EMERGE_INTERVAL);
|
||||
events.RescheduleEvent(EVENT_SPELL_SUMMON_SPIKE, 2500);
|
||||
events.RescheduleEvent(EVENT_SUMMON_SCARAB, 3000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_SUMMON_SCARAB:
|
||||
|
|
@ -332,7 +330,6 @@ public:
|
|||
summons.DespawnEntry(NPC_SPIKE);
|
||||
events.CancelEvent(EVENT_SUMMON_SCARAB);
|
||||
events.RescheduleEvent(EVENT_EMERGE_2, 2000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_EMERGE_2:
|
||||
|
|
@ -346,12 +343,10 @@ public:
|
|||
events.RescheduleEvent(EVENT_SPELL_FREEZING_SLASH, urand(7000, 15000));
|
||||
events.RescheduleEvent(EVENT_SPELL_PENETRATING_COLD, urand(15000, 20000));
|
||||
events.RescheduleEvent(EVENT_SUBMERGE, SUBMERGE_INTERVAL);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_SPELL_SUMMON_SPIKE:
|
||||
me->CastSpell(me, SPELL_SUMMON_SPIKE, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -374,7 +369,6 @@ public:
|
|||
if( pInstance )
|
||||
pInstance->SetData(TYPE_ANUBARAK, DONE);
|
||||
|
||||
|
||||
Player* plr = nullptr;
|
||||
if( !pInstance->instance->GetPlayers().isEmpty() )
|
||||
plr = pInstance->instance->GetPlayers().begin()->GetSource();
|
||||
|
|
@ -679,7 +673,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -697,7 +691,7 @@ public:
|
|||
me->CastSpell(me, SPELL_EXPOSE_WEAKNESS, true);
|
||||
me->CastSpell(me, SPELL_SPIDER_FRENZY, true);
|
||||
me->CastSpell(me, SPELL_SUBMERGE, false);
|
||||
events.PopEvent();
|
||||
|
||||
events.DelayEvents(15000);
|
||||
events.RescheduleEvent(EVENT_EMERGE, 10000);
|
||||
}
|
||||
|
|
@ -710,7 +704,7 @@ public:
|
|||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->CastSpell(me, SPELL_EMERGE, false);
|
||||
me->RemoveAura(SPELL_SUBMERGE);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SUBMERGE, 30000);
|
||||
break;
|
||||
}
|
||||
|
|
@ -813,18 +807,18 @@ public:
|
|||
|
||||
events.Update(diff);
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
me->CastSpell(me, SPELL_SPIKE_SPEED2, true);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(2, 7000);
|
||||
break;
|
||||
case 2:
|
||||
me->CastSpell(me, SPELL_SPIKE_SPEED3, true);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case 3:
|
||||
Reset();
|
||||
|
|
|
|||
|
|
@ -293,7 +293,7 @@ public:
|
|||
if( !myCanCast() )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -422,7 +422,7 @@ public:
|
|||
if( !myCanCast() )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -545,7 +545,7 @@ public:
|
|||
if( !myCanCast() )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -678,7 +678,7 @@ public:
|
|||
if( !myCanCast() )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -801,7 +801,7 @@ public:
|
|||
if( !myCanCast() )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -961,13 +961,13 @@ public:
|
|||
if( !myCanCast() )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case EVENT_SPELL_SUMMON_FELHUNTER:
|
||||
DoSummon(35465, *me);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SPELL_HELLFIRE:
|
||||
if( EnemiesInRange(9.0f) >= 3 )
|
||||
|
|
@ -1098,7 +1098,7 @@ public:
|
|||
if( !myCanCast() )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -1252,13 +1252,13 @@ public:
|
|||
if( !myCanCast() )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case EVENT_SPELL_CALL_PET:
|
||||
DoSummon(35610, *me);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SPELL_AIMED_SHOT:
|
||||
if( me->GetVictim() )
|
||||
|
|
@ -1405,7 +1405,7 @@ public:
|
|||
if( !myCanCast() )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -1544,7 +1544,7 @@ public:
|
|||
if( !myCanCast() )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -1736,7 +1736,7 @@ public:
|
|||
if( !myCanCast() )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -1893,7 +1893,7 @@ public:
|
|||
if( !myCanCast() )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -2052,7 +2052,7 @@ public:
|
|||
if( !myCanCast() )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -2191,7 +2191,7 @@ public:
|
|||
if( !myCanCast() )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -2336,7 +2336,7 @@ public:
|
|||
if( !myCanCast() )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -2411,7 +2411,7 @@ public:
|
|||
if( !myCanCast() )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -189,7 +189,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -234,14 +234,14 @@ public:
|
|||
Talk(EMOTE_NETHER_PORTAL);
|
||||
Talk(SAY_MISTRESS_OF_PAIN);
|
||||
me->CastSpell((Unit*)NULL, SPELL_SUMMON_NETHER_PORTAL, false);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SUMMON_VOLCANO, 60000);
|
||||
break;
|
||||
case EVENT_SUMMON_VOLCANO:
|
||||
Talk(EMOTE_INFERNAL_ERUPTION);
|
||||
Talk(SAY_INFERNAL_ERUPTION);
|
||||
me->CastSpell((Unit*)NULL, SPELL_SUMMON_VOLCANO, false);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SUMMON_NETHER_PORTAL, 60000);
|
||||
break;
|
||||
}
|
||||
|
|
@ -317,7 +317,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -397,7 +397,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -143,14 +143,14 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case EVENT_SPELL_SNOBOLLED:
|
||||
if( t->GetTypeId() == TYPEID_PLAYER )
|
||||
me->CastSpell((Unit*)NULL, SPELL_SNOBOLLED, true);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SPELL_BATTER:
|
||||
if( t->GetTypeId() == TYPEID_PLAYER )
|
||||
|
|
@ -275,7 +275,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -359,7 +359,6 @@ public:
|
|||
}
|
||||
}
|
||||
PlayerGUID = 0;
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -550,7 +549,7 @@ struct boss_jormungarAI : public ScriptedAI
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -583,7 +582,7 @@ struct boss_jormungarAI : public ScriptedAI
|
|||
me->UpdatePosition(Locs[LOC_CENTER].GetPositionX() + cos(angle)*dist, Locs[LOC_CENTER].GetPositionY() + sin(angle)*dist, me->GetPositionZ(), me->GetOrientation(), true);
|
||||
me->StopMovingOnCurrentPos();
|
||||
DoResetThreat();
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_EMERGE, 6000);
|
||||
}
|
||||
break;
|
||||
|
|
@ -861,7 +860,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -893,7 +892,7 @@ public:
|
|||
case EVENT_SPELL_MASSIVE_CRASH:
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->CastSpell((Unit*)NULL, SPELL_MASSIVE_CRASH, false);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_GAZE, 2000);
|
||||
break;
|
||||
case EVENT_GAZE:
|
||||
|
|
@ -915,7 +914,7 @@ public:
|
|||
me->GetMotionMaster()->MovementExpired();
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_JUMP_BACK:
|
||||
{
|
||||
|
|
@ -935,7 +934,6 @@ public:
|
|||
me->StopMoving();
|
||||
me->GetMotionMaster()->MoveJump(Locs[LOC_CENTER].GetPositionX() + cos(jumpangle) * 35.0f, Locs[LOC_CENTER].GetPositionY() + sin(jumpangle) * 35.0f, Locs[LOC_CENTER].GetPositionZ() + 1.0f, 40.0f, 12.0f);
|
||||
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(EVENT_TRAMPLE, 1500);
|
||||
|
||||
if( pInstance )
|
||||
|
|
@ -965,7 +963,7 @@ public:
|
|||
me->GetMotionMaster()->MoveCharge(destX, destY, destZ + 1.0f, 65.0f);
|
||||
me->SetUInt64Value(UNIT_FIELD_TARGET, 0);
|
||||
events.RescheduleEvent(EVENT_CHECK_TRAMPLE_PLAYERS, 100);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_CHECK_TRAMPLE_PLAYERS:
|
||||
if( DoTrampleIfValid() )
|
||||
|
|
@ -984,7 +982,7 @@ public:
|
|||
break;
|
||||
case EVENT_REFRESH_POSITION:
|
||||
//me->SetFacingTo(me->GetOrientation());
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -276,7 +276,7 @@ struct boss_twin_valkyrAI : public ScriptedAI
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -288,13 +288,13 @@ struct boss_twin_valkyrAI : public ScriptedAI
|
|||
twin->CastSpell(twin, SPELL_BERSERK, true);
|
||||
twin->AI()->Talk(SAY_BERSERK);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SUMMON_BALLS_1:
|
||||
case EVENT_SUMMON_BALLS_2:
|
||||
case EVENT_SUMMON_BALLS_3:
|
||||
{
|
||||
uint8 eventId = events.GetEvent();
|
||||
uint8 eventId = events.ExecuteEvent();
|
||||
uint8 count = 0;
|
||||
if( IsHeroic() )
|
||||
count = eventId == EVENT_SUMMON_BALLS_3 ? 36 : 6;
|
||||
|
|
@ -306,7 +306,7 @@ struct boss_twin_valkyrAI : public ScriptedAI
|
|||
if( Creature* ball = me->SummonCreature((i % 2) ? NPC_CONCENTRATED_DARK : NPC_CONCENTRATED_LIGHT, Locs[LOC_CENTER].GetPositionX() + cos(angle) * 47.0f, Locs[LOC_CENTER].GetPositionY() + sin(angle) * 47.0f, Locs[LOC_CENTER].GetPositionZ() + 1.5f, 0.0f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 1500) )
|
||||
boss_twin_valkyrAI::JustSummoned(ball);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
switch( eventId )
|
||||
{
|
||||
case EVENT_SUMMON_BALLS_1:
|
||||
|
|
@ -448,7 +448,7 @@ struct boss_twin_valkyrAI : public ScriptedAI
|
|||
break;
|
||||
case EVENT_REMOVE_DUAL_WIELD:
|
||||
me->SetCanDualWield(false);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -572,7 +572,7 @@ public:
|
|||
void Update(uint32 diff)
|
||||
{
|
||||
events.Update(diff);
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -590,20 +590,18 @@ public:
|
|||
case EVENT_OPEN_GATE:
|
||||
{
|
||||
HandleGameObject(GO_MainGateGUID, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_CLOSE_GATE:
|
||||
{
|
||||
HandleGameObject(GO_MainGateGUID, false);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_001:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_0_01);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_002, 22000);
|
||||
}
|
||||
break;
|
||||
|
|
@ -611,7 +609,7 @@ public:
|
|||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_VarianGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_0_03a);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_003, 5000);
|
||||
}
|
||||
break;
|
||||
|
|
@ -619,7 +617,7 @@ public:
|
|||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_GarroshGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_0_03h);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_004, 8000);
|
||||
}
|
||||
break;
|
||||
|
|
@ -632,7 +630,7 @@ public:
|
|||
c->AI()->Talk(SAY_STAGE_0_02);
|
||||
HandleGameObject(GO_MainGateGUID, true);
|
||||
HandleGameObject(GO_EnterGateGUID, false);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SUMMON_GORMOK, 1000);
|
||||
if (instance->IsHeroic())
|
||||
{
|
||||
|
|
@ -655,14 +653,14 @@ public:
|
|||
if( Creature* c = instance->GetCreature(NPC_IcehowlGUID) )
|
||||
if (c->IsAlive())
|
||||
c->CastSpell(c, 26662, true);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SUMMON_GORMOK:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
if( Creature* gormok = c->SummonCreature(NPC_GORMOK, Locs[LOC_BEHIND_GATE].GetPositionX(), Locs[LOC_BEHIND_GATE].GetPositionY(), Locs[LOC_BEHIND_GATE].GetPositionZ(), Locs[LOC_BEHIND_GATE].GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000) )
|
||||
gormok->GetMotionMaster()->MovePoint(0, Locs[LOC_GATE_FRONT].GetPositionX(), Locs[LOC_GATE_FRONT].GetPositionY(), Locs[LOC_GATE_FRONT].GetPositionZ());
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_GORMOK_ATTACK, 10000);
|
||||
events.RescheduleEvent(EVENT_CLOSE_GATE, 6000);
|
||||
}
|
||||
|
|
@ -681,19 +679,18 @@ public:
|
|||
c->AI()->DoZoneInCombat();
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_005:
|
||||
{
|
||||
northrendBeastsMask |= 16;
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_0_04);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_OPEN_GATE, 3000);
|
||||
events.RescheduleEvent(EVENT_SUMMON_ACIDMAW_AND_DREADSCALE, 4000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SUMMON_ACIDMAW_AND_DREADSCALE:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
|
|
@ -703,18 +700,19 @@ public:
|
|||
if( Creature* acidmaw = c->SummonCreature(NPC_ACIDMAW, Locs[LOC_ACIDMAW].GetPositionX(), Locs[LOC_ACIDMAW].GetPositionY(), Locs[LOC_ACIDMAW].GetPositionZ(), Locs[LOC_ACIDMAW].GetOrientation(), TEMPSUMMON_MANUAL_DESPAWN) )
|
||||
acidmaw->AddAura(53421, acidmaw);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_005_2, 4000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case EVENT_SCENE_005_2:
|
||||
{
|
||||
if( Creature* dreadscale = instance->GetCreature(NPC_DreadscaleGUID) )
|
||||
dreadscale->GetMotionMaster()->MovePoint(0, Locs[LOC_DREADSCALE].GetPositionX(), Locs[LOC_DREADSCALE].GetPositionY(), Locs[LOC_DREADSCALE].GetPositionZ());
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_ACIDMAW_AND_DREADSCALE_ATTACK, 7000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_ACIDMAW_AND_DREADSCALE_ATTACK:
|
||||
{
|
||||
HandleGameObject(GO_MainGateGUID, false);
|
||||
|
|
@ -742,29 +740,28 @@ public:
|
|||
c->AI()->DoZoneInCombat();
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_006:
|
||||
{
|
||||
northrendBeastsMask |= 32;
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_0_05);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_OPEN_GATE, 2000);
|
||||
events.RescheduleEvent(EVENT_SUMMON_ICEHOWL, 3000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SUMMON_ICEHOWL:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
if( Creature* icehowl = c->SummonCreature(NPC_ICEHOWL, Locs[LOC_BEHIND_GATE].GetPositionX(), Locs[LOC_BEHIND_GATE].GetPositionY(), Locs[LOC_BEHIND_GATE].GetPositionZ(), Locs[LOC_BEHIND_GATE].GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 630000000) )
|
||||
icehowl->GetMotionMaster()->MovePoint(0, Locs[LOC_GATE_FRONT].GetPositionX(), Locs[LOC_GATE_FRONT].GetPositionY(), Locs[LOC_GATE_FRONT].GetPositionZ());
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_ICEHOWL_ATTACK, 10000);
|
||||
events.RescheduleEvent(EVENT_CLOSE_GATE, 6000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_ICEHOWL_ATTACK:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_IcehowlGUID) )
|
||||
|
|
@ -778,18 +775,16 @@ public:
|
|||
c->AI()->DoZoneInCombat();
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_BEASTS_DONE:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_0_06);
|
||||
if( Creature* c = instance->GetCreature(NPC_BarrettGUID) )
|
||||
c->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_101:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
|
|
@ -811,18 +806,17 @@ public:
|
|||
icehowl->DestroyForNearbyPlayers();
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_102:
|
||||
{
|
||||
HandleGameObject(GO_MainGateGUID, false);
|
||||
if( Creature* c = instance->GetCreature(NPC_FizzlebangGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_1_02);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_103, 11000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_103:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_FizzlebangGUID) )
|
||||
|
|
@ -832,10 +826,10 @@ public:
|
|||
if( Creature* trigger = c->SummonCreature(NPC_PURPLE_GROUND, Locs[LOC_CENTER].GetPositionX(), Locs[LOC_CENTER].GetPositionY(), Locs[LOC_CENTER].GetPositionZ(), Locs[LOC_CENTER].GetOrientation(), TEMPSUMMON_MANUAL_DESPAWN) )
|
||||
NPC_PurpleGroundGUID = trigger->GetGUID();
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_104, 5000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_104:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_FizzlebangGUID) )
|
||||
|
|
@ -849,10 +843,10 @@ public:
|
|||
}
|
||||
c->HandleEmoteCommand(EMOTE_STATE_SPELL_PRECAST);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SUMMON_JARAXXUS, 5000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SUMMON_JARAXXUS:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_FizzlebangGUID) )
|
||||
|
|
@ -862,10 +856,10 @@ public:
|
|||
c->HandleEmoteCommand(EMOTE_STATE_NONE);
|
||||
c->AI()->Talk(SAY_STAGE_1_04);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_105, 3000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_105:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_JaraxxusGUID) )
|
||||
|
|
@ -876,26 +870,26 @@ public:
|
|||
if( Creature* c = instance->GetCreature(NPC_PortalGUID) )
|
||||
c->DespawnOrUnsummon();
|
||||
NPC_PortalGUID = 0;
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_106, 10000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_106:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_JaraxxusGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_1_05);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_107, 5000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_107:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_FizzlebangGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_1_06);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_108, 800);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_108:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_JaraxxusGUID) )
|
||||
|
|
@ -908,20 +902,20 @@ public:
|
|||
Unit::Kill(f, f);
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_109, 5000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_109:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_JaraxxusGUID) )
|
||||
c->SetFacingTo(3 * M_PI / 2);
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_1_07);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_JARAXXUS_ATTACK, 6000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_JARAXXUS_ATTACK:
|
||||
{
|
||||
InstanceProgress = INSTANCE_PROGRESS_JARAXXUS_INTRO_DONE;
|
||||
|
|
@ -936,42 +930,40 @@ public:
|
|||
c->AI()->DoZoneInCombat();
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_110:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_1_08);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_111, 18000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_111:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_GarroshGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_1_09);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_112, 9000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_112:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_VarianGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_1_10);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_113, 5000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_113:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_1_11);
|
||||
if( Creature* c = instance->GetCreature(NPC_BarrettGUID) )
|
||||
c->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_201:
|
||||
{
|
||||
// move Jaraxxus to side, can't remove corpse because of loot!
|
||||
|
|
@ -984,10 +976,10 @@ public:
|
|||
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_2_01);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_202, 9000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_202:
|
||||
{
|
||||
Map::PlayerList const& pl = instance->GetPlayers();
|
||||
|
|
@ -1011,17 +1003,16 @@ public:
|
|||
c->AI()->Talk(SAY_STAGE_2_02a);
|
||||
events.RescheduleEvent(EVENT_SCENE_203, 18000);
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_203:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_2_03);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_204, 5000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_204:
|
||||
{
|
||||
if( TeamIdInInstance == TEAM_ALLIANCE )
|
||||
|
|
@ -1036,17 +1027,17 @@ public:
|
|||
c->AI()->Talk(SAY_STAGE_2_04a);
|
||||
events.RescheduleEvent(EVENT_SCENE_205, 5000);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SUMMON_CHAMPIONS, 2500);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_205:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(TeamIdInInstance == TEAM_ALLIANCE ? NPC_VarianGUID : NPC_GarroshGUID) )
|
||||
c->AI()->Talk(TeamIdInInstance == TEAM_ALLIANCE ? SAY_STAGE_2_05a : SAY_STAGE_2_05h);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SUMMON_CHAMPIONS:
|
||||
{
|
||||
std::vector<uint32> vHealerEntries;
|
||||
|
|
@ -1119,10 +1110,9 @@ public:
|
|||
}
|
||||
|
||||
HandleGameObject(GO_EnterGateGUID, false);
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(EVENT_CHAMPIONS_ATTACK, 4000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_CHAMPIONS_ATTACK:
|
||||
{
|
||||
for( std::vector<uint64>::iterator itr = NPC_ChampionGUIDs.begin(); itr != NPC_ChampionGUIDs.end(); ++itr )
|
||||
|
|
@ -1138,34 +1128,32 @@ public:
|
|||
for (Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)
|
||||
itr->GetSource()->AddToNotify(NOTIFY_AI_RELOCATION);
|
||||
EncounterStatus = IN_PROGRESS;
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_FACTION_CHAMPIONS_DEAD:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_2_06);
|
||||
if( Creature* c = instance->GetCreature(NPC_BarrettGUID) )
|
||||
c->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_301:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_3_01);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_302, 13000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_302:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_3_02);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_303, 3000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_303:
|
||||
{
|
||||
HandleGameObject(GO_EnterGateGUID, false);
|
||||
|
|
@ -1177,10 +1165,10 @@ public:
|
|||
if( Creature* t = c->SummonCreature(NPC_DARKBANE, Locs[LOC_VALKYR_LEFT].GetPositionX(), Locs[LOC_VALKYR_LEFT].GetPositionY(), Locs[LOC_VALKYR_LEFT].GetPositionZ(), Locs[LOC_VALKYR_LEFT].GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 630000000) )
|
||||
t->GetMotionMaster()->MovePoint(0, Locs[LOC_VALKYR_DEST_LEFT].GetPositionX(), Locs[LOC_VALKYR_DEST_LEFT].GetPositionY(), Locs[LOC_VALKYR_DEST_LEFT].GetPositionZ());
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_304, 6250);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_304:
|
||||
{
|
||||
HandleGameObject(GO_MainGateGUID, false);
|
||||
|
|
@ -1189,10 +1177,10 @@ public:
|
|||
c->GetMotionMaster()->MovePoint(0, Locs[LOC_VALKYR_DEST_2_RIGHT].GetPositionX(), Locs[LOC_VALKYR_DEST_2_RIGHT].GetPositionY(), Locs[LOC_VALKYR_DEST_2_RIGHT].GetPositionZ());
|
||||
if( Creature* c = instance->GetCreature(NPC_DarkbaneGUID) )
|
||||
c->GetMotionMaster()->MovePoint(0, Locs[LOC_VALKYR_DEST_2_LEFT].GetPositionX(), Locs[LOC_VALKYR_DEST_2_LEFT].GetPositionY(), Locs[LOC_VALKYR_DEST_2_LEFT].GetPositionZ());
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_VALKYRIES_ATTACK, 3250);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_VALKYRIES_ATTACK:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_LightbaneGUID) )
|
||||
|
|
@ -1215,9 +1203,8 @@ public:
|
|||
c->AI()->DoZoneInCombat();
|
||||
}*/
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_VALKYR_DEAD:
|
||||
{
|
||||
if (TeamIdInInstance == TEAM_NEUTRAL)
|
||||
|
|
@ -1233,18 +1220,18 @@ public:
|
|||
}
|
||||
if( Creature* c = instance->GetCreature(TeamIdInInstance == TEAM_ALLIANCE ? NPC_VarianGUID : NPC_GarroshGUID) )
|
||||
c->AI()->Talk((TeamIdInInstance == TEAM_ALLIANCE ? SAY_STAGE_3_03a : SAY_STAGE_3_03h));
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_401, 60000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_401:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_4_01);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_402, 20000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_402:
|
||||
{
|
||||
HandleGameObject(GO_EnterGateGUID, false);
|
||||
|
|
@ -1258,10 +1245,10 @@ public:
|
|||
t->AI()->Talk(SAY_STAGE_4_02);
|
||||
t->SetVisible(false);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_403, 2000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_403:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
|
|
@ -1270,10 +1257,10 @@ public:
|
|||
t->SetReactState(REACT_PASSIVE);
|
||||
t->CastSpell(t, 51807, true);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_404, 2000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_404:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_LichKingGUID) )
|
||||
|
|
@ -1282,18 +1269,18 @@ public:
|
|||
c->SetVisible(true);
|
||||
c->GetMotionMaster()->MovePoint(0, Locs[LOC_ARTHAS]);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_405, 3000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_405:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
c->AI()->Talk(SAY_STAGE_4_03);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_406, 7000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_406:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_LichKingGUID) )
|
||||
|
|
@ -1301,36 +1288,39 @@ public:
|
|||
c->AI()->Talk(SAY_STAGE_4_04);
|
||||
c->HandleEmoteCommand(EMOTE_ONESHOT_LAUGH);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_406_2, 2500);
|
||||
events.RescheduleEvent(EVENT_SCENE_407, 12000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_406_2:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_LichKingGUID) )
|
||||
{
|
||||
c->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK);
|
||||
events.PopEvent();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case EVENT_SCENE_407:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_LichKingGUID) )
|
||||
c->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_408, 4000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_408:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_LichKingGUID) )
|
||||
{
|
||||
c->HandleEmoteCommand(EMOTE_ONESHOT_KNEEL);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_409, 1500);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_409:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_LichKingGUID) )
|
||||
|
|
@ -1346,10 +1336,10 @@ public:
|
|||
InstanceProgress = INSTANCE_PROGRESS_ANUB_ARAK;
|
||||
SpawnAnubArak();
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_410, 2000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_410:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_LichKingGUID) )
|
||||
|
|
@ -1358,9 +1348,9 @@ public:
|
|||
c->AI()->Talk(SAY_STAGE_4_05);
|
||||
c->DespawnOrUnsummon(0);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_501:
|
||||
{
|
||||
if( Creature* c = instance->GetCreature(NPC_TirionGUID) )
|
||||
|
|
@ -1369,10 +1359,10 @@ public:
|
|||
c->SummonCreature(NPC_ARGENT_MAGE, Locs[LOC_MAGE].GetPositionX(), Locs[LOC_MAGE].GetPositionY(), Locs[LOC_MAGE].GetPositionZ(), Locs[LOC_MAGE].GetOrientation());
|
||||
c->SummonGameObject(195682, 668.15f, 134.57f, 142.12f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 630000000);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_502, 20000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_502:
|
||||
{
|
||||
if( instance->IsHeroic() )
|
||||
|
|
@ -1420,10 +1410,9 @@ public:
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ public:
|
|||
if (me->isAttackReady())
|
||||
me->SetFacingToObject(me->GetVictim());
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -159,7 +159,7 @@ public:
|
|||
me->CastSpell(me, SPELL_SOULSTORM, false);
|
||||
me->CastSpell(me, SPELL_TELEPORT_VISUAL, true);
|
||||
me->CastSpell(me, SPELL_SOULSTORM_VISUAL, true);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ public:
|
|||
if (Spell* s = me->GetCurrentSpell(CURRENT_CHANNELED_SPELL))
|
||||
if (s->m_spellInfo->Id == SPELL_MIRRORED_SOUL)
|
||||
{
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -190,7 +190,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -67,12 +67,12 @@ public:
|
|||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
events.Update(diff);
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
events.PopEvent();
|
||||
|
||||
if (me->GetEntry() == NPC_JAINA_PART1)
|
||||
{
|
||||
Talk(SAY_JAINA_INTRO_1);
|
||||
|
|
@ -85,7 +85,7 @@ public:
|
|||
}
|
||||
break;
|
||||
case 2:
|
||||
events.PopEvent();
|
||||
|
||||
if (me->GetEntry() == NPC_JAINA_PART1)
|
||||
{
|
||||
Talk(SAY_JAINA_INTRO_2);
|
||||
|
|
@ -98,7 +98,7 @@ public:
|
|||
}
|
||||
break;
|
||||
case 3:
|
||||
events.PopEvent();
|
||||
|
||||
if (me->GetEntry() == NPC_JAINA_PART1)
|
||||
{
|
||||
Talk(SAY_JAINA_INTRO_3);
|
||||
|
|
@ -111,7 +111,7 @@ public:
|
|||
}
|
||||
break;
|
||||
case 4:
|
||||
events.PopEvent();
|
||||
|
||||
if (me->GetEntry() == NPC_JAINA_PART1)
|
||||
{
|
||||
Talk(SAY_JAINA_INTRO_4);
|
||||
|
|
@ -124,7 +124,7 @@ public:
|
|||
}
|
||||
break;
|
||||
case 5:
|
||||
events.PopEvent();
|
||||
|
||||
if (me->GetEntry() == NPC_JAINA_PART1)
|
||||
{
|
||||
Talk(SAY_JAINA_INTRO_5);
|
||||
|
|
@ -137,7 +137,7 @@ public:
|
|||
}
|
||||
break;
|
||||
case 6:
|
||||
events.PopEvent();
|
||||
|
||||
if (me->GetEntry() == NPC_JAINA_PART1)
|
||||
{
|
||||
Talk(SAY_JAINA_INTRO_6);
|
||||
|
|
@ -149,7 +149,7 @@ public:
|
|||
}
|
||||
break;
|
||||
case 7:
|
||||
events.PopEvent();
|
||||
|
||||
if (me->GetEntry() == NPC_JAINA_PART1)
|
||||
{
|
||||
Talk(SAY_JAINA_INTRO_7);
|
||||
|
|
@ -157,7 +157,7 @@ public:
|
|||
}
|
||||
break;
|
||||
case 8:
|
||||
events.PopEvent();
|
||||
|
||||
if (me->GetEntry() == NPC_JAINA_PART1)
|
||||
{
|
||||
Talk(SAY_JAINA_INTRO_8);
|
||||
|
|
|
|||
|
|
@ -223,7 +223,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -244,7 +244,7 @@ public:
|
|||
me->GetMotionMaster()->MoveJump(northForgePos.GetPositionX(), northForgePos.GetPositionY(), northForgePos.GetPositionZ(), 25.0f, 15.0f, 0);
|
||||
else if (phase == 2)
|
||||
me->GetMotionMaster()->MoveJump(southForgePos.GetPositionX(), southForgePos.GetPositionY(), southForgePos.GetPositionZ(), 25.0f, 15.0f, 0);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SPELL_CHILLING_WAVE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_CHILLING_WAVE, false);
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING | UNIT_STATE_STUNNED))
|
||||
return;
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -202,7 +202,7 @@ public:
|
|||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SPECIAL:
|
||||
switch(urand(0, 2))
|
||||
|
|
@ -298,7 +298,7 @@ public:
|
|||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
events.Update(diff);
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -315,7 +315,7 @@ public:
|
|||
c->AI()->Reset();
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(1, 3000);
|
||||
break;
|
||||
case 1:
|
||||
|
|
@ -335,7 +335,7 @@ public:
|
|||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_GUARD_1_GUID + i)))
|
||||
c->DespawnOrUnsummon();
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(2, 7000);
|
||||
break;
|
||||
case 2:
|
||||
|
|
@ -350,12 +350,12 @@ public:
|
|||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_FIRST_GUID)))
|
||||
c->AI()->Talk(c->GetEntry() == NPC_JAINA_PART1 ? SAY_JAINA_KRICK_1 : SAY_SYLVANAS_KRICK_1);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(3, 6500);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_OUTRO_KRICK_2);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(4, 17000);
|
||||
break;
|
||||
case 4:
|
||||
|
|
@ -366,12 +366,12 @@ public:
|
|||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_FIRST_GUID)))
|
||||
c->AI()->Talk(c->GetEntry() == NPC_JAINA_PART1 ? SAY_JAINA_KRICK_2 : SAY_SYLVANAS_KRICK_2);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(5, 6500);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_OUTRO_KRICK_3);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(6, 6500);
|
||||
break;
|
||||
case 6:
|
||||
|
|
@ -381,7 +381,7 @@ public:
|
|||
c->SetFacingToObject(me);
|
||||
c->AI()->Talk(SAY_TYRANNUS_KRICK_1);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(7, 4000);
|
||||
break;
|
||||
case 7:
|
||||
|
|
@ -392,12 +392,12 @@ public:
|
|||
me->SendMovementFlagUpdate();
|
||||
me->GetMotionMaster()->MoveTakeoff(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 9.0f, 0.5f * 7.0f);
|
||||
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(8, 2000);
|
||||
break;
|
||||
case 8:
|
||||
Talk(SAY_OUTRO_KRICK_4);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(9, 1500);
|
||||
break;
|
||||
case 9:
|
||||
|
|
@ -415,14 +415,14 @@ public:
|
|||
|
||||
me->RemoveAllAuras();
|
||||
me->GetMotionMaster()->MoveFall(0, true);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(10, 5000);
|
||||
break;
|
||||
case 10:
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
|
||||
c->AI()->Talk(SAY_TYRANNUS_KRICK_2);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(11, 9000);
|
||||
break;
|
||||
case 11:
|
||||
|
|
@ -438,7 +438,7 @@ public:
|
|||
}
|
||||
me->setActive(false);
|
||||
Unit::Kill(me, me);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -146,7 +146,7 @@ public:
|
|||
if (me->IsWithinMeleeRange(me->GetVictim()))
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_FORCEFUL_SMASH, false);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(EVENT_SPELL_UNHOLY_POWER, 1000);
|
||||
break;
|
||||
}
|
||||
|
|
@ -156,7 +156,7 @@ public:
|
|||
Talk(SAY_SMASH);
|
||||
Talk(EMOTE_SMASH);
|
||||
me->CastSpell(me, SPELL_UNHOLY_POWER, false);
|
||||
events.PopEvent();
|
||||
|
||||
events.ScheduleEvent(EVENT_SPELL_FORCEFUL_SMASH, urand(40000, 48000));
|
||||
break;
|
||||
case EVENT_SPELL_OVERLORDS_BRAND:
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ public:
|
|||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
events.Update(diff);
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -88,7 +88,7 @@ public:
|
|||
}
|
||||
else
|
||||
{
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(2, 2500);
|
||||
}
|
||||
}
|
||||
|
|
@ -100,14 +100,14 @@ public:
|
|||
c->setActive(true);
|
||||
c->AI()->Talk(SAY_TYRANNUS_INTRO_1);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(3, 7000);
|
||||
break;
|
||||
case 3:
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
|
||||
c->AI()->Talk(SAY_TYRANNUS_INTRO_2);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(4, 14000);
|
||||
break;
|
||||
case 4:
|
||||
|
|
@ -148,19 +148,19 @@ public:
|
|||
}
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(5, 1);
|
||||
break;
|
||||
case 5:
|
||||
Talk(me->GetEntry() == NPC_JAINA_PART1 ? SAY_JAINA_INTRO_1 : SAY_SYLVANAS_INTRO_1);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(6, 1000);
|
||||
break;
|
||||
case 6:
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
|
||||
c->AI()->Talk(SAY_TYRANNUS_INTRO_3);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(7, 5000);
|
||||
break;
|
||||
case 7:
|
||||
|
|
@ -190,14 +190,14 @@ public:
|
|||
c->GetMotionMaster()->MoveTakeoff(0, c->GetPositionX() + dist * cos(angle), c->GetPositionY() + dist * sin(angle), c->GetPositionZ() + 6.0f + (float)urand(0, 4), 1.5f + frand(0.0f, 1.5f));
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(8, 7000);
|
||||
break;
|
||||
case 8:
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
|
||||
c->CastSpell(c, 69753, false);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(9, 400);
|
||||
break;
|
||||
case 9:
|
||||
|
|
@ -211,12 +211,12 @@ public:
|
|||
c->RemoveAllAuras();
|
||||
c->GetMotionMaster()->MoveFall(0, true);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(10, 1000);
|
||||
break;
|
||||
case 10:
|
||||
Talk(me->GetEntry() == NPC_JAINA_PART1 ? SAY_JAINA_INTRO_2 : SAY_SYLVANAS_INTRO_2);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(11, 1000);
|
||||
break;
|
||||
case 11:
|
||||
|
|
@ -232,7 +232,7 @@ public:
|
|||
c->SendMovementFlagUpdate();
|
||||
c->CastSpell(c, 69350, true);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(12, 2000);
|
||||
break;
|
||||
case 12:
|
||||
|
|
@ -253,7 +253,7 @@ public:
|
|||
c->SetReactState(REACT_PASSIVE);
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(13, 3000);
|
||||
break;
|
||||
case 13:
|
||||
|
|
@ -273,7 +273,7 @@ public:
|
|||
c->SetHomePosition(me->GetPositionX() + dist * cos(angle), me->GetPositionY() + dist * sin(angle), me->GetPositionZ(), 0.0f);
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(14, 2000);
|
||||
break;
|
||||
case 14:
|
||||
|
|
@ -292,7 +292,7 @@ public:
|
|||
c->CastSpell(c, 70513, false);
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(15, 2000);
|
||||
break;
|
||||
case 15:
|
||||
|
|
@ -308,7 +308,7 @@ public:
|
|||
c->CastSpell(c, 70464, false);
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(16, 3000);
|
||||
break;
|
||||
case 16:
|
||||
|
|
@ -333,13 +333,13 @@ public:
|
|||
}
|
||||
pInstance->SetData(DATA_INSTANCE_PROGRESS, INSTANCE_PROGRESS_FINISHED_INTRO);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(17, 5000);
|
||||
break;
|
||||
case 17:
|
||||
me->setActive(false);
|
||||
Talk(me->GetEntry() == NPC_JAINA_PART1 ? SAY_JAINA_INTRO_5 : SAY_SYLVANAS_INTRO_4);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -457,7 +457,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -520,7 +520,7 @@ public:
|
|||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
events.Update(diff);
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -542,19 +542,18 @@ public:
|
|||
c->GetMotionMaster()->MovePath(FBSData[i].pathId, false);
|
||||
++i;
|
||||
}
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(2, 3000);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
if (Creature* c = me->SummonCreature(NPC_TYRANNUS_VOICE, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() - 10.0f, me->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN, 1))
|
||||
c->AI()->Talk(SAY_TYRANNUS_GARFROST);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(3, 4000);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_GENERAL_GARFROST);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1210,7 +1209,7 @@ public:
|
|||
{
|
||||
events.Update(diff);
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -1223,26 +1222,26 @@ public:
|
|||
c->SetHover(true);
|
||||
c->GetMotionMaster()->MovePoint(0, TSSindragosaPos2);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case 2:
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_MARTIN_OR_GORKUN_GUID)))
|
||||
c->AI()->Talk(SAY_GENERAL_OUTRO_2);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(3, me->GetEntry() == NPC_JAINA_PART2 ? 7000 : 8000);
|
||||
break;
|
||||
case 3:
|
||||
Talk(me->GetEntry() == NPC_JAINA_PART2 ? SAY_JAINA_OUTRO_1 : SAY_SYLVANAS_OUTRO_1);
|
||||
me->CastSpell(me, me->GetEntry() == NPC_JAINA_PART2 ? SPELL_TELEPORT_JAINA_VISUAL : SPELL_TELEPORT_SYLVANAS_VISUAL, true);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(4, 2000);
|
||||
break;
|
||||
case 4:
|
||||
me->CastSpell(me, me->GetEntry() == NPC_JAINA_PART2 ? SPELL_TELEPORT_JAINA : SPELL_TELEPORT_SYLVANAS, true);
|
||||
if (GameObject* barrier = me->SummonGameObject(203005, 1055.49f, 115.03f, 628.15f, 2.08f, 0.0f, 0.0f, 0.0f, 0.0f, 86400, false))
|
||||
barrierGUID = barrier->GetGUID();
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(5, 1500);
|
||||
break;
|
||||
case 5:
|
||||
|
|
@ -1252,7 +1251,7 @@ public:
|
|||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SINDRAGOSA_GUID)))
|
||||
c->CastSpell(x->GetPositionX(), x->GetPositionY(), x->GetPositionZ(), SPELL_SINDRAGOSA_FROST_BOMB_POS, true);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(6, 5000);
|
||||
events.RescheduleEvent(10, 2000);
|
||||
break;
|
||||
|
|
@ -1260,7 +1259,7 @@ public:
|
|||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SINDRAGOSA_GUID)))
|
||||
c->GetMotionMaster()->MovePoint(0, TSSindragosaPos1);
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(7, 4500);
|
||||
break;
|
||||
case 7:
|
||||
|
|
@ -1270,17 +1269,16 @@ public:
|
|||
if (GameObject* barrier = pInstance->instance->GetGameObject(barrierGUID))
|
||||
barrier->Delete();
|
||||
barrierGUID = 0;
|
||||
events.PopEvent();
|
||||
|
||||
events.RescheduleEvent(8, 2000);
|
||||
break;
|
||||
case 8:
|
||||
me->GetMotionMaster()->MovePath(me->GetEntry() == NPC_JAINA_PART2 ? PATH_BEGIN_VALUE + 16 : PATH_BEGIN_VALUE + 17, false);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case 10:
|
||||
if (Creature* x = pInstance->instance->GetCreature(pInstance->GetData64(DATA_MARTIN_OR_GORKUN_GUID)))
|
||||
x->AI()->DoAction(3);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1448,7 +1446,6 @@ public:
|
|||
|
||||
class spell_pos_rimefang_frost_novaSpellScript : public SpellScript
|
||||
{
|
||||
|
||||
PrepareSpellScript(spell_pos_rimefang_frost_novaSpellScript);
|
||||
|
||||
void HandleDummy(SpellEffIndex /*effIndex*/)
|
||||
|
|
|
|||
|
|
@ -325,38 +325,31 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING) && !(events.GetPhaseMask() & PHASE_INTRO_MASK))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case EVENT_INTRO_2:
|
||||
Talk(SAY_INTRO_2);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_INTRO_3:
|
||||
Talk(SAY_INTRO_3);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_INTRO_4:
|
||||
Talk(SAY_INTRO_4);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_INTRO_5:
|
||||
Talk(SAY_INTRO_5);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_INTRO_6:
|
||||
Talk(SAY_INTRO_6);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_INTRO_7:
|
||||
Talk(SAY_INTRO_7);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_BERSERK:
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
Talk(SAY_BERSERK);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_DEATH_AND_DECAY:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
|
||||
|
|
@ -723,7 +716,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_FANATIC_NECROTIC_STRIKE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_NECROTIC_STRIKE, false);
|
||||
|
|
@ -749,7 +742,6 @@ public:
|
|||
|
||||
if (Creature* ladyDeathwhisper = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_LADY_DEATHWHISPER)))
|
||||
ladyDeathwhisper->AI()->Talk(SAY_ANIMATE_DEAD);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_CULTIST_DARK_MARTYRDOM:
|
||||
me->CastSpell(me, SPELL_PERMANENT_FEIGN_DEATH, true);
|
||||
|
|
@ -761,8 +753,6 @@ public:
|
|||
Reset();
|
||||
events.ScheduleEvent(EVENT_CULTIST_DARK_MARTYRDOM_REVIVE, 6000);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
|
|
@ -839,7 +829,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_ADHERENT_FROST_FEVER:
|
||||
me->CastSpell(me->GetVictim(), SPELL_FROST_FEVER, false);
|
||||
|
|
@ -873,7 +863,6 @@ public:
|
|||
|
||||
if (Creature* ladyDeathwhisper = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_LADY_DEATHWHISPER)))
|
||||
ladyDeathwhisper->AI()->Talk(SAY_ANIMATE_DEAD);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_CULTIST_DARK_MARTYRDOM:
|
||||
me->CastSpell(me, SPELL_PERMANENT_FEIGN_DEATH, true);
|
||||
|
|
@ -1072,7 +1061,7 @@ public:
|
|||
return;
|
||||
}
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_DARNAVAN_BLADESTORM:
|
||||
me->CastSpell((Unit*)nullptr, SPELL_BLADESTORM, false);
|
||||
|
|
@ -1080,7 +1069,6 @@ public:
|
|||
break;
|
||||
case EVENT_DARNAVAN_CHARGE:
|
||||
_canCharge = true;
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_DARNAVAN_INTIMIDATING_SHOUT:
|
||||
me->CastSpell((Unit*)nullptr, SPELL_INTIMIDATING_SHOUT, false);
|
||||
|
|
@ -1092,7 +1080,6 @@ public:
|
|||
break;
|
||||
case EVENT_DARNAVAN_SHATTERING_THROW:
|
||||
_canShatter = true;
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_DARNAVAN_SUNDER_ARMOR:
|
||||
me->CastSpell(me->GetVictim(), SPELL_SUNDER_ARMOR, false);
|
||||
|
|
|
|||
|
|
@ -154,13 +154,12 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case EVENT_ENABLE_BONE_SLICE:
|
||||
_boneSlice = true;
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_BONE_SPIKE_GRAVEYARD:
|
||||
{
|
||||
|
|
@ -177,7 +176,6 @@ public:
|
|||
break;
|
||||
case EVENT_SPELL_COLDFLAME_BONE_STORM:
|
||||
me->CastSpell(me, SPELL_COLDFLAME_BONE_STORM, false);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_WARN_BONE_STORM:
|
||||
_boneSlice = false;
|
||||
|
|
@ -196,7 +194,6 @@ public:
|
|||
uint32 _boneStormDuration = RAID_MODE<uint32>(20000, 30000, 20000, 30000);
|
||||
if (Aura* pStorm = me->GetAura(SPELL_BONE_STORM))
|
||||
pStorm->SetDuration(int32(_boneStormDuration));
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_BONE_STORM_MOVE, 0);
|
||||
events.ScheduleEvent(EVENT_END_BONE_STORM, _boneStormDuration + 1);
|
||||
}
|
||||
|
|
@ -229,7 +226,6 @@ public:
|
|||
me->GetMotionMaster()->MovementExpired();
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
DoStartMovement(me->GetVictim());
|
||||
events.PopEvent();
|
||||
events.CancelEvent(EVENT_BONE_STORM_MOVE);
|
||||
events.ScheduleEvent(EVENT_ENABLE_BONE_SLICE, 10000);
|
||||
if (!IsHeroic())
|
||||
|
|
@ -238,7 +234,6 @@ public:
|
|||
case EVENT_ENRAGE:
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
Talk(SAY_BERSERK);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -327,7 +322,7 @@ public:
|
|||
{
|
||||
events.Update(diff);
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -340,7 +335,6 @@ public:
|
|||
float ny = me->GetPositionY() + 5.0f * sin(me->GetOrientation());
|
||||
if (!me->IsWithinLOS(nx, ny, 42.5f))
|
||||
{
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
me->NearTeleportTo(nx, ny, 42.5f, me->GetOrientation());
|
||||
|
|
|
|||
|
|
@ -1686,7 +1686,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING) || me->isFeared() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED) || ((me->GetEntry() == NPC_YMIRJAR_DEATHBRINGER || me->GetEntry() == NPC_YMIRJAR_FROSTBINDER) && me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED)))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -1712,7 +1712,6 @@ public:
|
|||
break;
|
||||
case 4: // Summon Warhawk
|
||||
me->CastSpell(me, 71705, false);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case 11: // Whirlwind
|
||||
me->CastSpell(me->GetVictim(), 41056, false);
|
||||
|
|
@ -1728,7 +1727,6 @@ public:
|
|||
break;
|
||||
case 31: // Arctic Chill
|
||||
me->CastSpell(me, 71270, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case 32: // Frozen Orb
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_FARTHEST, 0, 30.0f, true))
|
||||
|
|
@ -1748,7 +1746,6 @@ public:
|
|||
events.RepeatEvent(45000);
|
||||
break;
|
||||
default:
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -2582,7 +2579,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -2647,7 +2644,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -2702,7 +2699,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -2764,7 +2761,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -2883,7 +2880,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -3006,7 +3003,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
if (uint32 e = events.GetEvent())
|
||||
if (uint32 e = events.ExecuteEvent())
|
||||
{
|
||||
Unit* target = nullptr;
|
||||
if (sesi_spells[e - 1].targetType == 1)
|
||||
|
|
@ -3105,7 +3102,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 1:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 40.0f, true))
|
||||
|
|
@ -3255,7 +3252,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 1:
|
||||
if (me->GetVictim() && !me->GetVictim()->HasAura(71163) && me->GetVictim()->GetDistance(me) > 5.0f && me->GetVictim()->GetDistance(me) < 30.0f)
|
||||
|
|
@ -3396,7 +3393,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -171,7 +171,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_IMPALE:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||
|
|
@ -190,7 +190,7 @@ public:
|
|||
}
|
||||
case EVENT_SPELL_BERSERK:
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_POISON_BOLT:
|
||||
if (!me->HasAura(SPELL_WIDOWS_EMBRACE))
|
||||
|
|
|
|||
|
|
@ -301,7 +301,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_MARK_CAST:
|
||||
me->CastSpell(me, TABLE_SPELL_MARK[horsemanId], false);
|
||||
|
|
@ -310,7 +310,7 @@ public:
|
|||
case EVENT_BERSERK:
|
||||
Talk(SAY_SPECIAL);
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
events.PopEvent();
|
||||
|
||||
return;
|
||||
case EVENT_SPELL_PRIMARY:
|
||||
Talk(SAY_TAUNT);
|
||||
|
|
|
|||
|
|
@ -162,11 +162,11 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_BERSERK:
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SPELL_ENRAGE:
|
||||
Talk(EMOTE_ENRAGE);
|
||||
|
|
|
|||
|
|
@ -385,19 +385,19 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_INTRO_2:
|
||||
Talk(SAY_INTRO_2);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_INTRO_3:
|
||||
Talk(SAY_INTRO_3);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_INTRO_4:
|
||||
Talk(SAY_INTRO_4);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SPELL_SHADOW_BOLT:
|
||||
me->CastSpell(me->GetVictim(), RAID_MODE(SPELL_SHADOW_BOLT_10, SPELL_SHADOW_BOLT_25), false);
|
||||
|
|
@ -429,7 +429,7 @@ public:
|
|||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
|
||||
events.CancelEvent(EVENT_TELEPORT);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
events.RepeatEvent(1000);
|
||||
|
|
@ -455,7 +455,7 @@ public:
|
|||
events.ScheduleEvent(EVENT_SPELL_HARVEST_SOUL, urand(5000, 15000));
|
||||
events.ScheduleEvent(EVENT_TELEPORT, 20000);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH, 1000);
|
||||
events.PopEvent();
|
||||
|
||||
}
|
||||
|
||||
waveCount++;
|
||||
|
|
@ -471,7 +471,7 @@ public:
|
|||
gateOpened = true;
|
||||
Talk(EMOTE_GATE_OPENED);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -583,7 +583,7 @@ public:
|
|||
if (me->GetUnitState() == UNIT_STATE_CASTING)
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_DEATH_PLAGUE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_DEATH_PLAGUE, false);
|
||||
|
|
@ -659,7 +659,6 @@ public:
|
|||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
class spell_gothik_shadow_bolt_volley : public SpellScriptLoader
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_POISON_CLOUD:
|
||||
me->CastSpell(me, SPELL_POISON_CLOUD, true);
|
||||
|
|
@ -148,7 +148,7 @@ public:
|
|||
break;
|
||||
case EVENT_SPELL_BERSERK:
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SPELL_SLIME_SPRAY:
|
||||
Talk(EMOTE_SLIME);
|
||||
|
|
|
|||
|
|
@ -162,7 +162,7 @@ public:
|
|||
//if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
// return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_SPELL_DISRUPTION:
|
||||
me->CastSpell(me, SPELL_SPELL_DISRUPTION, false);
|
||||
|
|
@ -208,7 +208,6 @@ public:
|
|||
{
|
||||
if (IsInRoom(itr.GetSource()) && !itr.GetSource()->IsAlive())
|
||||
{
|
||||
events.PopEvent();
|
||||
pInstance->SetData(DATA_DANCE_FAIL, 0);
|
||||
pInstance->SetData(DATA_IMMORTAL_FAIL, 0);
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -265,7 +265,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_FLOOR_CHANGE:
|
||||
if (pInstance)
|
||||
|
|
@ -277,7 +277,7 @@ public:
|
|||
go->SetPhaseMask(2, true);
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SUMMON_SOLDIER:
|
||||
if (Creature* cr = me->SummonCreature(NPC_SOLDIER_OF_THE_FROZEN_WASTES, SummonPositions[urand(0, 5)], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 20000))
|
||||
|
|
@ -386,7 +386,6 @@ public:
|
|||
case EVENT_SECOND_PHASE_HEALTH_CHECK:
|
||||
if (me->HealthBelowPct(45))
|
||||
{
|
||||
events.PopEvent();
|
||||
Talk(SAY_REQUEST_AID);
|
||||
events.DelayEvents(5500);
|
||||
events.ScheduleEvent(EVENT_THIRD_PHASE_LICH_KING_SAY, 5000);
|
||||
|
|
@ -401,7 +400,7 @@ public:
|
|||
|
||||
for (uint8 i = 0 ; i < RAID_MODE(2, 4); ++i)
|
||||
events.ScheduleEvent(EVENT_SUMMON_GUARDIAN_OF_ICECROWN, 10000 + (i * 5000));
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SUMMON_GUARDIAN_OF_ICECROWN:
|
||||
if (Creature* cr = me->SummonCreature(NPC_GUARDIAN_OF_ICECROWN, SummonPositions[RAND(0, 1, 3, 4)]))
|
||||
|
|
@ -410,7 +409,6 @@ public:
|
|||
cr->AI()->AttackStart(me->GetVictim());
|
||||
}
|
||||
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -519,7 +517,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_MINION_SPELL_MORTAL_WOUND:
|
||||
me->CastSpell(me->GetVictim(), SPELL_MORTAL_WOUND, false);
|
||||
|
|
@ -529,7 +527,7 @@ public:
|
|||
if (me->HealthBelowPct(35))
|
||||
{
|
||||
me->CastSpell(me, SPELL_FRENZY, true);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
events.RepeatEvent(1000);
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SUMMON_SPORE:
|
||||
me->CastSpell(me, SPELL_SUMMON_SPORE, true);
|
||||
|
|
@ -140,7 +140,7 @@ public:
|
|||
break;
|
||||
case EVENT_SPELL_BERSERK:
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_WEB_SPRAY:
|
||||
Talk(EMOTE_WEB_SPRAY);
|
||||
|
|
@ -169,7 +169,7 @@ public:
|
|||
if (me->GetHealthPct() < 30)
|
||||
{
|
||||
me->CastSpell(me, RAID_MODE(SPELL_FRENZY_10, SPELL_FRENZY_25), true);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
// GROUND
|
||||
case EVENT_SPELL_CURSE:
|
||||
|
|
@ -202,13 +202,12 @@ public:
|
|||
case EVENT_SUMMON_PLAGUED_WARRIOR_REAL:
|
||||
me->CastSpell(me, SPELL_SUMMON_PLAGUED_WARRIORS, true);
|
||||
SummonHelper(NPC_PLAGUED_WARRIOR, RAID_MODE(2, 3));
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_MOVE_TO_BALCONY:
|
||||
Talk(EMOTE_TELEPORT_BALCONY);
|
||||
me->CastSpell(me, SPELL_TELEPORT, true);
|
||||
StartBalconyPhase();
|
||||
//events.PopEvent(); events.Reset()!!
|
||||
// events.Reset()!!
|
||||
break;
|
||||
case EVENT_SPELL_BLINK:
|
||||
DoResetThreat();
|
||||
|
|
@ -234,7 +233,6 @@ public:
|
|||
}
|
||||
else
|
||||
SummonHelper(NPC_PLAGUED_GUARDIAN, RAID_MODE(2, 4));
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_MOVE_TO_GROUND:
|
||||
Talk(EMOTE_TELEPORT_BACK);
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_HATEFUL_STRIKE:
|
||||
{
|
||||
|
|
@ -157,7 +157,7 @@ public:
|
|||
Talk(EMOTE_BERSERK);
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
events.ScheduleEvent(EVENT_SPELL_SLIME_BOLT, 2000);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SPELL_SLIME_BOLT:
|
||||
me->CastSpell(me, SPELL_SLIME_BOLT, false);
|
||||
|
|
@ -168,7 +168,7 @@ public:
|
|||
{
|
||||
Talk(EMOTE_ENRAGE);
|
||||
me->CastSpell(me, SPELL_FRENZY, true);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
events.RepeatEvent(1000);
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_UNBALANCING_STRIKE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_UNBALANCING_STRIKE, false);
|
||||
|
|
@ -214,7 +214,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING) || me->IsCharmed())
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_MINION_BLOOD_STRIKE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_BLOOD_STRIKE, false);
|
||||
|
|
|
|||
|
|
@ -234,12 +234,11 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_BERSERK:
|
||||
Talk(EMOTE_ENRAGE);
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
events.PopEvent();
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
return;
|
||||
case EVENT_SPELL_CLEAVE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_CLEAVE, false);
|
||||
|
|
@ -269,7 +268,7 @@ public:
|
|||
case EVENT_FLIGHT_START:
|
||||
if (me->HealthBelowPct(11))
|
||||
{
|
||||
events.PopEvent();
|
||||
|
||||
return;
|
||||
}
|
||||
events.RepeatEvent(45000);
|
||||
|
|
@ -287,13 +286,11 @@ public:
|
|||
me->SetDisableGravity(true);
|
||||
me->SetHover(true);
|
||||
currentTarget = 0;
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_FLIGHT_ICEBOLT, 3000);
|
||||
iceboltCount = RAID_MODE(2, 3);
|
||||
return;
|
||||
case EVENT_FLIGHT_ICEBOLT:
|
||||
{
|
||||
events.PopEvent();
|
||||
if (currentTarget)
|
||||
if (Unit* target = ObjectAccessor::GetUnit(*me, currentTarget))
|
||||
me->SummonGameObject(GO_ICE_BLOCK, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), target->GetOrientation(), 0.0f, 0.0f, 0.0f, 0.0f, 0);
|
||||
|
|
@ -335,11 +332,9 @@ public:
|
|||
Talk(EMOTE_BREATH);
|
||||
me->CastSpell(me, SPELL_FROST_MISSILE, false);
|
||||
events.ScheduleEvent(EVENT_FLIGHT_SPELL_EXPLOSION, 8500);
|
||||
events.PopEvent();
|
||||
return;
|
||||
case EVENT_FLIGHT_SPELL_EXPLOSION:
|
||||
me->CastSpell(me, SPELL_FROST_EXPLOSION, true);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_FLIGHT_START_LAND, 3000);
|
||||
return;
|
||||
case EVENT_FLIGHT_START_LAND:
|
||||
|
|
@ -351,20 +346,18 @@ public:
|
|||
blockList.clear();
|
||||
me->RemoveAllGameObjects();
|
||||
events.ScheduleEvent(EVENT_LAND, 1000);
|
||||
events.PopEvent();
|
||||
return;
|
||||
case EVENT_LAND:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_LAND);
|
||||
me->SetDisableGravity(false);
|
||||
|
||||
me->SetHover(false);
|
||||
events.PopEvent();
|
||||
|
||||
events.ScheduleEvent(EVENT_GROUND, 1500);
|
||||
return;
|
||||
case EVENT_GROUND:
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->SetInCombatWithZone();
|
||||
events.PopEvent();
|
||||
return;
|
||||
case EVENT_HUNDRED_CLUB:
|
||||
{
|
||||
|
|
@ -373,7 +366,6 @@ public:
|
|||
{
|
||||
if (itr.GetSource()->GetResistance(SPELL_SCHOOL_FROST) > 100 && pInstance)
|
||||
{
|
||||
events.PopEvent();
|
||||
pInstance->SetData(DATA_HUNDRED_CLUB, 0);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -256,14 +256,13 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_THADDIUS_START:
|
||||
StartEvent();
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_THADDIUS_START_2:
|
||||
events.PopEvent();
|
||||
|
||||
Talk(SAY_AGGRO);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->SetControlled(false, UNIT_STATE_STUNNED);
|
||||
|
|
@ -277,7 +276,7 @@ public:
|
|||
return;
|
||||
case EVENT_THADDIUS_SPELL_BERSERK:
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_THADDIUS_SPELL_CHAIN_LIGHTNING:
|
||||
me->CastSpell(me->GetVictim(), RAID_MODE(SPELL_CHAIN_LIGHTNING_10, SPELL_CHAIN_LIGHTNING_25), false);
|
||||
|
|
@ -289,7 +288,7 @@ public:
|
|||
break;
|
||||
case EVENT_ACTIVATE_BALL_LIGHTNING:
|
||||
ballLightningEnabled = true;
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -454,7 +453,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_MINION_SPELL_POWER_SURGE:
|
||||
me->CastSpell(me, RAID_MODE(SPELL_POWER_SURGE_10, SPELL_POWER_SURGE_25), false);
|
||||
|
|
|
|||
|
|
@ -822,7 +822,7 @@ public:
|
|||
if (Creature* kelthuzad = instance->GetCreature(_kelthuzadGUID))
|
||||
kelthuzad->AI()->Talk(_currentWingTaunt);
|
||||
++_currentWingTaunt;
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -371,14 +371,14 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case EVENT_BERSERK:
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
Talk(EMOTE_BERSERK);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_INTRO_MOVE_CENTER:
|
||||
{
|
||||
|
|
@ -393,15 +393,13 @@ public:
|
|||
float z = FourSidesPos[0].GetPositionZ();
|
||||
me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
me->GetMotionMaster()->MovePoint(MI_POINT_INTRO_CENTER_AIR, x, y, z);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_INTRO_LAND:
|
||||
{
|
||||
me->GetMotionMaster()->MoveLand(MI_POINT_INTRO_LAND, me->GetPositionX(), me->GetPositionY(), CenterPos.GetPositionZ(), 7.0f);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_START_FIGHT:
|
||||
{
|
||||
if (pInstance)
|
||||
|
|
@ -415,7 +413,6 @@ public:
|
|||
AttackStart(target);
|
||||
me->GetMotionMaster()->MoveChase(target);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
events.SetPhase(PHASE_ONE);
|
||||
events.RescheduleEvent(EVENT_BERSERK, 600000, 0);
|
||||
|
|
@ -423,9 +420,8 @@ public:
|
|||
events.RescheduleEvent(EVENT_SPELL_ARCANE_STORM, urand(2000, 5000), 1);
|
||||
events.RescheduleEvent(EVENT_SUMMON_POWER_SPARK, urand(10000, 15000), 1);
|
||||
events.RescheduleEvent(EVENT_START_VORTEX_0, 30000, 1);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case EVENT_SPELL_ARCANE_BREATH:
|
||||
me->CastSpell(me->GetVictim(), SPELL_ARCANE_BREATH, false);
|
||||
events.RepeatEvent(urand(12000, 15000));
|
||||
|
|
@ -467,20 +463,18 @@ public:
|
|||
me->SendMovementFlagUpdate();
|
||||
me->GetMotionMaster()->MoveTakeoff(MI_POINT_VORTEX_TAKEOFF, me->GetPositionX(), me->GetPositionY(), CenterPos.GetPositionZ() + 20.0f, 7.0f);
|
||||
|
||||
events.PopEvent();
|
||||
events.DelayEvents(25000, 1); // don't delay berserk (group 0)
|
||||
}
|
||||
break;
|
||||
case EVENT_VORTEX_FLY_TO_CENTER:
|
||||
me->GetMotionMaster()->MovePoint(MI_POINT_VORTEX_CENTER, CenterPos.GetPositionX(), CenterPos.GetPositionY(), CenterPos.GetPositionZ() + 20.0f);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_START_VORTEX_REAL:
|
||||
me->SendMeleeAttackStop(me->GetVictim());
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_CUSTOM_SPELL_01);
|
||||
me->HandleEmoteCommand(EMOTE_STATE_CUSTOM_SPELL_01);
|
||||
|
||||
{
|
||||
me->SendMeleeAttackStop(me->GetVictim());
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_CUSTOM_SPELL_01);
|
||||
me->HandleEmoteCommand(EMOTE_STATE_CUSTOM_SPELL_01);
|
||||
|
||||
Position pos;
|
||||
float angle = (me->GetOrientation() >= M_PI / 4 ? me->GetOrientation() - M_PI / 4 : 7 * M_PI / 4 + me->GetOrientation());
|
||||
pos.m_positionX = CenterPos.GetPositionX() + cos(angle) * 40.0f;
|
||||
|
|
@ -537,13 +531,13 @@ public:
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
events.RescheduleEvent(EVENT_VORTEX_LAND_0, 11000, 1);
|
||||
break;
|
||||
}
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(EVENT_VORTEX_LAND_0, 11000, 1);
|
||||
break;
|
||||
case EVENT_VORTEX_LAND_0:
|
||||
me->GetMotionMaster()->MoveLand(MI_POINT_VORTEX_LAND, CenterPos, 7.0f);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_VORTEX_LAND_1:
|
||||
{
|
||||
|
|
@ -556,7 +550,6 @@ public:
|
|||
AttackStart(target);
|
||||
me->GetMotionMaster()->MoveChase(target);
|
||||
}
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(EVENT_START_VORTEX_0, 60000, 1);
|
||||
break;
|
||||
}
|
||||
|
|
@ -581,7 +574,6 @@ public:
|
|||
//me->SetHover(true);
|
||||
me->SendMovementFlagUpdate();
|
||||
me->GetMotionMaster()->MoveTakeoff(MI_POINT_CENTER_AIR_PH_2, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 32.0f, 7.0f);
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(EVENT_START_PHASE_2_MOVE_TO_SIDE, 22500, 1);
|
||||
break;
|
||||
}
|
||||
|
|
@ -617,7 +609,6 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_ARCANE_OVERLOAD:
|
||||
{
|
||||
|
|
@ -640,7 +631,6 @@ public:
|
|||
float newangle = angle + 0.5f;
|
||||
if (newangle >= 2 * M_PI) newangle -= 2 * M_PI;
|
||||
me->GetMotionMaster()->MovePoint(MI_POINT_CIRCLE_OUTSIDE_PH_2, CenterPos.GetPositionX() + cos(newangle)*dist, CenterPos.GetPositionY() + sin(newangle)*dist, Phase2NorthPos.GetPositionZ());
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_MOVE_TO_SURGE_OF_POWER:
|
||||
|
|
@ -655,13 +645,11 @@ public:
|
|||
break;
|
||||
case EVENT_SURGE_OF_POWER_WARNING:
|
||||
Talk(EMOTE_SURGE_OF_POWER_WARNING_P2);
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(EVENT_SPELL_SURGE_OF_POWER, 1500, 1);
|
||||
break;
|
||||
case EVENT_SPELL_SURGE_OF_POWER:
|
||||
if (Creature* c = me->SummonCreature(NPC_SURGE_OF_POWER, CenterPos, TEMPSUMMON_TIMED_DESPAWN, 10000))
|
||||
me->CastSpell(c, SPELL_SURGE_OF_POWER, false);
|
||||
events.PopEvent();
|
||||
Talk(SAY_SURGE_OF_POWER);
|
||||
events.RescheduleEvent(EVENT_CLEAR_TARGET, 10000, 1);
|
||||
events.RescheduleEvent(EVENT_RESUME_FLYING_CIRCLES_PH_2, 10000, 1);
|
||||
|
|
@ -673,7 +661,6 @@ public:
|
|||
case EVENT_CLEAR_TARGET:
|
||||
me->SendMeleeAttackStop();
|
||||
me->SetTarget(0);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_CHECK_TRASH_DEAD:
|
||||
{
|
||||
|
|
@ -698,7 +685,6 @@ public:
|
|||
break;
|
||||
case EVENT_LIGHT_DIMENSION_CHANGE:
|
||||
me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_CHANGE_DIMENSIONS, 2 * IN_MILLISECONDS);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_DESTROY_PLATFORM_0:
|
||||
if (Creature* c = me->SummonCreature(NPC_WORLD_TRIGGER_LAOI, CenterPos, TEMPSUMMON_TIMED_DESPAWN, 3000))
|
||||
|
|
@ -708,7 +694,6 @@ public:
|
|||
c->CastSpell(c, SPELL_DESTROY_PLATFORM_EFFECT, false);
|
||||
}
|
||||
me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_OBSCURE_SPACE, 1 * IN_MILLISECONDS);
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(EVENT_MOVE_TO_PHASE_3_POSITION, 2000, 1);
|
||||
break;
|
||||
case EVENT_MOVE_TO_PHASE_3_POSITION:
|
||||
|
|
@ -736,16 +721,13 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(EVENT_SAY_PHASE_3_INTRO, 3000, 1);
|
||||
}
|
||||
break;
|
||||
case EVENT_SAY_PHASE_3_INTRO:
|
||||
Talk(SAY_INTRO_PHASE_3);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_START_PHASE_3:
|
||||
events.PopEvent();
|
||||
events.SetPhase(PHASE_THREE);
|
||||
me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_OBSCURE_ARCANE_RUNES, 1 * IN_MILLISECONDS);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
|
|
@ -1125,13 +1107,12 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case EVENT_TELEPORT_VISUAL:
|
||||
me->CastSpell(me, SPELL_TELEPORT_VISUAL, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_NEXUS_LORD_ARCANE_SHOCK:
|
||||
if (Unit* victim = me->GetVictim())
|
||||
|
|
@ -1187,13 +1168,12 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case EVENT_TELEPORT_VISUAL:
|
||||
me->CastSpell(me, SPELL_TELEPORT_VISUAL, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SCION_OF_ETERNITY_ARCANE_BARRAGE:
|
||||
{
|
||||
|
|
@ -1359,13 +1339,12 @@ public:
|
|||
{
|
||||
events.Update(diff);
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case EVENT_DISK_MOVE_NEXT_POINT:
|
||||
DoAction(1);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1402,7 +1381,7 @@ public:
|
|||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
events.Update(diff);
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -1412,22 +1391,18 @@ public:
|
|||
me->SummonGameObject(HEART_OF_MAGIC, 773.98f, 1275.97f, 266.254f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0);
|
||||
|
||||
Talk(SAY_ALEXSTRASZA_ONE);
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(2, 6000);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_ALEXSTRASZA_TWO);
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(3, 5000);
|
||||
break;
|
||||
case 3:
|
||||
Talk(SAY_ALEXSTRASZA_THREE);
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(4, 22000);
|
||||
break;
|
||||
case 4:
|
||||
Talk(SAY_ALEXSTRASZA_FOUR);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ public:
|
|||
|
||||
DoMeleeAttackIfReady();
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -161,7 +161,7 @@ public:
|
|||
float angle = rand_norm() * 2 * M_PI;
|
||||
me->SummonCreature(NPC_UNSTABLE_SPHERE, me->GetPositionX() + 5.0f * cos(angle), me->GetPositionY() + 5.0f * sin(angle), me->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN, 18000);
|
||||
}
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -174,7 +174,7 @@ public:
|
|||
|
||||
DoMeleeAttackIfReady();
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -203,7 +203,6 @@ public:
|
|||
float y = rand_norm() * 50.0f - 25.0f;
|
||||
float z = rand_norm() * 50.0f - 25.0f;
|
||||
me->SummonCreature(NPC_LEY_GUARDIAN_WHELP, me->GetPositionX() + x, me->GetPositionY() + y, me->GetPositionZ() + z, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_SPELL_PLANAR_SHIFT:
|
||||
|
|
@ -228,7 +227,6 @@ public:
|
|||
pa->GetMotionMaster()->MoveChase(t, 0.01f);
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -308,7 +308,7 @@ public:
|
|||
|
||||
DoMeleeAttackIfReady();
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -339,7 +339,7 @@ public:
|
|||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->GetMotionMaster()->MoveChase(me->GetVictim());
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ public:
|
|||
|
||||
DoMeleeAttackIfReady();
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -172,7 +172,7 @@ public:
|
|||
{
|
||||
Talk(SAY_AZURE);
|
||||
Talk(SAY_AZURE_EMOTE);
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case EVENT_CALL_AZURE_RING_CAPTAIN_1:
|
||||
me->CastSpell(me, SPELL_CALL_AZURE_RING_CAPTAIN_1, true);
|
||||
|
|
@ -201,7 +201,6 @@ public:
|
|||
trigger->CastSpell(me, SPELL_ARCANE_BEAM_PERIODIC_DAMAGE, true);
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_ENERGIZE_CORES_THIN:
|
||||
|
|
@ -210,7 +209,6 @@ public:
|
|||
me->DisableRotate(false);
|
||||
me->SetOrientation(ZapAngle);
|
||||
me->CastSpell(me, SPELL_ENERGIZE_CORES_THIN, true);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_ENERGIZE_CORES_DAMAGE, 4500);
|
||||
}
|
||||
break;
|
||||
|
|
@ -225,7 +223,6 @@ public:
|
|||
ZapAngle += M_PI / 2;
|
||||
if( ZapAngle >= 2 * M_PI )
|
||||
ZapAngle -= 2 * M_PI;
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_ENERGIZE_CORES_THIN, 2000);
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -292,7 +292,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_BJARNGRIM_CHANGE_STANCE:
|
||||
// roll new stance
|
||||
|
|
@ -399,7 +399,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ARC_WELD:
|
||||
me->CastSpell(me->GetVictim(), SPELL_ARC_WELD, true);
|
||||
|
|
|
|||
|
|
@ -171,7 +171,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_BALL_LIGHTNING:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
|
||||
|
|
@ -195,14 +195,12 @@ public:
|
|||
{
|
||||
EntryCheckPredicate pred(NPC_SPARK_OF_IONAR);
|
||||
summons.DoAction(ACTION_CALLBACK, pred);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_RESTORE, 2000, 0, 2);
|
||||
return;
|
||||
}
|
||||
case EVENT_RESTORE:
|
||||
EntryCheckPredicate pred(NPC_SPARK_OF_IONAR);
|
||||
summons.DoAction(ACTION_SPARK_DESPAWN, pred);
|
||||
events.PopEvent();
|
||||
|
||||
me->SetVisible(true);
|
||||
me->SetControlled(false, UNIT_STATE_STUNNED);
|
||||
|
|
|
|||
|
|
@ -200,7 +200,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_CHECK_HEALTH:
|
||||
if (HealthBelowPct(HealthCheck))
|
||||
|
|
@ -223,7 +223,6 @@ public:
|
|||
break;
|
||||
case EVENT_SHOCKWAVE:
|
||||
me->CastSpell(me, me->GetMap()->IsHeroic() ? SPELL_PULSING_SHOCKWAVE_H : SPELL_PULSING_SHOCKWAVE_N, false);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_ARC_LIGHTNING:
|
||||
if (Unit* target = SelectTargetFromPlayerList(100, SPELL_ARC_LIGHTNING))
|
||||
|
|
@ -233,7 +232,6 @@ public:
|
|||
break;
|
||||
case EVENT_AURA_REMOVE:
|
||||
me->RemoveAura(SPELL_LIGHTNING_NOVA_THUNDERS);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -270,7 +270,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_HEAT:
|
||||
me->CastSpell(me, me->GetMap()->IsHeroic() ? SPELL_HEAT_H : SPELL_HEAT_N, true);
|
||||
|
|
@ -291,7 +291,6 @@ public:
|
|||
case EVENT_MOVE_TO_ANVIL:
|
||||
GetNextPos();
|
||||
me->GetMotionMaster()->MovePoint(PointID, x, y, z);
|
||||
events.PopEvent();
|
||||
return;
|
||||
case EVENT_POSITION:
|
||||
if (me->GetDistance(1331.9f, -106, 56) > 95)
|
||||
|
|
@ -381,7 +380,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_BLAST:
|
||||
me->CastSpell(me, SPELL_BLAST_WAVE, false);
|
||||
|
|
@ -506,11 +505,10 @@ public:
|
|||
return;
|
||||
|
||||
events.Update(diff);
|
||||
uint32 eventId = events.GetEvent();
|
||||
uint32 eventId = events.ExecuteEvent();
|
||||
|
||||
if (eventId == EVENT_UNFREEZE)
|
||||
{
|
||||
events.PopEvent();
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->CastSpell(me, SPELL_AWAKEN, true);
|
||||
me->RemoveAllAuras();
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_BOULDER:
|
||||
{
|
||||
|
|
@ -139,13 +139,11 @@ public:
|
|||
me->CastSpell((Unit*)NULL, DUNGEON_MODE(SHATTER, SHATTER_H), false);
|
||||
Talk(SAY_SHATTER);
|
||||
events.RescheduleEvent(EVENT_REMOVE_STONED, 1500);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_REMOVE_STONED:
|
||||
{
|
||||
RemoveStonedEffect();
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -238,4 +236,4 @@ void AddSC_boss_krystallus()
|
|||
new boss_krystallus();
|
||||
new spell_krystallus_shatter();
|
||||
new spell_krystallus_shatter_effect();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case EVENT_STORM:
|
||||
{
|
||||
|
|
|
|||
|
|
@ -193,7 +193,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_CHECK_HEALTH:
|
||||
{
|
||||
|
|
@ -224,7 +224,6 @@ public:
|
|||
|
||||
events.CancelEvent(EVENT_SUMMON);
|
||||
events.ScheduleEvent(EVENT_SUMMON, 0);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -268,7 +267,6 @@ public:
|
|||
brann->PlayDirectSound(14275);
|
||||
}
|
||||
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_SUMMON:
|
||||
|
|
@ -298,7 +296,6 @@ public:
|
|||
case PHASE_SUMMON_FRIENDLY_DWARFES:
|
||||
{
|
||||
SummonDwarfes(true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -438,7 +435,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
// Every 5 seconds
|
||||
case EVENT_TOXIC_VOLLEY:
|
||||
|
|
@ -482,7 +479,7 @@ public:
|
|||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
events.Update(diff);
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_MALFORMED_OOZE_CHECK:
|
||||
{
|
||||
|
|
@ -512,4 +509,4 @@ void AddSC_boss_sjonnir()
|
|||
new boss_sjonnir_dwarf();
|
||||
new boss_sjonnir_malformed_ooze();
|
||||
new boss_sjonnir_iron_sludge();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -390,24 +390,21 @@ public:
|
|||
void UpdateEscortAI(uint32 diff) override
|
||||
{
|
||||
events.Update(diff);
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_KADDRAK_VISUAL:
|
||||
{
|
||||
SwitchHeadVisaul(0x1, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_MARNAK_VISUAL:
|
||||
{
|
||||
SwitchHeadVisaul(0x2, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_ABEDNEUM_VISUAL:
|
||||
{
|
||||
SwitchHeadVisaul(0x4, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_KADDRAK_HEAD: // First
|
||||
|
|
@ -434,7 +431,6 @@ public:
|
|||
kaddrak->StopMovingOnCurrentPos();
|
||||
}
|
||||
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_MARNAK_HEAD: // Second
|
||||
|
|
@ -727,7 +723,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_DRP_CHARGE:
|
||||
{
|
||||
|
|
@ -785,7 +781,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_DRS_LIGHTNING_BOLD:
|
||||
{
|
||||
|
|
@ -839,7 +835,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_IGC_CRUSH:
|
||||
{
|
||||
|
|
|
|||
|
|
@ -606,21 +606,18 @@ public:
|
|||
if (!(events.GetPhaseMask() & PHASE_MASK_NO_CAST_CHECK) && me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_INTRO_1:
|
||||
me->RemoveAurasDueToSpell(SPELL_RIDE_THE_LIGHTNING);
|
||||
Talk(SAY_ALGALON_INTRO_1);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_INTRO_2:
|
||||
me->CastSpell((Unit*)NULL, SPELL_SUMMON_AZEROTH, true);
|
||||
Talk(SAY_ALGALON_INTRO_2);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_INTRO_3:
|
||||
Talk(SAY_ALGALON_INTRO_3);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_INTRO_FINISH:
|
||||
events.Reset();
|
||||
|
|
@ -631,12 +628,10 @@ public:
|
|||
case EVENT_START_COMBAT:
|
||||
m_pInstance->SetData(TYPE_ALGALON, IN_PROGRESS);
|
||||
Talk(SAY_ALGALON_AGGRO);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_REMOVE_UNNATTACKABLE:
|
||||
me->SetSheath(SHEATH_STATE_MELEE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_INTRO_TIMER_DONE:
|
||||
events.SetPhase(PHASE_NORMAL);
|
||||
|
|
@ -647,7 +642,6 @@ public:
|
|||
if (Player* target = SelectTargetFromPlayerList(150.0f))
|
||||
AttackStart(target);
|
||||
me->SetInCombatWithZone();
|
||||
events.PopEvent();
|
||||
|
||||
for (uint32 i = 0; i < LIVING_CONSTELLATION_COUNT; ++i)
|
||||
me->SummonCreature(NPC_LIVING_CONSTELLATION, ConstellationPos[i], TEMPSUMMON_DEAD_DESPAWN);
|
||||
|
|
@ -700,7 +694,6 @@ public:
|
|||
Talk(SAY_ALGALON_ASCEND);
|
||||
me->CastSpell((Unit*)NULL, SPELL_ASCEND_TO_THE_HEAVENS, false);
|
||||
events.ScheduleEvent(EVENT_EVADE, 2500);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_EVADE:
|
||||
events.Reset();
|
||||
|
|
@ -712,88 +705,69 @@ public:
|
|||
m_pInstance->SetData(TYPE_ALGALON, DONE);
|
||||
m_pInstance->SetData(DATA_ALGALON_DEFEATED, 1);
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_OUTRO_1:
|
||||
me->RemoveAllAuras();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_RENAME);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_OUTRO_2:
|
||||
_EnterEvadeMode();
|
||||
me->GetMotionMaster()->MovePoint(POINT_ALGALON_OUTRO, AlgalonOutroPos);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_OUTRO_3:
|
||||
me->CastSpell((Unit*)NULL, SPELL_KILL_CREDIT);
|
||||
// Summon Chest
|
||||
if (GameObject* go = me->SummonGameObject(RAID_MODE(GO_ALGALON_CHEST, GO_ALGALON_CHEST_HERO), 1632.1f, -306.561f, 417.321f, 4.69494f, 0, 0, 0, 1, 0))
|
||||
go->SetUInt32Value(GAMEOBJECT_FLAGS, 0);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_OUTRO_4:
|
||||
me->CastSpell((Unit*)NULL, SPELL_SUPERMASSIVE_FAIL);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_OUTRO_5:
|
||||
if (Creature* brann = me->SummonCreature(NPC_BRANN_BRONZBEARD_ALG, BrannOutroPos[0], TEMPSUMMON_TIMED_DESPAWN, 131500))
|
||||
brann->AI()->DoAction(ACTION_OUTRO);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_OUTRO_6:
|
||||
Talk(SAY_ALGALON_OUTRO_1);
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_OUTRO_7:
|
||||
Talk(SAY_ALGALON_OUTRO_2);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_OUTRO_8:
|
||||
Talk(SAY_ALGALON_OUTRO_3);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_OUTRO_9:
|
||||
Talk(SAY_ALGALON_OUTRO_4);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_OUTRO_10:
|
||||
Talk(SAY_ALGALON_OUTRO_5);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_OUTRO_11:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
me->CastSpell(me, SPELL_TELEPORT, false);
|
||||
me->DespawnOrUnsummon(3000);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_DESPAWN_ALGALON_1:
|
||||
Talk(SAY_ALGALON_DESPAWN_1);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_DESPAWN_ALGALON_2:
|
||||
Talk(SAY_ALGALON_DESPAWN_2);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_DESPAWN_ALGALON_3:
|
||||
Talk(SAY_ALGALON_DESPAWN_3);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_DESPAWN_ALGALON_4:
|
||||
me->CastSpell((Unit*)NULL, SPELL_ASCEND_TO_THE_HEAVENS, false);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_DESPAWN_ALGALON_5:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
me->CastSpell(me, SPELL_TELEPORT, false);
|
||||
me->DespawnOrUnsummon(3000);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_CHECK_HERALD_ITEMS:
|
||||
if (DoCheckHeraldOfTheTitans())
|
||||
events.PopEvent();
|
||||
else
|
||||
if (!DoCheckHeraldOfTheTitans())
|
||||
events.RepeatEvent(5000);
|
||||
break;
|
||||
}
|
||||
|
|
@ -879,10 +853,9 @@ public:
|
|||
UpdateVictim();
|
||||
events.Update(diff);
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_BRANN_MOVE_INTRO:
|
||||
events.PopEvent();
|
||||
if (_currentPoint < MAX_BRANN_WAYPOINTS_INTRO)
|
||||
me->GetMotionMaster()->MovePoint(_currentPoint, BrannIntroWaypoint[_currentPoint]);
|
||||
break;
|
||||
|
|
@ -890,15 +863,12 @@ public:
|
|||
if (me->GetInstanceScript() && !me->GetInstanceScript()->GetData64(TYPE_ALGALON))
|
||||
if (Creature* algalon = me->GetMap()->SummonCreature(NPC_ALGALON, AlgalonSummonPos))
|
||||
algalon->AI()->DoAction(ACTION_START_INTRO);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_BRANN_OUTRO_1:
|
||||
Talk(SAY_BRANN_ALGALON_OUTRO);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_BRANN_OUTRO_2:
|
||||
me->GetMotionMaster()->MovePoint(POINT_BRANN_OUTRO_END, BrannOutroPos[2]);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1018,7 +988,7 @@ public:
|
|||
return;
|
||||
|
||||
events.Update(diff);
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ARCANE_BARRAGE:
|
||||
me->CastCustomSpell(SPELL_ARCANE_BARRAGE, SPELLVALUE_MAX_TARGETS, 1, (Unit*)NULL, true);
|
||||
|
|
@ -1026,7 +996,6 @@ public:
|
|||
break;
|
||||
case EVENT_RESUME_UPDATING:
|
||||
events.SetPhase(0);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1140,11 +1109,10 @@ public:
|
|||
return;
|
||||
|
||||
events.Update(diff);
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_DESPAWN_CONSOLE:
|
||||
go->Delete();
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -327,7 +327,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_FUSION_PUNCH:
|
||||
me->CastSpell(me->GetVictim(), SPELL_FUSION_PUNCH, false);
|
||||
|
|
@ -347,7 +347,6 @@ public:
|
|||
case EVENT_ENRAGE:
|
||||
Talk(SAY_STEELBREAKER_BERSERK);
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -497,7 +496,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_RUNE_OF_POWER:
|
||||
{
|
||||
|
|
@ -529,7 +528,6 @@ public:
|
|||
case EVENT_ENRAGE:
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
Talk(SAY_MOLGEIM_BERSERK);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -762,7 +760,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_CHAIN_LIGHTNING:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||
|
|
@ -772,7 +770,6 @@ public:
|
|||
break;
|
||||
case EVENT_IMMUNE:
|
||||
me->ApplySpellImmune(1, IMMUNITY_EFFECT, SPELL_EFFECT_INTERRUPT_CAST, false);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_OVERLOAD:
|
||||
me->ApplySpellImmune(1, IMMUNITY_EFFECT, SPELL_EFFECT_INTERRUPT_CAST, true);
|
||||
|
|
@ -818,7 +815,6 @@ public:
|
|||
me->MonsterMoveWithSpeed(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), speed);
|
||||
_flyPhase = false;
|
||||
events.ScheduleEvent(EVENT_LAND_LAND, 1000);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_LAND_LAND:
|
||||
|
|
@ -833,13 +829,11 @@ public:
|
|||
me->RemoveAura(SPELL_LIGHTNING_TENDRILS);
|
||||
me->RemoveAura(61883);
|
||||
DoResetThreat();
|
||||
events.PopEvent();
|
||||
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_INTERRUPT_CAST, false);
|
||||
break;
|
||||
case EVENT_ENRAGE:
|
||||
Talk(SAY_BRUNDIR_BERSERK);
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -224,17 +224,15 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SUMMON_FERAL_DEFENDER:
|
||||
me->MonsterTextEmote("Auriaya begins to activate Feral Defender.", 0, true);
|
||||
me->CastSpell(me, SPELL_ACTIVATE_FERAL_DEFENDER, true);
|
||||
events.PopEvent();
|
||||
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_INTERRUPT_CAST, true);
|
||||
events.ScheduleEvent(EVENT_REMOVE_IMMUNE, 3000);
|
||||
break;
|
||||
case EVENT_REMOVE_IMMUNE:
|
||||
events.PopEvent();
|
||||
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_INTERRUPT_CAST, false);
|
||||
break;
|
||||
case EVENT_TERRIFYING_SCREECH:
|
||||
|
|
@ -259,14 +257,12 @@ public:
|
|||
{
|
||||
EntryCheckPredicate pred(NPC_FERAL_DEFENDER);
|
||||
summons.DoAction(ACTION_FERAL_RESPAWN, pred);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_ENRAGE:
|
||||
me->MonsterTextEmote("You waste my time!", 0);
|
||||
me->PlayDirectSound(SOUND_BERSERK);
|
||||
me->CastSpell(me, SPELL_ENRAGE, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -384,7 +384,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_POSITION_CHECK:
|
||||
if (me->GetPositionX() > 450 || me->GetPositionX() < 120)
|
||||
|
|
@ -423,10 +423,8 @@ public:
|
|||
Talk(FLAME_LEVIATHAN_SAY_HARDMODE);
|
||||
else
|
||||
Talk(FLAME_LEVIATHAN_SAY_TOWER_NONE);
|
||||
events.PopEvent();
|
||||
return;
|
||||
case EVENT_REINSTALL:
|
||||
events.PopEvent();
|
||||
for (uint8 i = RAID_MODE(0, 2); i < 4; ++i)
|
||||
if (Unit* seat = vehicle->GetPassenger(i))
|
||||
if (seat->GetTypeId() == TYPEID_UNIT)
|
||||
|
|
@ -441,19 +439,16 @@ public:
|
|||
return;
|
||||
case EVENT_FREYA:
|
||||
SummonTowerHelpers(TOWER_OF_LIFE);
|
||||
events.PopEvent();
|
||||
me->MonsterTextEmote("Flame Leviathan activates Freya's Ward.", 0, true);
|
||||
Talk(FLAME_LEVIATHAN_SAY_TOWER_NATURE);
|
||||
return;
|
||||
case EVENT_MIMIRONS_INFERNO:
|
||||
SummonTowerHelpers(TOWER_OF_FLAMES);
|
||||
events.PopEvent();
|
||||
me->MonsterTextEmote("Flame Leviathan activates Mimiron's Inferno.", 0, true);
|
||||
Talk(FLAME_LEVIATHAN_SAY_TOWER_FLAME);
|
||||
return;
|
||||
case EVENT_HODIRS_FURY:
|
||||
SummonTowerHelpers(TOWER_OF_FROST);
|
||||
events.PopEvent();
|
||||
me->MonsterTextEmote("Flame Leviathan activates Hodir's Fury.", 0, true);
|
||||
Talk(FLAME_LEVIATHAN_SAY_TOWER_FROST);
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -558,7 +558,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_FREYA_ADDS_SPAM:
|
||||
if (_spawnedAmount < 6)
|
||||
|
|
@ -568,7 +568,6 @@ public:
|
|||
me->RemoveAura(SPELL_ATTUNED_TO_NATURE);
|
||||
events.ScheduleEvent(EVENT_FREYA_NATURE_BOMB, 5000);
|
||||
events.SetPhase(EVENT_PHASE_FINAL);
|
||||
events.PopEvent();
|
||||
return;
|
||||
}
|
||||
_spawnedAmount++;
|
||||
|
|
@ -599,7 +598,6 @@ public:
|
|||
events.RepeatEvent(15000 + urand(0, 5000));
|
||||
break;
|
||||
case EVENT_FREYA_RESPAWN_TRIO:
|
||||
events.PopEvent();
|
||||
_deforestation = 0;
|
||||
_respawningTrio = false;
|
||||
if (_trioKilled < 3)
|
||||
|
|
@ -628,7 +626,6 @@ public:
|
|||
me->MonsterYell("You have strayed too far, wasted too much time!", LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(SOUND_BERSERK);
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_FREYA_GROUND_TREMOR:
|
||||
me->CastSpell(me, SPELL_GROUND_TREMOR_FREYA, false);
|
||||
|
|
@ -742,7 +739,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_STONEBARK_FISTS_OF_STONE:
|
||||
me->CastSpell(me, SPELL_FISTS_OF_STONE, false);
|
||||
|
|
@ -839,7 +836,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_BRIGHTLEAF_FLUX:
|
||||
if (Aura* aur = me->AddAura(SPELL_BRIGHTLEAF_FLUX, me))
|
||||
|
|
@ -880,7 +877,6 @@ public:
|
|||
}
|
||||
|
||||
summons.DespawnAll();
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -961,7 +957,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_IRONBRANCH_IMPALE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_IMPALE, false);
|
||||
|
|
@ -1193,7 +1189,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ANCIENT_CONSERVATOR_NATURE_FURY:
|
||||
me->CastSpell(me->GetVictim(), SPELL_NATURE_FURY, false);
|
||||
|
|
@ -1207,7 +1203,6 @@ public:
|
|||
break;
|
||||
case EVENT_WATER_SPIRIT_DAMAGE:
|
||||
me->CastSpell(me, SPELL_TIDAL_WAVE_DAMAGE, false);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_STORM_LASHER_LIGHTNING_LASH:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||
|
|
|
|||
|
|
@ -207,7 +207,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -216,7 +216,6 @@ public:
|
|||
me->CastSpell(me, SPELL_VEZAX_BERSERK, true);
|
||||
me->MonsterYell(TEXT_VEZAX_BERSERK, LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(SOUND_VEZAX_BERSERK, 0);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_VEZAX_SHADOW_CRASH:
|
||||
{
|
||||
|
|
@ -243,7 +242,6 @@ public:
|
|||
case EVENT_RESTORE_TARGET:
|
||||
if (me->GetVictim())
|
||||
me->SetUInt64Value(UNIT_FIELD_TARGET, me->GetVictim()->GetGUID());
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_SEARING_FLAMES:
|
||||
if(!me->HasAura(SPELL_SARONITE_BARRIER))
|
||||
|
|
@ -302,7 +300,6 @@ public:
|
|||
sv->GetMotionMaster()->MoveCharge(1852.78f, 81.38f, 342.461f, 28.0f);
|
||||
}
|
||||
|
||||
events.PopEvent();
|
||||
events.DelayEvents(12000, 0);
|
||||
events.DelayEvents(12000, 1);
|
||||
events.ScheduleEvent(EVENT_SARONITE_VAPORS_SWIRL, 6000);
|
||||
|
|
@ -316,11 +313,9 @@ public:
|
|||
if( Creature* sv = ObjectAccessor::GetCreature(*me, *(summons.begin())) )
|
||||
sv->CastSpell(sv, SPELL_SARONITE_ANIMUS_FORMATION_VISUAL, true);
|
||||
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_SPELL_SUMMON_SARONITE_ANIMUS, 2000);
|
||||
break;
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_SUMMON_SARONITE_ANIMUS:
|
||||
if (summons.size())
|
||||
|
|
@ -333,15 +328,12 @@ public:
|
|||
if( Creature* sv = ObjectAccessor::GetCreature(*me, *(summons.begin())) )
|
||||
sv->CastSpell(sv, SPELL_SUMMON_SARONITE_ANIMUS, true);
|
||||
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_DESPAWN_SARONITE_VAPORS, 2500);
|
||||
break;
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_DESPAWN_SARONITE_VAPORS:
|
||||
summons.DespawnEntry(NPC_SARONITE_VAPORS);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -396,7 +396,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -406,14 +406,12 @@ public:
|
|||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
me->MonsterYell(TEXT_HODIR_BERSERK, LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(SOUND_HODIR_BERSERK, 0);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_HARD_MODE_MISSED:
|
||||
{
|
||||
hardmode = false;
|
||||
me->MonsterTextEmote(TEXTEMOTE_HODIR_HARD_MODE_MISSED, 0);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_FLASH_FREEZE:
|
||||
|
|
@ -447,7 +445,6 @@ public:
|
|||
case EVENT_SMALL_ICICLES_ENABLE:
|
||||
{
|
||||
SmallIcicles(true);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_FROZEN_BLOWS:
|
||||
|
|
@ -456,7 +453,6 @@ public:
|
|||
me->MonsterTextEmote(TEXTEMOTE_HODIR_FROZEN_BLOWS, 0);
|
||||
me->PlayDirectSound(SOUND_HODIR_FROZEN_BLOWS, 0);
|
||||
me->CastSpell(me, SPELL_FROZEN_BLOWS, true);
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_FREEZE:
|
||||
|
|
@ -789,7 +785,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -801,7 +797,6 @@ public:
|
|||
if( Creature* hodir = ObjectAccessor::GetCreature(*me, g) )
|
||||
{
|
||||
AttackStart(hodir);
|
||||
events.PopEvent();
|
||||
ScheduleAbilities();
|
||||
break;
|
||||
}
|
||||
|
|
@ -886,7 +881,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -898,7 +893,6 @@ public:
|
|||
if( Creature* hodir = ObjectAccessor::GetCreature(*me, g) )
|
||||
{
|
||||
AttackStart(hodir);
|
||||
events.PopEvent();
|
||||
ScheduleAbilities();
|
||||
break;
|
||||
}
|
||||
|
|
@ -991,7 +985,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -1003,7 +997,6 @@ public:
|
|||
if( Creature* hodir = ObjectAccessor::GetCreature(*me, g) )
|
||||
{
|
||||
AttackStart(hodir);
|
||||
events.PopEvent();
|
||||
ScheduleAbilities();
|
||||
break;
|
||||
}
|
||||
|
|
@ -1086,7 +1079,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -1098,7 +1091,6 @@ public:
|
|||
if( Creature* hodir = ObjectAccessor::GetCreature(*me, g) )
|
||||
{
|
||||
AttackStart(hodir);
|
||||
events.PopEvent();
|
||||
ScheduleAbilities();
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -336,7 +336,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -347,7 +347,6 @@ public:
|
|||
me->MonsterYell(TEXT_BERSERK, LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(SOUND_BERSERK);
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
events.RepeatEvent(RAID_MODE(40000, 30000));
|
||||
|
|
@ -373,7 +372,6 @@ public:
|
|||
case EVENT_ENABLE_ROTATE:
|
||||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
me->DisableRotate(false);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_FLAME_JETS:
|
||||
me->MonsterTextEmote(TEXT_FLAME_JETS, 0, true);
|
||||
|
|
|
|||
|
|
@ -391,7 +391,6 @@ public:
|
|||
case EVENT_STONE_SHOUT:
|
||||
if (_left || _right)
|
||||
{
|
||||
events.PopEvent();
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -463,12 +462,10 @@ public:
|
|||
}
|
||||
case EVENT_RESTORE_ARM_LEFT:
|
||||
// shouldn't happen
|
||||
events.PopEvent();
|
||||
AttachLeftArm();
|
||||
return;
|
||||
case EVENT_RESTORE_ARM_RIGHT:
|
||||
// shouldn't happen
|
||||
events.PopEvent();
|
||||
AttachRightArm();
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -429,24 +429,21 @@ public:
|
|||
|
||||
events.Update(diff);
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case EVENT_COMPUTER_SAY_INITIATED:
|
||||
if( Creature* computer = me->SummonCreature(NPC_COMPUTER, 2790.0f, 2569.44f, 364.31f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 1000) )
|
||||
computer->AI()->Talk(TALK_COMPUTER_INITIATED);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_COMPUTER_SAY_MINUTES:
|
||||
if( Creature* computer = me->SummonCreature(NPC_COMPUTER, 2790.0f, 2569.44f, 364.31f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 1000) )
|
||||
computer->AI()->Talk(minutesTalkNum++);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_MIMIRON_SAY_HARDMODE:
|
||||
me->MonsterYell(TEXT_HARDMODE, LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(SOUND_TANK_HARD_INTRO);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_SPAWN_FLAMES_INITIAL, 0);
|
||||
events.ScheduleEvent(EVENT_SIT_LMK2, 4000);
|
||||
break;
|
||||
|
|
@ -484,7 +481,6 @@ public:
|
|||
me->PlayDirectSound(SOUND_BERSERK);
|
||||
if( hardmode )
|
||||
me->SummonCreature(33576, 2744.78f, 2569.47f, 364.32f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 120000);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_BERSERK_2, 0);
|
||||
break;
|
||||
case EVENT_BERSERK_2:
|
||||
|
|
@ -505,7 +501,6 @@ public:
|
|||
if(Creature* LMK2 = GetLMK2())
|
||||
{
|
||||
me->EnterVehicle(LMK2, 6);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_SIT_LMK2_INTERVAL, 2000);
|
||||
break;
|
||||
}
|
||||
|
|
@ -522,7 +517,6 @@ public:
|
|||
cannon->CastSpell(cannon, SPELL_EMERGENCY_MODE, true);
|
||||
}
|
||||
LMK2->AI()->SetData(1, 1);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
EnterEvadeMode();
|
||||
|
|
@ -534,7 +528,6 @@ public:
|
|||
me->MonsterYell(TEXT_LMK2_DEATH, LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(SOUND_TANK_DEATH);
|
||||
LMK2->SetFacingTo(3.58f);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_ELEVATOR_INTERVAL_0, 6000);
|
||||
break;
|
||||
}
|
||||
|
|
@ -547,7 +540,6 @@ public:
|
|||
elevator->UseDoorOrButton(0, false);
|
||||
elevator->EnableCollision(false);
|
||||
}
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_ELEVATOR_INTERVAL_1, 6000);
|
||||
break;
|
||||
case EVENT_ELEVATOR_INTERVAL_1:
|
||||
|
|
@ -559,7 +551,6 @@ public:
|
|||
elevator->UseDoorOrButton(0, true);
|
||||
elevator->EnableCollision(false);
|
||||
}
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_ELEVATOR_INTERVAL_2, 18000);
|
||||
break;
|
||||
}
|
||||
|
|
@ -569,7 +560,6 @@ public:
|
|||
if (Creature* VX001 = GetVX001())
|
||||
{
|
||||
me->EnterVehicle(VX001, 0);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_SITTING_ON_VX001, 4000);
|
||||
break;
|
||||
}
|
||||
|
|
@ -578,14 +568,12 @@ public:
|
|||
case EVENT_SITTING_ON_VX001:
|
||||
me->MonsterYell(TEXT_VX001_ACTIVATE, LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(SOUND_TORSO_ACTIVE);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_ENTER_VX001, 5000);
|
||||
break;
|
||||
case EVENT_ENTER_VX001:
|
||||
if( Creature* VX001 = GetVX001() )
|
||||
{
|
||||
me->EnterVehicle(VX001, 1);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_EMOTE_VX001, 2000);
|
||||
break;
|
||||
}
|
||||
|
|
@ -595,7 +583,6 @@ public:
|
|||
if( Creature* VX001 = GetVX001() )
|
||||
{
|
||||
VX001->HandleEmoteCommand(EMOTE_ONESHOT_EMERGE);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_VX001_START_FIGHT, 1750);
|
||||
break;
|
||||
}
|
||||
|
|
@ -608,7 +595,6 @@ public:
|
|||
VX001->CastSpell(VX001, SPELL_EMERGENCY_MODE, true);
|
||||
VX001->AI()->SetData(1, 2);
|
||||
me->SetInCombatWithZone();
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
EnterEvadeMode();
|
||||
|
|
@ -618,7 +604,6 @@ public:
|
|||
{
|
||||
VX001->HandleEmoteCommand(EMOTE_STATE_DROWNED);
|
||||
VX001->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DROWNED);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_GET_OUT_VX001, 2500);
|
||||
break;
|
||||
}
|
||||
|
|
@ -632,7 +617,6 @@ public:
|
|||
float speed = ACU->GetDistance(2737.75f, 2574.22f, 381.34f) / 2.0f;
|
||||
ACU->MonsterMoveWithSpeed(2737.75f, 2574.22f, 381.34f, speed);
|
||||
ACU->SetPosition(2737.75f, 2574.22f, 381.34f, M_PI);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_SAY_VX001_DEAD, 2000);
|
||||
break;
|
||||
}
|
||||
|
|
@ -642,14 +626,12 @@ public:
|
|||
changeAllowedFlameSpreadTime = true;
|
||||
me->MonsterYell(TEXT_VX001_DEATH, LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(SOUND_TORSO_DEATH);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_ENTER_ACU, 7000);
|
||||
break;
|
||||
case EVENT_ENTER_ACU:
|
||||
if( Creature* ACU = GetACU() )
|
||||
{
|
||||
me->EnterVehicle(ACU, 0);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_SAY_ACU_ACTIVATE, 6000);
|
||||
break;
|
||||
}
|
||||
|
|
@ -658,7 +640,6 @@ public:
|
|||
case EVENT_SAY_ACU_ACTIVATE:
|
||||
me->MonsterYell(TEXT_ACU_ACTIVATE, LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(SOUND_HEAD_ACTIVE);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_ACU_START_ATTACK, 4000);
|
||||
break;
|
||||
case EVENT_ACU_START_ATTACK:
|
||||
|
|
@ -668,7 +649,6 @@ public:
|
|||
ACU->CastSpell(ACU, SPELL_EMERGENCY_MODE, true);
|
||||
ACU->AI()->SetData(1, 3);
|
||||
me->SetInCombatWithZone();
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
EnterEvadeMode();
|
||||
|
|
@ -676,14 +656,12 @@ public:
|
|||
case EVENT_SAY_ACU_DEAD:
|
||||
me->MonsterYell(TEXT_ACU_DEATH, LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(SOUND_HEAD_DEATH);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_LEVIATHAN_COME_CLOSER, 5000);
|
||||
break;
|
||||
case EVENT_LEVIATHAN_COME_CLOSER:
|
||||
if (Creature* LMK2 = GetLMK2())
|
||||
{
|
||||
LMK2->GetMotionMaster()->MoveCharge(2755.77f, 2574.95f, 364.31f, 21.0f);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_VX001_EMOTE_JUMP, 4000);
|
||||
break;
|
||||
}
|
||||
|
|
@ -702,7 +680,6 @@ public:
|
|||
VX001->SendMeleeAttackStop();
|
||||
VX001->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_CUSTOM_SPELL_02);
|
||||
VX001->HandleEmoteCommand(EMOTE_ONESHOT_CUSTOM_SPELL_02);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_LEVIATHAN_RIDE_MIDDLE, 4800);
|
||||
}
|
||||
break;
|
||||
|
|
@ -722,7 +699,6 @@ public:
|
|||
VX001->EnterVehicle(LMK2, 3);
|
||||
LMK2->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_CUSTOM_SPELL_01);
|
||||
LMK2->HandleEmoteCommand(EMOTE_STATE_CUSTOM_SPELL_01);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_JOIN_TOGETHER, 3000);
|
||||
}
|
||||
break;
|
||||
|
|
@ -740,7 +716,6 @@ public:
|
|||
me->EnterVehicle(VX001, 1);
|
||||
me->MonsterYell(TEXT_VOLTRON_ACTIVATE, LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(SOUND_VOLTRON_ACTIVE);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_START_PHASE4, 10000);
|
||||
}
|
||||
break;
|
||||
|
|
@ -768,7 +743,6 @@ public:
|
|||
ACU->CastSpell(ACU, SPELL_EMERGENCY_MODE, true);
|
||||
}
|
||||
me->SetInCombatWithZone();
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_FINISH:
|
||||
|
|
@ -841,7 +815,6 @@ public:
|
|||
if( uint32 chestId = (hardmode ? RAID_MODE(GO_MIMIRON_CHEST_HARD, GO_MIMIRON_CHEST_HERO_HARD) : RAID_MODE(GO_MIMIRON_CHEST, GO_MIMIRON_CHEST_HERO)) )
|
||||
if( GameObject* go = me->SummonGameObject(chestId, 2744.65f, 2569.46f, 364.397f, 0, 0, 0, 0, 0, 0) )
|
||||
go->SetUInt32Value(GAMEOBJECT_FLAGS, 0);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_DISAPPEAR, 15000);
|
||||
break;
|
||||
case EVENT_DISAPPEAR:
|
||||
|
|
@ -849,7 +822,6 @@ public:
|
|||
pInstance->SetData(TYPE_MIMIRON, DONE);
|
||||
summons.DespawnAll();
|
||||
me->DespawnOrUnsummon();
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1158,7 +1130,7 @@ public:
|
|||
if (!cannon || cannon->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitState(UNIT_STATE_CASTING) || me->HasAuraType(SPELL_AURA_MOD_SILENCE))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -1211,13 +1183,10 @@ public:
|
|||
if( Creature* pmNPC = me->SummonCreature(NPC_PROXIMITY_MINE, x + v_xmin, y + v_ymin, z, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 40000) )
|
||||
pmNPC->KnockbackFrom(x, y, 6.0f, 25.0f);
|
||||
}
|
||||
|
||||
events.PopEvent();
|
||||
}
|
||||
break;
|
||||
case EVENT_FLAME_SUPPRESSION_50000:
|
||||
me->CastSpell(me, SPELL_FLAME_SUPPRESSANT_50000yd, false);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1471,7 +1440,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -1514,7 +1483,6 @@ public:
|
|||
if (!me->HandleSpellClick(accessory, i))
|
||||
accessory->UnSummon();
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_RAPID_BURST:
|
||||
if (Player* p = SelectTargetFromPlayerList(80.0f))
|
||||
|
|
@ -1828,7 +1796,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -1883,19 +1851,16 @@ public:
|
|||
me->CastSpell(me, SPELL_SPINNING, true);
|
||||
me->MonsterMoveWithSpeed(me->GetPositionX(), me->GetPositionY(), 365.34f, me->GetExactDist(me->GetPositionX(), me->GetPositionY(), 365.34f));
|
||||
me->UpdatePosition(me->GetPositionX(), me->GetPositionY(), 365.34f, me->GetOrientation(), false);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_MAGNETIC_CORE_FREE, 20000);
|
||||
break;
|
||||
case EVENT_MAGNETIC_CORE_FREE:
|
||||
me->RemoveAura(SPELL_SPINNING);
|
||||
me->MonsterMoveWithSpeed(me->GetPositionX(), me->GetPositionY(), 381.34f, me->GetDistance(me->GetPositionX(), me->GetPositionY(), 381.34f));
|
||||
me->UpdatePosition(me->GetPositionX(), me->GetPositionY(), 381.34f, me->GetOrientation(), false);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_MAGNETIC_CORE_REMOVE_IMMOBILIZE, 1000);
|
||||
break;
|
||||
case EVENT_MAGNETIC_CORE_REMOVE_IMMOBILIZE:
|
||||
immobilized = false;
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -2379,7 +2344,7 @@ public:
|
|||
|
||||
events.Update(diff);
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -2395,7 +2360,6 @@ public:
|
|||
if (Creature* mimiron = GetMimiron())
|
||||
if (CreateTime < mimiron->AI()->GetData(10))
|
||||
{
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -2503,7 +2467,7 @@ public:
|
|||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
events.Update(diff);
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -2521,7 +2485,6 @@ public:
|
|||
break;
|
||||
case EVENT_EMERGENCY_BOT_ATTACK:
|
||||
me->CastSpell((Unit*)NULL, SPELL_WATER_SPRAY, false);
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(EVENT_EMERGENCY_BOT_CHECK, 5000);
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -324,7 +324,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -335,7 +335,6 @@ public:
|
|||
case EVENT_COMMANDER_SAY_AGGRO:
|
||||
if (Creature* commander = ObjectAccessor::GetCreature(*me, CommanderGUID))
|
||||
commander->AI()->Talk(SAY_COMMANDER_AGGRO);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_EE_SAY_MOVE_OUT:
|
||||
for (uint8 i = 0; i < 3; ++i)
|
||||
|
|
@ -345,7 +344,6 @@ public:
|
|||
c->MonsterYell(TEXT_EE_MOVE_OUT, LANG_UNIVERSAL, 0);
|
||||
c->AI()->SetData(1, 0); // start repairing
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_FIREBALL:
|
||||
if( Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 200.0f, true) )
|
||||
|
|
@ -436,17 +434,14 @@ public:
|
|||
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_WARN_DEEP_BREATH:
|
||||
me->MonsterTextEmote(TEXT_DEEP_BREATH, 0, true);
|
||||
me->RemoveAura(62794);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_PHASE2_FLAME_BREATH, 2500);
|
||||
break;
|
||||
case EVENT_PHASE2_FLAME_BREATH:
|
||||
me->CastSpell(me, S_FLAMEBREATH, true);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_FLY_UP, 2000);
|
||||
break;
|
||||
case EVENT_FLY_UP:
|
||||
|
|
@ -484,7 +479,6 @@ public:
|
|||
me->GetMotionMaster()->MoveChase(target);
|
||||
}
|
||||
bGroundPhase = true;
|
||||
events.PopEvent();
|
||||
events.CancelEvent(EVENT_SPELL_FIREBALL);
|
||||
events.CancelEvent(EVENT_SPELL_DEVOURING_FLAME);
|
||||
events.CancelEvent(EVENT_SUMMON_MOLE_MACHINES);
|
||||
|
|
@ -512,7 +506,6 @@ public:
|
|||
events.ScheduleEvent(EVENT_RESUME_FIXING, 22000);
|
||||
}
|
||||
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_RESUME_FIXING:
|
||||
for (uint8 i = 0; i < 3; ++i)
|
||||
|
|
@ -522,7 +515,6 @@ public:
|
|||
c->MonsterYell(TEXT_EE_FIRES_OUT, LANG_UNIVERSAL, 0);
|
||||
c->AI()->SetData(1, 0); // start repairing
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_FLAME_BREATH:
|
||||
me->CastSpell(me->GetVictim(), S_FLAMEBREATH, false);
|
||||
|
|
|
|||
|
|
@ -668,13 +668,12 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_THORIM_AGGRO:
|
||||
me->MonsterYell("Interlopers! You mortals who dare to interfere with my sport will pay... Wait--you...", LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(SOUND_AGGRO1);
|
||||
events.ScheduleEvent(EVENT_THORIM_AGGRO2, 9000);
|
||||
events.PopEvent();
|
||||
|
||||
if (GameObject* go = GetThorimObject(DATA_THORIM_FENCE))
|
||||
go->SetGoState(GO_STATE_READY);
|
||||
|
|
@ -684,7 +683,6 @@ public:
|
|||
{
|
||||
me->MonsterYell("I remember you... In the mountains... But you... what is this? Where am--", LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(SOUND_AGGRO2);
|
||||
events.PopEvent();
|
||||
|
||||
EntryCheckPredicate pred(NPC_SIF);
|
||||
summons.DoAction(ACTION_SIF_START_TALK, pred);
|
||||
|
|
@ -692,7 +690,6 @@ public:
|
|||
}
|
||||
case EVENT_THORIM_START_PHASE1:
|
||||
{
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_THORIM_STORMHAMMER, 8000, 0, EVENT_PHASE_START);
|
||||
events.ScheduleEvent(EVENT_THORIM_CHARGE_ORB, 14000, 0, EVENT_PHASE_START);
|
||||
events.ScheduleEvent(EVENT_THORIM_FILL_ARENA, 0, 0, EVENT_PHASE_START);
|
||||
|
|
@ -728,13 +725,11 @@ public:
|
|||
me->SummonCreature(NPC_LIGHTNING_ORB, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
|
||||
|
||||
_isArenaEmpty = true;
|
||||
events.PopEvent();
|
||||
events.CancelEvent(EVENT_THORIM_NOT_REACH_IN_TIME);
|
||||
break;
|
||||
}
|
||||
case EVENT_THORIM_NOT_REACH_IN_TIME:
|
||||
_isArenaEmpty = true;
|
||||
events.PopEvent();
|
||||
events.CancelEvent(EVENT_THORIM_LIGHTNING_ORB);
|
||||
me->CastSpell(me, SPELL_BERSERK_FRIENDS, true);
|
||||
me->SummonCreature(NPC_LIGHTNING_ORB, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
|
||||
|
|
@ -750,7 +745,6 @@ public:
|
|||
break;
|
||||
case EVENT_THORIM_LIGHTNING_CHARGE:
|
||||
me->CastSpell(me, SPELL_LIGHTNING_PILLAR_P2, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_THORIM_CHAIN_LIGHTNING:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||
|
|
@ -759,12 +753,10 @@ public:
|
|||
break;
|
||||
case EVENT_THORIM_BERSERK:
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
events.PopEvent();
|
||||
me->MonsterYell("My patience has reached its limit!", LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(SOUND_BERSERK);
|
||||
break;
|
||||
case EVENT_THORIM_OUTRO1:
|
||||
events.PopEvent();
|
||||
if (_hardMode)
|
||||
{
|
||||
me->MonsterYell("You! Fiend! You are not my beloved! Be gone!", LANG_UNIVERSAL, 0);
|
||||
|
|
@ -781,7 +773,6 @@ public:
|
|||
}
|
||||
break;
|
||||
case EVENT_THORIM_OUTRO2:
|
||||
events.PopEvent();
|
||||
if (_hardMode)
|
||||
{
|
||||
me->MonsterYell("Behold the hand behind all the evil that has befallen Ulduar! Left my kingdom in ruins, corrupted my brother and slain my wife!", LANG_UNIVERSAL, 0);
|
||||
|
|
@ -796,7 +787,6 @@ public:
|
|||
}
|
||||
break;
|
||||
case EVENT_THORIM_OUTRO3:
|
||||
events.PopEvent();
|
||||
if (_hardMode)
|
||||
{
|
||||
me->MonsterYell("And now it falls to you, champions, to avenge us all! The task before you is great, but I will lend you my aid as I am able. You must prevail!", LANG_UNIVERSAL, 0);
|
||||
|
|
@ -883,23 +873,20 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SIF_FINISH_DOMINION:
|
||||
events.PopEvent();
|
||||
me->PlayDirectSound(SOUND_SIF_DESPAWN);
|
||||
me->MonsterYell("This pathetic morons are harmless. Relive my station, dispose of them!", LANG_UNIVERSAL, 0);
|
||||
me->DespawnOrUnsummon(5000);
|
||||
break;
|
||||
case EVENT_SIF_START_TALK:
|
||||
events.PopEvent();
|
||||
me->MonsterYell("Thorim, my lord, why else would these invaders have come into your sanctum but to slay you? They must be stopped!", LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(SOUND_SIF_START);
|
||||
break;
|
||||
case EVENT_SIF_JOIN_TALK:
|
||||
me->PlayDirectSound(SOUND_SIF_EVENT);
|
||||
me->MonsterYell("Impossible! Lord Thorim, I will bring your foes a frigid death!", LANG_UNIVERSAL, 0);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_SIF_FROST_NOVA_START, 1000);
|
||||
events.ScheduleEvent(EVENT_SIF_FROSTBOLT_VALLEY, 11000);
|
||||
events.ScheduleEvent(EVENT_SIF_BLIZZARD, 15000);
|
||||
|
|
@ -922,7 +909,6 @@ public:
|
|||
case EVENT_SIF_FROST_NOVA_CAST:
|
||||
_allowCast = true;
|
||||
me->CastSpell(me, SPELL_FROST_NOVA, false);
|
||||
events.PopEvent();
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1210,7 +1196,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_DR_ACOLYTE_GH:
|
||||
if (HealthBelowPct(60))
|
||||
|
|
@ -1327,7 +1313,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_IR_GUARD_IMPALE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_IMPALE, false);
|
||||
|
|
@ -1470,13 +1456,11 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_RC_RUNIC_SMASH_TRIGGER:
|
||||
_nextTriggerPos += 16.0f;
|
||||
if (_nextTriggerPos > -260.0f)
|
||||
events.PopEvent();
|
||||
else
|
||||
if (!(_nextTriggerPos > -260.0f))
|
||||
events.RescheduleEvent(EVENT_RC_RUNIC_SMASH_TRIGGER, 500);
|
||||
|
||||
RunRunicSmash(true);
|
||||
|
|
@ -1573,7 +1557,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ARG_RD:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||
|
|
@ -1691,7 +1675,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_DR_WARBRINGER_RS:
|
||||
me->CastSpell(me->GetVictim(), SPELL_RUNIC_STRIKE, false);
|
||||
|
|
|
|||
|
|
@ -303,13 +303,12 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
// Control events
|
||||
case EVENT_HEALTH_CHECK:
|
||||
if (_hardMode)
|
||||
{
|
||||
events.PopEvent();
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -338,12 +337,10 @@ public:
|
|||
// Abilities events
|
||||
case EVENT_GRAVITY_BOMB:
|
||||
me->CastCustomSpell(SPELL_GRAVITY_BOMB, SPELLVALUE_MAX_TARGETS, 1, me, true);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_SEARING_LIGHT, 10000, 1);
|
||||
break;
|
||||
case EVENT_SEARING_LIGHT:
|
||||
me->CastCustomSpell(SPELL_SEARING_LIGHT, SPELLVALUE_MAX_TARGETS, 1, me, true);
|
||||
events.PopEvent();
|
||||
events.ScheduleEvent(EVENT_GRAVITY_BOMB, 10000, 1);
|
||||
break;
|
||||
case EVENT_TYMPANIC_TANTARUM:
|
||||
|
|
@ -357,7 +354,6 @@ public:
|
|||
me->MonsterYell("I'm tired of these toys. I don't want to play anymore!", LANG_UNIVERSAL, 0);
|
||||
me->PlayDirectSound(XT_SOUND_SUMMON);
|
||||
me->CastSpell(me, SPELL_XT002_ENRAGE, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
|
||||
// Animation events
|
||||
|
|
@ -368,13 +364,11 @@ public:
|
|||
heart->GetAI()->DoAction(ACTION_AWAKEN_HEART);
|
||||
|
||||
events.ScheduleEvent(EVENT_RESTORE, 30000);
|
||||
events.PopEvent();
|
||||
return;
|
||||
// Restore from heartbreak
|
||||
case EVENT_RESTORE:
|
||||
if (_hardMode)
|
||||
{
|
||||
events.PopEvent();
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -387,14 +381,12 @@ public:
|
|||
heart->GetAI()->DoAction(ACTION_HIDE_HEART);
|
||||
|
||||
events.ScheduleEvent(EVENT_REMOVE_EMOTE, 4000);
|
||||
events.PopEvent();
|
||||
return;
|
||||
case EVENT_REMOVE_EMOTE:
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetControlled(false, UNIT_STATE_STUNNED);
|
||||
|
||||
RescheduleEvents();
|
||||
events.PopEvent();
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -740,7 +740,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SARA_P1_DOORS_CLOSE:
|
||||
// Whispers of YS
|
||||
|
|
@ -751,7 +751,6 @@ public:
|
|||
go->SetGoState(GO_STATE_READY);
|
||||
|
||||
events.ScheduleEvent(EVENT_SARA_P1_SPELLS, 0, 1, EVENT_PHASE_ONE);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SARA_P1_SUMMON:
|
||||
events.RepeatEvent(20000 - (std::min(_summonedGuardiansCount, (uint8)5) * 2000));
|
||||
|
|
@ -768,7 +767,6 @@ public:
|
|||
}
|
||||
case EVENT_SARA_P2_START:
|
||||
{
|
||||
events.PopEvent();
|
||||
EntryCheckPredicate pred(NPC_YOGG_SARON);
|
||||
summons.DoAction(ACTION_YOGG_SARON_APPEAR, pred);
|
||||
events.RescheduleEvent(EVENT_SARA_P2_SPAWN_START_TENTACLES, 500, 0, EVENT_PHASE_TWO);
|
||||
|
|
@ -817,13 +815,10 @@ public:
|
|||
case EVENT_SARA_P2_REMOVE_STUN:
|
||||
{
|
||||
me->RemoveAura(SPELL_SHATTERED_ILLUSION);
|
||||
events.PopEvent();
|
||||
summons.DoAction(ACTION_REMOVE_STUN);
|
||||
break;
|
||||
}
|
||||
case EVENT_SARA_P2_SPAWN_START_TENTACLES:
|
||||
events.PopEvent();
|
||||
|
||||
me->SetOrientation(M_PI);
|
||||
me->SetDisplayId(SARA_TRANSFORM_MODEL);
|
||||
|
||||
|
|
@ -1148,7 +1143,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_YS_LUNATIC_GAZE:
|
||||
me->MonsterYell("Hoohehehahahaha... AHAHAHAHAHAHA!", LANG_UNIVERSAL, 0);
|
||||
|
|
@ -2235,11 +2230,10 @@ public:
|
|||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
events.Update(diff);
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 40:
|
||||
{
|
||||
events.PopEvent();
|
||||
uint64 _guid = _targets.at(_current);
|
||||
++_current;
|
||||
|
||||
|
|
|
|||
|
|
@ -995,12 +995,11 @@ public:
|
|||
return;
|
||||
|
||||
_events.Update(diff);
|
||||
switch (_events.GetEvent())
|
||||
switch (_events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_UPDATE_ALGALON_TIMER:
|
||||
if (m_algalonTimer == TIMER_ALGALON_DEFEATED)
|
||||
{
|
||||
_events.PopEvent();
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1012,7 +1011,6 @@ public:
|
|||
return;
|
||||
}
|
||||
|
||||
_events.PopEvent();
|
||||
SetData(DATA_ALGALON_DEFEATED, 1);
|
||||
if (Creature* algalon = instance->GetCreature(m_uiAlgalonGUID))
|
||||
algalon->AI()->DoAction(ACTION_DESPAWN_ALGALON);
|
||||
|
|
|
|||
|
|
@ -294,7 +294,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -407,7 +407,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -237,17 +237,15 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case EVENT_YELL_DEAD_1:
|
||||
Talk(YELL_DEAD_1);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_START_RESURRECTION:
|
||||
me->CastSpell(me, SPELL_SUMMON_VALKYR, true);
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(EVENT_VALKYR_BEAM, 7000);
|
||||
events.RescheduleEvent(EVENT_VALKYR_MOVE, 1);
|
||||
events.RescheduleEvent(EVENT_ANNHYLDE_YELL, 3000);
|
||||
|
|
@ -255,35 +253,29 @@ public:
|
|||
case EVENT_VALKYR_MOVE:
|
||||
if( Creature* s = ObjectAccessor::GetCreature(*me, ValkyrGUID) )
|
||||
s->GetMotionMaster()->MovePoint(1, s->GetPositionX(), s->GetPositionY(), s->GetPositionZ() - 15.0f);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_ANNHYLDE_YELL:
|
||||
if( Creature* s = ObjectAccessor::GetCreature(*me, ValkyrGUID) )
|
||||
s->AI()->Talk(YELL_ANHYLDE_2);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_VALKYR_BEAM:
|
||||
me->RemoveAura(SPELL_SUMMON_VALKYR);
|
||||
if( Creature* c = ObjectAccessor::GetCreature(*me, ValkyrGUID) )
|
||||
c->CastSpell(me, SPELL_RESURRECTION_BEAM, false);
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(EVENT_RESURRECTION_BALL, 4000);
|
||||
break;
|
||||
case EVENT_RESURRECTION_BALL:
|
||||
me->CastSpell(me, SPELL_RESURRECTION_BALL, true);
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(EVENT_RESURRECTION_HEAL, 4000);
|
||||
break;
|
||||
case EVENT_RESURRECTION_HEAL:
|
||||
me->RemoveAura(SPELL_RESURRECTION_BALL);
|
||||
me->CastSpell(me, SPELL_RESURRECTION_HEAL, true);
|
||||
FeignDeath(false);
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(EVENT_MORPH_TO_UNDEAD, 3000);
|
||||
break;
|
||||
case EVENT_MORPH_TO_UNDEAD:
|
||||
me->CastSpell(me, SPELL_INGVAR_TRANSFORM, true);
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(EVENT_START_PHASE_2, 1000);
|
||||
break;
|
||||
case EVENT_START_PHASE_2:
|
||||
|
|
@ -292,7 +284,6 @@ public:
|
|||
c->DespawnOrUnsummon();
|
||||
summons.DespawnAll();
|
||||
}
|
||||
events.PopEvent();
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
AttackStart(me->GetVictim());
|
||||
me->GetMotionMaster()->MoveChase(me->GetVictim());
|
||||
|
|
@ -310,7 +301,6 @@ public:
|
|||
case EVENT_UNROOT:
|
||||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
me->DisableRotate(false);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_ROAR:
|
||||
Talk(EMOTE_ROAR);
|
||||
|
|
@ -369,7 +359,6 @@ public:
|
|||
case EVENT_AXE_RETURN:
|
||||
if (Creature* c = ObjectAccessor::GetCreature(*me, ThrowGUID))
|
||||
c->GetMotionMaster()->MoveCharge(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 0.5f);
|
||||
events.PopEvent();
|
||||
events.RescheduleEvent(EVENT_AXE_PICKUP, 1500);
|
||||
break;
|
||||
case EVENT_AXE_PICKUP:
|
||||
|
|
@ -381,7 +370,6 @@ public:
|
|||
}
|
||||
ThrowGUID = 0;
|
||||
SetEquipmentSlots(true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -209,7 +209,6 @@ public:
|
|||
DoZoneInCombat(c);
|
||||
}
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -296,7 +295,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -311,7 +310,6 @@ public:
|
|||
events.RepeatEvent(urand(40000, 120000));
|
||||
break;
|
||||
case EVENT_RESURRECT:
|
||||
events.PopEvent();
|
||||
events.DelayEvents(3500);
|
||||
DoCast(me, SPELL_SCOURGE_RESURRECTION, true);
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
|
|
@ -324,7 +322,6 @@ public:
|
|||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
me->GetMotionMaster()->MoveChase(me->GetVictim());
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -163,13 +163,12 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case EVENT_MATE_DIED:
|
||||
Talk(YELL_SKARVALD_DAL_DIEDFIRST);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_CHARGE:
|
||||
if( Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, (IsHeroic() ? 100.0f : 30.0f), true) )
|
||||
|
|
@ -317,17 +316,15 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
switch( events.GetEvent() )
|
||||
switch( events.ExecuteEvent() )
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case EVENT_YELL_DALRONN_AGGRO:
|
||||
Talk(YELL_DALRONN_AGGRO);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_MATE_DIED:
|
||||
Talk(YELL_DALRONN_SKA_DIEDFIRST);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_SPELL_SHADOW_BOLT:
|
||||
if( Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 42.0f, true) )
|
||||
|
|
|
|||
|
|
@ -222,7 +222,7 @@ public:
|
|||
return;
|
||||
|
||||
events.Update(diff);
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_UNFREEZE_MONSTER:
|
||||
{
|
||||
|
|
@ -238,7 +238,6 @@ public:
|
|||
else
|
||||
EnterEvadeMode();
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_UNFREEZE_MONSTER2:
|
||||
|
|
@ -253,7 +252,6 @@ public:
|
|||
else
|
||||
EnterEvadeMode();
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_PALEHOOF_START:
|
||||
|
|
@ -263,7 +261,6 @@ public:
|
|||
orb->CastSpell(me, SPELL_AWAKEN_SUBBOSS, true);
|
||||
events.ScheduleEvent(EVENT_PALEHOOF_START2, 6000);
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_PALEHOOF_START2:
|
||||
|
|
@ -281,7 +278,6 @@ public:
|
|||
events.ScheduleEvent(EVENT_PALEHOOF_WITHERING_ROAR, 10000);
|
||||
events.ScheduleEvent(EVENT_PALEHOOF_IMPALE, 12000);
|
||||
events.ScheduleEvent(EVENT_PALEHOOF_ARCING_SMASH, 15000);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_PALEHOOF_WITHERING_ROAR:
|
||||
|
|
@ -402,7 +398,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_JORMUNGAR_ACID_SPIT:
|
||||
{
|
||||
|
|
@ -526,7 +522,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_RHINO_STOMP:
|
||||
{
|
||||
|
|
@ -636,7 +632,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_FURBOLG_CHAIN:
|
||||
{
|
||||
|
|
@ -744,7 +740,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_WORGEN_MORTAL:
|
||||
{
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SKADI_START:
|
||||
{
|
||||
|
|
@ -204,7 +204,6 @@ public:
|
|||
else
|
||||
EnterEvadeMode();
|
||||
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_SKADI_CRUSH:
|
||||
|
|
@ -430,7 +429,7 @@ public:
|
|||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
events.Update(diff);
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_GRAUF_CHECK:
|
||||
{
|
||||
|
|
@ -447,7 +446,6 @@ public:
|
|||
SpawnHelpers(0);
|
||||
events.ScheduleEvent(EVENT_GRAUF_MOVE, 15000);
|
||||
events.ScheduleEvent(EVENT_GRAUF_SUMMON_HELPERS, 20000);
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_GRAUF_MOVE:
|
||||
|
|
@ -478,7 +476,6 @@ public:
|
|||
{
|
||||
RemoveSkadi(false);
|
||||
me->DespawnOrUnsummon();
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -198,7 +198,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_YMIRON_HEALTH_CHECK:
|
||||
{
|
||||
|
|
@ -275,7 +275,6 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_YMIRON_BJORN_ABILITY:
|
||||
|
|
@ -288,7 +287,6 @@ public:
|
|||
sf->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
sf->GetMotionMaster()->MoveFollow(me->GetVictim(), 0, rand_norm()*M_PI * 2);
|
||||
}
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
case EVENT_YMIRON_HALDOR_ABILITY:
|
||||
|
|
@ -345,4 +343,4 @@ public:
|
|||
void AddSC_boss_ymiron()
|
||||
{
|
||||
new boss_ymiron();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ROCK_SHARDS:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||
|
|
@ -127,12 +127,10 @@ public:
|
|||
}
|
||||
case EVENT_IMPALE:
|
||||
me->CastSpell(me->GetVictim(), RAID_MODE(SPELL_IMPALE_10, SPELL_IMPALE_25), false);
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_BERSERK:
|
||||
me->CastSpell(me, SPELL_BERSERK, true);
|
||||
Talk(EMOTE_BERSERK);
|
||||
events.PopEvent();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_CHAIN_LIGHTNING:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||
|
|
@ -176,7 +176,6 @@ public:
|
|||
break;
|
||||
case EVENT_SUMMON_NEXT_MINION:
|
||||
me->SummonCreature(NPC_TEMPEST_MINION, TempestMinions[urand(0, 3)], TEMPSUMMON_CORPSE_DESPAWN, 0);
|
||||
events.PopEvent();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_BURNING_BREATH:
|
||||
rotateTimer = 1500;
|
||||
|
|
|
|||
|
|
@ -116,8 +116,6 @@ public:
|
|||
|
||||
void UpdateAI(uint32 diff)
|
||||
{
|
||||
|
||||
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
|
|
@ -125,7 +123,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.GetEvent())
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_FREEZING_GROUND:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||
|
|
@ -144,7 +142,6 @@ public:
|
|||
case EVENT_CAST_WHITEOUT_GROUND_EFFECT: // Whiteout Ground effect trigger
|
||||
if (Unit* whiteOutGround = me->SummonCreature(NPC_WHITEOUT_GROUND_EFFECT, -43.3316, -288.708, 92.2511, 1.58825, TEMPSUMMON_TIMED_DESPAWN, 4000))
|
||||
whiteOutGround->CastSpell(whiteOutGround, SPELL_WHITEOUT_VISUAL, false); // Cast the spell
|
||||
events.PopEvent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -119,7 +119,7 @@ public:
|
|||
break;
|
||||
case EVENT_UNROOT:
|
||||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
events.PopEvent();
|
||||
|
||||
break;
|
||||
case EVENT_SPELL_BLIZZARD:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 45.0f, true))
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
@ -269,7 +269,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch(events.GetEvent())
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue