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:
天鹭
2025-10-13 09:19:24 +08:00
committed by GitHub
parent 8e1426c06a
commit 9c49349e1e
168 changed files with 1468 additions and 1593 deletions

View File

@@ -111,7 +111,7 @@ struct boss_grandmaster_vorpil : public BossAI
case 8:
return 7200ms;
case 9:
return 6000ms;
return 6s;
default:
return 4800ms;
}

View File

@@ -923,7 +923,7 @@ struct npc_akama_illidan : public ScriptedAI
me->m_Events.AddEventAtOffset([&] {
Talk(SAY_AKAMA_COUNCIL_2);
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}, 8000ms); // 7800ms
}, 8s); // 7800ms
}
break;
// Reached Door

View File

@@ -262,7 +262,7 @@ struct boss_illidari_council_memberAI : public ScriptedAI
void KilledUnit(Unit*) override
{
if (events.GetNextEventTime(EVENT_KILL_TALK) == 0)
if (!events.HasTimeUntilEvent(EVENT_KILL_TALK))
{
Talk(SAY_COUNCIL_SLAY);
events.ScheduleEvent(EVENT_KILL_TALK, 6s);
@@ -582,7 +582,7 @@ struct boss_veras_darkshadow : public boss_illidari_council_memberAI
break;
}
if (events.GetNextEventTime(EVENT_SPELL_VANISH_OUT) == 0)
if (!events.HasTimeUntilEvent(EVENT_SPELL_VANISH_OUT))
DoMeleeAttackIfReady();
}
};

View File

@@ -251,7 +251,7 @@ struct npc_akama_shade : public ScriptedAI
{
Talk(SAY_BROKEN_FREE_2);
}, 3);
ScheduleUniqueTimedEvent(52000ms, [&]
ScheduleUniqueTimedEvent(52s, [&]
{
std::list<Creature*> brokens;
me->GetCreatureListWithEntryInGrid(brokens, NPC_ASHTONGUE_BROKEN, 40.0f);

View File

@@ -129,7 +129,7 @@ struct boss_the_lurker_below : public BossAI
{
BossAI::JustEngagedWith(who);
SchedulerPhaseOne(38800ms, 91000ms);
SchedulerPhaseOne(38800ms, 91s);
}
void SummonedCreatureDies(Creature* /*summon*/, Unit* /*killer*/) override
@@ -191,7 +191,7 @@ struct boss_the_lurker_below : public BossAI
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
scheduler.CancelAll();
SchedulerPhaseOne(10000ms, 90750ms);
SchedulerPhaseOne(10s, 90750ms);
});
}

View File

