mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-03-17 06:25:11 +00:00
refactor(Core/EventMap): Refactor EventMap and related scripts (#23121)
Co-authored-by: Kelno <3866946+kelno@users.noreply.github.com> Co-authored-by: Peter Keresztes Schmidt <carbenium@outlook.com>
This commit is contained in:
@@ -269,7 +269,7 @@ struct boss_kaelthas : public BossAI
|
||||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (_phase == PHASE_FINAL /* check is scheduled&& events.GetNextEventTime(EVENT_GRAVITY_LAPSE_END) == 0*/)
|
||||
if (_phase == PHASE_FINAL /* check is scheduled&& !events.HasTimeUntilEvent(EVENT_GRAVITY_LAPSE_END)*/)
|
||||
BossAI::AttackStart(who);
|
||||
}
|
||||
|
||||
@@ -364,11 +364,11 @@ struct boss_kaelthas : public BossAI
|
||||
{
|
||||
DoCastVictim(SPELL_FIREBALL);
|
||||
}, 2400ms, 7500ms);
|
||||
ScheduleTimedEvent(10000ms, [&]
|
||||
ScheduleTimedEvent(10s, [&]
|
||||
{
|
||||
DoCastRandomTarget(SPELL_FLAME_STRIKE, 0, 100.0f);
|
||||
}, 30250ms, 50650ms);
|
||||
ScheduleTimedEvent(50000ms, [&]
|
||||
ScheduleTimedEvent(50s, [&]
|
||||
{
|
||||
Talk(SAY_SUMMON_PHOENIX);
|
||||
DoCastSelf(SPELL_PHOENIX);
|
||||
@@ -429,7 +429,7 @@ struct boss_kaelthas : public BossAI
|
||||
DoCastSelf(SPELL_KAEL_EXPLODES1, true);
|
||||
DoCastSelf(SPELL_KAEL_GAINING_POWER);
|
||||
}, EVENT_SCENE_2);
|
||||
ScheduleUniqueTimedEvent(4000ms, [&]
|
||||
ScheduleUniqueTimedEvent(4s, [&]
|
||||
{
|
||||
me->SetTarget();
|
||||
for (uint8 i = 0; i < 2; ++i)
|
||||
@@ -440,7 +440,7 @@ struct boss_kaelthas : public BossAI
|
||||
me->GetMotionMaster()->MoveTakeoff(POINT_AIR, me->GetPositionX(), me->GetPositionY(), 75.0f, 2.99, true); // AnimType Movement::ToFly does not exist for Kael
|
||||
DoCastSelf(SPELL_GROW, true);
|
||||
}, EVENT_SCENE_3);
|
||||
ScheduleUniqueTimedEvent(7000ms, [&]
|
||||
ScheduleUniqueTimedEvent(7s, [&]
|
||||
{
|
||||
me->SetTarget();
|
||||
DoCastSelf(SPELL_GROW, true);
|
||||
@@ -450,7 +450,7 @@ struct boss_kaelthas : public BossAI
|
||||
if (Creature* trigger = me->SummonCreature(WORLD_TRIGGER, triggersPos[i + 2], TEMPSUMMON_TIMED_DESPAWN, 60000))
|
||||
trigger->CastSpell(me, SPELL_NETHERBEAM1 + i, false);
|
||||
}, EVENT_SCENE_4);
|
||||
ScheduleUniqueTimedEvent(10000ms, [&]
|
||||
ScheduleUniqueTimedEvent(10s, [&]
|
||||
{
|
||||
me->SetTarget();
|
||||
DoCastSelf(SPELL_GROW, true);
|
||||
@@ -460,7 +460,7 @@ struct boss_kaelthas : public BossAI
|
||||
if (Creature* trigger = me->SummonCreature(WORLD_TRIGGER, triggersPos[i + 4], TEMPSUMMON_TIMED_DESPAWN, 60000))
|
||||
trigger->CastSpell(me, SPELL_NETHERBEAM1 + i, false);
|
||||
}, EVENT_SCENE_5);
|
||||
ScheduleUniqueTimedEvent(14000ms, [&]
|
||||
ScheduleUniqueTimedEvent(14s, [&]
|
||||
{
|
||||
DoCastSelf(SPELL_GROW, true);
|
||||
DoCastSelf(SPELL_KAEL_EXPLODES4, true);
|
||||
@@ -470,7 +470,7 @@ struct boss_kaelthas : public BossAI
|
||||
{
|
||||
SetRoomState(GO_STATE_ACTIVE);
|
||||
}, EVENT_SCENE_7);
|
||||
ScheduleUniqueTimedEvent(19000ms, [&]
|
||||
ScheduleUniqueTimedEvent(19s, [&]
|
||||
{
|
||||
summons.DespawnEntry(WORLD_TRIGGER);
|
||||
me->RemoveAurasDueToSpell(SPELL_NETHERBEAM_AURA1);
|
||||
@@ -478,7 +478,7 @@ struct boss_kaelthas : public BossAI
|
||||
me->RemoveAurasDueToSpell(SPELL_NETHERBEAM_AURA3);
|
||||
DoCastSelf(SPELL_KAEL_EXPLODES5, true);
|
||||
}, EVENT_SCENE_8);
|
||||
ScheduleUniqueTimedEvent(22000ms, [&]
|
||||
ScheduleUniqueTimedEvent(22s, [&]
|
||||
{
|
||||
DoCastSelf(SPELL_DARK_BANISH_STATE, true);
|
||||
DoCastSelf(SPELL_ARCANE_EXPLOSION_VISUAL, true);
|
||||
@@ -528,14 +528,14 @@ struct boss_kaelthas : public BossAI
|
||||
me->CastStop();
|
||||
DoCastSelf(SPELL_KAEL_FULL_POWER);
|
||||
}, EVENT_SCENE_16);
|
||||
ScheduleUniqueTimedEvent(32000ms, [&]
|
||||
ScheduleUniqueTimedEvent(32s, [&]
|
||||
{
|
||||
DoCastSelf(SPELL_KAEL_PHASE_TWO, true);
|
||||
DoCastSelf(SPELL_PURE_NETHER_BEAM4, true);
|
||||
DoCastSelf(SPELL_PURE_NETHER_BEAM5, true);
|
||||
DoCastSelf(SPELL_PURE_NETHER_BEAM6, true);
|
||||
}, EVENT_SCENE_17);
|
||||
ScheduleUniqueTimedEvent(36000ms, [&]
|
||||
ScheduleUniqueTimedEvent(36s, [&]
|
||||
{
|
||||
summons.DespawnEntry(WORLD_TRIGGER);
|
||||
me->CastStop();
|
||||
@@ -559,7 +559,7 @@ struct boss_kaelthas : public BossAI
|
||||
switch (kaelAction)
|
||||
{
|
||||
case ACTION_START_THALADRED:
|
||||
attackStartTimer = 7000ms;
|
||||
attackStartTimer = 7s;
|
||||
advisorNPCId = NPC_THALADRED;
|
||||
break;
|
||||
case ACTION_START_SANGUINAR:
|
||||
@@ -567,7 +567,7 @@ struct boss_kaelthas : public BossAI
|
||||
advisorNPCId = NPC_LORD_SANGUINAR;
|
||||
break;
|
||||
case ACTION_START_CAPERNIAN:
|
||||
attackStartTimer = 9000ms;
|
||||
attackStartTimer = 9s;
|
||||
advisorNPCId = NPC_CAPERNIAN;
|
||||
break;
|
||||
case ACTION_START_TELONICUS:
|
||||
@@ -658,15 +658,15 @@ struct boss_kaelthas : public BossAI
|
||||
me->GetMotionMaster()->MovePoint(POINT_MIDDLE, me->GetHomePosition(), true, true);
|
||||
}
|
||||
});
|
||||
ScheduleTimedEvent(1000ms, [&]
|
||||
ScheduleTimedEvent(1s, [&]
|
||||
{
|
||||
DoCastVictim(SPELL_FIREBALL);
|
||||
}, 2400ms, 7500ms);
|
||||
ScheduleTimedEvent(15000ms, [&]
|
||||
ScheduleTimedEvent(15s, [&]
|
||||
{
|
||||
DoCastRandomTarget(SPELL_FLAME_STRIKE, 0, 100.0f);
|
||||
}, 30250ms, 50650ms);
|
||||
ScheduleTimedEvent(50000ms, [&]
|
||||
ScheduleTimedEvent(50s, [&]
|
||||
{
|
||||
Talk(SAY_SUMMON_PHOENIX);
|
||||
DoCastSelf(SPELL_PHOENIX);
|
||||
@@ -855,7 +855,7 @@ struct npc_capernian : public advisor_baseAI
|
||||
DoCastVictim(SPELL_CAPERNIAN_FIREBALL);
|
||||
}
|
||||
}, 2500ms);
|
||||
ScheduleTimedEvent(7000ms, 10000ms, [&]{
|
||||
ScheduleTimedEvent(7s, 10s, [&]{
|
||||
DoCastRandomTarget(SPELL_CONFLAGRATION, 0, 30.0f);
|
||||
}, 18500ms, 20500ms);
|
||||
ScheduleTimedEvent(3s, [&]{
|
||||
@@ -893,16 +893,16 @@ struct npc_thaladred : public advisor_baseAI
|
||||
me->AddThreat(target, 10000000.0f);
|
||||
Talk(EMOTE_THALADRED_FIXATE, target);
|
||||
}
|
||||
}, 10000ms);
|
||||
ScheduleTimedEvent(4000ms, 19350ms, [&]
|
||||
}, 10s);
|
||||
ScheduleTimedEvent(4s, 19350ms, [&]
|
||||
{
|
||||
DoCastVictim(SPELL_PSYCHIC_BLOW);
|
||||
}, 15700ms, 48900ms);
|
||||
ScheduleTimedEvent(3000ms, 6050ms, [&]
|
||||
ScheduleTimedEvent(3s, 6050ms, [&]
|
||||
{
|
||||
DoCastVictim(SPELL_REND);
|
||||
}, 15700ms, 48900ms);
|
||||
ScheduleTimedEvent(3000ms, 6050ms, [&]
|
||||
ScheduleTimedEvent(3s, 6050ms, [&]
|
||||
{
|
||||
if (Unit* victim = me->GetVictim())
|
||||
{
|
||||
|
||||
@@ -97,8 +97,8 @@ public:
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetImmuneToAll(true);
|
||||
events2.Reset();
|
||||
events2.ScheduleEvent(EVENT_TELEPORT_VISUAL, 0);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO1, 3000);
|
||||
events2.ScheduleEvent(EVENT_TELEPORT_VISUAL, 0ms);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO1, 3s);
|
||||
}
|
||||
|
||||
void Reset() override
|
||||
@@ -125,9 +125,9 @@ public:
|
||||
|
||||
void JustEngagedWith(Unit*) override
|
||||
{
|
||||
events.ScheduleEvent(EVENT_MILL_CHECK_HEALTH, 1000);
|
||||
events.ScheduleEvent(EVENT_MILL_PYROBLAST, 30000);
|
||||
events.ScheduleEvent(EVENT_MILL_BASE_SPELL, 2000);
|
||||
events.ScheduleEvent(EVENT_MILL_CHECK_HEALTH, 1s);
|
||||
events.ScheduleEvent(EVENT_MILL_PYROBLAST, 30s);
|
||||
events.ScheduleEvent(EVENT_MILL_BASE_SPELL, 2s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*type*/, SpellSchoolMask /*school*/) override
|
||||
@@ -150,52 +150,52 @@ public:
|
||||
break;
|
||||
case EVENT_MILLHOUSE_INTRO1:
|
||||
Talk(SAY_INTRO_1);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO2, 18000);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO2, 18s);
|
||||
break;
|
||||
case EVENT_MILLHOUSE_INTRO2:
|
||||
Talk(SAY_INTRO_2);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO3, 8000);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO3, 8s);
|
||||
break;
|
||||
case EVENT_MILLHOUSE_INTRO3:
|
||||
Talk(SAY_INTRO_3);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO4, 6000);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO4, 6s);
|
||||
break;
|
||||
case EVENT_MILLHOUSE_INTRO4:
|
||||
Talk(SAY_INTRO_4);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO5, 8000);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO5, 8s);
|
||||
break;
|
||||
case EVENT_MILLHOUSE_INTRO5:
|
||||
Talk(SAY_WATER);
|
||||
me->CastSpell(me, SPELL_CONJURE_WATER, false);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO6, 7000);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO6, 7s);
|
||||
break;
|
||||
case EVENT_MILLHOUSE_INTRO6:
|
||||
Talk(SAY_BUFFS);
|
||||
me->CastSpell(me, SPELL_ICE_ARMOR, false);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO7, 7000);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO7, 7s);
|
||||
break;
|
||||
case EVENT_MILLHOUSE_INTRO7:
|
||||
Talk(SAY_DRINK);
|
||||
me->CastSpell(me, SPELL_ARCANE_INTELLECT, false);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO8, 7000);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO8, 7s);
|
||||
break;
|
||||
case EVENT_MILLHOUSE_INTRO8:
|
||||
Talk(SAY_READY);
|
||||
me->GetMotionMaster()->MovePoint(1, 445.82f, -158.38f, 43.067f);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO9, 5000);
|
||||
events2.ScheduleEvent(EVENT_MILLHOUSE_INTRO9, 5s);
|
||||
break;
|
||||
case EVENT_MILLHOUSE_INTRO9:
|
||||
me->SetFacingTo(M_PI * 1.5f);
|
||||
me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), M_PI * 1.5f);
|
||||
me->SetImmuneToAll(false);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
events2.ScheduleEvent(EVENT_SEARCH_FIGHT, 1000);
|
||||
events2.ScheduleEvent(EVENT_SEARCH_FIGHT, 1s);
|
||||
break;
|
||||
case EVENT_SEARCH_FIGHT:
|
||||
if (!me->IsInCombat() && !me->IsInEvadeMode())
|
||||
if (Unit* target = me->SelectNearbyTarget(nullptr, 30.0f))
|
||||
AttackStart(target);
|
||||
events2.ScheduleEvent(EVENT_SEARCH_FIGHT, 1000);
|
||||
events2.ScheduleEvent(EVENT_SEARCH_FIGHT, 1s);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -214,27 +214,27 @@ public:
|
||||
Talk(SAY_LOWHP);
|
||||
break;
|
||||
}
|
||||
events.ScheduleEvent(EVENT_MILL_CHECK_HEALTH, 1000);
|
||||
events.ScheduleEvent(EVENT_MILL_CHECK_HEALTH, 1s);
|
||||
break;
|
||||
case EVENT_MILL_PYROBLAST:
|
||||
Talk(SAY_PYRO);
|
||||
me->CastSpell(me->GetVictim(), SPELL_PYROBLAST, false);
|
||||
events.ScheduleEvent(EVENT_MILL_PYROBLAST, 30000);
|
||||
events.ScheduleEvent(EVENT_MILL_PYROBLAST, 30s);
|
||||
break;
|
||||
case EVENT_MILL_BASE_SPELL:
|
||||
switch (RAND(SPELL_FIREBALL, SPELL_ARCANE_MISSILES, SPELL_FROSTBOLT))
|
||||
{
|
||||
case SPELL_FIREBALL:
|
||||
me->CastSpell(me->GetVictim(), SPELL_FIREBALL, false);
|
||||
events.ScheduleEvent(EVENT_MILL_BASE_SPELL, 4000);
|
||||
events.ScheduleEvent(EVENT_MILL_BASE_SPELL, 4s);
|
||||
break;
|
||||
case SPELL_ARCANE_MISSILES:
|
||||
me->CastSpell(me->GetVictim(), SPELL_ARCANE_MISSILES, false);
|
||||
events.ScheduleEvent(EVENT_MILL_BASE_SPELL, 9000);
|
||||
events.ScheduleEvent(EVENT_MILL_BASE_SPELL, 9s);
|
||||
break;
|
||||
case SPELL_FROSTBOLT:
|
||||
me->CastSpell(me->GetVictim(), SPELL_FROSTBOLT, false);
|
||||
events.ScheduleEvent(EVENT_MILL_BASE_SPELL, 4000);
|
||||
events.ScheduleEvent(EVENT_MILL_BASE_SPELL, 4s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -390,8 +390,8 @@ public:
|
||||
me->setActive(true);
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
me->SetImmuneToAll(true);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO1, 1500);
|
||||
events.ScheduleEvent(EVENT_WARDEN_CHECK_PLAYERS, 1000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO1, 1500ms);
|
||||
events.ScheduleEvent(EVENT_WARDEN_CHECK_PLAYERS, 1s);
|
||||
instance->SetBossState(DATA_WARDEN_MELLICHAR, IN_PROGRESS);
|
||||
}
|
||||
damage = 0;
|
||||
@@ -410,13 +410,13 @@ public:
|
||||
switch (type)
|
||||
{
|
||||
case DATA_WARDEN_1:
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO8, 2000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO8, 2s);
|
||||
break;
|
||||
case DATA_WARDEN_3:
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO19, 2000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO19, 2s);
|
||||
break;
|
||||
case DATA_WARDEN_4:
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO24, 2000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO24, 2s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -432,35 +432,35 @@ public:
|
||||
CreatureAI::EnterEvadeMode();
|
||||
return;
|
||||
}
|
||||
events.ScheduleEvent(EVENT_WARDEN_CHECK_PLAYERS, 1000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_CHECK_PLAYERS, 1s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO1:
|
||||
Talk(YELL_INTRO1);
|
||||
me->SetFacingTo(M_PI / 2.0f);
|
||||
me->CastSpell(me, SPELL_BUBBLE_VISUAL, false);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO2, 1400);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO2, 1400ms);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO2:
|
||||
instance->HandleGameObject(instance->GetGuidData(DATA_WARDENS_SHIELD), false);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO3, 20000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO3, 20s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO3:
|
||||
Talk(YELL_INTRO2);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO4, 5000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO4, 5s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO4:
|
||||
me->SetFacingTo(0.5f);
|
||||
me->CastSpell((Unit*)nullptr, SPELL_TARGET_ALPHA, false);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO5, 2000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO5, 2s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO5:
|
||||
instance->SetData(DATA_WARDEN_1, IN_PROGRESS);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO6, 3000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO6, 3s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO6:
|
||||
me->SetFacingTo(M_PI * 1.5f);
|
||||
me->CastSpell((Unit*)nullptr, SPELL_TARGET_OMEGA, false);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO7, 5000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO7, 5s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO7:
|
||||
me->SummonCreature(RAND(NPC_TRICKSTER, NPC_PH_HUNTER), 478.326f, -148.505f, 42.56f, 3.19f, TEMPSUMMON_MANUAL_DESPAWN);
|
||||
@@ -470,44 +470,44 @@ public:
|
||||
Talk(YELL_RELEASE1);
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
me->SetFacingTo(2.6f);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO10, 4000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO10, 4s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO10:
|
||||
me->CastSpell((Unit*)nullptr, SPELL_TARGET_BETA, false);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO11, 2000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO11, 2s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO11:
|
||||
Talk(YELL_RELEASE2A);
|
||||
instance->SetData(DATA_WARDEN_2, IN_PROGRESS);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO12, 2000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO12, 2s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO12:
|
||||
me->SetFacingTo(M_PI * 1.5f);
|
||||
me->CastSpell((Unit*)nullptr, SPELL_TARGET_OMEGA, false);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO13, 6000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO13, 6s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO13:
|
||||
me->SummonCreature(NPC_MILLHOUSE, 413.292f, -148.378f, 42.56f, 6.27f, TEMPSUMMON_MANUAL_DESPAWN);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO14, 14000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO14, 14s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO14:
|
||||
Talk(YELL_RELEASE2B);
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
me->SetFacingTo(3.3f);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO15, 5000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO15, 5s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO15:
|
||||
me->CastSpell((Unit*)nullptr, SPELL_TARGET_DELTA, false);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO16, 2000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO16, 2s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO16:
|
||||
instance->SetData(DATA_WARDEN_3, IN_PROGRESS);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO17, 2000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO17, 2s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO17:
|
||||
me->SetFacingTo(M_PI * 1.5f);
|
||||
me->CastSpell((Unit*)nullptr, SPELL_TARGET_OMEGA, false);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO18, 6000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO18, 6s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO18:
|
||||
me->SummonCreature(RAND(NPC_AKKIRIS, NPC_SULFURON), 420.179f, -174.396f, 42.58f, 0.02f, TEMPSUMMON_MANUAL_DESPAWN);
|
||||
@@ -517,20 +517,20 @@ public:
|
||||
Talk(YELL_RELEASE3);
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
me->SetFacingTo(6.05f);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO20, 4000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO20, 4s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO20:
|
||||
me->CastSpell((Unit*)nullptr, SPELL_TARGET_GAMMA, false);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO21, 2000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO21, 2s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO21:
|
||||
instance->SetData(DATA_WARDEN_4, IN_PROGRESS);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO22, 2000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO22, 2s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO22:
|
||||
me->SetFacingTo(M_PI * 1.5f);
|
||||
me->CastSpell((Unit*)nullptr, SPELL_TARGET_OMEGA, false);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO23, 6000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO23, 6s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO23:
|
||||
me->SummonCreature(RAND(NPC_TW_DRAK, NPC_BL_DRAK), 471.795f, -174.58f, 42.58f, 3.06f, TEMPSUMMON_MANUAL_DESPAWN);
|
||||
@@ -540,7 +540,7 @@ public:
|
||||
instance->SetData(DATA_WARDEN_5, IN_PROGRESS);
|
||||
Talk(YELL_RELEASE4);
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO25, 8000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO25, 8s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO25:
|
||||
if (Creature* cr = me->SummonCreature(NPC_HARBINGER_SKYRISS, 445.763f, -191.639f, 44.64f, 1.60f, TEMPSUMMON_MANUAL_DESPAWN))
|
||||
@@ -548,22 +548,22 @@ public:
|
||||
cr->SetImmuneToAll(true);
|
||||
cr->CastSpell(cr, SPELL_TELEPORT_VISUAL, true);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO26, 1000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO26, 1s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO26:
|
||||
if (Creature* creature = summons.GetCreatureWithEntry(NPC_HARBINGER_SKYRISS))
|
||||
creature->AI()->Talk(SAY_HARBINGER_INTRO);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO27, 23000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO27, 23s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO27:
|
||||
Talk(YELL_WELCOME);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO28, 5000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO28, 5s);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO28:
|
||||
instance->HandleGameObject(instance->GetGuidData(DATA_WARDENS_SHIELD), true);
|
||||
if (Creature* creature = summons.GetCreatureWithEntry(NPC_HARBINGER_SKYRISS))
|
||||
creature->CastSpell((Unit*)nullptr, SPELL_MIND_REND, false);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO29, 4000);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO29, 4s);
|
||||
break;
|
||||
|
||||
case EVENT_WARDEN_INTRO29:
|
||||
|
||||
@@ -165,7 +165,7 @@ struct boss_wrath_scryer_soccothrates : public BossAI
|
||||
if (!preFight && who->IsPlayer() && me->IsWithinDistInMap(who, 70.0f))
|
||||
{
|
||||
Talk(SAY_SOCCOTHRATES_CONVO_1);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_1, 2000);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_1, 2s);
|
||||
preFight = true;
|
||||
}
|
||||
}
|
||||
@@ -178,38 +178,38 @@ struct boss_wrath_scryer_soccothrates : public BossAI
|
||||
case EVENT_PREFIGHT_1:
|
||||
if (Creature* dalliah = instance->GetCreature(DATA_DALLIAH))
|
||||
dalliah->AI()->Talk(SAY_DALLIAH_CONVO_1);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_2, 3000);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_2, 3s);
|
||||
break;
|
||||
case EVENT_PREFIGHT_2:
|
||||
Talk(SAY_SOCCOTHRATES_CONVO_2);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_3, 3000);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_3, 3s);
|
||||
break;
|
||||
case EVENT_PREFIGHT_3:
|
||||
if (Creature* dalliah = instance->GetCreature(DATA_DALLIAH))
|
||||
dalliah->AI()->Talk(SAY_DALLIAH_CONVO_2);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_4, 6000);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_4, 6s);
|
||||
break;
|
||||
case EVENT_PREFIGHT_4:
|
||||
Talk(SAY_SOCCOTHRATES_CONVO_3);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_5, 2000);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_5, 2s);
|
||||
break;
|
||||
case EVENT_PREFIGHT_5:
|
||||
if (Creature* dalliah = instance->GetCreature(DATA_DALLIAH))
|
||||
dalliah->AI()->Talk(SAY_DALLIAH_CONVO_3);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_6, 3000);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_6, 3s);
|
||||
break;
|
||||
case EVENT_PREFIGHT_6:
|
||||
Talk(SAY_SOCCOTHRATES_CONVO_4);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_7, 2000);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_7, 2s);
|
||||
break;
|
||||
case EVENT_PREFIGHT_7:
|
||||
if (Creature* dalliah = instance->GetCreature(DATA_DALLIAH))
|
||||
dalliah->GetMotionMaster()->MovePoint(0, 118.6048f, 96.84852f, 22.44115f);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_8, 4000);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_8, 4s);
|
||||
break;
|
||||
case EVENT_PREFIGHT_8:
|
||||
me->GetMotionMaster()->MovePoint(0, 122.1035f, 192.7203f, 22.44115f);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_9, 4000);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_9, 4s);
|
||||
break;
|
||||
case EVENT_PREFIGHT_9:
|
||||
if (Creature* dalliah = instance->GetCreature(DATA_DALLIAH))
|
||||
|
||||
Reference in New Issue
Block a user