mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-28 16:16:27 +00:00
refactor(Scripts/Northrend): conversion to std::chrono (#15269)
Co-authored-by: Maelthyrr <maelthyrr@users.noreply.github.com>
This commit is contained in:
@@ -291,15 +291,15 @@ public:
|
||||
Talk(SAY_SARTHARION_AGGRO);
|
||||
|
||||
// Combat events
|
||||
events.ScheduleEvent(EVENT_SARTHARION_CAST_CLEAVE, 7000);
|
||||
events.ScheduleEvent(EVENT_SARTHARION_CAST_FLAME_BREATH, 15000);
|
||||
events.ScheduleEvent(EVENT_SARTHARION_CAST_TAIL_LASH, 11000);
|
||||
events.ScheduleEvent(EVENT_SARTHARION_CAST_CLEAVE, 7s);
|
||||
events.ScheduleEvent(EVENT_SARTHARION_CAST_FLAME_BREATH, 15s);
|
||||
events.ScheduleEvent(EVENT_SARTHARION_CAST_TAIL_LASH, 11s);
|
||||
|
||||
// Extra events
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_SUMMON_LAVA, 20000);
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_LAVA_STRIKE, 5000);
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_BERSERK, 900000);
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_BOUNDARY, 250);
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_SUMMON_LAVA, 20s);
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_LAVA_STRIKE, 5s);
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_BERSERK, 15min);
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_BOUNDARY, 250ms);
|
||||
|
||||
// Store dragons
|
||||
for (uint8 i = 0; i < MAX_DRAGONS; ++i)
|
||||
@@ -321,19 +321,19 @@ public:
|
||||
case DATA_TENEBRON:
|
||||
{
|
||||
dragon->CastSpell(dragon, SPELL_POWER_OF_TENEBRON, true);
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_CALL_TENEBRON, 10000);
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_CALL_TENEBRON, 10s);
|
||||
break;
|
||||
}
|
||||
case DATA_SHADRON:
|
||||
{
|
||||
dragon->CastSpell(dragon, SPELL_POWER_OF_SHADRON, true);
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_CALL_SHADRON, 65000);
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_CALL_SHADRON, 65s);
|
||||
break;
|
||||
}
|
||||
case DATA_VESPERON:
|
||||
{
|
||||
dragon->CastSpell(dragon, SPELL_POWER_OF_VESPERON, true);
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_CALL_VESPERON, 115000);
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_CALL_VESPERON, 115s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -469,7 +469,7 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
extraEvents.RepeatEvent(250);
|
||||
extraEvents.Repeat(250ms);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -481,7 +481,7 @@ public:
|
||||
}
|
||||
|
||||
SummonLavaWaves();
|
||||
extraEvents.RepeatEvent(25000);
|
||||
extraEvents.Repeat(25s);
|
||||
return;
|
||||
}
|
||||
case EVENT_SARTHARION_START_LAVA:
|
||||
@@ -542,19 +542,19 @@ public:
|
||||
case EVENT_SARTHARION_CAST_CLEAVE:
|
||||
{
|
||||
DoCastVictim(SPELL_SARTHARION_CLEAVE, false);
|
||||
events.RepeatEvent(10000);
|
||||
events.Repeat(10s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SARTHARION_CAST_FLAME_BREATH:
|
||||
{
|
||||
DoCastVictim(SPELL_SARTHARION_FLAME_BREATH, false);
|
||||
events.RepeatEvent(20000);
|
||||
events.Repeat(20s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SARTHARION_CAST_TAIL_LASH:
|
||||
{
|
||||
DoCastSelf(SPELL_SARTHARION_TAIL_LASH, false);
|
||||
events.RepeatEvent(18000);
|
||||
events.Repeat(18s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SARTHARION_LAVA_STRIKE:
|
||||
@@ -617,8 +617,8 @@ public:
|
||||
{
|
||||
summons.RemoveNotExisting();
|
||||
Talk(WHISPER_LAVA_CHURN);
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_START_LAVA, 2000);
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_FINISH_LAVA, 9000);
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_START_LAVA, 2s);
|
||||
extraEvents.ScheduleEvent(EVENT_SARTHARION_FINISH_LAVA, 9s);
|
||||
|
||||
// Send wave from left
|
||||
if (lastLavaSide == LAVA_RIGHT_SIDE)
|
||||
@@ -743,7 +743,7 @@ struct boss_sartharion_dragonAI : public BossAI
|
||||
if (param == ACTION_CALL_DRAGON && !isCalledBySartharion)
|
||||
{
|
||||
isCalledBySartharion = true;
|
||||
extraEvents.RescheduleEvent(EVENT_MINIDRAKE_SPEECH, 4000);
|
||||
extraEvents.RescheduleEvent(EVENT_MINIDRAKE_SPEECH, 4s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1037,9 +1037,9 @@ public:
|
||||
summons2.DespawnAll();
|
||||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SHADOW_FISSURE, 20000);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SHADOW_BREATH, 10000);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_OPEN_PORTAL, 15000);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SHADOW_FISSURE, 20s);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SHADOW_BREATH, 10s);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_OPEN_PORTAL, 15s);
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* summon) override
|
||||
@@ -1112,8 +1112,8 @@ public:
|
||||
instance->DoAction(ACTION_ADD_PORTAL);
|
||||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SPAWN_HELPERS, 2000);
|
||||
events.RepeatEvent(60000);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SPAWN_HELPERS, 2s);
|
||||
events.Repeat(60s);
|
||||
break;
|
||||
}
|
||||
case EVENT_MINIBOSS_SPAWN_HELPERS:
|
||||
@@ -1135,7 +1135,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_HATCH_EGGS, 25000);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_HATCH_EGGS, 25s);
|
||||
break;
|
||||
}
|
||||
case EVENT_MINIBOSS_HATCH_EGGS:
|
||||
@@ -1215,9 +1215,9 @@ public:
|
||||
void Reset() override
|
||||
{
|
||||
boss_sartharion_dragonAI::Reset();
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SHADOW_FISSURE, 20000);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SHADOW_BREATH, 10000);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_OPEN_PORTAL, 15000);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SHADOW_FISSURE, 20s);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SHADOW_BREATH, 10s);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_OPEN_PORTAL, 15s);
|
||||
}
|
||||
|
||||
void SummonedCreatureDies(Creature* /*summon*/, Unit* /*summon*/) override
|
||||
@@ -1241,7 +1241,7 @@ public:
|
||||
me->RemoveAura(SPELL_GIFT_OF_TWILIGHT_SHADOW);
|
||||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_OPEN_PORTAL, 30000);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_OPEN_PORTAL, 30s);
|
||||
}
|
||||
|
||||
void HandleExtraEvent(uint32 const eventId) override
|
||||
@@ -1295,7 +1295,7 @@ public:
|
||||
instance->DoAction(ACTION_ADD_PORTAL);
|
||||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SPAWN_HELPERS, 2000);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SPAWN_HELPERS, 2s);
|
||||
break;
|
||||
}
|
||||
case EVENT_MINIBOSS_SPAWN_HELPERS:
|
||||
@@ -1340,9 +1340,9 @@ public:
|
||||
void Reset() override
|
||||
{
|
||||
boss_sartharion_dragonAI::Reset();
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SHADOW_FISSURE, 20000);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SHADOW_BREATH, 10000);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_OPEN_PORTAL, 30000);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SHADOW_FISSURE, 20s);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SHADOW_BREATH, 10s);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_OPEN_PORTAL, 30s);
|
||||
}
|
||||
|
||||
void SummonedCreatureDies(Creature* /*summon*/, Unit* /*killer*/) override
|
||||
@@ -1357,7 +1357,7 @@ public:
|
||||
instance->DoAction(ACTION_CLEAR_PORTAL);
|
||||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_OPEN_PORTAL, 30000);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_OPEN_PORTAL, 30s);
|
||||
}
|
||||
|
||||
void HandleExtraEvent(uint32 const eventId) override
|
||||
@@ -1383,7 +1383,7 @@ public:
|
||||
}
|
||||
|
||||
DoCastVictim(SPELL_SHADOW_BREATH, false);
|
||||
events.RepeatEvent(17500);
|
||||
events.Repeat(17s + 500ms);
|
||||
break;
|
||||
}
|
||||
case EVENT_MINIBOSS_SHADOW_FISSURE:
|
||||
@@ -1393,7 +1393,7 @@ public:
|
||||
DoCast(target, SPELL_SHADOW_FISSURE, false);
|
||||
}
|
||||
|
||||
events.RepeatEvent(22500);
|
||||
events.Repeat(22s + 500ms);
|
||||
break;
|
||||
}
|
||||
case EVENT_MINIBOSS_OPEN_PORTAL:
|
||||
@@ -1412,7 +1412,7 @@ public:
|
||||
instance->DoAction(ACTION_ADD_PORTAL);
|
||||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SPAWN_HELPERS, 2000);
|
||||
events.ScheduleEvent(EVENT_MINIBOSS_SPAWN_HELPERS, 2s);
|
||||
break;
|
||||
}
|
||||
case EVENT_MINIBOSS_SPAWN_HELPERS:
|
||||
|
||||
@@ -154,7 +154,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me, SPELL_REPELLING_WAVE, false);
|
||||
me->CastSpell(me, SPELL_CLEAR_DEBUFFS, false);
|
||||
events.ScheduleEvent(EVENT_SUMMON_CLONE, 1000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_CLONE, 1s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,15 +164,15 @@ public:
|
||||
BossAI::JustEngagedWith(who);
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 11000);
|
||||
events.ScheduleEvent(EVENT_ENERVATING_BRAND, 13000);
|
||||
events.ScheduleEvent(EVENT_BLADE_TEMPEST, 15000);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 11s);
|
||||
events.ScheduleEvent(EVENT_ENERVATING_BRAND, 13s);
|
||||
events.ScheduleEvent(EVENT_BLADE_TEMPEST, 15s);
|
||||
if (!Is25ManRaid())
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH1, 1000);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH1, 1s);
|
||||
else
|
||||
{
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH2, 1000);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH3, 1000);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH2, 1s);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH3, 1s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,7 +190,7 @@ public:
|
||||
if (events.GetNextEventTime(EVENT_KILL_TALK) == 0)
|
||||
{
|
||||
Talk(SAY_KILL);
|
||||
events.ScheduleEvent(EVENT_KILL_TALK, 6000);
|
||||
events.ScheduleEvent(EVENT_KILL_TALK, 6s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -216,17 +216,17 @@ public:
|
||||
{
|
||||
case EVENT_CLEAVE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_CLEAVE, false);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 24000);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 24s);
|
||||
break;
|
||||
case EVENT_BLADE_TEMPEST:
|
||||
me->CastSpell(me, SPELL_BLADE_TEMPEST, false);
|
||||
events.ScheduleEvent(EVENT_BLADE_TEMPEST, 24000);
|
||||
events.ScheduleEvent(EVENT_BLADE_TEMPEST, 24s);
|
||||
break;
|
||||
case EVENT_ENERVATING_BRAND:
|
||||
for (uint8 i = 0; i < RAID_MODE<uint8>(2, 4, 2, 4); i++)
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 45.0f, true, true, -SPELL_ENERVATING_BRAND))
|
||||
me->CastSpell(target, SPELL_ENERVATING_BRAND, true);
|
||||
events.ScheduleEvent(EVENT_ENERVATING_BRAND, 26000);
|
||||
events.ScheduleEvent(EVENT_ENERVATING_BRAND, 26s);
|
||||
break;
|
||||
case EVENT_CHECK_HEALTH1:
|
||||
if (me->HealthBelowPct(50))
|
||||
@@ -234,7 +234,7 @@ public:
|
||||
DoAction(ACTION_CLONE);
|
||||
break;
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH1, 1000);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH1, 1s);
|
||||
break;
|
||||
case EVENT_CHECK_HEALTH2:
|
||||
if (me->HealthBelowPct(66))
|
||||
@@ -242,7 +242,7 @@ public:
|
||||
DoAction(ACTION_CLONE);
|
||||
break;
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH2, 1000);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH2, 1s);
|
||||
break;
|
||||
case EVENT_CHECK_HEALTH3:
|
||||
if (me->HealthBelowPct(33))
|
||||
@@ -250,7 +250,7 @@ public:
|
||||
DoAction(ACTION_CLONE);
|
||||
break;
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH3, 1000);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH3, 1s);
|
||||
break;
|
||||
case EVENT_SUMMON_CLONE:
|
||||
me->CastSpell(me, SPELL_CLONE, false);
|
||||
@@ -285,9 +285,9 @@ public:
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_events.Reset();
|
||||
_events.ScheduleEvent(EVENT_CLEAVE, urand(5000, 10000));
|
||||
_events.ScheduleEvent(EVENT_BLADE_TEMPEST, urand(18000, 25000));
|
||||
_events.ScheduleEvent(EVENT_ENERVATING_BRAND, urand(10000, 15000));
|
||||
_events.ScheduleEvent(EVENT_CLEAVE, 5s, 10s);
|
||||
_events.ScheduleEvent(EVENT_BLADE_TEMPEST, 18s, 25s);
|
||||
_events.ScheduleEvent(EVENT_ENERVATING_BRAND, 10s, 15s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -303,17 +303,17 @@ public:
|
||||
{
|
||||
case EVENT_CLEAVE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_CLEAVE, false);
|
||||
_events.ScheduleEvent(EVENT_CLEAVE, 24000);
|
||||
_events.ScheduleEvent(EVENT_CLEAVE, 24s);
|
||||
break;
|
||||
case EVENT_BLADE_TEMPEST:
|
||||
me->CastSpell(me, SPELL_BLADE_TEMPEST, false);
|
||||
_events.ScheduleEvent(EVENT_BLADE_TEMPEST, 24000);
|
||||
_events.ScheduleEvent(EVENT_BLADE_TEMPEST, 24s);
|
||||
break;
|
||||
case EVENT_ENERVATING_BRAND:
|
||||
for (uint8 i = 0; i < RAID_MODE<uint8>(4, 10, 4, 10); i++)
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 45.0f, true, true, -SPELL_ENERVATING_BRAND))
|
||||
me->CastSpell(target, SPELL_ENERVATING_BRAND, true);
|
||||
_events.ScheduleEvent(EVENT_ENERVATING_BRAND, 26000);
|
||||
_events.ScheduleEvent(EVENT_ENERVATING_BRAND, 26s);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -391,14 +391,14 @@ public:
|
||||
me->setActive(true);
|
||||
_isIntro = false;
|
||||
|
||||
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_0, 6000);
|
||||
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_1, 22000);
|
||||
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_2, 31000);
|
||||
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_3, 38000);
|
||||
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_4, 48000);
|
||||
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_5, 57000);
|
||||
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_6, 67000);
|
||||
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_7, 75000);
|
||||
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_0, 6s);
|
||||
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_1, 22s);
|
||||
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_2, 31s);
|
||||
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_3, 38s);
|
||||
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_4, 48s);
|
||||
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_5, 57s);
|
||||
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_6, 67s);
|
||||
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_7, 75s);
|
||||
}
|
||||
else if (action == ACTION_INTRO_BALTHARUS && !_introDone && me->IsAlive())
|
||||
{
|
||||
|
||||
@@ -116,11 +116,11 @@ public:
|
||||
BossAI::JustEngagedWith(who);
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 9000);
|
||||
events.ScheduleEvent(EVENT_INTIDMDATING_ROAR, 14000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_ADDS1, 18000);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 9s);
|
||||
events.ScheduleEvent(EVENT_INTIDMDATING_ROAR, 14s);
|
||||
events.ScheduleEvent(EVENT_SUMMON_ADDS1, 18s);
|
||||
if (Is25ManRaid())
|
||||
events.ScheduleEvent(EVENT_SUMMON_ADDS2, 20000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_ADDS2, 20s);
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* summon) override
|
||||
@@ -139,7 +139,7 @@ public:
|
||||
if (events.GetNextEventTime(EVENT_KILL_TALK) == 0)
|
||||
{
|
||||
Talk(SAY_KILL);
|
||||
events.ScheduleEvent(EVENT_KILL_TALK, 6000);
|
||||
events.ScheduleEvent(EVENT_KILL_TALK, 6s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -160,22 +160,22 @@ public:
|
||||
stalker1->CastSpell(stalker1, SPELL_SUMMON_FLAMECALLER, false);
|
||||
if (Creature* stalker2 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ZARITHRIAN_SPAWN_STALKER_2)))
|
||||
stalker2->CastSpell(stalker2, SPELL_SUMMON_FLAMECALLER, false);
|
||||
events.ScheduleEvent(EVENT_SUMMON_ADDS1, 40000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_ADDS1, 40s);
|
||||
break;
|
||||
case EVENT_SUMMON_ADDS2:
|
||||
if (Creature* stalker1 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ZARITHRIAN_SPAWN_STALKER_1)))
|
||||
stalker1->CastSpell(stalker1, SPELL_SUMMON_FLAMECALLER, false);
|
||||
if (Creature* stalker2 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ZARITHRIAN_SPAWN_STALKER_2)))
|
||||
stalker2->CastSpell(stalker2, SPELL_SUMMON_FLAMECALLER, false);
|
||||
events.ScheduleEvent(EVENT_SUMMON_ADDS2, 40000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_ADDS2, 40s);
|
||||
break;
|
||||
case EVENT_INTIDMDATING_ROAR:
|
||||
me->CastSpell(me, SPELL_INTIMIDATING_ROAR, false);
|
||||
events.ScheduleEvent(EVENT_INTIDMDATING_ROAR, 30000);
|
||||
events.ScheduleEvent(EVENT_INTIDMDATING_ROAR, 30s);
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_CLEAVE_ARMOR, false);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 15000);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 15s);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -216,8 +216,8 @@ public:
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_events.Reset();
|
||||
_events.ScheduleEvent(EVENT_BLAST_NOVA, urand(20000, 30000));
|
||||
_events.ScheduleEvent(EVENT_LAVA_GOUT, 5000);
|
||||
_events.ScheduleEvent(EVENT_BLAST_NOVA, 20s, 30s);
|
||||
_events.ScheduleEvent(EVENT_LAVA_GOUT, 5s);
|
||||
}
|
||||
|
||||
void EnterEvadeMode(EvadeReason /*why*/) override
|
||||
@@ -265,18 +265,18 @@ public:
|
||||
{
|
||||
case EVENT_BLAST_NOVA:
|
||||
DoCastAOE(SPELL_BLAST_NOVA);
|
||||
_events.ScheduleEvent(EVENT_BLAST_NOVA, urand(20000, 30000));
|
||||
_events.ScheduleEvent(EVENT_BLAST_NOVA, 20s, 30s);
|
||||
break;
|
||||
case EVENT_LAVA_GOUT:
|
||||
if (_lavaGoutCount >= 3)
|
||||
{
|
||||
_lavaGoutCount = 0;
|
||||
_events.ScheduleEvent(EVENT_LAVA_GOUT, 8000);
|
||||
_events.ScheduleEvent(EVENT_LAVA_GOUT, 8s);
|
||||
break;
|
||||
}
|
||||
DoCastVictim(SPELL_LAVA_GOUT);
|
||||
_lavaGoutCount++;
|
||||
_events.ScheduleEvent(EVENT_LAVA_GOUT, 1500);
|
||||
_events.ScheduleEvent(EVENT_LAVA_GOUT, 1500ms);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -225,7 +225,7 @@ public:
|
||||
me->SetVisible(false);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
_events2.Reset();
|
||||
_events2.RescheduleEvent(EVENT_HALION_VISIBILITY, 30000);
|
||||
_events2.RescheduleEvent(EVENT_HALION_VISIBILITY, 30s);
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* summon) override
|
||||
@@ -300,14 +300,14 @@ public:
|
||||
Talk(SAY_AGGRO);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me, 1);
|
||||
|
||||
events.ScheduleEvent(EVENT_CLEAVE, urand(8000, 10000));
|
||||
events.ScheduleEvent(EVENT_TAIL_LASH, 10000);
|
||||
events.ScheduleEvent(EVENT_BREATH, urand(10000, 15000));
|
||||
events.ScheduleEvent(EVENT_ACTIVATE_FIREWALL, 5000);
|
||||
events.ScheduleEvent(EVENT_METEOR_STRIKE, urand(20000, 25000));
|
||||
events.ScheduleEvent(EVENT_FIERY_COMBUSTION, urand(15000, 18000));
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH, 1000);
|
||||
_events2.ScheduleEvent(EVENT_TRIGGER_BERSERK, 8 * MINUTE * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 8s, 10s);
|
||||
events.ScheduleEvent(EVENT_TAIL_LASH, 10s);
|
||||
events.ScheduleEvent(EVENT_BREATH, 10s, 15s);
|
||||
events.ScheduleEvent(EVENT_ACTIVATE_FIREWALL, 5s);
|
||||
events.ScheduleEvent(EVENT_METEOR_STRIKE, 20s, 25s);
|
||||
events.ScheduleEvent(EVENT_FIERY_COMBUSTION, 15s, 18s);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH, 1s);
|
||||
_events2.ScheduleEvent(EVENT_TRIGGER_BERSERK, 8min);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* victim) override
|
||||
@@ -315,7 +315,7 @@ public:
|
||||
if (victim->GetTypeId() == TYPEID_PLAYER && events.GetNextEventTime(EVENT_KILL_TALK) == 0)
|
||||
{
|
||||
Talk(SAY_KILL);
|
||||
events.ScheduleEvent(EVENT_KILL_TALK, 6000);
|
||||
events.ScheduleEvent(EVENT_KILL_TALK, 6s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -378,15 +378,15 @@ public:
|
||||
{
|
||||
case EVENT_CLEAVE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_CLEAVE, false);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, urand(8000, 10000));
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 8s, 10s);
|
||||
break;
|
||||
case EVENT_TAIL_LASH:
|
||||
me->CastSpell(me, SPELL_TAIL_LASH, false);
|
||||
events.ScheduleEvent(EVENT_TAIL_LASH, 10000);
|
||||
events.ScheduleEvent(EVENT_TAIL_LASH, 10s);
|
||||
break;
|
||||
case EVENT_BREATH:
|
||||
me->CastSpell(me->GetVictim(), SPELL_FLAME_BREATH, false);
|
||||
events.ScheduleEvent(EVENT_BREATH, urand(10000, 12000));
|
||||
events.ScheduleEvent(EVENT_BREATH, 10s, 12s);
|
||||
break;
|
||||
case EVENT_ACTIVATE_FIREWALL:
|
||||
instance->HandleGameObject(instance->GetGuidData(GO_FLAME_RING), false, nullptr);
|
||||
@@ -396,22 +396,22 @@ public:
|
||||
_livingEmberCount = summons.GetEntryCount(NPC_LIVING_EMBER);
|
||||
me->CastCustomSpell(SPELL_METEOR_STRIKE_TARGETING, SPELLVALUE_MAX_TARGETS, 1, me, false);
|
||||
Talk(SAY_METEOR_STRIKE);
|
||||
events.ScheduleEvent(EVENT_METEOR_STRIKE, 40000);
|
||||
events.ScheduleEvent(EVENT_METEOR_STRIKE, 40s);
|
||||
break;
|
||||
case EVENT_FIERY_COMBUSTION:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 100.0f, true, true, -SPELL_TWILIGHT_REALM))
|
||||
me->CastSpell(target, SPELL_FIERY_COMBUSTION, false);
|
||||
events.ScheduleEvent(EVENT_FIERY_COMBUSTION, 25000);
|
||||
events.ScheduleEvent(EVENT_FIERY_COMBUSTION, 25s);
|
||||
break;
|
||||
case EVENT_CHECK_HEALTH:
|
||||
if (me->HealthBelowPct(75))
|
||||
{
|
||||
Talk(SAY_PHASE_TWO);
|
||||
me->CastSpell(me, SPELL_TWILIGHT_PHASING, false);
|
||||
events.DelayEvents(10000);
|
||||
events.DelayEvents(10s);
|
||||
return;
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH, 1000);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH, 1s);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -462,13 +462,13 @@ public:
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_events.Reset();
|
||||
_events.ScheduleEvent(EVENT_CLEAVE, urand(8000, 10000));
|
||||
_events.ScheduleEvent(EVENT_TAIL_LASH, 10000);
|
||||
_events.ScheduleEvent(EVENT_BREATH, urand(10000, 15000));
|
||||
_events.ScheduleEvent(EVENT_SOUL_CONSUMPTION, 20000);
|
||||
_events.ScheduleEvent(EVENT_SHADOW_PULSARS, 16000);
|
||||
_events.ScheduleEvent(EVENT_SEND_ENCOUNTER_UNIT, 2000);
|
||||
_events.ScheduleEvent(EVENT_CHECK_HEALTH, 1000);
|
||||
_events.ScheduleEvent(EVENT_CLEAVE, 8s, 10s);
|
||||
_events.ScheduleEvent(EVENT_TAIL_LASH, 10s);
|
||||
_events.ScheduleEvent(EVENT_BREATH, 10s, 15s);
|
||||
_events.ScheduleEvent(EVENT_SOUL_CONSUMPTION, 20s);
|
||||
_events.ScheduleEvent(EVENT_SHADOW_PULSARS, 16s);
|
||||
_events.ScheduleEvent(EVENT_SEND_ENCOUNTER_UNIT, 2s);
|
||||
_events.ScheduleEvent(EVENT_CHECK_HEALTH, 1s);
|
||||
|
||||
me->SetInCombatWithZone();
|
||||
}
|
||||
@@ -482,7 +482,7 @@ public:
|
||||
if (victim->GetTypeId() == TYPEID_PLAYER && _events.GetNextEventTime(EVENT_KILL_TALK) == 0)
|
||||
{
|
||||
Talk(SAY_KILL);
|
||||
_events.ScheduleEvent(EVENT_KILL_TALK, 6000);
|
||||
_events.ScheduleEvent(EVENT_KILL_TALK, 6s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -531,20 +531,20 @@ public:
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_CLEAVE, false);
|
||||
_events.ScheduleEvent(EVENT_CLEAVE, urand(8000, 10000));
|
||||
_events.ScheduleEvent(EVENT_CLEAVE, 8s, 10s);
|
||||
break;
|
||||
case EVENT_TAIL_LASH:
|
||||
me->CastSpell(me, SPELL_TAIL_LASH, false);
|
||||
_events.ScheduleEvent(EVENT_TAIL_LASH, 10000);
|
||||
_events.ScheduleEvent(EVENT_TAIL_LASH, 10s);
|
||||
break;
|
||||
case EVENT_BREATH:
|
||||
me->CastSpell(me->GetVictim(), SPELL_DARK_BREATH, false);
|
||||
_events.ScheduleEvent(EVENT_BREATH, urand(10000, 12000));
|
||||
_events.ScheduleEvent(EVENT_BREATH, 10s, 12s);
|
||||
break;
|
||||
case EVENT_SOUL_CONSUMPTION:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 100.0f, true, true, SPELL_TWILIGHT_REALM))
|
||||
me->CastSpell(target, SPELL_SOUL_CONSUMPTION, false);
|
||||
_events.ScheduleEvent(EVENT_SOUL_CONSUMPTION, 20000);
|
||||
_events.ScheduleEvent(EVENT_SOUL_CONSUMPTION, 20s);
|
||||
break;
|
||||
case EVENT_CHECK_HEALTH:
|
||||
if (me->HealthBelowPct(50))
|
||||
@@ -554,13 +554,13 @@ public:
|
||||
Talk(SAY_PHASE_THREE);
|
||||
return;
|
||||
}
|
||||
_events.ScheduleEvent(EVENT_CHECK_HEALTH, 1000);
|
||||
_events.ScheduleEvent(EVENT_CHECK_HEALTH, 1s);
|
||||
break;
|
||||
case EVENT_SHADOW_PULSARS:
|
||||
Talk(SAY_SPHERE_PULSE);
|
||||
Talk(EMOTE_WARN_LASER);
|
||||
_events.ScheduleEvent(EVENT_SHADOW_PULSARS, 29000);
|
||||
_events.ScheduleEvent(EVENT_SHADOW_PULSARS_SHOOT, 5000);
|
||||
_events.ScheduleEvent(EVENT_SHADOW_PULSARS, 29s);
|
||||
_events.ScheduleEvent(EVENT_SHADOW_PULSARS_SHOOT, 5s);
|
||||
break;
|
||||
case EVENT_SHADOW_PULSARS_SHOOT:
|
||||
if (Creature* orbCarrier = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_ORB_CARRIER)))
|
||||
@@ -612,13 +612,13 @@ public:
|
||||
void DoAction(int32 action) override
|
||||
{
|
||||
if (action == ACTION_INTRO_HALION)
|
||||
_events.ScheduleEvent(EVENT_START_INTRO, 2000);
|
||||
_events.ScheduleEvent(EVENT_START_INTRO, 2s);
|
||||
else if (action == ACTION_CHECK_CORPOREALITY)
|
||||
{
|
||||
_materialDamage = 1;
|
||||
_twilightDamage = 1;
|
||||
_corporeality = 5;
|
||||
_events.ScheduleEvent(EVENT_CHECK_CORPOREALITY, 7000);
|
||||
_events.ScheduleEvent(EVENT_CHECK_CORPOREALITY, 7s);
|
||||
}
|
||||
else if (action == ACTION_RESET_ENCOUNTER)
|
||||
{
|
||||
@@ -637,23 +637,23 @@ public:
|
||||
// Intro
|
||||
case EVENT_START_INTRO:
|
||||
me->CastSpell(me, SPELL_COSMETIC_FIRE_PILLAR, false);
|
||||
_events.ScheduleEvent(EVENT_INTRO_PROGRESS_1, 5000);
|
||||
_events.ScheduleEvent(EVENT_INTRO_PROGRESS_1, 5s);
|
||||
break;
|
||||
case EVENT_INTRO_PROGRESS_1:
|
||||
_instance->SetBossState(DATA_HALION_INTRO1, NOT_STARTED);
|
||||
_instance->SetBossState(DATA_HALION_INTRO1, DONE);
|
||||
_events.ScheduleEvent(EVENT_INTRO_PROGRESS_2, 5000);
|
||||
_events.ScheduleEvent(EVENT_INTRO_PROGRESS_2, 5s);
|
||||
break;
|
||||
case EVENT_INTRO_PROGRESS_2:
|
||||
_instance->SetBossState(DATA_HALION_INTRO2, NOT_STARTED);
|
||||
_instance->SetBossState(DATA_HALION_INTRO2, DONE);
|
||||
_events.ScheduleEvent(EVENT_INTRO_PROGRESS_3, 4000);
|
||||
_events.ScheduleEvent(EVENT_INTRO_PROGRESS_3, 4s);
|
||||
break;
|
||||
case EVENT_INTRO_PROGRESS_3:
|
||||
_instance->SetBossState(DATA_HALION_INTRO_DONE, NOT_STARTED);
|
||||
_instance->SetBossState(DATA_HALION_INTRO_DONE, DONE);
|
||||
me->CastSpell(me, SPELL_FIERY_EXPLOSION, false);
|
||||
_events.ScheduleEvent(EVENT_INTRO_PROGRESS_4, 500);
|
||||
_events.ScheduleEvent(EVENT_INTRO_PROGRESS_4, 500ms);
|
||||
break;
|
||||
case EVENT_INTRO_PROGRESS_4:
|
||||
if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_HALION)))
|
||||
@@ -668,7 +668,7 @@ public:
|
||||
break;
|
||||
case EVENT_CHECK_CORPOREALITY:
|
||||
UpdateCorporeality();
|
||||
_events.ScheduleEvent(EVENT_CHECK_CORPOREALITY, 10000);
|
||||
_events.ScheduleEvent(EVENT_CHECK_CORPOREALITY, 10s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -686,7 +686,7 @@ public:
|
||||
float damageRatio = float(_materialDamage) / float(_twilightDamage);
|
||||
|
||||
if (_twilightDamage == 1 || _materialDamage == 1)
|
||||
_events.ScheduleEvent(EVENT_TWILIGHT_MENDING, 4000);
|
||||
_events.ScheduleEvent(EVENT_TWILIGHT_MENDING, 4s);
|
||||
|
||||
_twilightDamage = 1;
|
||||
_materialDamage = 1;
|
||||
|
||||
@@ -79,9 +79,9 @@ public:
|
||||
BossAI::JustEngagedWith(who);
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
events.ScheduleEvent(EVENT_ENRAGE, 15000);
|
||||
events.ScheduleEvent(EVENT_FLAME_BREATH, 10000);
|
||||
events.ScheduleEvent(EVENT_FLIGHT, 30000);
|
||||
events.ScheduleEvent(EVENT_ENRAGE, 15s);
|
||||
events.ScheduleEvent(EVENT_FLAME_BREATH, 10s);
|
||||
events.ScheduleEvent(EVENT_FLIGHT, 30s);
|
||||
}
|
||||
|
||||
void JustDied(Unit* killer) override
|
||||
@@ -99,13 +99,13 @@ public:
|
||||
{
|
||||
case POINT_FLIGHT:
|
||||
me->SetFacingTo(4.69f);
|
||||
events.ScheduleEvent(EVENT_CONFLAGRATION, 1000);
|
||||
events.ScheduleEvent(EVENT_LAND_BACK, 7000);
|
||||
events.ScheduleEvent(EVENT_CONFLAGRATION, 1s);
|
||||
events.ScheduleEvent(EVENT_LAND_BACK, 7s);
|
||||
Talk(SAY_CONFLAGRATION);
|
||||
break;
|
||||
case POINT_LAND:
|
||||
me->SetDisableGravity(false);
|
||||
events.ScheduleEvent(EVENT_LAND_GROUND, 500);
|
||||
events.ScheduleEvent(EVENT_LAND_GROUND, 500ms);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -122,7 +122,7 @@ public:
|
||||
if (events.GetNextEventTime(EVENT_KILL_TALK) == 0)
|
||||
{
|
||||
Talk(SAY_KILL);
|
||||
events.ScheduleEvent(EVENT_KILL_TALK, 6000);
|
||||
events.ScheduleEvent(EVENT_KILL_TALK, 6s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -143,9 +143,9 @@ public:
|
||||
me->AttackStop();
|
||||
me->SetDisableGravity(true);
|
||||
me->GetMotionMaster()->MovePoint(POINT_TAKEOFF, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 6.0f, false);
|
||||
events.ScheduleEvent(EVENT_FLIGHT, 50000);
|
||||
events.DelayEvents(15000);
|
||||
events.ScheduleEvent(EVENT_AIR_MOVEMENT, 2000);
|
||||
events.ScheduleEvent(EVENT_FLIGHT, 50s);
|
||||
events.DelayEvents(15s);
|
||||
events.ScheduleEvent(EVENT_AIR_MOVEMENT, 2s);
|
||||
break;
|
||||
}
|
||||
case EVENT_CONFLAGRATION:
|
||||
@@ -154,11 +154,11 @@ public:
|
||||
case EVENT_ENRAGE:
|
||||
me->CastSpell(me, SPELL_ENRAGE, false);
|
||||
Talk(EMOTE_ENRAGED);
|
||||
events.ScheduleEvent(EVENT_ENRAGE, urand(15000, 20000));
|
||||
events.ScheduleEvent(EVENT_ENRAGE, 15s, 20s);
|
||||
break;
|
||||
case EVENT_FLAME_BREATH:
|
||||
me->CastSpell(me->GetVictim(), SPELL_FLAME_BREATH, false);
|
||||
events.ScheduleEvent(EVENT_FLAME_BREATH, urand(20000, 30000));
|
||||
events.ScheduleEvent(EVENT_FLAME_BREATH, 20s, 30s);
|
||||
break;
|
||||
case EVENT_AIR_MOVEMENT:
|
||||
me->GetMotionMaster()->MovePoint(POINT_FLIGHT, 3155.51f, 683.844f, 95.0f, false);
|
||||
|
||||
Reference in New Issue
Block a user