@@ -188,7 +188,7 @@ struct boss_ahune : public BossAI
{
BossAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_INITIAL_EMERGE, 4ms);
events.ScheduleEvent(EVENT_SYNCH_HEALTH, 3000);
events.ScheduleEvent(EVENT_SYNCH_HEALTH, 3s);
}
void EnterEvadeMode(EvadeReason /*why*/) override
@@ -318,7 +318,7 @@ struct npc_frozen_core : public ScriptedAI
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
me->SetImmuneToPC(false);
me->RemoveAurasDueToSpell(SPELL_ICE_SPEAR_CONTROL_AURA);
_events.ScheduleEvent(EVENT_SYNCH_HEALTH, 3000, 0, PHASE_TWO);
_events.ScheduleEvent(EVENT_SYNCH_HEALTH, 3s, 0, PHASE_TWO);
}
else if (action == ACTION_AHUNE_RESURFACE)
{
@@ -342,7 +342,7 @@ struct npc_frozen_core : public ScriptedAI
DoCast(ahune, SPELL_SYNCH_HEALTH, true);
else
DoCastSelf(SPELL_SUICIDE);
_events.Repeat(3000ms, 3000ms);
_events.Repeat(3s, 3s);
break;
default:
break;
@@ -394,11 +394,11 @@ struct npc_ahune_bunny : public ScriptedAI
_submerged = false;
_events.Reset();
_events.SetPhase(PHASE_ONE);
_events.ScheduleEvent(EVENT_SUMMON_AHUNE, 10000);
_events.ScheduleEvent(EVENT_START_LOOKING_FOR_OPENING, 14000, 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_SUMMON_COLDWEAVE, 22000, 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_SUMMON_HAILSTONE, 14000, 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_AHUNE_PHASE_TWO, 108000, 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_SUMMON_AHUNE, 10s);
_events.ScheduleEvent(EVENT_START_LOOKING_FOR_OPENING, 14s, 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_SUMMON_COLDWEAVE, 22s, 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_SUMMON_HAILSTONE, 14s, 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_AHUNE_PHASE_TWO, 108s, 0, PHASE_ONE);
}
else if (action == ACTION_STOP_EVENT)
{
@@ -430,9 +430,9 @@ struct npc_ahune_bunny : public ScriptedAI
case EVENT_SUMMON_COLDWEAVE:
DoCast(SPELL_SUMMON_COLDWEAVE);
DoCast(SPELL_SUMMON_COLDWEAVE);
_events.Repeat(8000ms);
_events.Repeat(8s);
if (_submerged)
_events.ScheduleEvent(EVENT_SUMMON_FROSTWIND, 4000, 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_SUMMON_FROSTWIND, 4s, 0, PHASE_ONE);
break;
case EVENT_SUMMON_FROSTWIND:
DoCast(SPELL_SUMMON_FROSTWIND);
@@ -458,17 +458,17 @@ struct npc_ahune_bunny : public ScriptedAI
ahune->AI()->DoAction(ACTION_AHUNE_RETREAT);
_events.Reset();
_events.SetPhase(PHASE_TWO);
_events.ScheduleEvent(EVENT_CLOSE_OPENING, 25000, 0, PHASE_TWO);
_events.ScheduleEvent(EVENT_AHUNE_PHASE_ONE, 35000, 0, PHASE_TWO);
_events.ScheduleEvent(EVENT_CLOSE_OPENING, 25s, 0, PHASE_TWO);
_events.ScheduleEvent(EVENT_AHUNE_PHASE_ONE, 35s, 0, PHASE_TWO);
break;
case EVENT_AHUNE_PHASE_ONE:
_submerged = true;
_events.Reset();
_events.SetPhase(PHASE_ONE);
_events.ScheduleEvent(EVENT_SUMMON_COLDWEAVE, 8000, 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_SUMMON_HAILSTONE, 5000, 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_START_LOOKING_FOR_OPENING, 5000, 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_AHUNE_PHASE_TWO, 100000, 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_SUMMON_COLDWEAVE, 8s, 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_SUMMON_HAILSTONE, 5s, 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_START_LOOKING_FOR_OPENING, 5s, 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_AHUNE_PHASE_TWO, 100s, 0, PHASE_ONE);
break;
default:
break;
@@ -534,7 +534,7 @@ struct npc_earthen_ring_flamecaller : public ScriptedAI
switch (spellInfo->Id)
{
case SPELL_SHAMANS_LOOK_FOR_OPENING:
_events.ScheduleEvent(EVENT_LOOKFOROPENING_0, 17000);
_events.ScheduleEvent(EVENT_LOOKFOROPENING_0, 17s);
break;
case SPELL_FOUND_OPENING:
Talk(EMOTE_RETREAT);
@@ -560,15 +560,15 @@ struct npc_earthen_ring_flamecaller : public ScriptedAI
{
case EVENT_LOOKFOROPENING_0:
LookOpening(true, 0);
_events.ScheduleEvent(EVENT_LOOKFOROPENING_1, 26000);
_events.ScheduleEvent(EVENT_LOOKFOROPENING_1, 26s);
break;
case EVENT_LOOKFOROPENING_1:
LookOpening(true, 1);
_events.ScheduleEvent(EVENT_LOOKFOROPENING_2, 25000);
_events.ScheduleEvent(EVENT_LOOKFOROPENING_2, 25s);
break;
case EVENT_LOOKFOROPENING_2:
LookOpening(true, 2);
_events.ScheduleEvent(EVENT_STOP_LOOKING_FOR_OPENING, 27000);
_events.ScheduleEvent(EVENT_STOP_LOOKING_FOR_OPENING, 27s);
break;
case EVENT_STOP_LOOKING_FOR_OPENING:
LookOpening(false, _mySpot);

View File

@@ -68,7 +68,7 @@ struct boss_gruul : public BossAI
{
_Reset();
_recentlySpoken = false;
_caveInTimer = 29000ms;
_caveInTimer = 29s;
}
void JustEngagedWith(Unit* /*who*/) override
@@ -84,7 +84,7 @@ struct boss_gruul : public BossAI
}).Schedule(_caveInTimer, [this](TaskContext context)
{
DoCastRandomTarget(SPELL_CAVE_IN);
if (_caveInTimer > 4000ms)
if (_caveInTimer > 4s)
{
_caveInTimer = _caveInTimer - 1500ms;
}

View File

@@ -146,7 +146,7 @@ struct boss_high_king_maulgar : public BossAI
{
DoCastVictim(SPELL_MIGHTY_BLOW);
context.Repeat(16200ms, 19s);
}).Schedule(67000ms, [this](TaskContext context)
}).Schedule(67s, [this](TaskContext context)
{
scheduler.DelayAll(15s);
DoCastSelf(SPELL_WHIRLWIND);

View File

@@ -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())
{

View File

@@ -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:

View File

@@ -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))

View File

@@ -98,7 +98,7 @@ public:
CannonGUID = caster->GetGUID();
PartyTime = true;
events.ScheduleEvent(EVENT_PARTY_TIMER, 3000);
events.ScheduleEvent(EVENT_PARTY_TIMER, 3s);
}
if (count >= 3)
@@ -160,7 +160,7 @@ public:
me->SummonCreature(NPC_HOUND, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 10000);
else
me->SummonCreature(NPC_FEL_IMP, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 10000);
events.ScheduleEvent(EVENT_PARTY_TIMER, 3000);
events.ScheduleEvent(EVENT_PARTY_TIMER, 3s);
break;
}
}
@@ -577,18 +577,18 @@ public:
if (!CheckPlayer())
ResetNode();
else
_events.ScheduleEvent(EVENT_SIMON_PERIODIC_PLAYER_CHECK, 2000);
_events.ScheduleEvent(EVENT_SIMON_PERIODIC_PLAYER_CHECK, 2s);
break;
case EVENT_SIMON_SETUP_PRE_GAME:
SetUpPreGame();
_events.CancelEvent(EVENT_SIMON_GAME_TICK);
_events.ScheduleEvent(EVENT_SIMON_PLAY_SEQUENCE, 1000);
_events.ScheduleEvent(EVENT_SIMON_PLAY_SEQUENCE, 1s);
break;
case EVENT_SIMON_PLAY_SEQUENCE:
if (!playableSequence.empty())
{
PlayNextColor();
_events.ScheduleEvent(EVENT_SIMON_PLAY_SEQUENCE, 1500);
_events.ScheduleEvent(EVENT_SIMON_PLAY_SEQUENCE, 1500ms);
}
else
{
@@ -597,16 +597,16 @@ public:
playerSequence.clear();
PrepareClusters();
gameTicks = 0;
_events.ScheduleEvent(EVENT_SIMON_GAME_TICK, 3000);
_events.ScheduleEvent(EVENT_SIMON_GAME_TICK, 3s);
}
break;
case EVENT_SIMON_GAME_TICK:
DoCast(SPELL_AUDIBLE_GAME_TICK);
if (gameTicks > gameLevel)
_events.ScheduleEvent(EVENT_SIMON_TOO_LONG_TIME, 500);
_events.ScheduleEvent(EVENT_SIMON_TOO_LONG_TIME, 500ms);
else
_events.ScheduleEvent(EVENT_SIMON_GAME_TICK, 3000);
_events.ScheduleEvent(EVENT_SIMON_GAME_TICK, 3s);
gameTicks++;
break;
case EVENT_SIMON_RESET_CLUSTERS:
@@ -633,7 +633,7 @@ public:
if (gameLevel == 10)
ResetNode();
else
_events.ScheduleEvent(EVENT_SIMON_SETUP_PRE_GAME, 1000);
_events.ScheduleEvent(EVENT_SIMON_SETUP_PRE_GAME, 1s);
break;
case ACTION_SIMON_CORRECT_FULL_SEQUENCE:
gameLevel++;
@@ -665,7 +665,7 @@ public:
PlayColor(pressedColor);
playerSequence.push_back(pressedColor);
_events.ScheduleEvent(EVENT_SIMON_RESET_CLUSTERS, 500);
_events.ScheduleEvent(EVENT_SIMON_RESET_CLUSTERS, 500ms);
CheckPlayerSequence();
}
@@ -752,8 +752,8 @@ public:
}
_events.Reset();
_events.ScheduleEvent(EVENT_SIMON_ROUND_FINISHED, 1000);
_events.ScheduleEvent(EVENT_SIMON_PERIODIC_PLAYER_CHECK, 2000);
_events.ScheduleEvent(EVENT_SIMON_ROUND_FINISHED, 1s);
_events.ScheduleEvent(EVENT_SIMON_PERIODIC_PLAYER_CHECK, 2s);
if (GameObject* relic = me->FindNearestGameObject(large ? GO_APEXIS_MONUMENT : GO_APEXIS_RELIC, searchDistance))
relic->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);

