mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-24 14:16:31 +00:00
fix(Core/Util): EventMap::RepeatEvent when eventId is retrieved by ExecuteEvent() call (#3426)
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user