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

@@ -471,7 +471,7 @@ public:
me->SetDisableGravity(true);
me->GetMotionMaster()->MoveTakeoff(MI_POINT_VORTEX_TAKEOFF, me->GetPositionX(), me->GetPositionY(), CenterPos.GetPositionZ() + 20.0f, 7.0f);
events.DelayEvents(25000, 1); // don't delay berserk (group 0)
events.DelayEvents(25s, 1); // don't delay berserk (group 0)
}
break;
case EVENT_VORTEX_FLY_TO_CENTER:
@@ -674,7 +674,7 @@ public:
case EVENT_CHECK_TRASH_DEAD:
{
if (me->FindNearestCreature(NPC_SCION_OF_ETERNITY, 250.0f, true) || me->FindNearestCreature(NPC_NEXUS_LORD, 250.0f, true))
events.RepeatEvent(3000);
events.Repeat(3s);
else
{
me->SendMeleeAttackStop();

View File

@@ -94,7 +94,7 @@ struct boss_anomalus : public BossAI
{
if (activeRifts > 0 && --activeRifts == 0 && me->HasAura(SPELL_RIFT_SHIELD))
{
events.DelayEvents(me->GetAura(SPELL_RIFT_SHIELD)->GetDuration() - 46000);
events.DelayEvents(Milliseconds(me->GetAura(SPELL_RIFT_SHIELD)->GetDuration() - 46000));
me->RemoveAura(SPELL_RIFT_SHIELD);
me->InterruptNonMeleeSpells(false);
}
@@ -114,7 +114,6 @@ struct boss_anomalus : public BossAI
BossAI::JustEngagedWith(who);
activeRifts = 0;
events.SetTimer(45000);
events.ScheduleEvent(EVENT_ANOMALUS_SPARK, 5s);
events.ScheduleEvent(EVENT_ANOMALUS_HEALTH, 1s);
events.ScheduleEvent(EVENT_ANOMALUS_SPAWN_RIFT, IsHeroic() ? 15s : 25s);
@@ -164,7 +163,7 @@ struct boss_anomalus : public BossAI
Talk(EMOTE_RIFT);
me->CastSpell(me, SPELL_CREATE_RIFT, false);
//Once we hit 51% hp mark, after each rift we spawn an empowered
events.ScheduleEvent(me->HealthBelowPct(51) ? EVENT_ANOMALUS_SPAWN_RIFT_EMPOWERED : EVENT_ANOMALUS_SPAWN_RIFT, IsHeroic() ? 15000 : 25000);
events.ScheduleEvent(me->HealthBelowPct(51) ? EVENT_ANOMALUS_SPAWN_RIFT_EMPOWERED : EVENT_ANOMALUS_SPAWN_RIFT, IsHeroic() ? 15s : 25s);
break;
case EVENT_ANOMALUS_SPAWN_RIFT_EMPOWERED:
Talk(SAY_RIFT);

View File

@@ -75,7 +75,7 @@ struct boss_keristrasza : public BossAI
me->CastSpell(me, SPELL_INTENSE_COLD, true);
events.ScheduleEvent(EVENT_CRYSTALFIRE_BREATH, 14s);
events.ScheduleEvent(EVENT_CRYSTAL_CHAINS, DUNGEON_MODE(20000, 11000));
events.ScheduleEvent(EVENT_CRYSTAL_CHAINS, DUNGEON_MODE(20s, 11s));
events.ScheduleEvent(EVENT_TAIL_SWEEP, 5s);
events.ScheduleEvent(EVENT_HEALTH_CHECK, 1s);
events.ScheduleEvent(EVENT_ACHIEVEMENT_CHECK, 1s);
@@ -89,7 +89,7 @@ struct boss_keristrasza : public BossAI
void KilledUnit(Unit*) override
{
if (events.GetNextEventTime(EVENT_KILL_TALK) == 0)
if (!events.HasTimeUntilEvent(EVENT_KILL_TALK))
{
Talk(SAY_SLAY);
events.ScheduleEvent(EVENT_KILL_TALK, 6s);
@@ -174,7 +174,7 @@ struct boss_keristrasza : public BossAI
me->CastSpell(me, SPELL_CRYSTALIZE, false);
else if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
me->CastSpell(target, SPELL_CRYSTAL_CHAINS, false);
events.ScheduleEvent(EVENT_CRYSTAL_CHAINS, DUNGEON_MODE(20000, 11000));
events.ScheduleEvent(EVENT_CRYSTAL_CHAINS, DUNGEON_MODE(20s, 11s));
break;
}

View File

@@ -132,7 +132,7 @@ struct boss_magus_telestra : public BossAI
void KilledUnit(Unit*) override
{
if (events.GetNextEventTime(EVENT_KILL_TALK) == 0)
if (!events.HasTimeUntilEvent(EVENT_KILL_TALK))
{
Talk(SAY_KILL);
events.ScheduleEvent(EVENT_KILL_TALK, 6s);

View File

@@ -93,7 +93,7 @@ struct boss_ormorok : public BossAI
void KilledUnit(Unit* /*victim*/) override
{
if (events.GetNextEventTime(EVENT_KILL_TALK) == 0)
if (!events.HasTimeUntilEvent(EVENT_KILL_TALK))
{
Talk(SAY_KILL);
events.ScheduleEvent(EVENT_KILL_TALK, 6s);

View File

@@ -208,7 +208,7 @@ public:
break;
case EVENT_SUMMON_WHELPS:
for( uint8 i = 0; i < 5; ++i )
events.ScheduleEvent(EVENT_SUMMON_SINGLE_WHELP, urand(0, 8000));
events.ScheduleEvent(EVENT_SUMMON_SINGLE_WHELP, 0ms, 8s);
events.Repeat(40s);
break;
case EVENT_SUMMON_SINGLE_WHELP:

View File

@@ -300,7 +300,7 @@ public:
me->ClearUnitState(UNIT_STATE_CASTING);
DoCastAOE(DUNGEON_MODE(SPELL_EMPOWERED_ARCANE_EXPLOSION_N, SPELL_EMPOWERED_ARCANE_EXPLOSION_H));
me->AddUnitState(UNIT_STATE_CASTING);
events.RescheduleEvent(EVENT_TELE_BACK, DUNGEON_MODE(9000, 7000));
events.RescheduleEvent(EVENT_TELE_BACK, DUNGEON_MODE(9s, 7s));
default:
break;
}