View File

@@ -126,7 +126,7 @@ public:
me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_ACTIVE);
Talk(SAY_SAEED_0);
events.ScheduleEvent(EVENT_START_WALK, 3000);
events.ScheduleEvent(EVENT_START_WALK, 3s);
}
else if (type == DATA_START_FIGHT)
{
@@ -178,7 +178,7 @@ public:
SetEscortPaused(true);
break;
case 18:
events.ScheduleEvent(EVENT_START_FIGHT1, 0);
events.ScheduleEvent(EVENT_START_FIGHT1, 0ms);
SetEscortPaused(true);
break;
case 19:
@@ -227,7 +227,7 @@ public:
break;
case EVENT_START_FIGHT1:
Talk(SAY_SAEED_3);
events.ScheduleEvent(EVENT_START_FIGHT2, 3000);
events.ScheduleEvent(EVENT_START_FIGHT2, 3s);
break;
case EVENT_START_FIGHT2:
if (Creature* dimensius = me->FindNearestCreature(NPC_DIMENSIUS, 50.0f))

View File

@@ -133,7 +133,7 @@ public:
{
ground = me->GetMapHeight(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
SummonInfernal();
events.ScheduleEvent(EVENT_CAST_SUMMON_INFERNAL, urand(1000, 3000));
events.ScheduleEvent(EVENT_CAST_SUMMON_INFERNAL, 1s, 3s);
}
void SetData(uint32 id, uint32 data) override
@@ -161,7 +161,7 @@ public:
if (Unit* infernal = ObjectAccessor::GetUnit(*me, infernalGUID))
if (infernal->GetDisplayId() == MODEL_INVISIBLE)
me->CastSpell(infernal, SPELL_SUMMON_INFERNAL, true);
events.ScheduleEvent(EVENT_CAST_SUMMON_INFERNAL, 12000);
events.ScheduleEvent(EVENT_CAST_SUMMON_INFERNAL, 12s);
break;
}
default:
@@ -566,8 +566,8 @@ public:
void JustEngagedWith(Unit* /*who*/) override
{
events.ScheduleEvent(EVENT_KICK, urand(5000, 10000));
events.ScheduleEvent(EVENT_SUNDER, urand(5000, 10000));
events.ScheduleEvent(EVENT_KICK, 5s, 10s);
events.ScheduleEvent(EVENT_SUNDER, 5s, 10s);
}
void SpellHit(Unit* caster, SpellInfo const* spell) override
@@ -582,7 +582,7 @@ public:
Tapped = true;
caster->GetClosePoint(x, y, z, me->GetObjectSize());
Talk(SAY_1);
events.ScheduleEvent(EVENT_WALK_TO_MUTTON, 0);
events.ScheduleEvent(EVENT_WALK_TO_MUTTON, 0ms);
}
}
@@ -593,7 +593,7 @@ public:
if (GameObject* food = me->FindNearestGameObject(DELICIOUS_MUTTON, 5.0f))
me->SetFacingToObject(food);
me->HandleEmoteCommand(EMOTE_ONESHOT_EAT);
events.ScheduleEvent(EVENT_POISONED, 5000);
events.ScheduleEvent(EVENT_POISONED, 5s);
}
}
@@ -628,7 +628,7 @@ public:
Talk(SAY_POISONED_1);
CreditPlayer();
me->CastSpell(me, SPELL_VOMIT);
events.ScheduleEvent(EVENT_KILL, 5000);
events.ScheduleEvent(EVENT_KILL, 5s);
break;
case EVENT_KILL:
Unit::DealDamage(me, me, me->GetHealth(), nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false);
@@ -642,11 +642,11 @@ public:
case EVENT_KICK:
if (me->GetVictim()->HasUnitState(SPELL_STATE_CASTING))
DoCastVictim(SPELL_KICK);
events.RepeatEvent(urand(5000, 10000));
events.Repeat(5s, 10s);
break;
case EVENT_SUNDER:
DoCastVictim(SPELL_SUNDER);
events.RepeatEvent(urand(5000, 10000));
events.Repeat(5s, 10s);
break;
}

View File

@@ -433,9 +433,9 @@ public:
void JustEngagedWith(Unit*) override
{
events.Reset();
events.ScheduleEvent(EVENT_SPELL_WRATH, 0);
events.ScheduleEvent(EVENT_SPELL_MOONFIRE, 4000);
events.ScheduleEvent(EVENT_SPELL_ENTANGLING_ROOTS, 10000);
events.ScheduleEvent(EVENT_SPELL_WRATH, 0ms);
events.ScheduleEvent(EVENT_SPELL_MOONFIRE, 4s);
events.ScheduleEvent(EVENT_SPELL_ENTANGLING_ROOTS, 10s);
}
void UpdateEscortAI(uint32 diff) override
@@ -451,15 +451,15 @@ public:
{
case EVENT_SPELL_WRATH:
me->CastSpell(me->GetVictim(), SPELL_WRATH, false);
events.ScheduleEvent(EVENT_SPELL_WRATH, 3000);
events.ScheduleEvent(EVENT_SPELL_WRATH, 3s);
break;
case EVENT_SPELL_MOONFIRE:
me->CastSpell(me->GetVictim(), SPELL_MOONFIRE, false);
events.ScheduleEvent(EVENT_SPELL_MOONFIRE, 12000);
events.ScheduleEvent(EVENT_SPELL_MOONFIRE, 12s);
break;
case EVENT_SPELL_ENTANGLING_ROOTS:
me->CastSpell(me->GetVictim(), SPELL_ENTANGLING_ROOTS, false);
events.ScheduleEvent(EVENT_SPELL_ENTANGLING_ROOTS, 20000);
events.ScheduleEvent(EVENT_SPELL_ENTANGLING_ROOTS, 20s);
break;
}