mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-18 11:25:42 +00:00
refactor(Scripts): Update vanilla scripts to std::chrono (#14876)
Co-authored-by: Maelthyrr <AmanThul-Project@proton.me> Co-authored-by: Skjalf <47818697+Nyeriah@users.noreply.github.com>
This commit is contained in:
@@ -95,12 +95,12 @@ public:
|
||||
void Reset() override
|
||||
{
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_CHARGE_TARGET, urand(2 * IN_MILLISECONDS, 12 * IN_MILLISECONDS));
|
||||
events.ScheduleEvent(EVENT_CLEAVE, urand(1 * IN_MILLISECONDS, 11 * IN_MILLISECONDS));
|
||||
events.ScheduleEvent(EVENT_DEMORALIZING_SHOUT, 2000);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS));
|
||||
events.ScheduleEvent(EVENT_ENRAGE, urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS));
|
||||
events.ScheduleEvent(EVENT_CHECK_RESET, 5000);
|
||||
events.ScheduleEvent(EVENT_CHARGE_TARGET, 2s, 12s);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 1s, 11s);
|
||||
events.ScheduleEvent(EVENT_DEMORALIZING_SHOUT, 2s);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 5s, 20s);
|
||||
events.ScheduleEvent(EVENT_ENRAGE, 5s, 20s);
|
||||
events.ScheduleEvent(EVENT_CHECK_RESET, 5s);
|
||||
|
||||
_hasAura = false;
|
||||
_attacked = false;
|
||||
@@ -187,23 +187,23 @@ public:
|
||||
{
|
||||
case EVENT_CHARGE_TARGET:
|
||||
DoCastVictim(SPELL_CHARGE);
|
||||
events.ScheduleEvent(EVENT_CHARGE, urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS));
|
||||
events.ScheduleEvent(EVENT_CHARGE, 10s, 25s);
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
DoCastVictim(SPELL_CLEAVE);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, urand(10 * IN_MILLISECONDS, 16 * IN_MILLISECONDS));
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 10s, 16s);
|
||||
break;
|
||||
case EVENT_DEMORALIZING_SHOUT:
|
||||
DoCast(me, SPELL_DEMORALIZING_SHOUT);
|
||||
events.ScheduleEvent(EVENT_DEMORALIZING_SHOUT, urand(10 * IN_MILLISECONDS, 15 * IN_MILLISECONDS));
|
||||
events.ScheduleEvent(EVENT_DEMORALIZING_SHOUT, 10s, 15s);
|
||||
break;
|
||||
case EVENT_WHIRLWIND:
|
||||
DoCast(me, SPELL_WHIRLWIND);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS));
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 10s, 25s);
|
||||
break;
|
||||
case EVENT_ENRAGE:
|
||||
DoCast(me, SPELL_ENRAGE);
|
||||
events.ScheduleEvent(EVENT_ENRAGE, urand(10 * IN_MILLISECONDS, 30 * IN_MILLISECONDS));
|
||||
events.ScheduleEvent(EVENT_ENRAGE, 10s, 30s);
|
||||
break;
|
||||
case EVENT_CHECK_RESET:
|
||||
{
|
||||
|
||||
@@ -80,7 +80,7 @@ public:
|
||||
switch (param)
|
||||
{
|
||||
case EVENT_SUMMON_SPIRITS:
|
||||
_events.ScheduleEvent(EVENT_SUMMON_SPIRITS, urand(12, 14)*IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_SUMMON_SPIRITS, 12s, 14s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -106,11 +106,11 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_SPELL_FIREBLAST, 2 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_SPELL_FIREBLAST, 2s);
|
||||
|
||||
// Spawn 7 Embers initially
|
||||
for (int i = 0; i < 4; ++i)
|
||||
_events.ScheduleEvent(EVENT_SUMMON_SPIRITS, 4 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_SUMMON_SPIRITS, 4s);
|
||||
|
||||
// Activate the runes (Start burning)
|
||||
TurnRunes(true);
|
||||
@@ -183,7 +183,7 @@ public:
|
||||
{
|
||||
// Make the Spirits chase Ambassador Flamelash
|
||||
me->SummonCreature(NPC_FIRE_SPIRIT, SummonPositions[getValidRandomPosition()], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_SUMMON_SPIRITS, urand(12, 14) * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_SUMMON_SPIRITS, 12s, 14s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -198,7 +198,7 @@ public:
|
||||
{
|
||||
case EVENT_SPELL_FIREBLAST:
|
||||
DoCastVictim(SPELL_FIREBLAST);
|
||||
_events.ScheduleEvent(EVENT_SPELL_FIREBLAST, 7 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_SPELL_FIREBLAST, 7s);
|
||||
break;
|
||||
case EVENT_SUMMON_SPIRITS:
|
||||
SummonSpirits();
|
||||
|
||||
@@ -63,8 +63,8 @@ public:
|
||||
}
|
||||
|
||||
me->CallForHelp(VISIBLE_RANGE);
|
||||
events.ScheduleEvent(SPELL_HANDOFTHAURISSAN, urand(4000, 7000));
|
||||
events.ScheduleEvent(SPELL_AVATAROFFLAME, urand(10000, 12000));
|
||||
events.ScheduleEvent(SPELL_HANDOFTHAURISSAN, 4s, 7s);
|
||||
events.ScheduleEvent(SPELL_AVATAROFFLAME, 10s, 12s);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*victim*/) override
|
||||
@@ -118,11 +118,11 @@ public:
|
||||
case SPELL_HANDOFTHAURISSAN:
|
||||
DoCast(SelectTarget(SelectTargetMethod::Random), SPELL_HANDOFTHAURISSAN);
|
||||
//DoCastVictim(SPELL_HANDOFTHAURISSAN);
|
||||
events.ScheduleEvent(SPELL_HANDOFTHAURISSAN, urand(4000, 7000));
|
||||
events.ScheduleEvent(SPELL_HANDOFTHAURISSAN, 4s, 7s);
|
||||
break;
|
||||
case SPELL_AVATAROFFLAME:
|
||||
DoCastSelf(SPELL_AVATAROFFLAME);
|
||||
events.ScheduleEvent(SPELL_AVATAROFFLAME, urand(23000, 27000));
|
||||
events.ScheduleEvent(SPELL_AVATAROFFLAME, 23s, 27s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -25,14 +25,6 @@ enum Spells
|
||||
SPELL_WARSTOMP = 24375
|
||||
};
|
||||
|
||||
enum SpellTimers
|
||||
{
|
||||
SPELL_FIERYBURST_MIN = 4000,
|
||||
SPELL_FIERYBURST_MAX = 8000,
|
||||
SPELL_WARSTOMP_MIN = 8000,
|
||||
SPELL_WARSTOMP_MAX = 12000
|
||||
};
|
||||
|
||||
class boss_magmus : public CreatureScript
|
||||
{
|
||||
public:
|
||||
@@ -57,9 +49,8 @@ public:
|
||||
{
|
||||
instance->SetData(TYPE_IRON_HALL, IN_PROGRESS);
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(SPELL_FIERYBURST, urand(SPELL_FIERYBURST_MIN, SPELL_FIERYBURST_MAX));
|
||||
events.ScheduleEvent(SPELL_WARSTOMP, urand(SPELL_WARSTOMP_MIN, SPELL_WARSTOMP_MAX));
|
||||
|
||||
events.ScheduleEvent(SPELL_WARSTOMP, 8s, 12s);
|
||||
events.ScheduleEvent(SPELL_FIERYBURST, 4s, 8s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -77,11 +68,11 @@ public:
|
||||
{
|
||||
case SPELL_WARSTOMP:
|
||||
DoCastVictim(SPELL_WARSTOMP);
|
||||
events.ScheduleEvent(SPELL_WARSTOMP, urand(SPELL_WARSTOMP_MIN, SPELL_WARSTOMP_MAX));
|
||||
events.ScheduleEvent(SPELL_WARSTOMP, 8s, 12s);
|
||||
break;
|
||||
case SPELL_FIERYBURST:
|
||||
DoCastVictim(SPELL_FIERYBURST);
|
||||
events.ScheduleEvent(SPELL_FIERYBURST, urand(SPELL_FIERYBURST_MIN, SPELL_FIERYBURST_MAX));
|
||||
events.ScheduleEvent(SPELL_FIERYBURST, 4s, 8s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -193,11 +193,11 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_SPELL_SHADOWBOLTVOLLEY, 10000);
|
||||
_events.ScheduleEvent(EVENT_SPELL_IMMOLATE, 18000);
|
||||
_events.ScheduleEvent(EVENT_SPELL_CURSEOFWEAKNESS, 5000);
|
||||
_events.ScheduleEvent(EVENT_SPELL_DEMONARMOR, 16000);
|
||||
_events.ScheduleEvent(EVENT_SPELL_SUMMON_VOIDWALKERS, 1000);
|
||||
_events.ScheduleEvent(EVENT_SPELL_SHADOWBOLTVOLLEY, 10s);
|
||||
_events.ScheduleEvent(EVENT_SPELL_IMMOLATE, 18s);
|
||||
_events.ScheduleEvent(EVENT_SPELL_CURSEOFWEAKNESS, 5s);
|
||||
_events.ScheduleEvent(EVENT_SPELL_DEMONARMOR, 16s);
|
||||
_events.ScheduleEvent(EVENT_SPELL_SUMMON_VOIDWALKERS, 1s);
|
||||
}
|
||||
|
||||
void EnterEvadeMode(EvadeReason /*why*/) override
|
||||
@@ -222,24 +222,24 @@ public:
|
||||
{
|
||||
case EVENT_SPELL_SHADOWBOLTVOLLEY:
|
||||
DoCastVictim(SPELL_SHADOWBOLTVOLLEY);
|
||||
_events.ScheduleEvent(EVENT_SPELL_SHADOWBOLTVOLLEY, 12000);
|
||||
_events.ScheduleEvent(EVENT_SPELL_SHADOWBOLTVOLLEY, 12s);
|
||||
break;
|
||||
case EVENT_SPELL_IMMOLATE:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100, true))
|
||||
{
|
||||
DoCast(target, SPELL_IMMOLATE);
|
||||
_events.ScheduleEvent(EVENT_SPELL_IMMOLATE, 25000);
|
||||
_events.ScheduleEvent(EVENT_SPELL_IMMOLATE, 25s);
|
||||
}
|
||||
// Didn't get a target, try again in 1s
|
||||
_events.ScheduleEvent(EVENT_SPELL_IMMOLATE, 1000);
|
||||
_events.ScheduleEvent(EVENT_SPELL_IMMOLATE, 1s);
|
||||
break;
|
||||
case EVENT_SPELL_CURSEOFWEAKNESS:
|
||||
DoCastVictim(SPELL_CURSEOFWEAKNESS);
|
||||
_events.ScheduleEvent(EVENT_SPELL_CURSEOFWEAKNESS, 45000);
|
||||
_events.ScheduleEvent(EVENT_SPELL_CURSEOFWEAKNESS, 45s);
|
||||
break;
|
||||
case EVENT_SPELL_DEMONARMOR:
|
||||
DoCast(me, SPELL_DEMONARMOR);
|
||||
_events.ScheduleEvent(EVENT_SPELL_DEMONARMOR, 300000);
|
||||
_events.ScheduleEvent(EVENT_SPELL_DEMONARMOR, 300s);
|
||||
break;
|
||||
case EVENT_SPELL_SUMMON_VOIDWALKERS:
|
||||
if (!Voidwalkers && HealthBelowPct(51))
|
||||
@@ -248,7 +248,7 @@ public:
|
||||
Voidwalkers = true;
|
||||
}
|
||||
// Not ready yet, try again in 1s
|
||||
_events.ScheduleEvent(EVENT_SPELL_SUMMON_VOIDWALKERS, 1000);
|
||||
_events.ScheduleEvent(EVENT_SPELL_SUMMON_VOIDWALKERS, 1s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -55,12 +55,12 @@ public:
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_FLAMESTRIKE, 6000);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 8000);
|
||||
events.ScheduleEvent(EVENT_CONFLAGRATION, 15000);
|
||||
events.ScheduleEvent(EVENT_THUNDERCLAP, 17000);
|
||||
events.ScheduleEvent(EVENT_PIERCE_ARMOR, 5000);
|
||||
events.ScheduleEvent(EVENT_RAGE, 1000);
|
||||
events.ScheduleEvent(EVENT_FLAMESTRIKE, 6s);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 8s);
|
||||
events.ScheduleEvent(EVENT_CONFLAGRATION, 15s);
|
||||
events.ScheduleEvent(EVENT_THUNDERCLAP, 17s);
|
||||
events.ScheduleEvent(EVENT_PIERCE_ARMOR, 5s);
|
||||
events.ScheduleEvent(EVENT_RAGE, 1s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -79,11 +79,11 @@ public:
|
||||
{
|
||||
case EVENT_FLAMESTRIKE:
|
||||
DoCastAOE(SPELL_FLAMESTRIKE);
|
||||
events.ScheduleEvent(EVENT_FLAMESTRIKE, 10000);
|
||||
events.ScheduleEvent(EVENT_FLAMESTRIKE, 10s);
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
DoCastVictim(SPELL_CLEAVE);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 8000);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 8s);
|
||||
break;
|
||||
case EVENT_CONFLAGRATION:
|
||||
DoCastVictim(SPELL_CONFLAGRATION);
|
||||
@@ -94,20 +94,20 @@ public:
|
||||
_conflagrateThreat = me->GetThreatMgr().GetThreat(me->GetVictim());
|
||||
me->GetThreatMgr().ModifyThreatByPercent(target, -100);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CONFLAGRATION, urand(10000, 13000));
|
||||
events.ScheduleEvent(EVENT_CHECK_CONFLAGRATION_TARGET, 10000);
|
||||
events.ScheduleEvent(EVENT_CONFLAGRATION, 10s, 13s);
|
||||
events.ScheduleEvent(EVENT_CHECK_CONFLAGRATION_TARGET, 10s);
|
||||
break;
|
||||
case EVENT_THUNDERCLAP:
|
||||
DoCastVictim(SPELL_THUNDERCLAP);
|
||||
events.ScheduleEvent(EVENT_THUNDERCLAP, 20000);
|
||||
events.ScheduleEvent(EVENT_THUNDERCLAP, 20s);
|
||||
break;
|
||||
case EVENT_PIERCE_ARMOR:
|
||||
DoCastVictim(SPELL_PIERCE_ARMOR);
|
||||
events.ScheduleEvent(EVENT_PIERCE_ARMOR, 40000);
|
||||
events.ScheduleEvent(EVENT_PIERCE_ARMOR, 40s);
|
||||
break;
|
||||
case EVENT_RAGE:
|
||||
DoCastSelf(SPELL_RAGE);
|
||||
events.ScheduleEvent(EVENT_RAGE, 35000);
|
||||
events.ScheduleEvent(EVENT_RAGE, 35s);
|
||||
break;
|
||||
case EVENT_CHECK_CONFLAGRATION_TARGET:
|
||||
if (Unit* target = ObjectAccessor::GetUnit(*me, _conflagrateTarget))
|
||||
|
||||
@@ -74,10 +74,10 @@ public:
|
||||
{
|
||||
_EnterCombat();
|
||||
|
||||
events.ScheduleEvent(EVENT_CORROSIVE_ACID, urand(8000, 16000));
|
||||
events.ScheduleEvent(EVENT_FREEZE, urand(8000, 16000));
|
||||
events.ScheduleEvent(EVENT_FLAME_BREATH, urand(8000, 16000));
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, urand(12000, 18000));
|
||||
events.ScheduleEvent(EVENT_CORROSIVE_ACID, 8s, 16s);
|
||||
events.ScheduleEvent(EVENT_FREEZE, 8s, 16s);
|
||||
events.ScheduleEvent(EVENT_FLAME_BREATH, 8s, 16s);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 12s, 18s);
|
||||
}
|
||||
|
||||
void EnterEvadeMode(EvadeReason why) override
|
||||
@@ -132,7 +132,7 @@ public:
|
||||
me->AddAura(SPELL_REND_MOUNTS, me);
|
||||
if (GameObject* portcullis = me->FindNearestGameObject(GO_DR_PORTCULLIS, 40.0f))
|
||||
portcullis->UseDoorOrButton();
|
||||
events.ScheduleEvent(EVENT_SUMMONED_2, 2000);
|
||||
events.ScheduleEvent(EVENT_SUMMONED_2, 2s);
|
||||
break;
|
||||
case EVENT_SUMMONED_2:
|
||||
me->GetMotionMaster()->MovePath(GYTH_PATH_1, false);
|
||||
@@ -152,19 +152,19 @@ public:
|
||||
{
|
||||
case EVENT_CORROSIVE_ACID:
|
||||
DoCast(me, SPELL_CORROSIVE_ACID);
|
||||
events.ScheduleEvent(EVENT_CORROSIVE_ACID, urand(10000, 16000));
|
||||
events.ScheduleEvent(EVENT_CORROSIVE_ACID, 10s, 16s);
|
||||
break;
|
||||
case EVENT_FREEZE:
|
||||
DoCast(me, SPELL_FREEZE);
|
||||
events.ScheduleEvent(EVENT_FREEZE, urand(10000, 16000));
|
||||
events.ScheduleEvent(EVENT_FREEZE, 10s, 16s);
|
||||
break;
|
||||
case EVENT_FLAME_BREATH:
|
||||
DoCast(me, SPELL_FLAMEBREATH);
|
||||
events.ScheduleEvent(EVENT_FLAME_BREATH, urand(10000, 16000));
|
||||
events.ScheduleEvent(EVENT_FLAME_BREATH, 10s, 16s);
|
||||
break;
|
||||
case EVENT_KNOCK_AWAY:
|
||||
DoCastVictim(SPELL_KNOCK_AWAY);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, urand(14000, 20000));
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 14s, 20s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -55,8 +55,8 @@ public:
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_REND, urand(17000, 20000));
|
||||
events.ScheduleEvent(EVENT_THRASH, urand(10000, 12000));
|
||||
events.ScheduleEvent(EVENT_REND, 17s, 20s);
|
||||
events.ScheduleEvent(EVENT_THRASH, 10s, 12s);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -82,7 +82,7 @@ public:
|
||||
{
|
||||
case EVENT_REND:
|
||||
DoCastVictim(SPELL_REND);
|
||||
events.ScheduleEvent(EVENT_REND, urand(8000, 10000));
|
||||
events.ScheduleEvent(EVENT_REND, 8s, 10s);
|
||||
break;
|
||||
case EVENT_THRASH:
|
||||
DoCast(me, SPELL_THRASH);
|
||||
|
||||
@@ -53,8 +53,8 @@ public:
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_FRENZY, 20000);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 18000);
|
||||
events.ScheduleEvent(EVENT_FRENZY, 20s);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 18s);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -78,11 +78,11 @@ public:
|
||||
{
|
||||
case EVENT_FRENZY:
|
||||
DoCastVictim(SPELL_FRENZY);
|
||||
events.ScheduleEvent(EVENT_FRENZY, 60000);
|
||||
events.ScheduleEvent(EVENT_FRENZY, 60s);
|
||||
break;
|
||||
case EVENT_KNOCK_AWAY:
|
||||
DoCastVictim(SPELL_KNOCK_AWAY);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 12000);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 12s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -81,8 +81,8 @@ public:
|
||||
Talk(TALK_AGGRO);
|
||||
|
||||
events.SetPhase(EVENT_PHASE_FIGHT);
|
||||
events.ScheduleEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN, urand(6 * IN_MILLISECONDS, 8 * IN_MILLISECONDS), 0, EVENT_PHASE_FIGHT);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WRATH, urand(9 * IN_MILLISECONDS, 18 * IN_MILLISECONDS), 0, EVENT_PHASE_FIGHT);
|
||||
events.ScheduleEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN, 6s, 8s, 0, EVENT_PHASE_FIGHT);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WRATH, 9s, 18s, 0, EVENT_PHASE_FIGHT);
|
||||
}
|
||||
|
||||
void JustDied(Unit* killer) override
|
||||
@@ -130,7 +130,7 @@ public:
|
||||
{
|
||||
frenzy15 = true;
|
||||
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, urand(12 * IN_MILLISECONDS, 19 * IN_MILLISECONDS), 0, EVENT_PHASE_FIGHT);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, 12s, 19s, 0, EVENT_PHASE_FIGHT);
|
||||
|
||||
StartTalking(TALK_15_HP, 5 * IN_MILLISECONDS);
|
||||
}
|
||||
@@ -159,15 +159,15 @@ public:
|
||||
break;
|
||||
case EVENT_SUMMON_SPECTRAL_ASSASSIN:
|
||||
DoCast(me, SPELL_SUMMON_SPECTRAL_ASSASSIN);
|
||||
events.ScheduleEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN, urand(30 * IN_MILLISECONDS, 35 * IN_MILLISECONDS), 0, EVENT_PHASE_FIGHT);
|
||||
events.ScheduleEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN, 30s, 35s, 0, EVENT_PHASE_FIGHT);
|
||||
break;
|
||||
case EVENT_SHADOW_BOLT_VOLLEY:
|
||||
DoCastVictim(SPELL_SHADOW_BOLT_VOLLEY);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, urand(4 * IN_MILLISECONDS, 6 * IN_MILLISECONDS), 0, EVENT_PHASE_FIGHT);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, 4s, 6s, 0, EVENT_PHASE_FIGHT);
|
||||
break;
|
||||
case EVENT_SHADOW_WRATH:
|
||||
DoCastVictim(SPELL_SHADOW_WRATH);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WRATH, urand(19 * IN_MILLISECONDS, 24 * IN_MILLISECONDS), 0, EVENT_PHASE_FIGHT);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WRATH, 19s, 24s, 0, EVENT_PHASE_FIGHT);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -71,10 +71,10 @@ public:
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_BLAST_WAVE, 20 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SHOUT, 2 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 6 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 12 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_BLAST_WAVE, 20s);
|
||||
events.ScheduleEvent(EVENT_SHOUT, 2s);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 6s);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 12s);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -111,19 +111,19 @@ public:
|
||||
{
|
||||
case EVENT_BLAST_WAVE:
|
||||
DoCastVictim(SPELL_BLASTWAVE);
|
||||
events.ScheduleEvent(EVENT_BLAST_WAVE, 20 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_BLAST_WAVE, 20s);
|
||||
break;
|
||||
case EVENT_SHOUT:
|
||||
DoCastVictim(SPELL_SHOUT);
|
||||
events.ScheduleEvent(EVENT_SHOUT, 10 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SHOUT, 10s);
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
DoCastVictim(SPELL_CLEAVE);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 7 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 7s);
|
||||
break;
|
||||
case EVENT_KNOCK_AWAY:
|
||||
DoCastVictim(SPELL_KNOCKAWAY);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 14 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 14s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,9 +87,9 @@ public:
|
||||
me->RemoveAura(SPELL_EMBERSEER_FULL_STRENGTH);
|
||||
me->RemoveAura(SPELL_EMBERSEER_GROWING);
|
||||
me->RemoveAura(SPELL_EMBERSEER_GROWING_TRIGGER);
|
||||
events.ScheduleEvent(EVENT_RESPAWN, 5000);
|
||||
events.ScheduleEvent(EVENT_RESPAWN, 5s);
|
||||
// Hack for missing trigger spell
|
||||
events.ScheduleEvent(EVENT_FIRE_SHIELD, 3000);
|
||||
events.ScheduleEvent(EVENT_FIRE_SHIELD, 3s);
|
||||
|
||||
// Open doors on reset
|
||||
if (instance->GetBossState(DATA_PYROGAURD_EMBERSEER) == IN_PROGRESS)
|
||||
@@ -101,7 +101,7 @@ public:
|
||||
switch (data)
|
||||
{
|
||||
case 1:
|
||||
events.ScheduleEvent(EVENT_PLAYER_CHECK, 5000);
|
||||
events.ScheduleEvent(EVENT_PLAYER_CHECK, 5s);
|
||||
break;
|
||||
case 2:
|
||||
// Close these two doors on Blackhand Incarcerators aggro
|
||||
@@ -123,9 +123,9 @@ public:
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
// ### TODO Check combat timing ###
|
||||
events.ScheduleEvent(EVENT_FIRENOVA, 6000);
|
||||
events.ScheduleEvent(EVENT_FLAMEBUFFET, 3000);
|
||||
events.ScheduleEvent(EVENT_PYROBLAST, 14000);
|
||||
events.ScheduleEvent(EVENT_FIRENOVA, 6s);
|
||||
events.ScheduleEvent(EVENT_FLAMEBUFFET, 3s);
|
||||
events.ScheduleEvent(EVENT_PYROBLAST, 14s);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -160,7 +160,7 @@ public:
|
||||
Talk(YELL_FREE_OF_BONDS);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetImmuneToPC(false);
|
||||
events.ScheduleEvent(EVENT_ENTER_COMBAT, 2000);
|
||||
events.ScheduleEvent(EVENT_ENTER_COMBAT, 2s);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -235,7 +235,7 @@ public:
|
||||
if (Creature* creature = *itr)
|
||||
creature->AI()->SetData(1, 1);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_PRE_FIGHT_2, 32000);
|
||||
events.ScheduleEvent(EVENT_PRE_FIGHT_2, 32s);
|
||||
break;
|
||||
}
|
||||
case EVENT_PRE_FIGHT_2:
|
||||
@@ -246,7 +246,7 @@ public:
|
||||
case EVENT_FIRE_SHIELD:
|
||||
// #### Spell isn't doing any damage ??? ####
|
||||
DoCast(me, SPELL_FIRE_SHIELD);
|
||||
events.ScheduleEvent(EVENT_FIRE_SHIELD, 3000);
|
||||
events.ScheduleEvent(EVENT_FIRE_SHIELD, 3s);
|
||||
break;
|
||||
case EVENT_PLAYER_CHECK:
|
||||
{
|
||||
@@ -260,7 +260,7 @@ public:
|
||||
|
||||
if (_hasAura)
|
||||
{
|
||||
events.ScheduleEvent(EVENT_PRE_FIGHT_1, 1000);
|
||||
events.ScheduleEvent(EVENT_PRE_FIGHT_1, 1s);
|
||||
instance->SetBossState(DATA_PYROGAURD_EMBERSEER, IN_PROGRESS);
|
||||
}
|
||||
break;
|
||||
@@ -283,19 +283,19 @@ public:
|
||||
{
|
||||
case EVENT_FIRE_SHIELD:
|
||||
DoCast(me, SPELL_FIRE_SHIELD);
|
||||
events.ScheduleEvent(EVENT_FIRE_SHIELD, 3000);
|
||||
events.ScheduleEvent(EVENT_FIRE_SHIELD, 3s);
|
||||
break;
|
||||
case EVENT_FIRENOVA:
|
||||
DoCast(me, SPELL_FIRENOVA);
|
||||
events.ScheduleEvent(EVENT_FIRENOVA, 6000);
|
||||
events.ScheduleEvent(EVENT_FIRENOVA, 6s);
|
||||
break;
|
||||
case EVENT_FLAMEBUFFET:
|
||||
DoCast(me, SPELL_FLAMEBUFFET);
|
||||
events.ScheduleEvent(EVENT_FLAMEBUFFET, 14000);
|
||||
events.ScheduleEvent(EVENT_FLAMEBUFFET, 14s);
|
||||
break;
|
||||
case EVENT_PYROBLAST:
|
||||
DoCastRandomTarget(SPELL_PYROBLAST, 0, 100.0f);
|
||||
events.ScheduleEvent(EVENT_PYROBLAST, 15000);
|
||||
events.ScheduleEvent(EVENT_PYROBLAST, 15s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -373,7 +373,7 @@ public:
|
||||
}
|
||||
|
||||
if (data == 1 && value == 2)
|
||||
_events.ScheduleEvent(EVENT_ENCAGED_EMBERSEER, 1000);
|
||||
_events.ScheduleEvent(EVENT_ENCAGED_EMBERSEER, 1s);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
@@ -391,8 +391,8 @@ public:
|
||||
creature->SetInCombatWithZone(); // AI()->AttackStart(me->GetVictim());
|
||||
}
|
||||
|
||||
_events.ScheduleEvent(EVENT_STRIKE, urand(8000, 16000));
|
||||
_events.ScheduleEvent(EVENT_ENCAGE, urand(10000, 20000));
|
||||
_events.ScheduleEvent(EVENT_STRIKE, 8s, 16s);
|
||||
_events.ScheduleEvent(EVENT_ENCAGE, 10s, 20s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -426,11 +426,11 @@ public:
|
||||
{
|
||||
case EVENT_STRIKE:
|
||||
DoCastVictim(SPELL_STRIKE, true);
|
||||
_events.ScheduleEvent(EVENT_STRIKE, urand(14000, 23000));
|
||||
_events.ScheduleEvent(EVENT_STRIKE, 14s, 23s);
|
||||
break;
|
||||
case EVENT_ENCAGE:
|
||||
DoCast(SelectTarget(SelectTargetMethod::Random, 0, 100, true), EVENT_ENCAGE, true);
|
||||
_events.ScheduleEvent(EVENT_ENCAGE, urand(6000, 12000));
|
||||
_events.ScheduleEvent(EVENT_ENCAGE, 6s, 12s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -52,9 +52,9 @@ struct boss_quartermaster_zigris : public BossAI
|
||||
void EnterCombat(Unit* who) override
|
||||
{
|
||||
BossAI::EnterCombat(who);
|
||||
events.ScheduleEvent(EVENT_STUN_BOMB, 16000);
|
||||
events.ScheduleEvent(EVENT_HOOKED_NET, 14000);
|
||||
events.ScheduleEvent(EVENT_SHOOT, 1000);
|
||||
events.ScheduleEvent(EVENT_STUN_BOMB, 16s);
|
||||
events.ScheduleEvent(EVENT_HOOKED_NET, 14s);
|
||||
events.ScheduleEvent(EVENT_SHOOT, 1s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*effType*/, SpellSchoolMask /*schoolMask*/) override
|
||||
@@ -102,7 +102,7 @@ struct boss_quartermaster_zigris : public BossAI
|
||||
{
|
||||
case EVENT_STUN_BOMB:
|
||||
DoCastVictim(SPELL_STUNBOMB);
|
||||
events.ScheduleEvent(EVENT_STUN_BOMB, 14000);
|
||||
events.ScheduleEvent(EVENT_STUN_BOMB, 14s);
|
||||
break;
|
||||
case EVENT_HOOKED_NET:
|
||||
if (me->IsWithinMeleeRange(me->GetVictim()))
|
||||
|
||||
@@ -141,7 +141,7 @@ public:
|
||||
{
|
||||
if (!summons.IsAnyCreatureAlive())
|
||||
{
|
||||
events.ScheduleEvent(EVENT_WAVES_TEXT_1 + _currentWave, 10 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_WAVES_TEXT_1 + _currentWave, 10s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -161,9 +161,9 @@ public:
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, urand(13000, 15000));
|
||||
events.ScheduleEvent(EVENT_CLEAVE, urand(15000, 17000));
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, urand(17000, 19000));
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 13s, 15s);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 15s, 17s);
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 17s, 19s);
|
||||
}
|
||||
|
||||
void EnterEvadeMode(EvadeReason why) override
|
||||
@@ -223,7 +223,7 @@ public:
|
||||
waveDoorGUID = portcullis->GetGUID();
|
||||
|
||||
events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0);
|
||||
events.ScheduleEvent(EVENT_START_1, 1000);
|
||||
events.ScheduleEvent(EVENT_START_1, 1s);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -235,7 +235,7 @@ public:
|
||||
switch (id)
|
||||
{
|
||||
case 5:
|
||||
events.ScheduleEvent(EVENT_TELEPORT_1, 2000);
|
||||
events.ScheduleEvent(EVENT_TELEPORT_1, 2s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -261,19 +261,19 @@ public:
|
||||
if (GameObject* door2 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_GYTH_ENTRY_DOOR)))
|
||||
door2->SetGoState(GO_STATE_READY);
|
||||
|
||||
events.ScheduleEvent(EVENT_START_2, 4000);
|
||||
events.ScheduleEvent(EVENT_START_2, 4s);
|
||||
break;
|
||||
case EVENT_START_2:
|
||||
events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0);
|
||||
if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))
|
||||
victor->HandleEmoteCommand(EMOTE_ONESHOT_POINT);
|
||||
events.ScheduleEvent(EVENT_START_3, 4000);
|
||||
events.ScheduleEvent(EVENT_START_3, 4s);
|
||||
break;
|
||||
case EVENT_START_3:
|
||||
if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))
|
||||
victor->AI()->Talk(SAY_NEFARIUS_1);
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE, 2000);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_REND, 4000);
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE, 2s);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_REND, 4s);
|
||||
break;
|
||||
case EVENT_TURN_TO_REND:
|
||||
if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))
|
||||
@@ -305,60 +305,60 @@ public:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
|
||||
break;
|
||||
case EVENT_WAVES_TEXT_1:
|
||||
events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0ms);
|
||||
if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))
|
||||
victor->AI()->Talk(SAY_NEFARIUS_2);
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4000);
|
||||
events.ScheduleEvent(EVENT_WAVES_EMOTE_1, 5000);
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE, 3000);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4s);
|
||||
events.ScheduleEvent(EVENT_WAVES_EMOTE_1, 5s);
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE, 3s);
|
||||
break;
|
||||
case EVENT_WAVES_TEXT_2:
|
||||
events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0);
|
||||
if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))
|
||||
victor->AI()->Talk(SAY_NEFARIUS_3);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4000);
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE, 3000);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4s);
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE, 3s);
|
||||
break;
|
||||
case EVENT_WAVES_TEXT_3:
|
||||
events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0);
|
||||
if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))
|
||||
victor->AI()->Talk(SAY_NEFARIUS_4);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4000);
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE, 3000);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4s);
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE, 3s);
|
||||
break;
|
||||
case EVENT_WAVES_TEXT_4:
|
||||
Talk(SAY_BLACKHAND_1);
|
||||
events.ScheduleEvent(EVENT_WAVES_EMOTE_2, 4000);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_FACING_3, 8000);
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE, 3000);
|
||||
events.ScheduleEvent(EVENT_WAVES_EMOTE_2, 4s);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_FACING_3, 8s);
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE, 3s);
|
||||
break;
|
||||
case EVENT_WAVES_TEXT_5:
|
||||
events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0);
|
||||
if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))
|
||||
victor->AI()->Talk(SAY_NEFARIUS_5);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4000);
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE, 3000);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4s);
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE, 3s);
|
||||
break;
|
||||
case EVENT_WAVES_COMPLETE_TEXT_1:
|
||||
events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0);
|
||||
if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))
|
||||
victor->AI()->Talk(SAY_NEFARIUS_6);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4000);
|
||||
events.ScheduleEvent(EVENT_WAVES_COMPLETE_TEXT_2, 13000);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4s);
|
||||
events.ScheduleEvent(EVENT_WAVES_COMPLETE_TEXT_2, 13s);
|
||||
break;
|
||||
case EVENT_WAVES_COMPLETE_TEXT_2:
|
||||
if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))
|
||||
victor->AI()->Talk(SAY_NEFARIUS_7);
|
||||
Talk(SAY_BLACKHAND_2);
|
||||
events.ScheduleEvent(EVENT_PATH_REND, 1000);
|
||||
events.ScheduleEvent(EVENT_WAVES_COMPLETE_TEXT_3, 4000);
|
||||
events.ScheduleEvent(EVENT_PATH_REND, 1s);
|
||||
events.ScheduleEvent(EVENT_WAVES_COMPLETE_TEXT_3, 4s);
|
||||
break;
|
||||
case EVENT_WAVES_COMPLETE_TEXT_3:
|
||||
if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))
|
||||
victor->AI()->Talk(SAY_NEFARIUS_8);
|
||||
events.ScheduleEvent(EVENT_PATH_NEFARIUS, 1000);
|
||||
events.ScheduleEvent(EVENT_PATH_REND, 1000);
|
||||
events.ScheduleEvent(EVENT_PATH_NEFARIUS, 1s);
|
||||
events.ScheduleEvent(EVENT_PATH_REND, 1s);
|
||||
break;
|
||||
case EVENT_PATH_NEFARIUS:
|
||||
if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))
|
||||
@@ -369,7 +369,7 @@ public:
|
||||
break;
|
||||
case EVENT_TELEPORT_1:
|
||||
me->NearTeleportTo(194.2993f, -474.0814f, 121.4505f, -0.01225555f);
|
||||
events.ScheduleEvent(EVENT_TELEPORT_2, 13000);
|
||||
events.ScheduleEvent(EVENT_TELEPORT_2, 13s);
|
||||
break;
|
||||
case EVENT_TELEPORT_2:
|
||||
me->NearTeleportTo(216.485f, -434.93f, 110.888f, -0.01225555f);
|
||||
@@ -398,15 +398,15 @@ public:
|
||||
{
|
||||
case EVENT_WHIRLWIND:
|
||||
DoCast(SPELL_WHIRLWIND);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, urand(13000, 18000));
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 13s, 18s);
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
DoCastVictim(SPELL_CLEAVE);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, urand(10000, 14000));
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 10s, 14s);
|
||||
break;
|
||||
case EVENT_MORTAL_STRIKE:
|
||||
DoCastVictim(SPELL_MORTAL_STRIKE);
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, urand(14000, 16000));
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 14s, 18s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
events.ScheduleEvent(SPELL_HATCH_EGG, 1000);
|
||||
events.ScheduleEvent(SPELL_HATCH_EGG, 1s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -138,7 +138,7 @@ public:
|
||||
targetPosition = me->GetPosition();
|
||||
DoCast(SPELL_HATCH_EGG);
|
||||
targetEgg = nullptr;
|
||||
events.ScheduleEvent(SPELL_HATCH_EGG, urand(6000, 8000));
|
||||
events.ScheduleEvent(SPELL_HATCH_EGG, 6s, 8s);
|
||||
}
|
||||
else if (!me->HasUnitState(UNIT_STATE_CASTING) && !targetEgg)
|
||||
{
|
||||
@@ -184,7 +184,7 @@ public:
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(SPELL_WAR_STOMP, urand(17000, 20000));
|
||||
events.ScheduleEvent(SPELL_WAR_STOMP, 17s, 20s);
|
||||
resetTimer = 0;
|
||||
}
|
||||
|
||||
@@ -200,7 +200,7 @@ public:
|
||||
{
|
||||
case SPELL_WAR_STOMP:
|
||||
DoCastVictim(SPELL_WAR_STOMP);
|
||||
events.ScheduleEvent(SPELL_WAR_STOMP, urand(17000, 20000));
|
||||
events.ScheduleEvent(SPELL_WAR_STOMP, 17s, 20s);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -116,12 +116,12 @@ public:
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_FLAME_BREAK, 12 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_IMMOLATE, 3 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_TERRIFYING_ROAR, 23 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_BERSERKER_CHARGE, 2 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FIREBALL, 8 * IN_MILLISECONDS, 21 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FIREBLAST, 5 * IN_MILLISECONDS, 8 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FLAME_BREAK, 12s);
|
||||
events.ScheduleEvent(EVENT_IMMOLATE, 3s);
|
||||
events.ScheduleEvent(EVENT_TERRIFYING_ROAR, 23s);
|
||||
events.ScheduleEvent(EVENT_BERSERKER_CHARGE, 2s);
|
||||
events.ScheduleEvent(EVENT_FIREBALL, 8s, 21s);
|
||||
events.ScheduleEvent(EVENT_FIREBLAST, 5s, 8s);
|
||||
}
|
||||
|
||||
void SetData(uint32 type, uint32 /*data*/) override
|
||||
@@ -206,37 +206,37 @@ public:
|
||||
{
|
||||
case EVENT_FLAME_BREAK:
|
||||
DoCastVictim(SPELL_FLAMEBREAK);
|
||||
events.ScheduleEvent(EVENT_FLAME_BREAK, 10 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FLAME_BREAK, 10s);
|
||||
break;
|
||||
case EVENT_IMMOLATE:
|
||||
DoCastRandomTarget(SPELL_IMMOLATE, 0, 100.0f);
|
||||
events.ScheduleEvent(EVENT_IMMOLATE, 8 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_IMMOLATE, 8s);
|
||||
break;
|
||||
case EVENT_TERRIFYING_ROAR:
|
||||
DoCastVictim(SPELL_TERRIFYINGROAR);
|
||||
events.ScheduleEvent(EVENT_TERRIFYING_ROAR, 20 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_TERRIFYING_ROAR, 20s);
|
||||
break;
|
||||
case EVENT_BERSERKER_CHARGE:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 38.f, true))
|
||||
{
|
||||
DoCast(target, SPELL_BERSERKER_CHARGE);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_BERSERKER_CHARGE, 15 * IN_MILLISECONDS, 23 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_BERSERKER_CHARGE, 15s, 23s);
|
||||
break;
|
||||
case EVENT_FIREBALL:
|
||||
DoCastVictim(SPELL_FIREBALL);
|
||||
events.ScheduleEvent(EVENT_FIREBALL, 8 * IN_MILLISECONDS, 21 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FIREBALL, 8s, 21s);
|
||||
if (events.GetNextEventTime(EVENT_FIREBLAST) < 3 * IN_MILLISECONDS)
|
||||
{
|
||||
events.RescheduleEvent(EVENT_FIREBLAST, 3 * IN_MILLISECONDS);
|
||||
events.RescheduleEvent(EVENT_FIREBLAST, 3s);
|
||||
}
|
||||
break;
|
||||
case EVENT_FIREBLAST:
|
||||
DoCastVictim(SPELL_FIREBLAST);
|
||||
events.ScheduleEvent(EVENT_FIREBLAST, 5 * IN_MILLISECONDS, 8 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FIREBLAST, 5s, 8s);
|
||||
if (events.GetNextEventTime(EVENT_FIREBALL) < 3 * IN_MILLISECONDS)
|
||||
{
|
||||
events.RescheduleEvent(EVENT_FIREBALL, 3 * IN_MILLISECONDS);
|
||||
events.RescheduleEvent(EVENT_FIREBALL, 3s);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -70,9 +70,9 @@ public:
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(SPELL_REND, urand(17000, 20000));
|
||||
events.ScheduleEvent(SPELL_STRIKE, urand(10000, 12000));
|
||||
events.ScheduleEvent(SPELL_INTIMIDATING_ROAR, urand(25000, 30000));
|
||||
events.ScheduleEvent(SPELL_REND, 17s, 20s);
|
||||
events.ScheduleEvent(SPELL_STRIKE, 10s, 12s);
|
||||
events.ScheduleEvent(SPELL_INTIMIDATING_ROAR, 25s, 30s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -91,15 +91,15 @@ public:
|
||||
{
|
||||
case SPELL_REND:
|
||||
DoCastVictim(SPELL_REND);
|
||||
events.ScheduleEvent(SPELL_REND, urand(8000, 10000));
|
||||
events.ScheduleEvent(SPELL_REND, 8s, 10s);
|
||||
break;
|
||||
case SPELL_STRIKE:
|
||||
DoCastVictim(SPELL_STRIKE);
|
||||
events.ScheduleEvent(SPELL_STRIKE, urand(8000, 10000));
|
||||
events.ScheduleEvent(SPELL_STRIKE, 8s, 10s);
|
||||
break;
|
||||
case SPELL_INTIMIDATING_ROAR:
|
||||
DoCastVictim(SPELL_INTIMIDATING_ROAR);
|
||||
events.ScheduleEvent(SPELL_INTIMIDATING_ROAR, urand(40000, 45000));
|
||||
events.ScheduleEvent(SPELL_INTIMIDATING_ROAR, 40s, 45s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -69,8 +69,8 @@ public:
|
||||
_EnterCombat();
|
||||
|
||||
events.SetPhase(PHASE_BRAWLER);
|
||||
events.ScheduleEvent(EVENT_THRASH, 3 * IN_MILLISECONDS, GROUP_BRAWLER, PHASE_BRAWLER);
|
||||
events.ScheduleEvent(EVENT_THROW_AXE, 1 * IN_MILLISECONDS, GROUP_BRAWLER, PHASE_BRAWLER);
|
||||
events.ScheduleEvent(EVENT_THRASH, 3s, GROUP_BRAWLER, PHASE_BRAWLER);
|
||||
events.ScheduleEvent(EVENT_THROW_AXE, 1s, GROUP_BRAWLER, PHASE_BRAWLER);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*type*/, SpellSchoolMask /*school*/) override
|
||||
@@ -79,16 +79,16 @@ public:
|
||||
{
|
||||
events.SetPhase(PHASE_THRASHER);
|
||||
events.CancelEventGroup(GROUP_BRAWLER);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 14 * IN_MILLISECONDS, GROUP_THRASHER, PHASE_THRASHER);
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 12 * IN_MILLISECONDS, GROUP_THRASHER, PHASE_THRASHER);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 14s, GROUP_THRASHER, PHASE_THRASHER);
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 12s, GROUP_THRASHER, PHASE_THRASHER);
|
||||
}
|
||||
else if (me->HealthBelowPctDamaged(40, damage) && events.IsInPhase(PHASE_THRASHER))
|
||||
{
|
||||
events.SetPhase(PHASE_WARMASTER);
|
||||
events.CancelEventGroup(GROUP_THRASHER);
|
||||
events.ScheduleEvent(EVENT_SNAP_KICK, 8 * IN_MILLISECONDS, GROUP_WARMASTER, PHASE_WARMASTER);
|
||||
events.ScheduleEvent(EVENT_UPPERCUT, 20 * IN_MILLISECONDS, GROUP_WARMASTER, PHASE_WARMASTER);
|
||||
events.ScheduleEvent(EVENT_PUMMEL, 32 * IN_MILLISECONDS, GROUP_WARMASTER, PHASE_WARMASTER);
|
||||
events.ScheduleEvent(EVENT_SNAP_KICK, 8s, GROUP_WARMASTER, PHASE_WARMASTER);
|
||||
events.ScheduleEvent(EVENT_UPPERCUT, 20s, GROUP_WARMASTER, PHASE_WARMASTER);
|
||||
events.ScheduleEvent(EVENT_PUMMEL, 32s, GROUP_WARMASTER, PHASE_WARMASTER);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -351,7 +351,7 @@ public:
|
||||
if (data == AREATRIGGER_DRAGONSPIRE_HALL)
|
||||
{
|
||||
if (GetBossState(DATA_DRAGONSPIRE_ROOM) != DONE)
|
||||
Events.ScheduleEvent(EVENT_DARGONSPIRE_ROOM_STORE, 1000);
|
||||
Events.ScheduleEvent(EVENT_DARGONSPIRE_ROOM_STORE, 1s);
|
||||
}
|
||||
break;
|
||||
case DATA_SOLAKAR_FLAMEWREATH:
|
||||
@@ -360,7 +360,7 @@ public:
|
||||
case IN_PROGRESS:
|
||||
if (SolakarState == NOT_STARTED)
|
||||
{
|
||||
Events.ScheduleEvent(EVENT_SOLAKAR_WAVE, 500);
|
||||
Events.ScheduleEvent(EVENT_SOLAKAR_WAVE, 500ms);
|
||||
}
|
||||
break;
|
||||
case FAIL:
|
||||
@@ -556,12 +556,12 @@ public:
|
||||
{
|
||||
case EVENT_DARGONSPIRE_ROOM_STORE:
|
||||
Dragonspireroomstore();
|
||||
Events.ScheduleEvent(EVENT_DARGONSPIRE_ROOM_CHECK, 3000);
|
||||
Events.ScheduleEvent(EVENT_DARGONSPIRE_ROOM_CHECK, 3s);
|
||||
break;
|
||||
case EVENT_DARGONSPIRE_ROOM_CHECK:
|
||||
Dragonspireroomcheck();
|
||||
if ((GetBossState(DATA_DRAGONSPIRE_ROOM) != DONE))
|
||||
Events.ScheduleEvent(EVENT_DARGONSPIRE_ROOM_CHECK, 3000);
|
||||
Events.ScheduleEvent(EVENT_DARGONSPIRE_ROOM_CHECK, 3s);
|
||||
break;
|
||||
case EVENT_SOLAKAR_WAVE:
|
||||
SummonSolakarWave(CurrentSolakarWave);
|
||||
|
||||
@@ -70,11 +70,11 @@ public:
|
||||
BossAI::EnterCombat(who);
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 8000);
|
||||
events.ScheduleEvent(EVENT_BLASTWAVE, 12000);
|
||||
events.ScheduleEvent(EVENT_MORTALSTRIKE, 20000);
|
||||
events.ScheduleEvent(EVENT_KNOCKBACK, 30000);
|
||||
events.ScheduleEvent(EVENT_CHECK, 1000);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 8s);
|
||||
events.ScheduleEvent(EVENT_BLASTWAVE, 12s);
|
||||
events.ScheduleEvent(EVENT_MORTALSTRIKE, 20s);
|
||||
events.ScheduleEvent(EVENT_KNOCKBACK, 30s);
|
||||
events.ScheduleEvent(EVENT_CHECK, 1s);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -102,21 +102,21 @@ public:
|
||||
{
|
||||
case EVENT_CLEAVE:
|
||||
DoCastVictim(SPELL_CLEAVE);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 7000);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 7s);
|
||||
break;
|
||||
case EVENT_BLASTWAVE:
|
||||
DoCastVictim(SPELL_BLASTWAVE);
|
||||
events.ScheduleEvent(EVENT_BLASTWAVE, 20000, 35000);
|
||||
events.ScheduleEvent(EVENT_BLASTWAVE, 20s, 35s);
|
||||
break;
|
||||
case EVENT_MORTALSTRIKE:
|
||||
DoCastVictim(SPELL_MORTALSTRIKE);
|
||||
events.ScheduleEvent(EVENT_MORTALSTRIKE, 25000, 35000);
|
||||
events.ScheduleEvent(EVENT_MORTALSTRIKE, 25s, 35s);
|
||||
break;
|
||||
case EVENT_KNOCKBACK:
|
||||
DoCastVictim(SPELL_KNOCKBACK);
|
||||
if (DoGetThreat(me->GetVictim()))
|
||||
DoModifyThreatByPercent(me->GetVictim(), -50);
|
||||
events.ScheduleEvent(EVENT_KNOCKBACK, 15000, 30000);
|
||||
events.ScheduleEvent(EVENT_KNOCKBACK, 15s, 30s);
|
||||
break;
|
||||
case EVENT_CHECK:
|
||||
if (me->GetDistance(me->GetHomePosition()) > 150.0f)
|
||||
@@ -124,7 +124,7 @@ public:
|
||||
Talk(SAY_LEASH);
|
||||
EnterEvadeMode();
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHECK, 1000);
|
||||
events.ScheduleEvent(EVENT_CHECK, 1s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -169,7 +169,7 @@ class go_suppression_device : public GameObjectScript
|
||||
return;
|
||||
}
|
||||
|
||||
_events.ScheduleEvent(EVENT_SUPPRESSION_CAST, 5000);
|
||||
_events.ScheduleEvent(EVENT_SUPPRESSION_CAST, 5s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -186,7 +186,7 @@ class go_suppression_device : public GameObjectScript
|
||||
me->CastSpell(nullptr, SPELL_SUPPRESSION_AURA);
|
||||
me->SendCustomAnim(0);
|
||||
}
|
||||
_events.ScheduleEvent(EVENT_SUPPRESSION_CAST, 5000);
|
||||
_events.ScheduleEvent(EVENT_SUPPRESSION_CAST, 5s);
|
||||
break;
|
||||
case EVENT_SUPPRESSION_RESET:
|
||||
Activate();
|
||||
@@ -208,7 +208,7 @@ class go_suppression_device : public GameObjectScript
|
||||
|
||||
if (_instance->GetBossState(DATA_BROODLORD_LASHLAYER) != DONE)
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_SUPPRESSION_RESET, urand(30000, 120000));
|
||||
_events.ScheduleEvent(EVENT_SUPPRESSION_RESET, 30s, 120s);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -222,7 +222,7 @@ class go_suppression_device : public GameObjectScript
|
||||
me->SetGoState(GO_STATE_READY);
|
||||
me->SetLootState(GO_READY);
|
||||
me->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
_events.ScheduleEvent(EVENT_SUPPRESSION_CAST, 5000);
|
||||
_events.ScheduleEvent(EVENT_SUPPRESSION_CAST, 5s);
|
||||
me->Respawn();
|
||||
}
|
||||
|
||||
|
||||
@@ -104,11 +104,11 @@ public:
|
||||
{
|
||||
BossAI::EnterCombat(victim);
|
||||
|
||||
events.ScheduleEvent(EVENT_SHIMMER, 1000);
|
||||
events.ScheduleEvent(EVENT_BREATH, 30000);
|
||||
events.ScheduleEvent(EVENT_BREATH, 60000);
|
||||
events.ScheduleEvent(EVENT_AFFLICTION, 10000);
|
||||
events.ScheduleEvent(EVENT_FRENZY, 15000);
|
||||
events.ScheduleEvent(EVENT_SHIMMER, 1s);
|
||||
events.ScheduleEvent(EVENT_BREATH, 30s);
|
||||
events.ScheduleEvent(EVENT_BREATH, 60s);
|
||||
events.ScheduleEvent(EVENT_AFFLICTION, 10s);
|
||||
events.ScheduleEvent(EVENT_FRENZY, 15s);
|
||||
}
|
||||
|
||||
bool CanAIAttack(Unit const* victim) const override
|
||||
@@ -153,13 +153,13 @@ public:
|
||||
// Cast new random vulnerabilty on self
|
||||
DoCast(me, SPELL_ELEMENTAL_SHIELD);
|
||||
Talk(EMOTE_SHIMMER);
|
||||
events.ScheduleEvent(EVENT_SHIMMER, urand(17000, 25000));
|
||||
events.ScheduleEvent(EVENT_SHIMMER, 17s, 25s);
|
||||
break;
|
||||
}
|
||||
case EVENT_BREATH:
|
||||
DoCastVictim(_breathSpells.front());
|
||||
_breathSpells.reverse();
|
||||
events.ScheduleEvent(EVENT_BREATH, 60000);
|
||||
events.ScheduleEvent(EVENT_BREATH, 60s);
|
||||
break;
|
||||
case EVENT_AFFLICTION:
|
||||
{
|
||||
@@ -193,11 +193,11 @@ public:
|
||||
}
|
||||
}
|
||||
}
|
||||
events.ScheduleEvent(EVENT_AFFLICTION, 10000);
|
||||
events.ScheduleEvent(EVENT_AFFLICTION, 10s);
|
||||
break;
|
||||
case EVENT_FRENZY:
|
||||
DoCast(me, SPELL_FRENZY);
|
||||
events.ScheduleEvent(EVENT_FRENZY, 10000, 15000);
|
||||
events.ScheduleEvent(EVENT_FRENZY, 10s, 15s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -61,9 +61,9 @@ public:
|
||||
{
|
||||
BossAI::EnterCombat(who);
|
||||
|
||||
events.ScheduleEvent(EVENT_SHADOWFLAME, 18000);
|
||||
events.ScheduleEvent(EVENT_WINGBUFFET, 30000);
|
||||
events.ScheduleEvent(EVENT_SHADOWOFEBONROC, 8000, 10000);
|
||||
events.ScheduleEvent(EVENT_SHADOWFLAME, 18s);
|
||||
events.ScheduleEvent(EVENT_WINGBUFFET, 30s);
|
||||
events.ScheduleEvent(EVENT_SHADOWOFEBONROC, 8s, 10s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -82,15 +82,15 @@ public:
|
||||
{
|
||||
case EVENT_SHADOWFLAME:
|
||||
DoCastVictim(SPELL_SHADOWFLAME);
|
||||
events.ScheduleEvent(EVENT_SHADOWFLAME, urand(15000, 25000));
|
||||
events.ScheduleEvent(EVENT_SHADOWFLAME, 15s, 25s);
|
||||
break;
|
||||
case EVENT_WINGBUFFET:
|
||||
DoCastVictim(SPELL_WINGBUFFET);
|
||||
events.ScheduleEvent(EVENT_WINGBUFFET, 30000);
|
||||
events.ScheduleEvent(EVENT_WINGBUFFET, 30s);
|
||||
break;
|
||||
case EVENT_SHADOWOFEBONROC:
|
||||
DoCastVictim(SPELL_SHADOWOFEBONROC);
|
||||
events.ScheduleEvent(EVENT_SHADOWOFEBONROC, 8000, 10000);
|
||||
events.ScheduleEvent(EVENT_SHADOWOFEBONROC, 8s, 10s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -46,9 +46,9 @@ public:
|
||||
{
|
||||
BossAI::EnterCombat(who);
|
||||
|
||||
events.ScheduleEvent(EVENT_SHADOWFLAME, 18000);
|
||||
events.ScheduleEvent(EVENT_WINGBUFFET, 30000);
|
||||
events.ScheduleEvent(EVENT_FLAMEBUFFET, 5000);
|
||||
events.ScheduleEvent(EVENT_SHADOWFLAME, 18s);
|
||||
events.ScheduleEvent(EVENT_WINGBUFFET, 30s);
|
||||
events.ScheduleEvent(EVENT_FLAMEBUFFET, 5s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -67,17 +67,17 @@ public:
|
||||
{
|
||||
case EVENT_SHADOWFLAME:
|
||||
DoCastVictim(SPELL_SHADOWFLAME);
|
||||
events.ScheduleEvent(EVENT_SHADOWFLAME, urand(15000, 25000));
|
||||
events.ScheduleEvent(EVENT_SHADOWFLAME, 15s, 25s);
|
||||
break;
|
||||
case EVENT_WINGBUFFET:
|
||||
DoCastVictim(SPELL_WINGBUFFET);
|
||||
if (DoGetThreat(me->GetVictim()))
|
||||
DoModifyThreatByPercent(me->GetVictim(), -75);
|
||||
events.ScheduleEvent(EVENT_WINGBUFFET, 30000);
|
||||
events.ScheduleEvent(EVENT_WINGBUFFET, 30s);
|
||||
break;
|
||||
case EVENT_FLAMEBUFFET:
|
||||
DoCastVictim(SPELL_FLAMEBUFFET);
|
||||
events.ScheduleEvent(EVENT_FLAMEBUFFET, 5000);
|
||||
events.ScheduleEvent(EVENT_FLAMEBUFFET, 5s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -51,9 +51,9 @@ public:
|
||||
{
|
||||
BossAI::EnterCombat(victim);
|
||||
|
||||
events.ScheduleEvent(EVENT_SHADOWFLAME, 18000);
|
||||
events.ScheduleEvent(EVENT_WINGBUFFET, 30000);
|
||||
events.ScheduleEvent(EVENT_FRENZY, 10000);
|
||||
events.ScheduleEvent(EVENT_SHADOWFLAME, 18s);
|
||||
events.ScheduleEvent(EVENT_WINGBUFFET, 30s);
|
||||
events.ScheduleEvent(EVENT_FRENZY, 10s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -72,18 +72,18 @@ public:
|
||||
{
|
||||
case EVENT_SHADOWFLAME:
|
||||
DoCastVictim(SPELL_SHADOWFLAME);
|
||||
events.ScheduleEvent(EVENT_SHADOWFLAME, urand(15000, 25000));
|
||||
events.ScheduleEvent(EVENT_SHADOWFLAME, 15s, 25s);
|
||||
break;
|
||||
case EVENT_WINGBUFFET:
|
||||
DoCastVictim(SPELL_WINGBUFFET);
|
||||
if (DoGetThreat(me->GetVictim()))
|
||||
DoModifyThreatByPercent(me->GetVictim(), -75);
|
||||
events.ScheduleEvent(EVENT_WINGBUFFET, 30000);
|
||||
events.ScheduleEvent(EVENT_WINGBUFFET, 30s);
|
||||
break;
|
||||
case EVENT_FRENZY:
|
||||
Talk(EMOTE_FRENZY);
|
||||
DoCast(me, SPELL_FRENZY);
|
||||
events.ScheduleEvent(EVENT_FRENZY, 8000, 10000);
|
||||
events.ScheduleEvent(EVENT_FRENZY, 80s, 10s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -360,13 +360,13 @@ public:
|
||||
SetCombatMovement(false);
|
||||
me->SetImmuneToPC(false);
|
||||
AttackStart(SelectTarget(SelectTargetMethod::Random, 0, 200.f, true));
|
||||
events.ScheduleEvent(EVENT_SHADOWBLINK, 500);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT, 3000);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, urand(13000, 15000));
|
||||
events.ScheduleEvent(EVENT_FEAR, urand(10000, 20000));
|
||||
events.ScheduleEvent(EVENT_SILENCE, urand(20000, 25000));
|
||||
events.ScheduleEvent(EVENT_MIND_CONTROL, urand(30000, 35000));
|
||||
events.ScheduleEvent(EVENT_SPAWN_ADDS, 10000);
|
||||
events.ScheduleEvent(EVENT_SHADOWBLINK, 500ms);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT, 3s);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, 13s, 15s);
|
||||
events.ScheduleEvent(EVENT_FEAR, 10s, 20s);
|
||||
events.ScheduleEvent(EVENT_SILENCE, 20s, 25s);
|
||||
events.ScheduleEvent(EVENT_MIND_CONTROL, 30s, 35s);
|
||||
events.ScheduleEvent(EVENT_SPAWN_ADDS, 10s);
|
||||
}
|
||||
|
||||
void SetData(uint32 type, uint32 data) override
|
||||
@@ -374,11 +374,11 @@ public:
|
||||
if (type == 1 && data == 1)
|
||||
{
|
||||
me->StopMoving();
|
||||
events.ScheduleEvent(EVENT_PATH_2, 9000);
|
||||
events.ScheduleEvent(EVENT_PATH_2, 9s);
|
||||
}
|
||||
|
||||
if (type == 1 && data == 2)
|
||||
events.ScheduleEvent(EVENT_SUCCESS_1, 5000);
|
||||
events.ScheduleEvent(EVENT_SUCCESS_1, 5s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -393,7 +393,7 @@ public:
|
||||
{
|
||||
case EVENT_PATH_2:
|
||||
me->GetMotionMaster()->MovePath(NEFARIUS_PATH_2, false);
|
||||
events.ScheduleEvent(EVENT_CHAOS_1, 7000);
|
||||
events.ScheduleEvent(EVENT_CHAOS_1, 7s);
|
||||
break;
|
||||
case EVENT_CHAOS_1:
|
||||
if (Creature* gyth = me->FindNearestCreature(NPC_GYTH, 75.0f, true))
|
||||
@@ -401,7 +401,7 @@ public:
|
||||
me->SetFacingToObject(gyth);
|
||||
Talk(SAY_CHAOS_SPELL);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHAOS_2, 2000);
|
||||
events.ScheduleEvent(EVENT_CHAOS_2, 2s);
|
||||
break;
|
||||
case EVENT_CHAOS_2:
|
||||
DoCast(SPELL_CHROMATIC_CHAOS);
|
||||
@@ -417,7 +417,7 @@ public:
|
||||
if (GameObject* portcullis2 = me->FindNearestGameObject(GO_PORTCULLIS_TOBOSSROOMS, 80.0f))
|
||||
portcullis2->SetGoState(GO_STATE_ACTIVE);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_SUCCESS_2, 4000);
|
||||
events.ScheduleEvent(EVENT_SUCCESS_2, 4s);
|
||||
break;
|
||||
case EVENT_SUCCESS_2:
|
||||
DoCast(me, SPELL_VAELASTRASZZ_SPAWN);
|
||||
@@ -450,27 +450,27 @@ public:
|
||||
{
|
||||
case EVENT_SHADOW_BOLT:
|
||||
DoCastRandomTarget(SPELL_SHADOWBOLT, 0, 150.f);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT, urand(2000, 4000));
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT, 2s, 4s);
|
||||
break;
|
||||
case EVENT_SHADOW_BOLT_VOLLEY:
|
||||
DoCastAOE(SPELL_SHADOWBOLT_VOLLEY);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, 19000, 25000);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, 19s, 25s);
|
||||
break;
|
||||
case EVENT_FEAR:
|
||||
DoCastRandomTarget(SPELL_FEAR, 0, 40.0f);
|
||||
events.ScheduleEvent(EVENT_FEAR, urand(10000, 20000));
|
||||
events.ScheduleEvent(EVENT_FEAR, 10s, 20s);
|
||||
break;
|
||||
case EVENT_SILENCE:
|
||||
DoCastRandomTarget(SPELL_SILENCE, 0, 150.f);
|
||||
events.ScheduleEvent(EVENT_SILENCE, urand(14000, 23000));
|
||||
events.ScheduleEvent(EVENT_SILENCE, 14s,23s);
|
||||
break;
|
||||
case EVENT_MIND_CONTROL:
|
||||
DoCastRandomTarget(SPELL_SHADOW_COMMAND, 0, 40.0f);
|
||||
events.ScheduleEvent(EVENT_MIND_CONTROL, urand(24000, 30000));
|
||||
events.ScheduleEvent(EVENT_MIND_CONTROL, 24s, 30s);
|
||||
break;
|
||||
case EVENT_SHADOWBLINK:
|
||||
DoCastSelf(SPELL_SHADOWBLINK);
|
||||
events.ScheduleEvent(EVENT_SHADOWBLINK, urand(30000, 40000));
|
||||
events.ScheduleEvent(EVENT_SHADOWBLINK, 30s, 40s);
|
||||
break;
|
||||
case EVENT_SPAWN_ADDS:
|
||||
// Spawn the spawners.
|
||||
@@ -496,7 +496,7 @@ public:
|
||||
|
||||
CloseGossipMenuFor(player);
|
||||
Talk(SAY_GAMESBEGIN_1);
|
||||
events.ScheduleEvent(EVENT_START_EVENT, 4000);
|
||||
events.ScheduleEvent(EVENT_START_EVENT, 4s);
|
||||
me->SetFaction(FACTION_DRAGONFLIGHT_BLACK);
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
@@ -605,12 +605,12 @@ struct boss_nefarian : public BossAI
|
||||
AttackStart(me->GetVictim());
|
||||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_SHADOWFLAME, 12000);
|
||||
events.ScheduleEvent(EVENT_FEAR, urand(25000, 35000));
|
||||
events.ScheduleEvent(EVENT_VEILOFSHADOW, urand(25000, 35000));
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 7000);
|
||||
events.ScheduleEvent(EVENT_TAILLASH, 10000);
|
||||
events.ScheduleEvent(EVENT_CLASSCALL, urand(30000, 35000));
|
||||
events.ScheduleEvent(EVENT_SHADOWFLAME, 12s);
|
||||
events.ScheduleEvent(EVENT_FEAR, 25s, 35s);
|
||||
events.ScheduleEvent(EVENT_VEILOFSHADOW, 25s, 35s);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 7s);
|
||||
events.ScheduleEvent(EVENT_TAILLASH, 10s);
|
||||
events.ScheduleEvent(EVENT_CLASSCALL, 30s, 35s);
|
||||
_introDone = true;
|
||||
}
|
||||
|
||||
@@ -657,24 +657,24 @@ struct boss_nefarian : public BossAI
|
||||
{
|
||||
case EVENT_SHADOWFLAME:
|
||||
DoCastVictim(SPELL_SHADOWFLAME);
|
||||
events.ScheduleEvent(EVENT_SHADOWFLAME, 12000);
|
||||
events.ScheduleEvent(EVENT_SHADOWFLAME, 12s);
|
||||
break;
|
||||
case EVENT_FEAR:
|
||||
DoCastVictim(SPELL_BELLOWINGROAR);
|
||||
events.ScheduleEvent(EVENT_FEAR, urand(25000, 35000));
|
||||
events.ScheduleEvent(EVENT_FEAR, 25s, 35s);
|
||||
break;
|
||||
case EVENT_VEILOFSHADOW:
|
||||
DoCastVictim(SPELL_VEILOFSHADOW);
|
||||
events.ScheduleEvent(EVENT_VEILOFSHADOW, urand(25000, 35000));
|
||||
events.ScheduleEvent(EVENT_VEILOFSHADOW, 25s, 35s);
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
DoCastVictim(SPELL_CLEAVE);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 7000);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 7s);
|
||||
break;
|
||||
case EVENT_TAILLASH:
|
||||
// Cast NYI since we need a better check for behind target
|
||||
DoCastAOE(SPELL_TAILLASH);
|
||||
events.ScheduleEvent(EVENT_TAILLASH, 10000);
|
||||
events.ScheduleEvent(EVENT_TAILLASH, 10s);
|
||||
break;
|
||||
case EVENT_CLASSCALL:
|
||||
if (classesPresent.empty())
|
||||
@@ -746,7 +746,7 @@ struct boss_nefarian : public BossAI
|
||||
break;
|
||||
}
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CLASSCALL, urand(30000, 35000));
|
||||
events.ScheduleEvent(EVENT_CLASSCALL, 30s, 35s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -133,10 +133,10 @@ public:
|
||||
{
|
||||
_EnterCombat();
|
||||
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 15000);
|
||||
events.ScheduleEvent(EVENT_STOMP, 35000);
|
||||
events.ScheduleEvent(EVENT_FIREBALL, 7000);
|
||||
events.ScheduleEvent(EVENT_CONFLAGRATION, 12000);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 15s);
|
||||
events.ScheduleEvent(EVENT_STOMP, 35s);
|
||||
events.ScheduleEvent(EVENT_FIREBALL, 7s);
|
||||
events.ScheduleEvent(EVENT_CONFLAGRATION, 12s);
|
||||
|
||||
instance->SetData(DATA_EGG_EVENT, IN_PROGRESS);
|
||||
}
|
||||
@@ -250,19 +250,19 @@ public:
|
||||
{
|
||||
case EVENT_CLEAVE:
|
||||
DoCastVictim(SPELL_CLEAVE);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, urand(7000, 10000));
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 7s, 10s);
|
||||
break;
|
||||
case EVENT_STOMP:
|
||||
DoCastVictim(SPELL_WARSTOMP);
|
||||
events.ScheduleEvent(EVENT_STOMP, urand(15000, 25000));
|
||||
events.ScheduleEvent(EVENT_STOMP, 15s, 25s);
|
||||
break;
|
||||
case EVENT_FIREBALL:
|
||||
DoCastVictim(SPELL_FIREBALLVOLLEY);
|
||||
events.ScheduleEvent(EVENT_FIREBALL, urand(12000, 15000));
|
||||
events.ScheduleEvent(EVENT_FIREBALL, 12s, 15s);
|
||||
break;
|
||||
case EVENT_CONFLAGRATION:
|
||||
DoCastVictim(SPELL_CONFLAGRATION);
|
||||
events.ScheduleEvent(EVENT_CONFLAGRATION, 30000);
|
||||
events.ScheduleEvent(EVENT_CONFLAGRATION, 30s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,18 +122,18 @@ public:
|
||||
// now drop damage requirement to be able to take loot
|
||||
me->ResetPlayerDamageReq();
|
||||
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 10000);
|
||||
events.ScheduleEvent(EVENT_FLAME_BREATH, 15000);
|
||||
events.ScheduleEvent(EVENT_FIRE_NOVA, 5000);
|
||||
events.ScheduleEvent(EVENT_TAIL_SWEEP, 11000);
|
||||
events.ScheduleEvent(EVENT_BURNING_ADRENALINE, 15000);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 10s);
|
||||
events.ScheduleEvent(EVENT_FLAME_BREATH, 15s);
|
||||
events.ScheduleEvent(EVENT_FIRE_NOVA, 5s);
|
||||
events.ScheduleEvent(EVENT_TAIL_SWEEP, 11s);
|
||||
events.ScheduleEvent(EVENT_BURNING_ADRENALINE, 15s);
|
||||
}
|
||||
|
||||
void BeginSpeech(Unit* target)
|
||||
{
|
||||
PlayerGUID = target->GetGUID();
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
_eventsIntro.ScheduleEvent(EVENT_SPEECH_1, 1000);
|
||||
_eventsIntro.ScheduleEvent(EVENT_SPEECH_1, 1s);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* victim) override
|
||||
@@ -159,7 +159,7 @@ public:
|
||||
case EVENT_SPEECH_1:
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
me->SummonCreature(NPC_VICTOR_NEFARIUS, aNefariusSpawnLoc[0], aNefariusSpawnLoc[1], aNefariusSpawnLoc[2], aNefariusSpawnLoc[3], TEMPSUMMON_TIMED_DESPAWN, 26000);
|
||||
_eventsIntro.ScheduleEvent(EVENT_SPEECH_2, 1000);
|
||||
_eventsIntro.ScheduleEvent(EVENT_SPEECH_2, 1s);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case EVENT_SPEECH_2:
|
||||
@@ -169,27 +169,27 @@ public:
|
||||
nefarius->Yell(SAY_NEFARIAN_VAEL_INTRO);
|
||||
nefarius->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
}
|
||||
_eventsIntro.ScheduleEvent(EVENT_SPEECH_3, 18000);
|
||||
_eventsIntro.ScheduleEvent(EVENT_SPEECH_3, 18s);
|
||||
break;
|
||||
case EVENT_SPEECH_3:
|
||||
if (Creature* nefarius = me->GetMap()->GetCreature(m_nefariusGuid))
|
||||
nefarius->CastSpell(me, SPELL_RED_LIGHTNING, TRIGGERED_NONE);
|
||||
_eventsIntro.ScheduleEvent(EVENT_SPEECH_4, 2000);
|
||||
_eventsIntro.ScheduleEvent(EVENT_SPEECH_4, 2s);
|
||||
break;
|
||||
case EVENT_SPEECH_4:
|
||||
Talk(SAY_LINE1);
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
|
||||
_eventsIntro.ScheduleEvent(EVENT_SPEECH_5, 12000);
|
||||
_eventsIntro.ScheduleEvent(EVENT_SPEECH_5, 12s);
|
||||
break;
|
||||
case EVENT_SPEECH_5:
|
||||
Talk(SAY_LINE2);
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
|
||||
_eventsIntro.ScheduleEvent(EVENT_SPEECH_6, 12000);
|
||||
_eventsIntro.ScheduleEvent(EVENT_SPEECH_6, 12s);
|
||||
break;
|
||||
case EVENT_SPEECH_6:
|
||||
Talk(SAY_LINE3);
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
|
||||
_eventsIntro.ScheduleEvent(EVENT_SPEECH_7, 17000);
|
||||
_eventsIntro.ScheduleEvent(EVENT_SPEECH_7, 17s);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case EVENT_SPEECH_7:
|
||||
@@ -211,20 +211,20 @@ public:
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_CLEAVE:
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 15000);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 15s);
|
||||
DoCastVictim(SPELL_CLEAVE);
|
||||
break;
|
||||
case EVENT_FLAME_BREATH:
|
||||
DoCastVictim(SPELL_FLAME_BREATH);
|
||||
events.ScheduleEvent(EVENT_FLAME_BREATH, 8000, 14000);
|
||||
events.ScheduleEvent(EVENT_FLAME_BREATH, 8s, 14s);
|
||||
break;
|
||||
case EVENT_FIRE_NOVA:
|
||||
DoCastVictim(SPELL_FIRE_NOVA);
|
||||
events.ScheduleEvent(EVENT_FIRE_NOVA, urand(3000, 5000));
|
||||
events.ScheduleEvent(EVENT_FIRE_NOVA, 3s, 5s);
|
||||
break;
|
||||
case EVENT_TAIL_SWEEP:
|
||||
DoCastAOE(SPELL_TAIL_SWEEP);
|
||||
events.ScheduleEvent(EVENT_TAIL_SWEEP, 15000);
|
||||
events.ScheduleEvent(EVENT_TAIL_SWEEP, 15s);
|
||||
break;
|
||||
case EVENT_BURNING_ADRENALINE:
|
||||
{
|
||||
@@ -244,7 +244,7 @@ public:
|
||||
me->CastSpell(me->GetVictim(), SPELL_BURNING_ADRENALINE, true);
|
||||
_burningAdrenalineCast = 0;
|
||||
}
|
||||
events.ScheduleEvent(EVENT_BURNING_ADRENALINE, 15000);
|
||||
events.ScheduleEvent(EVENT_BURNING_ADRENALINE, 15s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -241,7 +241,7 @@ public:
|
||||
switch (state)
|
||||
{
|
||||
case FAIL:
|
||||
_events.ScheduleEvent(EVENT_RESPAWN_NEFARIUS, 15 * 60 * IN_MILLISECONDS); //15min
|
||||
_events.ScheduleEvent(EVENT_RESPAWN_NEFARIUS, 15min);
|
||||
[[fallthrough]];
|
||||
case NOT_STARTED:
|
||||
if (Creature* nefarian = instance->GetCreature(nefarianGUID))
|
||||
@@ -270,7 +270,7 @@ public:
|
||||
_events.CancelEvent(EVENT_RAZOR_SPAWN);
|
||||
break;
|
||||
case IN_PROGRESS:
|
||||
_events.ScheduleEvent(EVENT_RAZOR_SPAWN, 45 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_RAZOR_SPAWN, 45s);
|
||||
EggEvent = data;
|
||||
EggCount = 0;
|
||||
addsCount.fill(0);
|
||||
@@ -305,7 +305,7 @@ public:
|
||||
razor->RemoveAurasDueToSpell(19832); // MindControl
|
||||
DoRemoveAurasDueToSpellOnPlayers(19832);
|
||||
}
|
||||
_events.ScheduleEvent(EVENT_RAZOR_PHASE_TWO, 1000);
|
||||
_events.ScheduleEvent(EVENT_RAZOR_PHASE_TWO, 1s);
|
||||
_events.CancelEvent(EVENT_RAZOR_SPAWN);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -63,9 +63,9 @@ public:
|
||||
void EnterCombat(Unit* /*attacker*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_INFERNO, urand(13000, 15000));
|
||||
events.ScheduleEvent(EVENT_IGNITE_MANA, urand(7000, 19000));
|
||||
events.ScheduleEvent(EVENT_LIVING_BOMB, urand(11000, 16000));
|
||||
events.ScheduleEvent(EVENT_INFERNO, 13s, 15s);
|
||||
events.ScheduleEvent(EVENT_IGNITE_MANA, 7s, 19s);
|
||||
events.ScheduleEvent(EVENT_LIVING_BOMB, 11s, 16s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*dmgType*/, SpellSchoolMask /*school*/) override
|
||||
|
||||
@@ -73,8 +73,8 @@ public:
|
||||
{
|
||||
_EnterCombat();
|
||||
DoCastSelf(SPELL_SEPARATION_ANXIETY, true);
|
||||
events.ScheduleEvent(EVENT_ANTIMAGIC_PULSE, 15000);
|
||||
events.ScheduleEvent(EVENT_MAGMA_SHACKLES, 10000);
|
||||
events.ScheduleEvent(EVENT_ANTIMAGIC_PULSE, 15s);
|
||||
events.ScheduleEvent(EVENT_MAGMA_SHACKLES, 10s);
|
||||
massEruptionTimer = 600000; // 10 mins
|
||||
}
|
||||
|
||||
|
||||
@@ -46,9 +46,9 @@ public:
|
||||
void EnterCombat(Unit* /*attacker*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_GEHENNAS_CURSE, urand(6000, 9000));
|
||||
events.ScheduleEvent(EVENT_RAIN_OF_FIRE, 10000);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT, urand(3000, 5000));
|
||||
events.ScheduleEvent(EVENT_GEHENNAS_CURSE, 6s, 9s);
|
||||
events.ScheduleEvent(EVENT_RAIN_OF_FIRE, 10s);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT, 3s, 5s);
|
||||
}
|
||||
|
||||
void ExecuteEvent(uint32 eventId) override
|
||||
|
||||
@@ -45,9 +45,9 @@ public:
|
||||
void EnterCombat(Unit* /*victim*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_IMPENDING_DOOM, urand(6000, 11000));
|
||||
events.ScheduleEvent(EVENT_LUCIFRON_CURSE, urand(11000, 14000));
|
||||
events.ScheduleEvent(EVENT_SHADOW_SHOCK, 5000);
|
||||
events.ScheduleEvent(EVENT_IMPENDING_DOOM, 6s, 11s);
|
||||
events.ScheduleEvent(EVENT_LUCIFRON_CURSE, 11s, 14s);
|
||||
events.ScheduleEvent(EVENT_SHADOW_SHOCK, 5s);
|
||||
}
|
||||
|
||||
void ExecuteEvent(uint32 eventId) override
|
||||
|
||||
@@ -58,10 +58,10 @@ public:
|
||||
void EnterCombat(Unit* /*victim*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_FRENZY, 8500);
|
||||
events.ScheduleEvent(EVENT_PANIC, 9500);
|
||||
events.ScheduleEvent(EVENT_LAVA_BOMB, 12000);
|
||||
events.ScheduleEvent(EVENT_LAVA_BOMB_RANGED, 15000);
|
||||
events.ScheduleEvent(EVENT_FRENZY, 8500ms);
|
||||
events.ScheduleEvent(EVENT_PANIC, 9500ms);
|
||||
events.ScheduleEvent(EVENT_LAVA_BOMB, 12s);
|
||||
events.ScheduleEvent(EVENT_LAVA_BOMB_RANGED, 15s);
|
||||
}
|
||||
|
||||
void ExecuteEvent(uint32 eventId) override
|
||||
|
||||
@@ -249,9 +249,9 @@ public:
|
||||
Talk(SAY_AGGRO);
|
||||
DoCastSelf(SPELL_AEGIS_OF_RAGNAROS, true);
|
||||
|
||||
events.ScheduleEvent(EVENT_SHIELD_REFLECTION, 30000, PHASE_COMBAT, PHASE_COMBAT);
|
||||
events.ScheduleEvent(EVENT_TELEPORT_RANDOM, 25000, PHASE_COMBAT, PHASE_COMBAT);
|
||||
events.ScheduleEvent(EVENT_TELEPORT_TARGET, 15000, PHASE_COMBAT, PHASE_COMBAT);
|
||||
events.ScheduleEvent(EVENT_SHIELD_REFLECTION, 30s, PHASE_COMBAT, PHASE_COMBAT);
|
||||
events.ScheduleEvent(EVENT_TELEPORT_RANDOM, 25s, PHASE_COMBAT, PHASE_COMBAT);
|
||||
events.ScheduleEvent(EVENT_TELEPORT_TARGET, 15s, PHASE_COMBAT, PHASE_COMBAT);
|
||||
|
||||
aliveMinionsGUIDS.clear();
|
||||
aliveMinionsGUIDS = static_minionsGUIDS;
|
||||
@@ -302,7 +302,7 @@ public:
|
||||
{
|
||||
events.Reset();
|
||||
events.SetPhase(PHASE_DEFEAT_OUTRO);
|
||||
events.ScheduleEvent(EVENT_DEFEAT_OUTRO_1, 7500, PHASE_DEFEAT_OUTRO, PHASE_DEFEAT_OUTRO);
|
||||
events.ScheduleEvent(EVENT_DEFEAT_OUTRO_1, 7500ms, PHASE_DEFEAT_OUTRO, PHASE_DEFEAT_OUTRO);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -389,13 +389,13 @@ public:
|
||||
case EVENT_DEFEAT_OUTRO_1:
|
||||
{
|
||||
Talk(SAY_DEFEAT_2);
|
||||
events.ScheduleEvent(EVENT_DEFEAT_OUTRO_2, 8000, PHASE_DEFEAT_OUTRO, PHASE_DEFEAT_OUTRO);
|
||||
events.ScheduleEvent(EVENT_DEFEAT_OUTRO_2, 8s, PHASE_DEFEAT_OUTRO, PHASE_DEFEAT_OUTRO);
|
||||
break;
|
||||
}
|
||||
case EVENT_DEFEAT_OUTRO_2:
|
||||
{
|
||||
Talk(SAY_DEFEAT_3);
|
||||
events.ScheduleEvent(EVENT_DEFEAT_OUTRO_3, 21500, PHASE_DEFEAT_OUTRO, PHASE_DEFEAT_OUTRO);
|
||||
events.ScheduleEvent(EVENT_DEFEAT_OUTRO_3, 21500ms, PHASE_DEFEAT_OUTRO, PHASE_DEFEAT_OUTRO);
|
||||
break;
|
||||
}
|
||||
case EVENT_DEFEAT_OUTRO_3:
|
||||
@@ -440,8 +440,8 @@ public:
|
||||
}
|
||||
|
||||
Talk(SAY_SUMMON_MAJ);
|
||||
events.ScheduleEvent(EVENT_RAGNAROS_SUMMON_3, 16700, PHASE_RAGNAROS_SUMMONING, PHASE_RAGNAROS_SUMMONING);
|
||||
events.ScheduleEvent(EVENT_RAGNAROS_EMERGE, 15000, PHASE_RAGNAROS_SUMMONING, PHASE_RAGNAROS_SUMMONING);
|
||||
events.ScheduleEvent(EVENT_RAGNAROS_SUMMON_3, 16700ms, PHASE_RAGNAROS_SUMMONING, PHASE_RAGNAROS_SUMMONING);
|
||||
events.ScheduleEvent(EVENT_RAGNAROS_EMERGE, 15s, PHASE_RAGNAROS_SUMMONING, PHASE_RAGNAROS_SUMMONING);
|
||||
break;
|
||||
}
|
||||
case EVENT_RAGNAROS_SUMMON_3:
|
||||
@@ -450,13 +450,13 @@ public:
|
||||
{
|
||||
ragnaros->AI()->Talk(SAY_ARRIVAL1_RAG);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_RAGNAROS_SUMMON_4, 11700, PHASE_RAGNAROS_SUMMONING, PHASE_RAGNAROS_SUMMONING);
|
||||
events.ScheduleEvent(EVENT_RAGNAROS_SUMMON_4, 11700ms, PHASE_RAGNAROS_SUMMONING, PHASE_RAGNAROS_SUMMONING);
|
||||
break;
|
||||
}
|
||||
case EVENT_RAGNAROS_SUMMON_4:
|
||||
{
|
||||
Talk(SAY_ARRIVAL2_MAJ);
|
||||
events.ScheduleEvent(EVENT_RAGNAROS_SUMMON_5, 8700, PHASE_RAGNAROS_SUMMONING, PHASE_RAGNAROS_SUMMONING);
|
||||
events.ScheduleEvent(EVENT_RAGNAROS_SUMMON_5, 8700ms, PHASE_RAGNAROS_SUMMONING, PHASE_RAGNAROS_SUMMONING);
|
||||
break;
|
||||
}
|
||||
case EVENT_RAGNAROS_SUMMON_5:
|
||||
@@ -466,7 +466,7 @@ public:
|
||||
ragnaros->AI()->Talk(SAY_ARRIVAL3_RAG);
|
||||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_RAGNAROS_SUMMON_6, 16500, PHASE_RAGNAROS_SUMMONING, PHASE_RAGNAROS_SUMMONING);
|
||||
events.ScheduleEvent(EVENT_RAGNAROS_SUMMON_6, 16500ms, PHASE_RAGNAROS_SUMMONING, PHASE_RAGNAROS_SUMMONING);
|
||||
break;
|
||||
}
|
||||
case EVENT_RAGNAROS_SUMMON_6:
|
||||
@@ -499,7 +499,7 @@ public:
|
||||
if (type == POINT_MOTION_TYPE && pointId == POINT_RAGNAROS_SUMMON)
|
||||
{
|
||||
DoCastAOE(SPELL_SUMMON_RAGNAROS);
|
||||
events.ScheduleEvent(EVENT_RAGNAROS_SUMMON_2, 11500, PHASE_RAGNAROS_SUMMONING, PHASE_RAGNAROS_SUMMONING);
|
||||
events.ScheduleEvent(EVENT_RAGNAROS_SUMMON_2, 11500ms, PHASE_RAGNAROS_SUMMONING, PHASE_RAGNAROS_SUMMONING);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -519,7 +519,7 @@ public:
|
||||
if (action == ACTION_START_RAGNAROS_INTRO && !events.IsInPhase(PHASE_RAGNAROS_SUMMONING))
|
||||
{
|
||||
events.SetPhase(PHASE_RAGNAROS_SUMMONING);
|
||||
events.ScheduleEvent(EVENT_RAGNAROS_SUMMON_1, 5000, PHASE_RAGNAROS_SUMMONING, PHASE_RAGNAROS_SUMMONING);
|
||||
events.ScheduleEvent(EVENT_RAGNAROS_SUMMON_1, 5s, PHASE_RAGNAROS_SUMMONING, PHASE_RAGNAROS_SUMMONING);
|
||||
}
|
||||
}
|
||||
private:
|
||||
|
||||
@@ -165,7 +165,7 @@ public:
|
||||
if (action == ACTION_FINISH_RAGNAROS_INTRO)
|
||||
{
|
||||
extraEvents.SetPhase(PHASE_INTRO);
|
||||
extraEvents.ScheduleEvent(EVENT_INTRO_SAY, 5000, 0, PHASE_INTRO);
|
||||
extraEvents.ScheduleEvent(EVENT_INTRO_SAY, 5s, 0, PHASE_INTRO);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -242,7 +242,7 @@ public:
|
||||
{
|
||||
// Boss try to evade, but still got some targets on threat list - it means that none of these targets are in melee range - cast magma blast
|
||||
_processingMagmaBurst = true;
|
||||
events.ScheduleEvent(EVENT_MAGMA_BLAST, 4000, PHASE_EMERGED, PHASE_EMERGED);
|
||||
events.ScheduleEvent(EVENT_MAGMA_BLAST, 4s, PHASE_EMERGED, PHASE_EMERGED);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -270,7 +270,7 @@ public:
|
||||
case EVENT_INTRO_SAY:
|
||||
{
|
||||
Talk(SAY_ARRIVAL5_RAG);
|
||||
extraEvents.ScheduleEvent(EVENT_INTRO_MAKE_ATTACKABLE, 2500, 0, PHASE_INTRO);
|
||||
extraEvents.ScheduleEvent(EVENT_INTRO_MAKE_ATTACKABLE, 2500ms, 0, PHASE_INTRO);
|
||||
break;
|
||||
}
|
||||
case EVENT_INTRO_MAKE_ATTACKABLE:
|
||||
@@ -312,7 +312,7 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
events.RescheduleEvent(EVENT_LAVA_BURST, 10000, PHASE_EMERGED, PHASE_EMERGED);
|
||||
events.RescheduleEvent(EVENT_LAVA_BURST, 10s, PHASE_EMERGED, PHASE_EMERGED);
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -359,7 +359,7 @@ public:
|
||||
{
|
||||
Talk(SAY_KNOCKBACK);
|
||||
_isKnockbackEmoteAllowed = false;
|
||||
extraEvents.RescheduleEvent(EVENT_RESET_KNOCKBACK_EMOTE, 5000);
|
||||
extraEvents.RescheduleEvent(EVENT_RESET_KNOCKBACK_EMOTE, 5s);
|
||||
}
|
||||
events.RepeatEvent(20000);
|
||||
break;
|
||||
@@ -397,7 +397,7 @@ public:
|
||||
{
|
||||
Talk(SAY_KNOCKBACK, me);
|
||||
_isKnockbackEmoteAllowed = false;
|
||||
extraEvents.RescheduleEvent(EVENT_RESET_KNOCKBACK_EMOTE, 5000);
|
||||
extraEvents.RescheduleEvent(EVENT_RESET_KNOCKBACK_EMOTE, 5s);
|
||||
}
|
||||
}
|
||||
events.RepeatEvent(urand(11000, 30000));
|
||||
@@ -426,7 +426,7 @@ public:
|
||||
_hasSubmergedOnce = true;
|
||||
}
|
||||
|
||||
extraEvents.ScheduleEvent(EVENT_EMERGE, 90000, PHASE_SUBMERGED, PHASE_SUBMERGED);
|
||||
extraEvents.ScheduleEvent(EVENT_EMERGE, 90s, PHASE_SUBMERGED, PHASE_SUBMERGED);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -477,12 +477,12 @@ public:
|
||||
|
||||
void ScheduleCombatEvents()
|
||||
{
|
||||
events.RescheduleEvent(EVENT_ERUPTION, 15000, PHASE_EMERGED, PHASE_EMERGED);
|
||||
events.RescheduleEvent(EVENT_WRATH_OF_RAGNAROS, 30000, PHASE_EMERGED, PHASE_EMERGED);
|
||||
events.RescheduleEvent(EVENT_HAND_OF_RAGNAROS, 25000, PHASE_EMERGED, PHASE_EMERGED);
|
||||
events.RescheduleEvent(EVENT_LAVA_BURST, 10000, PHASE_EMERGED, PHASE_EMERGED);
|
||||
events.RescheduleEvent(EVENT_SUBMERGE, 180000, PHASE_EMERGED, PHASE_EMERGED);
|
||||
events.RescheduleEvent(EVENT_MIGHT_OF_RAGNAROS, 11000, PHASE_EMERGED, PHASE_EMERGED);
|
||||
events.RescheduleEvent(EVENT_ERUPTION, 15s, PHASE_EMERGED, PHASE_EMERGED);
|
||||
events.RescheduleEvent(EVENT_WRATH_OF_RAGNAROS, 30s, PHASE_EMERGED, PHASE_EMERGED);
|
||||
events.RescheduleEvent(EVENT_HAND_OF_RAGNAROS, 25s, PHASE_EMERGED, PHASE_EMERGED);
|
||||
events.RescheduleEvent(EVENT_LAVA_BURST, 10s, PHASE_EMERGED, PHASE_EMERGED);
|
||||
events.RescheduleEvent(EVENT_SUBMERGE, 18s, PHASE_EMERGED, PHASE_EMERGED);
|
||||
events.RescheduleEvent(EVENT_MIGHT_OF_RAGNAROS, 11s, PHASE_EMERGED, PHASE_EMERGED);
|
||||
}
|
||||
|
||||
bool IsVictimWithinMeleeRange() const
|
||||
|
||||
@@ -52,11 +52,11 @@ public:
|
||||
void EnterCombat(Unit* /*target*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_ARCANE_EXPLOSION, urand(2000, 4000));
|
||||
events.ScheduleEvent(EVENT_SHAZZRAH_CURSE, urand(7000, 11000));
|
||||
events.ScheduleEvent(EVENT_MAGIC_GROUNDING, urand(14000, 19000));
|
||||
events.ScheduleEvent(EVENT_COUNTERSPELL, urand(9000, 10000));
|
||||
events.ScheduleEvent(EVENT_SHAZZRAH_GATE, 30000);
|
||||
events.ScheduleEvent(EVENT_ARCANE_EXPLOSION, 2s, 4s);
|
||||
events.ScheduleEvent(EVENT_SHAZZRAH_CURSE, 7s,11s);
|
||||
events.ScheduleEvent(EVENT_MAGIC_GROUNDING, 14s, 19s);
|
||||
events.ScheduleEvent(EVENT_COUNTERSPELL, 9s, 10s);
|
||||
events.ScheduleEvent(EVENT_SHAZZRAH_GATE, 30s);
|
||||
}
|
||||
|
||||
void ExecuteEvent(uint32 eventId) override
|
||||
@@ -93,7 +93,7 @@ public:
|
||||
case EVENT_SHAZZRAH_GATE:
|
||||
{
|
||||
DoCastAOE(SPELL_SHAZZRAH_GATE_DUMMY);
|
||||
events.RescheduleEvent(EVENT_ARCANE_EXPLOSION, urand(3000, 6000));
|
||||
events.RescheduleEvent(EVENT_ARCANE_EXPLOSION, 3s, 6s);
|
||||
events.RepeatEvent(45000);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -59,10 +59,10 @@ public:
|
||||
void EnterCombat(Unit* /*victim*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_DEMORALIZING_SHOUT, urand(6000, 20000));
|
||||
events.ScheduleEvent(EVENT_INSPIRE, urand(7000, 10000));
|
||||
events.ScheduleEvent(EVENT_KNOCKDOWN, 6000);
|
||||
events.ScheduleEvent(EVENT_FLAMESPEAR, 2000);
|
||||
events.ScheduleEvent(EVENT_DEMORALIZING_SHOUT, 6s, 20s);
|
||||
events.ScheduleEvent(EVENT_INSPIRE, 7s, 10s);
|
||||
events.ScheduleEvent(EVENT_KNOCKDOWN, 6s);
|
||||
events.ScheduleEvent(EVENT_FLAMESPEAR, 2s);
|
||||
}
|
||||
|
||||
void ExecuteEvent(uint32 eventId) override
|
||||
@@ -130,10 +130,10 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*victim*/) override
|
||||
{
|
||||
events.ScheduleEvent(EVENT_DARK_STRIKE, urand(4000, 7000));
|
||||
events.ScheduleEvent(EVENT_DARK_MENDING, urand(15000, 30000));
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(2000, 4000));
|
||||
events.ScheduleEvent(EVENT_IMMOLATE, urand(3500, 6000));
|
||||
events.ScheduleEvent(EVENT_DARK_STRIKE, 4s, 7s);
|
||||
events.ScheduleEvent(EVENT_DARK_MENDING, 15s, 30s);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 2s, 4s);
|
||||
events.ScheduleEvent(EVENT_IMMOLATE, 3500ms, 6000ms);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
||||
@@ -73,9 +73,9 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH1, 500);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH2, 500);
|
||||
events.ScheduleEvent(EVENT_SMITE_SLAM, 3000);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH1, 500ms);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH2, 500ms);
|
||||
events.ScheduleEvent(EVENT_SMITE_SLAM, 3s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -99,7 +99,7 @@ public:
|
||||
health67 = true;
|
||||
break;
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH1, 500);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH1, 500ms);
|
||||
break;
|
||||
case EVENT_CHECK_HEALTH2:
|
||||
if (me->HealthBelowPct(34) && !health34)
|
||||
@@ -114,16 +114,16 @@ public:
|
||||
health34 = true;
|
||||
break;
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH2, 500);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH2, 500ms);
|
||||
break;
|
||||
case EVENT_SMITE_SLAM:
|
||||
if (me->HealthBelowPct(33))
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_SMITE_SLAM, false);
|
||||
events.ScheduleEvent(EVENT_SMITE_SLAM, 6000);
|
||||
events.ScheduleEvent(EVENT_SMITE_SLAM, 6s);
|
||||
break;
|
||||
}
|
||||
events.ScheduleEvent(EVENT_SMITE_SLAM, 500);
|
||||
events.ScheduleEvent(EVENT_SMITE_SLAM, 500ms);
|
||||
break;
|
||||
case EVENT_SWAP_WEAPON1:
|
||||
me->LoadEquipment(EQUIP_TWO_SWORDS);
|
||||
@@ -160,9 +160,9 @@ public:
|
||||
me->SetTarget();
|
||||
me->SetFacingTo(5.558f);
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
events.ScheduleEvent(point == EQUIP_TWO_SWORDS ? EVENT_SWAP_WEAPON1 : EVENT_SWAP_WEAPON2, 1500);
|
||||
events.ScheduleEvent(EVENT_RESTORE_COMBAT, 3000);
|
||||
events.ScheduleEvent(EVENT_KNEEL, 0);
|
||||
events.ScheduleEvent(point == EQUIP_TWO_SWORDS ? EVENT_SWAP_WEAPON1 : EVENT_SWAP_WEAPON2, 1500ms);
|
||||
events.ScheduleEvent(EVENT_RESTORE_COMBAT, 3s);
|
||||
events.ScheduleEvent(EVENT_KNEEL, 0ms);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -290,12 +290,12 @@ public:
|
||||
timer = 600000; // clear playerGUIDs after 10 minutes if no one initiates a duel
|
||||
me->GetMotionMaster()->MoveFollow(caster, 2.0f, 0.0f);
|
||||
|
||||
events.ScheduleEvent(EVENT_SPEAK, 3000);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 1, 7000);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 2, 8000);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 3, 9000);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 4, 10000);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 5, 11000);
|
||||
events.ScheduleEvent(EVENT_SPEAK, 3s);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 1, 7s);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 2, 8s);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 3, 9s);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 4, 10s);
|
||||
events.ScheduleEvent(EVENT_SPEAK + 5, 11s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -308,8 +308,8 @@ public:
|
||||
else if (damage >= me->GetHealth())
|
||||
{
|
||||
damage = 0;
|
||||
events.ScheduleEvent(EVENT_DUEL_LOST, 2000);
|
||||
events.ScheduleEvent(EVENT_DUEL_LOST + 1, 6000);
|
||||
events.ScheduleEvent(EVENT_DUEL_LOST, 2s);
|
||||
events.ScheduleEvent(EVENT_DUEL_LOST + 1, 6s);
|
||||
_duelGUID.Clear();
|
||||
_duelInProgress = 0;
|
||||
|
||||
@@ -491,8 +491,8 @@ public:
|
||||
ScriptedAI::InitializeAI();
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
|
||||
events.ScheduleEvent(EVENT_GHOUL_EMOTE, 1);
|
||||
events.ScheduleEvent(EVENT_GHOUL_RESTORE_STATE, 3500);
|
||||
events.ScheduleEvent(EVENT_GHOUL_EMOTE, 1ms);
|
||||
events.ScheduleEvent(EVENT_GHOUL_RESTORE_STATE, 3500ms);
|
||||
}
|
||||
|
||||
void OwnerAttackedBy(Unit* attacker) override
|
||||
@@ -504,7 +504,7 @@ public:
|
||||
void SetGUID(ObjectGuid guid, int32) override
|
||||
{
|
||||
gothikGUID = guid;
|
||||
events.ScheduleEvent(EVENT_GHOUL_MOVE_TO_PIT, 3000);
|
||||
events.ScheduleEvent(EVENT_GHOUL_MOVE_TO_PIT, 3s);
|
||||
me->GetMotionMaster()->Clear(false);
|
||||
}
|
||||
|
||||
@@ -535,7 +535,7 @@ public:
|
||||
me->RemoveUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
if (Player* owner = me->GetCharmerOrOwnerPlayerOrPlayerItself())
|
||||
me->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, frand(0.0f, 2 * M_PI));
|
||||
events.ScheduleEvent(EVENT_GHOUL_CHECK_COMBAT, 1000);
|
||||
events.ScheduleEvent(EVENT_GHOUL_CHECK_COMBAT, 1s);
|
||||
return;
|
||||
case EVENT_GHOUL_CHECK_COMBAT:
|
||||
if (!me->IsInCombat())
|
||||
@@ -750,10 +750,10 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
events.ScheduleEvent(EVENT_ICY_TOUCH, 1000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_PLAGUE_STRIKE, 3000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_BLOOD_STRIKE, 2000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_DEATH_COIL, 5000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_ICY_TOUCH, 1s, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_PLAGUE_STRIKE, 3s, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_BLOOD_STRIKE, 2s, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_DEATH_COIL, 5s, GCD_CAST);
|
||||
}
|
||||
|
||||
void MovementInform(uint32 type, uint32 id) override
|
||||
@@ -866,22 +866,22 @@ public:
|
||||
case EVENT_ICY_TOUCH:
|
||||
DoCastVictim(SPELL_ICY_TOUCH);
|
||||
events.DelayEvents(1000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_ICY_TOUCH, 5000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_ICY_TOUCH, 5s, GCD_CAST);
|
||||
break;
|
||||
case EVENT_PLAGUE_STRIKE:
|
||||
DoCastVictim(SPELL_PLAGUE_STRIKE);
|
||||
events.DelayEvents(1000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_PLAGUE_STRIKE, 5000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_PLAGUE_STRIKE, 5s, GCD_CAST);
|
||||
break;
|
||||
case EVENT_BLOOD_STRIKE:
|
||||
DoCastVictim(SPELL_BLOOD_STRIKE);
|
||||
events.DelayEvents(1000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_BLOOD_STRIKE, 5000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_BLOOD_STRIKE, 5s, GCD_CAST);
|
||||
break;
|
||||
case EVENT_DEATH_COIL:
|
||||
DoCastVictim(SPELL_DEATH_COIL);
|
||||
events.DelayEvents(1000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_DEATH_COIL, 5000, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_DEATH_COIL, 5s, GCD_CAST);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -392,20 +392,20 @@ public:
|
||||
SendInitialWorldStates();
|
||||
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_1, 60000);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_2, 120000);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_3, 180000);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_4, 240000);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_5, 300000);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_6, 308000);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_7, 312000);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_8, 316000);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_9, 320000);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_10, 324000);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_11, 332000);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_12, 335000);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_13, 337500);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_14, 345000);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_1, 60s);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_2, 120s);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_3, 180s);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_4, 240s);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_5, 300s);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_6, 308s);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_7, 312s);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_8, 316s);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_9, 320s);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_10, 324s);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_11, 332s);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_12, 335s);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_13, 337s + 500ms);
|
||||
events.ScheduleEvent(EVENT_START_COUNTDOWN_14, 345s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -507,11 +507,11 @@ public:
|
||||
tirion->LoadEquipment(0, true);
|
||||
tirion->AI()->Talk(SAY_LIGHT_OF_DAWN25);
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_FINISH_FIGHT_1, 10000);
|
||||
events.ScheduleEvent(EVENT_FINISH_FIGHT_2, 20000);
|
||||
events.ScheduleEvent(EVENT_FINISH_FIGHT_3, 22000);
|
||||
events.ScheduleEvent(EVENT_FINISH_FIGHT_4, 23000);
|
||||
events.ScheduleEvent(EVENT_FINISH_FIGHT_5, 24000);
|
||||
events.ScheduleEvent(EVENT_FINISH_FIGHT_1, 10s);
|
||||
events.ScheduleEvent(EVENT_FINISH_FIGHT_2, 20s);
|
||||
events.ScheduleEvent(EVENT_FINISH_FIGHT_3, 22s);
|
||||
events.ScheduleEvent(EVENT_FINISH_FIGHT_4, 23s);
|
||||
events.ScheduleEvent(EVENT_FINISH_FIGHT_5, 24s);
|
||||
|
||||
tirion->SummonGameObject(GO_HOLY_LIGHTNING, 2254.84f, -5298.75f, 82.168f, 1.134f, 0, 0, 0.537102f, 0.843517f, 20);
|
||||
tirion->SummonGameObject(GO_HOLY_LIGHTNING, 2296.24f, -5296.44f, 81.9964f, 5.3398f, 0, 0, 0.454395f, -0.8908f, 20);
|
||||
@@ -579,25 +579,25 @@ public:
|
||||
Talk(EMOTE_LIGHT_OF_DAWN05);
|
||||
events.Reset();
|
||||
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_1, 2000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_2, 19000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_3, 38000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_4, 50000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_5, 62000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_6, 68000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_7, 71000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_8, 72000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_9, 74000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_10, 77000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_11, 79000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_12, 82000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_13, 85000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_14, 92000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_15, 98000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_16, 105000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_17, 120000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_18, 131000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_19, 158000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_1, 2s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_2, 19s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_3, 38s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_4, 50s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_5, 62s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_6, 68s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_7, 71s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_8, 72s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_9, 74s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_10, 77s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_11, 79s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_12, 82s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_13, 85s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_14, 92s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_15, 98s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_16, 105s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_17, 120s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_18, 131s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_19, 158s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -843,23 +843,23 @@ public:
|
||||
alex->AI()->Talk(SAY_LIGHT_OF_DAWN42);
|
||||
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_20, 4000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_21, 4500);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_22, 7000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_23, 9000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_24, 14000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_25, 21200);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_26, 22500);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_27, 24000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_28, 28000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_29, 34000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_30, 36000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_31, 51000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_32, 68000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_33, 73000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_34, 76000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_35, 77000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_36, 81000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_20, 4s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_21, 4s + 500ms);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_22, 7s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_23, 9s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_24, 14s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_25, 21s + 200ms);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_26, 22s + 500ms);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_27, 24s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_28, 28s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_29, 34s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_30, 36s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_31, 51s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_32, 68s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_33, 73s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_34, 76s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_35, 77s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_36, 81s);
|
||||
break;
|
||||
case EVENT_OUTRO_SCENE_20:
|
||||
if (Creature* lk = me->SummonCreature(NPC_THE_LICH_KING, LightOfDawnPos[12].GetPositionX(), LightOfDawnPos[12].GetPositionY(), LightOfDawnPos[12].GetPositionZ(), LightOfDawnPos[12].GetOrientation(), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000))
|
||||
@@ -971,23 +971,23 @@ public:
|
||||
me->SetFacingToObject(tirion);
|
||||
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_37, 1000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_38, 5000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_39, 7000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_40, 9000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_41, 13000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_42, 16000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_43, 17000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_44, 19000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_45, 25000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_46, 32000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_47, 42000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_48, 52000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_49, 54000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_50, 58000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_51, 65000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_52, 70000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_53, 84000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_37, 1s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_38, 5s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_39, 7s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_40, 9s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_41, 13s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_42, 16s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_43, 17s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_44, 19s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_45, 25s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_46, 32s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_47, 42s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_48, 52s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_49, 54s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_50, 58s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_51, 65s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_52, 70s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_53, 84s);
|
||||
break;
|
||||
case EVENT_OUTRO_SCENE_37:
|
||||
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(EQUIP_UNEQUIP));
|
||||
@@ -1089,14 +1089,14 @@ public:
|
||||
tirion->AI()->Talk(SAY_LIGHT_OF_DAWN62);
|
||||
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_54, 6000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_55, 14000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_56, 27000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_57, 37000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_58, 44000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_59, 50000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_60, 63000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_61, 150000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_54, 6s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_55, 14s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_56, 27s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_57, 37s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_58, 44s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_59, 50s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_60, 63s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_SCENE_61, 150s);
|
||||
break;
|
||||
case EVENT_OUTRO_SCENE_54:
|
||||
if (Creature* tirion = GetEntryFromSummons(NPC_HIGHLORD_TIRION_FORDRING))
|
||||
@@ -1151,23 +1151,23 @@ public:
|
||||
{
|
||||
case EVENT_SPELL_ANTI_MAGIC_ZONE:
|
||||
DoCast(me, SPELL_ANTI_MAGIC_ZONE1);
|
||||
events.RescheduleEvent(eventId, urand(25000, 30000));
|
||||
events.RescheduleEvent(eventId, 25s, 30s);
|
||||
break;
|
||||
case EVENT_SPELL_DEATH_STRIKE:
|
||||
DoCastVictim(SPELL_DEATH_STRIKE);
|
||||
events.RescheduleEvent(eventId, urand(5000, 10000));
|
||||
events.RescheduleEvent(eventId, 5s, 10s);
|
||||
break;
|
||||
case EVENT_SPELL_DEATH_EMBRACE:
|
||||
DoCastVictim(SPELL_DEATH_EMBRACE);
|
||||
events.RescheduleEvent(eventId, urand(15000, 20000));
|
||||
events.RescheduleEvent(eventId, 15s, 20s);
|
||||
break;
|
||||
case EVENT_SPELL_UNHOLY_BLIGHT:
|
||||
DoCast(me, SPELL_UNHOLY_BLIGHT);
|
||||
events.RescheduleEvent(eventId, 60000);
|
||||
events.RescheduleEvent(eventId, 60s);
|
||||
break;
|
||||
case EVENT_SPELL_TALK:
|
||||
Talk(SAY_LIGHT_OF_DAWN09);
|
||||
events.RescheduleEvent(eventId, urand(15000, 20000));
|
||||
events.RescheduleEvent(eventId, 15s, 20s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -412,9 +412,9 @@ public:
|
||||
{
|
||||
Talk(SAY_MO_AGGRO);
|
||||
me->CastSpell(me, SPELL_RETRIBUTION_AURA, true);
|
||||
events.ScheduleEvent(EVENT_PULL_CATHEDRAL, 1000); // Has to be done via event, otherwise mob aggroing Mograine DOES NOT aggro the room
|
||||
events.ScheduleEvent(EVENT_SPELL_CRUSADER_STRIKE, urand(1000, 5000));
|
||||
events.ScheduleEvent(EVENT_SPELL_HAMMER_OF_JUSTICE, urand(6000, 11000));
|
||||
events.ScheduleEvent(EVENT_PULL_CATHEDRAL, 1s); // Has to be done via event, otherwise mob aggroing Mograine DOES NOT aggro the room
|
||||
events.ScheduleEvent(EVENT_SPELL_CRUSADER_STRIKE, 1s, 5s);
|
||||
events.ScheduleEvent(EVENT_SPELL_HAMMER_OF_JUSTICE, 6s, 11s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*doneBy*/, uint32& damage, DamageEffectType, SpellSchoolMask) override
|
||||
@@ -487,8 +487,8 @@ public:
|
||||
me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
|
||||
me->CastSpell(me, SPELL_RETRIBUTION_AURA, true);
|
||||
me->CastSpell(Whitemane, SPELL_LAY_ON_HANDS, true);
|
||||
events.ScheduleEvent(EVENT_SPELL_CRUSADER_STRIKE, urand(1000, 5000));
|
||||
events.ScheduleEvent(EVENT_SPELL_HAMMER_OF_JUSTICE, urand(6000, 11000));
|
||||
events.ScheduleEvent(EVENT_SPELL_CRUSADER_STRIKE, 1s, 5s);
|
||||
events.ScheduleEvent(EVENT_SPELL_HAMMER_OF_JUSTICE, 6s, 11s);
|
||||
if (me->GetVictim())
|
||||
me->GetMotionMaster()->MoveChase(me->GetVictim());
|
||||
heal = true;
|
||||
@@ -509,11 +509,11 @@ public:
|
||||
{
|
||||
case EVENT_SPELL_CRUSADER_STRIKE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_CRUSADER_STRIKE, true);
|
||||
events.ScheduleEvent(EVENT_SPELL_CRUSADER_STRIKE, 10000);
|
||||
events.ScheduleEvent(EVENT_SPELL_CRUSADER_STRIKE, 10s);
|
||||
break;
|
||||
case EVENT_SPELL_HAMMER_OF_JUSTICE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_HAMMER_OF_JUSTICE, true);
|
||||
events.ScheduleEvent(EVENT_SPELL_HAMMER_OF_JUSTICE, 60000);
|
||||
events.ScheduleEvent(EVENT_SPELL_HAMMER_OF_JUSTICE, 60s);
|
||||
break;
|
||||
case EVENT_PULL_CATHEDRAL:
|
||||
PullCathedral();
|
||||
@@ -568,9 +568,9 @@ public:
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
Talk(SAY_WH_INTRO);
|
||||
events.ScheduleEvent(EVENT_SPELL_HOLY_SMITE, urand(1000, 3000));
|
||||
events.ScheduleEvent(EVENT_SPELL_POWER_WORLD_SHIELD, 6000);
|
||||
events.ScheduleEvent(EVENT_SPELL_HEAL, 9000);
|
||||
events.ScheduleEvent(EVENT_SPELL_HOLY_SMITE, 1s, 3s);
|
||||
events.ScheduleEvent(EVENT_SPELL_POWER_WORLD_SHIELD, 6s);
|
||||
events.ScheduleEvent(EVENT_SPELL_HEAL, 9s);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*doneBy*/, uint32& damage, DamageEffectType, SpellSchoolMask) override
|
||||
@@ -652,11 +652,11 @@ public:
|
||||
{
|
||||
case EVENT_SPELL_POWER_WORLD_SHIELD:
|
||||
me->CastSpell(me, SPELL_POWER_WORD_SHIELD, false);
|
||||
events.ScheduleEvent(EVENT_SPELL_POWER_WORLD_SHIELD, 15000);
|
||||
events.ScheduleEvent(EVENT_SPELL_POWER_WORLD_SHIELD, 15s);
|
||||
break;
|
||||
case EVENT_SPELL_HOLY_SMITE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_HOLY_SMITE, false);
|
||||
events.ScheduleEvent(EVENT_SPELL_HOLY_SMITE, 6000);
|
||||
events.ScheduleEvent(EVENT_SPELL_HOLY_SMITE, 6s);
|
||||
break;
|
||||
case EVENT_SPELL_HEAL:
|
||||
me->CastSpell(me, SPELL_HEAL, false);
|
||||
|
||||
@@ -90,9 +90,9 @@ public:
|
||||
TransformsCount = 0;
|
||||
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, 2000);
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_TONGUES, 6000);
|
||||
events.ScheduleEvent(EVENT_KIRTONOS_TRANSFORM, 20000);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, 2s);
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_TONGUES, 6s);
|
||||
events.ScheduleEvent(EVENT_KIRTONOS_TRANSFORM, 20s);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -109,7 +109,7 @@ public:
|
||||
void IsSummonedBy(WorldObject* /*summoner*/) override
|
||||
{
|
||||
events2.Reset();
|
||||
events2.ScheduleEvent(INTRO_1, 1000);
|
||||
events2.ScheduleEvent(INTRO_1, 1s);
|
||||
me->SetDisableGravity(true);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
@@ -120,11 +120,11 @@ public:
|
||||
{
|
||||
if (type == WAYPOINT_MOTION_TYPE && id == POINT_KIRTONOS_LAND)
|
||||
{
|
||||
events2.ScheduleEvent(INTRO_2, 1500);
|
||||
events2.ScheduleEvent(INTRO_3, 2500);
|
||||
events2.ScheduleEvent(INTRO_4, 5500);
|
||||
events2.ScheduleEvent(INTRO_5, 6500);
|
||||
events2.ScheduleEvent(INTRO_6, 11500);
|
||||
events2.ScheduleEvent(INTRO_2, 1500ms);
|
||||
events2.ScheduleEvent(INTRO_3, 2500ms);
|
||||
events2.ScheduleEvent(INTRO_4, 5500ms);
|
||||
events2.ScheduleEvent(INTRO_5, 6500ms);
|
||||
events2.ScheduleEvent(INTRO_6, 11500ms);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,27 +179,27 @@ public:
|
||||
{
|
||||
case EVENT_SWOOP:
|
||||
me->CastSpell(me->GetVictim(), SPELL_SWOOP, false);
|
||||
events.ScheduleEvent(EVENT_SWOOP, 15000);
|
||||
events.ScheduleEvent(EVENT_SWOOP, 15s);
|
||||
break;
|
||||
case EVENT_WING_FLAP:
|
||||
me->CastSpell(me, SPELL_WING_FLAP, false);
|
||||
events.ScheduleEvent(EVENT_WING_FLAP, 13000);
|
||||
events.ScheduleEvent(EVENT_WING_FLAP, 13s);
|
||||
break;
|
||||
case EVENT_PIERCE_ARMOR:
|
||||
me->CastSpell(me->GetVictim(), SPELL_PIERCE_ARMOR, false);
|
||||
events.ScheduleEvent(EVENT_PIERCE_ARMOR, 12000);
|
||||
events.ScheduleEvent(EVENT_PIERCE_ARMOR, 12s);
|
||||
break;
|
||||
case EVENT_DISARM:
|
||||
me->CastSpell(me->GetVictim(), SPELL_DISARM, false);
|
||||
events.ScheduleEvent(EVENT_DISARM, 11000);
|
||||
events.ScheduleEvent(EVENT_DISARM, 11s);
|
||||
break;
|
||||
case EVENT_SHADOW_BOLT_VOLLEY:
|
||||
me->CastSpell(me, SPELL_SHADOW_BOLT_VOLLEY, false);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, 10000);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, 10s);
|
||||
break;
|
||||
case EVENT_CURSE_OF_TONGUES:
|
||||
me->CastSpell(me, SPELL_CURSE_OF_TONGUES, false);
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_TONGUES, 20000);
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_TONGUES, 20s);
|
||||
break;
|
||||
case EVENT_DOMINATE_MIND:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 20.0f, true))
|
||||
@@ -213,10 +213,10 @@ public:
|
||||
if (me->HasAura(SPELL_KIRTONOS_TRANSFORM))
|
||||
{
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_SWOOP, 4000);
|
||||
events.ScheduleEvent(EVENT_WING_FLAP, 7000);
|
||||
events.ScheduleEvent(EVENT_PIERCE_ARMOR, 11000);
|
||||
events.ScheduleEvent(EVENT_DISARM, 15000);
|
||||
events.ScheduleEvent(EVENT_SWOOP, 4s);
|
||||
events.ScheduleEvent(EVENT_WING_FLAP, 7s);
|
||||
events.ScheduleEvent(EVENT_PIERCE_ARMOR, 11s);
|
||||
events.ScheduleEvent(EVENT_DISARM, 15s);
|
||||
// show shape-shift animation before aura removal
|
||||
me->CastSpell(me, SPELL_TRANSFORM_VISUAL, true);
|
||||
me->RemoveAura(SPELL_KIRTONOS_TRANSFORM);
|
||||
@@ -225,19 +225,19 @@ public:
|
||||
else
|
||||
{
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, 2000);
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_TONGUES, 6000);
|
||||
events.ScheduleEvent(EVENT_WING_FLAP, 13000);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, 2s);
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_TONGUES, 6s);
|
||||
events.ScheduleEvent(EVENT_WING_FLAP, 13s);
|
||||
me->CastSpell(me, SPELL_KIRTONOS_TRANSFORM, true);
|
||||
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_KIRTONOS_STAFF));
|
||||
// Schedule Dominate Mind on every 2nd caster transform
|
||||
if ((TransformsCount - 2) % 4 == 0)
|
||||
{
|
||||
events.ScheduleEvent(EVENT_DOMINATE_MIND, urand(4000, 8000));
|
||||
events.ScheduleEvent(EVENT_DOMINATE_MIND, 4s, 8s);
|
||||
}
|
||||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_KIRTONOS_TRANSFORM, 20000);
|
||||
events.ScheduleEvent(EVENT_KIRTONOS_TRANSFORM, 20s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -400,9 +400,9 @@ public:
|
||||
originalDisplayId = me->GetDisplayId();
|
||||
|
||||
events.Reset();
|
||||
events.RescheduleEvent(1, urand(1000, 7000));
|
||||
events.RescheduleEvent(2, 400);
|
||||
events.RescheduleEvent(3, urand(6000, 15000));
|
||||
events.RescheduleEvent(1, 1s, 7s);
|
||||
events.RescheduleEvent(2, 400ms);
|
||||
events.RescheduleEvent(3, 6s, 15s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -419,7 +419,7 @@ public:
|
||||
events.Reset();
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
me->UpdateEntry(DARK_SHADE_ENTRY, nullptr, false);
|
||||
events.RescheduleEvent(4, urand(2000, 10000));
|
||||
events.RescheduleEvent(4, 2s, 10s);
|
||||
}
|
||||
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
|
||||
@@ -498,9 +498,9 @@ public:
|
||||
}
|
||||
|
||||
if (_baronRunTime > 0)
|
||||
events.ScheduleEvent(EVENT_BARON_TIME, 60000);
|
||||
events.ScheduleEvent(EVENT_BARON_TIME, 60s);
|
||||
else
|
||||
events.ScheduleEvent(EVENT_EXECUTE_PRISONER, 0);
|
||||
events.ScheduleEvent(EVENT_EXECUTE_PRISONER, 0ms);
|
||||
|
||||
SaveToDB();
|
||||
break;
|
||||
@@ -518,7 +518,7 @@ public:
|
||||
Unit::Kill(baron, ysida);
|
||||
}
|
||||
else
|
||||
events.ScheduleEvent(EVENT_EXECUTE_PRISONER, 1000);
|
||||
events.ScheduleEvent(EVENT_EXECUTE_PRISONER, 1s);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -540,7 +540,7 @@ public:
|
||||
return;
|
||||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_FORCE_SLAUGHTER_EVENT, 3000);
|
||||
events.ScheduleEvent(EVENT_FORCE_SLAUGHTER_EVENT, 3s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SPAWN_BLACK_GUARD:
|
||||
|
||||
@@ -107,7 +107,7 @@ public:
|
||||
switch (type)
|
||||
{
|
||||
case DATA_STATUES:
|
||||
_events.ScheduleEvent(DATA_STATUES, 0);
|
||||
_events.ScheduleEvent(DATA_STATUES, 0ms);
|
||||
break;
|
||||
case DATA_DEFENDER_KILLED:
|
||||
++_defendersKilled;
|
||||
|
||||
@@ -118,11 +118,11 @@ public:
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(7000, 9000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_GOUGE, urand(12000, 15000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SUMMON_PROWLERS, 6000, 0, PHASE_ALL);
|
||||
events.ScheduleEvent(EVENT_MARK_OF_ARLOKK, urand(9000, 11000), 0, PHASE_ALL);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 30000, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 7s, 9s, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_GOUGE, 12s, 15s, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SUMMON_PROWLERS, 6s, 0, PHASE_ALL);
|
||||
events.ScheduleEvent(EVENT_MARK_OF_ARLOKK, 9s, 11s, 0, PHASE_ALL);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 30s, 0, PHASE_ONE);
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
// Sets up list of Panther spawners to cast on
|
||||
@@ -189,7 +189,7 @@ public:
|
||||
{
|
||||
case EVENT_SHADOW_WORD_PAIN:
|
||||
DoCastVictim(SPELL_SHADOW_WORD_PAIN, true);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(5000, 7000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 5s, 7s, 0, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_GOUGE:
|
||||
DoCastVictim(SPELL_GOUGE, true);
|
||||
@@ -211,7 +211,7 @@ public:
|
||||
++_summonCountB;
|
||||
}
|
||||
}
|
||||
events.ScheduleEvent(EVENT_SUMMON_PROWLERS, 6000, 0, PHASE_ALL);
|
||||
events.ScheduleEvent(EVENT_SUMMON_PROWLERS, 6s, 0, PHASE_ALL);
|
||||
break;
|
||||
case EVENT_MARK_OF_ARLOKK:
|
||||
{
|
||||
@@ -223,7 +223,7 @@ public:
|
||||
DoCast(target, SPELL_MARK_OF_ARLOKK, true);
|
||||
Talk(SAY_FEAST_PROWLER, target);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_MARK_OF_ARLOKK, urand(120000, 130000));
|
||||
events.ScheduleEvent(EVENT_MARK_OF_ARLOKK, 120s, 130s);
|
||||
break;
|
||||
}
|
||||
case EVENT_TRANSFORM:
|
||||
@@ -237,19 +237,19 @@ public:
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
DoCastSelf(SPELL_VANISH_VISUAL);
|
||||
DoCastSelf(SPELL_VANISH);
|
||||
events.ScheduleEvent(EVENT_VANISH, 1000, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_VANISH, 1s, 0, PHASE_ONE);
|
||||
break;
|
||||
}
|
||||
case EVENT_VANISH:
|
||||
DoCastSelf(SPELL_SUPER_INVIS);
|
||||
me->SetWalk(false);
|
||||
me->GetMotionMaster()->MovePoint(0, frand(-11551.0f, -11508.0f), frand(-1638.0f, -1617.0f), me->GetPositionZ());
|
||||
events.ScheduleEvent(EVENT_VANISH_2, 9000, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_VANISH_2, 9s, 0, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_VANISH_2:
|
||||
DoCastSelf(SPELL_VANISH);
|
||||
DoCastSelf(SPELL_SUPER_INVIS);
|
||||
events.ScheduleEvent(EVENT_VISIBLE, urand(41000, 47000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_VISIBLE, 41s, 47s, 0, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_VISIBLE:
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
@@ -258,14 +258,14 @@ public:
|
||||
AttackStart(target);
|
||||
me->RemoveAura(SPELL_SUPER_INVIS);
|
||||
me->RemoveAura(SPELL_VANISH);
|
||||
events.ScheduleEvent(EVENT_RAVAGE, urand(10000, 14000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM_BACK, urand(30000, 40000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_RAVAGE, 10s, 14s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM_BACK, 30s, 40s, 0, PHASE_TWO);
|
||||
events.SetPhase(PHASE_TWO);
|
||||
me->HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_PCT, 35.0f, true); // hack
|
||||
break;
|
||||
case EVENT_RAVAGE:
|
||||
DoCastVictim(SPELL_RAVAGE, true);
|
||||
events.ScheduleEvent(EVENT_RAVAGE, urand(10000, 14000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_RAVAGE, 10s, 14s, 0, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_TRANSFORM_BACK:
|
||||
{
|
||||
@@ -274,9 +274,9 @@ public:
|
||||
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_DAGGER));
|
||||
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, uint32(WEAPON_DAGGER));
|
||||
me->HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_PCT, 35.0f, false); // hack
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(4000, 7000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_GOUGE, urand(12000, 15000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 30000, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 4s, 7s, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_GOUGE, 12s, 15s, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 30s, 0, PHASE_ONE);
|
||||
events.SetPhase(PHASE_ONE);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -76,9 +76,9 @@ public:
|
||||
{
|
||||
_EnterCombat();
|
||||
me->AddAura(SPELL_THRASH, me);
|
||||
events.ScheduleEvent(EVENT_FROSTBREATH, 8000);
|
||||
events.ScheduleEvent(EVENT_MASSIVEGEYSER, 25000);
|
||||
events.ScheduleEvent(EVENT_SLAM, 15000);
|
||||
events.ScheduleEvent(EVENT_FROSTBREATH, 8s);
|
||||
events.ScheduleEvent(EVENT_MASSIVEGEYSER, 25s);
|
||||
events.ScheduleEvent(EVENT_SLAM, 15s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -97,15 +97,15 @@ public:
|
||||
{
|
||||
case EVENT_FROSTBREATH:
|
||||
DoCastVictim(SPELL_FROSTBREATH);
|
||||
events.ScheduleEvent(EVENT_FROSTBREATH, urand(8000, 20000));
|
||||
events.ScheduleEvent(EVENT_FROSTBREATH, 8s, 20s);
|
||||
break;
|
||||
case EVENT_MASSIVEGEYSER:
|
||||
DoCastVictim(SPELL_MASSIVEGEYSER);
|
||||
events.ScheduleEvent(EVENT_MASSIVEGEYSER, urand(22000, 32000));
|
||||
events.ScheduleEvent(EVENT_MASSIVEGEYSER, 22s, 32s);
|
||||
break;
|
||||
case EVENT_SLAM:
|
||||
DoCastVictim(SPELL_SLAM, true);
|
||||
events.ScheduleEvent(EVENT_SLAM, urand(12000, 20000));
|
||||
events.ScheduleEvent(EVENT_SLAM, 12s, 20s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -113,20 +113,20 @@ public:
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_BLOOD_SIPHON, 90000);
|
||||
events.ScheduleEvent(EVENT_CORRUPTED_BLOOD, 25000);
|
||||
events.ScheduleEvent(EVENT_CAUSE_INSANITY, 17000);
|
||||
events.ScheduleEvent(EVENT_ENRAGE, 600000);
|
||||
events.ScheduleEvent(EVENT_BLOOD_SIPHON, 90s);
|
||||
events.ScheduleEvent(EVENT_CORRUPTED_BLOOD, 25s);
|
||||
events.ScheduleEvent(EVENT_CAUSE_INSANITY, 17s);
|
||||
events.ScheduleEvent(EVENT_ENRAGE, 1min);
|
||||
if (instance->GetBossState(DATA_JEKLIK) != DONE)
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_JEKLIK, 21000);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_JEKLIK, 21s);
|
||||
if (instance->GetBossState(DATA_VENOXIS) != DONE)
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_VENOXIS, 14000);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_VENOXIS, 14s);
|
||||
if (instance->GetBossState(DATA_MARLI) != DONE)
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_MARLI, 15000);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_MARLI, 15s);
|
||||
if (instance->GetBossState(DATA_THEKAL) != DONE)
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_THEKAL, 10000);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_THEKAL, 10s);
|
||||
if (instance->GetBossState(DATA_ARLOKK) != DONE)
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_ARLOKK, 18000);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_ARLOKK, 18s);
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
@@ -153,11 +153,11 @@ public:
|
||||
{
|
||||
case EVENT_BLOOD_SIPHON:
|
||||
DoCastAOE(SPELL_BLOOD_SIPHON, true);
|
||||
events.ScheduleEvent(EVENT_BLOOD_SIPHON, 90000);
|
||||
events.ScheduleEvent(EVENT_BLOOD_SIPHON, 90s);
|
||||
break;
|
||||
case EVENT_CORRUPTED_BLOOD:
|
||||
DoCastVictim(SPELL_CORRUPTED_BLOOD, true);
|
||||
events.ScheduleEvent(EVENT_CORRUPTED_BLOOD, urand(30000, 45000));
|
||||
events.ScheduleEvent(EVENT_CORRUPTED_BLOOD, 30s, 40s);
|
||||
break;
|
||||
case EVENT_CAUSE_INSANITY:
|
||||
if (me->GetThreatMgr().GetThreatListSize() > 1)
|
||||
@@ -167,20 +167,20 @@ public:
|
||||
DoCast(victim, SPELL_CAUSE_INSANITY);
|
||||
}
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CAUSE_INSANITY, urand(35000, 45000));
|
||||
events.ScheduleEvent(EVENT_CAUSE_INSANITY, 35s, 40s);
|
||||
break;
|
||||
case EVENT_ENRAGE:
|
||||
if (!me->HasAura(SPELL_ENRAGE))
|
||||
DoCastSelf(SPELL_ENRAGE);
|
||||
events.ScheduleEvent(EVENT_ENRAGE, 90000);
|
||||
events.ScheduleEvent(EVENT_ENRAGE, 90s);
|
||||
break;
|
||||
case EVENT_ASPECT_OF_JEKLIK:
|
||||
DoCastVictim(SPELL_ASPECT_OF_JEKLIK, true);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_JEKLIK, 24000);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_JEKLIK, 24s);
|
||||
break;
|
||||
case EVENT_ASPECT_OF_VENOXIS:
|
||||
DoCastVictim(SPELL_ASPECT_OF_VENOXIS, true);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_VENOXIS, urand(16000, 18000));
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_VENOXIS, 16s, 18s);
|
||||
break;
|
||||
case EVENT_ASPECT_OF_MARLI:
|
||||
if (Unit* victim = SelectTarget(SelectTargetMethod::MaxThreat, 0, 5.f, true))
|
||||
@@ -188,11 +188,11 @@ public:
|
||||
DoCast(victim, SPELL_ASPECT_OF_MARLI, true);
|
||||
me->GetThreatMgr().ModifyThreatByPercent(victim, -100.f);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_MARLI, 45000);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_MARLI, 45s);
|
||||
break;
|
||||
case EVENT_ASPECT_OF_THEKAL:
|
||||
DoCastVictim(SPELL_ASPECT_OF_THEKAL, true);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_THEKAL, 15000);
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_THEKAL, 15s);
|
||||
break;
|
||||
case EVENT_ASPECT_OF_ARLOKK:
|
||||
if (Unit* victim = SelectTarget(SelectTargetMethod::MaxThreat, 0, 5.f, true))
|
||||
@@ -200,7 +200,7 @@ public:
|
||||
DoCast(victim, SPELL_ASPECT_OF_ARLOKK, true);
|
||||
me->GetThreatMgr().ModifyThreatByPercent(victim, -100.f);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_ARLOKK, urand(10000, 15000));
|
||||
events.ScheduleEvent(EVENT_ASPECT_OF_ARLOKK, 10s, 15s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -151,12 +151,12 @@ struct boss_jeklik : public BossAI
|
||||
SetCombatMovement(true);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
events.SetPhase(PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_CHARGE_JEKLIK, urand(10000, 20000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_PIERCE_ARMOR, urand(5000, 15000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_BLOOD_LEECH, urand(5000, 15000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SONIC_BURST, urand(5000, 15000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SWOOP, 20000, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SPAWN_BATS, 30000, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_CHARGE_JEKLIK, 10s, 20s, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_PIERCE_ARMOR, 5s, 15s, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_BLOOD_LEECH, 5s, 15s, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SONIC_BURST, 5s, 15s, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SWOOP, 20s, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SPAWN_BATS, 30s, PHASE_ONE);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*who*/, uint32& /*damage*/, DamageEffectType, SpellSchoolMask) override
|
||||
@@ -168,12 +168,12 @@ struct boss_jeklik : public BossAI
|
||||
events.SetPhase(PHASE_TWO);
|
||||
events.CancelEventGroup(PHASE_ONE);
|
||||
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, urand(5000, 15000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(10000, 15000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_PSYCHIC_SCREAM, urand(25000, 35000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_MIND_FLAY, urand(10000, 30000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_GREATER_HEAL, 25000, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SPAWN_FLYING_BATS, 10000, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, 5s, 15s, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 10s, 15s, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_PSYCHIC_SCREAM, 25s, 35s, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_MIND_FLAY, 10s, 30s, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_GREATER_HEAL, 25s, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SPAWN_FLYING_BATS, 10s, PHASE_TWO);
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -200,23 +200,23 @@ struct boss_jeklik : public BossAI
|
||||
DoCast(target, SPELL_CHARGE);
|
||||
AttackStart(target);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHARGE_JEKLIK, urand(15000, 30000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_CHARGE_JEKLIK, 15s, 30s, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_PIERCE_ARMOR:
|
||||
DoCastVictim(SPELL_PIERCE_ARMOR);
|
||||
events.ScheduleEvent(EVENT_PIERCE_ARMOR, urand(20000, 30000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_PIERCE_ARMOR, 20s, 30s, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_BLOOD_LEECH:
|
||||
DoCastVictim(SPELL_BLOOD_LEECH);
|
||||
events.ScheduleEvent(EVENT_BLOOD_LEECH, urand(10000, 20000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_BLOOD_LEECH, 10s, 20s, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_SONIC_BURST:
|
||||
DoCastVictim(SPELL_SONIC_BURST);
|
||||
events.ScheduleEvent(EVENT_SONIC_BURST, urand(20000, 30000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SONIC_BURST, 20s, 30s, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_SWOOP:
|
||||
DoCastVictim(SPELL_SWOOP);
|
||||
events.ScheduleEvent(EVENT_SWOOP, urand(20000, 30000), PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SWOOP, 20s, 30s, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_SPAWN_BATS:
|
||||
Talk(EMOTE_SUMMON_BATS);
|
||||
@@ -224,37 +224,37 @@ struct boss_jeklik : public BossAI
|
||||
for (uint8 i = 0; i < 6; ++i)
|
||||
if (Creature* bat = me->SummonCreature(NPC_BLOODSEEKER_BAT, SpawnBat[i], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000))
|
||||
bat->AI()->AttackStart(target);
|
||||
events.ScheduleEvent(EVENT_SPAWN_BATS, 30000, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SPAWN_BATS, 30s, PHASE_ONE);
|
||||
break;
|
||||
//Phase two
|
||||
case EVENT_CURSE_OF_BLOOD:
|
||||
DoCastSelf(SPELL_CURSE_OF_BLOOD);
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, urand(25000, 30000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, 25s, 30s, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_PSYCHIC_SCREAM:
|
||||
DoCastVictim(SPELL_PSYCHIC_SCREAM);
|
||||
events.ScheduleEvent(EVENT_PSYCHIC_SCREAM, urand(35000, 45000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_PSYCHIC_SCREAM, 35s, 45s, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_SHADOW_WORD_PAIN:
|
||||
DoCastRandomTarget(SPELL_SHADOW_WORD_PAIN, 0, true);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(12000, 18000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 12s, 18s, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_MIND_FLAY:
|
||||
DoCastVictim(SPELL_MIND_FLAY);
|
||||
events.ScheduleEvent(EVENT_MIND_FLAY, urand(20000, 40000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_MIND_FLAY, 20s, 40s, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_GREATER_HEAL:
|
||||
Talk(EMOTE_GREAT_HEAL);
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
DoCastSelf(SPELL_GREATER_HEAL);
|
||||
events.ScheduleEvent(EVENT_GREATER_HEAL, 25000, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_GREATER_HEAL, 25s, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_SPAWN_FLYING_BATS:
|
||||
Talk(SAY_CALL_RIDERS);
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
|
||||
if (Creature* flyingBat = me->SummonCreature(NPC_FRENZIED_BAT, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ() + 15.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000))
|
||||
flyingBat->AI()->DoZoneInCombat();
|
||||
events.ScheduleEvent(EVENT_SPAWN_FLYING_BATS, urand(10000, 15000), PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_SPAWN_FLYING_BATS, 10s, 15s, PHASE_TWO);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -61,11 +61,11 @@ struct boss_jindo : public BossAI
|
||||
void EnterCombat(Unit* who) override
|
||||
{
|
||||
BossAI::EnterCombat(who);
|
||||
events.ScheduleEvent(EVENT_BRAIN_WASH_TOTEM, 20000);
|
||||
events.ScheduleEvent(EVENT_POWERFULL_HEALING_WARD, 16000);
|
||||
events.ScheduleEvent(EVENT_HEX, 8000);
|
||||
events.ScheduleEvent(EVENT_DELUSIONS_OF_JINDO, 10000);
|
||||
events.ScheduleEvent(EVENT_TELEPORT, 5000);
|
||||
events.ScheduleEvent(EVENT_BRAIN_WASH_TOTEM, 20s);
|
||||
events.ScheduleEvent(EVENT_POWERFULL_HEALING_WARD, 16s);
|
||||
events.ScheduleEvent(EVENT_HEX, 8s);
|
||||
events.ScheduleEvent(EVENT_DELUSIONS_OF_JINDO, 10s);
|
||||
events.ScheduleEvent(EVENT_TELEPORT, 5s);
|
||||
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
@@ -125,24 +125,24 @@ struct boss_jindo : public BossAI
|
||||
{
|
||||
case EVENT_BRAIN_WASH_TOTEM:
|
||||
DoCastSelf(SPELL_BRAIN_WASH_TOTEM);
|
||||
events.ScheduleEvent(EVENT_BRAIN_WASH_TOTEM, urand(18000, 26000));
|
||||
events.ScheduleEvent(EVENT_BRAIN_WASH_TOTEM, 18s, 26s);
|
||||
break;
|
||||
case EVENT_POWERFULL_HEALING_WARD:
|
||||
DoCastSelf(SPELL_POWERFULL_HEALING_WARD, true);
|
||||
events.ScheduleEvent(EVENT_POWERFULL_HEALING_WARD, urand(14000, 20000));
|
||||
events.ScheduleEvent(EVENT_POWERFULL_HEALING_WARD, 14s, 20s);
|
||||
break;
|
||||
case EVENT_HEX:
|
||||
if (me->GetThreatMgr().GetThreatListSize() > 1)
|
||||
DoCastVictim(SPELL_HEX, true);
|
||||
events.ScheduleEvent(EVENT_HEX, urand(12000, 20000));
|
||||
events.ScheduleEvent(EVENT_HEX, 12s, 20s);
|
||||
break;
|
||||
case EVENT_DELUSIONS_OF_JINDO:
|
||||
DoCastRandomTarget(SPELL_DELUSIONS_OF_JINDO);
|
||||
events.ScheduleEvent(EVENT_DELUSIONS_OF_JINDO, urand(4000, 12000));
|
||||
events.ScheduleEvent(EVENT_DELUSIONS_OF_JINDO, 4s, 12s);
|
||||
break;
|
||||
case EVENT_TELEPORT:
|
||||
DoCastRandomTarget(SPELL_BANISH);
|
||||
events.ScheduleEvent(EVENT_TELEPORT, urand(15000, 23000));
|
||||
events.ScheduleEvent(EVENT_TELEPORT, 15s, 23s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -187,13 +187,13 @@ public:
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_OVERPOWER, 1000);
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, urand(14000, 28000));
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, urand(24000, 30000));
|
||||
events.ScheduleEvent(EVENT_CHECK_OHGAN, 1000);
|
||||
events.ScheduleEvent(EVENT_WATCH_PLAYER, urand(12000, 24000));
|
||||
events.ScheduleEvent(EVENT_CHARGE_PLAYER, urand(30000, 40000));
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 1000);
|
||||
events.ScheduleEvent(EVENT_OVERPOWER, 1s);
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 14s, 28s);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 24s, 30s);
|
||||
events.ScheduleEvent(EVENT_CHECK_OHGAN, 1s);
|
||||
events.ScheduleEvent(EVENT_WATCH_PLAYER, 12s, 24s);
|
||||
events.ScheduleEvent(EVENT_CHARGE_PLAYER, 30s, 40s);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 1s);
|
||||
me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
|
||||
Talk(SAY_AGGRO);
|
||||
me->Dismount();
|
||||
@@ -302,7 +302,7 @@ public:
|
||||
if (!_useExecute)
|
||||
{
|
||||
_useExecute = true;
|
||||
events.ScheduleEvent(EVENT_EXECUTE, 1000);
|
||||
events.ScheduleEvent(EVENT_EXECUTE, 1s);
|
||||
}
|
||||
}
|
||||
else if (_useExecute)
|
||||
@@ -372,11 +372,11 @@ public:
|
||||
if (instance->GetBossState(DATA_MANDOKIR) == SPECIAL)
|
||||
{
|
||||
me->GetMotionMaster()->MovePoint(0, PosMandokir[1].m_positionX, PosMandokir[1].m_positionY, PosMandokir[1].m_positionZ);
|
||||
events.ScheduleEvent(EVENT_STARTED, 6000);
|
||||
events.ScheduleEvent(EVENT_STARTED, 6s);
|
||||
}
|
||||
else
|
||||
{
|
||||
events.ScheduleEvent(EVENT_CHECK_START, 1000);
|
||||
events.ScheduleEvent(EVENT_CHECK_START, 1s);
|
||||
}
|
||||
break;
|
||||
case EVENT_STARTED:
|
||||
@@ -408,20 +408,20 @@ public:
|
||||
case EVENT_OVERPOWER:
|
||||
if (DoCastVictim(SPELL_OVERPOWER) == SPELL_CAST_OK)
|
||||
{
|
||||
events.ScheduleEvent(EVENT_OVERPOWER, urand(6000, 8000));
|
||||
events.ScheduleEvent(EVENT_OVERPOWER, 6s, 8s);
|
||||
}
|
||||
else
|
||||
{
|
||||
events.ScheduleEvent(EVENT_OVERPOWER, 1000);
|
||||
events.ScheduleEvent(EVENT_OVERPOWER, 1s);
|
||||
}
|
||||
break;
|
||||
case EVENT_MORTAL_STRIKE:
|
||||
DoCastVictim(SPELL_MORTAL_STRIKE);
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, urand(14000, 28000));
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 14s, 28s);
|
||||
break;
|
||||
case EVENT_WHIRLWIND:
|
||||
DoCast(me, SPELL_WHIRLWIND);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, urand(22000, 26000));
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 22s, 26s);
|
||||
break;
|
||||
case EVENT_CHECK_OHGAN:
|
||||
if (instance->GetBossState(DATA_OHGAN) == DONE)
|
||||
@@ -431,7 +431,7 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
events.ScheduleEvent(EVENT_CHECK_OHGAN, 1000);
|
||||
events.ScheduleEvent(EVENT_CHECK_OHGAN, 1s);
|
||||
}
|
||||
break;
|
||||
case EVENT_WATCH_PLAYER:
|
||||
@@ -441,7 +441,7 @@ public:
|
||||
Talk(SAY_WATCH, player);
|
||||
_chargeTarget = std::make_pair(player->GetGUID(), 0.f);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_WATCH_PLAYER, urand(12000, 24000));
|
||||
events.ScheduleEvent(EVENT_WATCH_PLAYER, 12s, 24s);
|
||||
break;
|
||||
case EVENT_CHARGE_PLAYER:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::MinDistance, 0, [this](Unit const* target)
|
||||
@@ -454,17 +454,17 @@ public:
|
||||
}))
|
||||
{
|
||||
DoCast(target, SPELL_CHARGE);
|
||||
events.DelayEvents(1500);
|
||||
events.DelayEvents(1500ms);
|
||||
if (Unit* mainTarget = SelectTarget(SelectTargetMethod::MaxThreat, 0, 100.0f))
|
||||
{
|
||||
me->GetThreatMgr().ModifyThreatByPercent(mainTarget, -100);
|
||||
}
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHARGE_PLAYER, urand(30000, 40000));
|
||||
events.ScheduleEvent(EVENT_CHARGE_PLAYER, 30s, 40s);
|
||||
break;
|
||||
case EVENT_EXECUTE:
|
||||
DoCastVictim(SPELL_EXECUTE, true);
|
||||
events.ScheduleEvent(EVENT_EXECUTE, urand(7000, 14000));
|
||||
events.ScheduleEvent(EVENT_EXECUTE, 7s, 14s);
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
{
|
||||
@@ -481,11 +481,11 @@ public:
|
||||
if (meleeRangeTargets.size() >= 5)
|
||||
{
|
||||
DoCastVictim(SPELL_MANDOKIR_CLEAVE);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, urand(10000, 20000));
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 10s, 20s);
|
||||
}
|
||||
else
|
||||
{
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 1000);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 1s);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ struct boss_marli : public BossAI
|
||||
void EnterCombat(Unit* who) override
|
||||
{
|
||||
BossAI::EnterCombat(who);
|
||||
events.ScheduleEvent(EVENT_SPAWN_START_SPIDERS, 1000, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_SPAWN_START_SPIDERS, 1s, 0, PHASE_ONE);
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
@@ -144,14 +144,14 @@ struct boss_marli : public BossAI
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_SPAWN_START_SPIDERS:
|
||||
events.ScheduleEvent(EVENT_TALK_FIRST_SPIDERS, 500, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_TALK_FIRST_SPIDERS, 500ms, 0, PHASE_TWO);
|
||||
DoCastAOE(SPELL_HATCH_EGGS);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 60000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_POISON_VOLLEY, 15000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_HATCH_SPIDER_EGG, 30000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_DRAIN_LIFE, 30000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_THRASH, urand(4000, 6000)); // all phases
|
||||
events.ScheduleEvent(EVENT_ENLARGE, urand(10000, 20000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 1min, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_POISON_VOLLEY, 15s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_HATCH_SPIDER_EGG, 30s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_DRAIN_LIFE, 30s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_THRASH, 4s, 6s); // all phases
|
||||
events.ScheduleEvent(EVENT_ENLARGE, 10s, 20s, 0, PHASE_TWO);
|
||||
events.SetPhase(PHASE_TWO);
|
||||
break;
|
||||
case EVENT_TALK_FIRST_SPIDERS:
|
||||
@@ -159,39 +159,39 @@ struct boss_marli : public BossAI
|
||||
break;
|
||||
case EVENT_POISON_VOLLEY:
|
||||
DoCastVictim(SPELL_POISON_VOLLEY, true);
|
||||
events.ScheduleEvent(EVENT_POISON_VOLLEY, urand(10000, 20000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_POISON_VOLLEY, 10s, 20s, 0, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_HATCH_SPIDER_EGG:
|
||||
DoCastSelf(SPELL_HATCH_SPIDER_EGG, true);
|
||||
events.ScheduleEvent(EVENT_HATCH_SPIDER_EGG, 20000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_HATCH_SPIDER_EGG, 20s, 0, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_DRAIN_LIFE:
|
||||
DoCastRandomTarget(SPELL_DRAIN_LIFE);
|
||||
events.ScheduleEvent(EVENT_DRAIN_LIFE, urand(20000, 50000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_DRAIN_LIFE, 20s, 50s, 0, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_ENLARGE:
|
||||
{
|
||||
std::list<Creature*> targets = DoFindFriendlyMissingBuff(100.f, SPELL_ENLARGE);
|
||||
if (targets.size() > 0)
|
||||
DoCast(*(targets.begin()), SPELL_ENLARGE);
|
||||
events.ScheduleEvent(EVENT_ENLARGE, urand(20000, 40000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_ENLARGE, 20s, 40s, 0, PHASE_TWO);
|
||||
break;
|
||||
}
|
||||
case EVENT_TRANSFORM:
|
||||
Talk(SAY_TRANSFORM);
|
||||
DoCastSelf(SPELL_SPIDER_FORM, true);
|
||||
me->HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_PCT, 35.0f, true); // hack
|
||||
events.ScheduleEvent(EVENT_ENVELOPING_WEB, 5000, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_CHARGE_PLAYER, 6000, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_CORROSIVE_POISON, 1000, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_POISON_SHOCK, urand(5000, 10000), 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM_BACK, 60000, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_ENVELOPING_WEB, 5s, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_CHARGE_PLAYER, 6s, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_CORROSIVE_POISON, 1s, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_POISON_SHOCK, 5s, 10s, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM_BACK, 1min, 0, PHASE_THREE);
|
||||
events.SetPhase(PHASE_THREE);
|
||||
break;
|
||||
case EVENT_ENVELOPING_WEB:
|
||||
DoCastAOE(SPELL_ENVELOPING_WEB);
|
||||
events.ScheduleEvent(EVENT_CHARGE_PLAYER, 500, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_ENVELOPING_WEB, urand(15000, 20000), 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_CHARGE_PLAYER, 500ms, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_ENVELOPING_WEB, 15s, 20s, 0, PHASE_THREE);
|
||||
break;
|
||||
case EVENT_CHARGE_PLAYER:
|
||||
{
|
||||
@@ -212,27 +212,27 @@ struct boss_marli : public BossAI
|
||||
}
|
||||
case EVENT_CORROSIVE_POISON:
|
||||
DoCastVictim(SPELL_CORROSIVE_POISON);
|
||||
events.ScheduleEvent(EVENT_CORROSIVE_POISON, urand(25000, 35000), 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_CORROSIVE_POISON, 25s, 35s, 0, PHASE_THREE);
|
||||
break;
|
||||
case EVENT_POISON_SHOCK:
|
||||
DoCastRandomTarget(SPELL_POISON_SHOCK);
|
||||
events.ScheduleEvent(EVENT_POISON_SHOCK, 10000, 0, PHASE_THREE);
|
||||
events.ScheduleEvent(EVENT_POISON_SHOCK, 10s, 0, PHASE_THREE);
|
||||
break;
|
||||
case EVENT_TRANSFORM_BACK:
|
||||
me->RemoveAura(SPELL_SPIDER_FORM);
|
||||
DoCastSelf(SPELL_TRANSFORM_BACK, true);
|
||||
Talk(SAY_TRANSFORM_BACK);
|
||||
me->HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_PCT, 35.0f, false); // hack
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 60000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_POISON_VOLLEY, 15000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_HATCH_SPIDER_EGG, 30000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_DRAIN_LIFE, 30000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_ENLARGE, urand(10000, 20000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 1min, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_POISON_VOLLEY, 15s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_HATCH_SPIDER_EGG, 30s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_DRAIN_LIFE, 30s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_ENLARGE, 10s, 20s, 0, PHASE_TWO);
|
||||
events.SetPhase(PHASE_TWO);
|
||||
break;
|
||||
case EVENT_THRASH:
|
||||
DoCastVictim(SPELL_THRASH);
|
||||
events.ScheduleEvent(EVENT_THRASH, urand(10000, 20000));
|
||||
events.ScheduleEvent(EVENT_THRASH, 10s, 20s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -143,13 +143,13 @@ public:
|
||||
_EnterCombat();
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
// Always running events
|
||||
events.ScheduleEvent(EVENT_THRASH, 5000);
|
||||
events.ScheduleEvent(EVENT_THRASH, 5s);
|
||||
// Phase one events (regular form)
|
||||
events.ScheduleEvent(EVENT_HOLY_NOVA, urand(5000, 15000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_DISPEL_MAGIC, 35000, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_HOLY_FIRE, urand(10000,20000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_RENEW, 30000, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_HOLY_WRATH, urand(15000, 25000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_HOLY_NOVA, 5s, 15s, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_DISPEL_MAGIC, 35s, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_HOLY_FIRE, 10s, 20s, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_RENEW, 30s, 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_HOLY_WRATH, 15s, 25s, 0, PHASE_ONE);
|
||||
|
||||
events.SetPhase(PHASE_ONE);
|
||||
|
||||
@@ -165,13 +165,13 @@ public:
|
||||
{
|
||||
_transformed = true;
|
||||
// schedule the event that changes our phase
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 100);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 100ms);
|
||||
}
|
||||
// we're losing health, bad, go frenzy
|
||||
else if (!_frenzied && !HealthAbovePct(20))
|
||||
{
|
||||
_frenzied = true;
|
||||
events.ScheduleEvent(EVENT_FRENZY, 100);
|
||||
events.ScheduleEvent(EVENT_FRENZY, 100ms);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -193,31 +193,31 @@ public:
|
||||
// thrash is available in all phases
|
||||
case EVENT_THRASH:
|
||||
DoCast(me, SPELL_THRASH, true);
|
||||
events.ScheduleEvent(EVENT_THRASH, urand(10000, 20000));
|
||||
events.ScheduleEvent(EVENT_THRASH, 10s, 20s);
|
||||
break;
|
||||
|
||||
// troll form spells and Actions (first part)
|
||||
case EVENT_DISPEL_MAGIC:
|
||||
DoCast(me, SPELL_DISPEL_MAGIC);
|
||||
events.ScheduleEvent(EVENT_DISPEL_MAGIC, urand(15000, 20000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_DISPEL_MAGIC, 15s, 20s, 0, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_RENEW:
|
||||
DoCast(me, SPELL_RENEW);
|
||||
events.ScheduleEvent(EVENT_RENEW, urand(25000, 30000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_RENEW, 25s, 30s, 0, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_HOLY_WRATH:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat))
|
||||
DoCast(target, SPELL_HOLY_WRATH);
|
||||
events.ScheduleEvent(EVENT_HOLY_WRATH, urand(12000, 22000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_HOLY_WRATH, 12s, 22s, 0, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_HOLY_FIRE:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random))
|
||||
DoCast(target, SPELL_HOLY_FIRE);
|
||||
events.ScheduleEvent(EVENT_HOLY_FIRE, urand(10000, 24000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_HOLY_FIRE, 10s, 24s, 0, PHASE_ONE);
|
||||
break;
|
||||
case EVENT_HOLY_NOVA:
|
||||
DoCastSelf(SPELL_HOLY_NOVA);
|
||||
events.ScheduleEvent(EVENT_HOLY_NOVA, urand(10000, 24000), 0, PHASE_ONE);
|
||||
events.ScheduleEvent(EVENT_HOLY_NOVA, 10s, 24s, 0, PHASE_ONE);
|
||||
break;
|
||||
|
||||
//
|
||||
@@ -227,17 +227,17 @@ public:
|
||||
case EVENT_VENOM_SPIT:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random))
|
||||
DoCast(target, SPELL_VENOM_SPIT);
|
||||
events.ScheduleEvent(EVENT_VENOM_SPIT, urand(5000, 15000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_VENOM_SPIT, 5s, 15s, 0, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_POISON_CLOUD:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random))
|
||||
DoCast(target, SPELL_POISON_CLOUD);
|
||||
events.ScheduleEvent(EVENT_POISON_CLOUD, urand(15000, 20000), 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_POISON_CLOUD, 15s, 20s, 0, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_PARASITIC_SERPENT:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random))
|
||||
DoCast(target, SPELL_SUMMON_PARASITIC_SERPENT);
|
||||
events.ScheduleEvent(EVENT_PARASITIC_SERPENT, 15000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_PARASITIC_SERPENT, 15s, 0, PHASE_TWO);
|
||||
break;
|
||||
case EVENT_FRENZY:
|
||||
// frenzy at 20% health
|
||||
@@ -255,9 +255,9 @@ public:
|
||||
DoResetThreatList();
|
||||
|
||||
// phase two events (snakeform)
|
||||
events.ScheduleEvent(EVENT_VENOM_SPIT, 5000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_POISON_CLOUD, 10000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_PARASITIC_SERPENT, 30000, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_VENOM_SPIT, 5s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_POISON_CLOUD, 10s, 0, PHASE_TWO);
|
||||
events.ScheduleEvent(EVENT_PARASITIC_SERPENT, 30s, 0, PHASE_TWO);
|
||||
|
||||
// transformed, start phase two
|
||||
events.SetPhase(PHASE_TWO);
|
||||
@@ -301,7 +301,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit*)
|
||||
{
|
||||
events.ScheduleEvent(EVENT_POISON, 8 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_POISON, 8ms);
|
||||
|
||||
if (Creature* Venoxis = GetVenoxis())
|
||||
{
|
||||
@@ -331,7 +331,7 @@ public:
|
||||
case EVENT_POISON:
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_POISON);
|
||||
events.ScheduleEvent(EVENT_POISON, 15 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_POISON, 15ms);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,9 +117,9 @@ public:
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
|
||||
events.ScheduleEvent(EVENT_CHECK_PLAYER, 1000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_ARCHERS, 4000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_PEASANTS, 8000);
|
||||
events.ScheduleEvent(EVENT_CHECK_PLAYER, 1s);
|
||||
events.ScheduleEvent(EVENT_SUMMON_ARCHERS, 4s);
|
||||
events.ScheduleEvent(EVENT_SUMMON_PEASANTS, 8s);
|
||||
}
|
||||
|
||||
bool CanBeSeen(Player const* player) override
|
||||
|
||||
@@ -125,21 +125,21 @@ struct npc_cameron : public ScriptedAI
|
||||
{
|
||||
case STORMWIND_PATH:
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_RANDOM_MOVEMENT, 2000);
|
||||
_events.ScheduleEvent(EVENT_WP_START_GOLDSHIRE, 660000); // 11 minutes
|
||||
_events.ScheduleEvent(EVENT_RANDOM_MOVEMENT, 2s);
|
||||
_events.ScheduleEvent(EVENT_WP_START_GOLDSHIRE, 11min);
|
||||
break;
|
||||
}
|
||||
case GOLDSHIRE_PATH:
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_RANDOM_MOVEMENT, 2000);
|
||||
_events.ScheduleEvent(EVENT_WP_START_WOODS, 900000); // 15 minutes
|
||||
_events.ScheduleEvent(EVENT_RANDOM_MOVEMENT, 2s);
|
||||
_events.ScheduleEvent(EVENT_WP_START_WOODS, 15min);
|
||||
break;
|
||||
}
|
||||
case WOODS_PATH:
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_RANDOM_MOVEMENT, 2000);
|
||||
_events.ScheduleEvent(EVENT_WP_START_HOUSE, 360000); // 6 minutes
|
||||
_events.ScheduleEvent(EVENT_WP_START_LISA, 362000);
|
||||
_events.ScheduleEvent(EVENT_RANDOM_MOVEMENT, 2s);
|
||||
_events.ScheduleEvent(EVENT_WP_START_HOUSE, 6min); // 6 minutes
|
||||
_events.ScheduleEvent(EVENT_WP_START_LISA, 362s);
|
||||
break;
|
||||
}
|
||||
case HOUSE_PATH:
|
||||
@@ -147,7 +147,7 @@ struct npc_cameron : public ScriptedAI
|
||||
// Move childeren at last point
|
||||
MoveTheChildren();
|
||||
// After 30 seconds a random sound should play
|
||||
_events.ScheduleEvent(EVENT_PLAY_SOUNDS, 30000);
|
||||
_events.ScheduleEvent(EVENT_PLAY_SOUNDS, 30s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -159,7 +159,7 @@ struct npc_cameron : public ScriptedAI
|
||||
{
|
||||
// Start event at 7 am
|
||||
// Begin pathing
|
||||
_events.ScheduleEvent(EVENT_BEGIN_EVENT, 2000);
|
||||
_events.ScheduleEvent(EVENT_BEGIN_EVENT, 2s);
|
||||
_started = true;
|
||||
}
|
||||
else if (!start && eventId == GAME_EVENT_CHILDREN_OF_GOLDSHIRE)
|
||||
@@ -273,7 +273,7 @@ struct npc_supervisor_raelen : public ScriptedAI
|
||||
{
|
||||
_PeasentId = 0;
|
||||
peasentGUIDs.clear();
|
||||
_events.ScheduleEvent(EVENT_FIND_PEASENTS, 4000);
|
||||
_events.ScheduleEvent(EVENT_FIND_PEASENTS, 4s);
|
||||
}
|
||||
|
||||
void SetData(uint32 /*type*/, uint32 data) override
|
||||
@@ -282,7 +282,7 @@ struct npc_supervisor_raelen : public ScriptedAI
|
||||
{
|
||||
++_PeasentId;
|
||||
if (_PeasentId == 5) _PeasentId = 0;
|
||||
_events.ScheduleEvent(EVENT_NEXT_PEASENT, urand(2000, 6000));
|
||||
_events.ScheduleEvent(EVENT_NEXT_PEASENT, 2s, 6s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -314,7 +314,7 @@ struct npc_supervisor_raelen : public ScriptedAI
|
||||
peasentGUIDs.push_back(tempGUIDs[0]);
|
||||
peasentGUIDs.push_back(tempGUIDs[1]);
|
||||
peasentGUIDs.push_back(tempGUIDs[4]);
|
||||
_events.ScheduleEvent(EVENT_NEXT_PEASENT, 1000);
|
||||
_events.ScheduleEvent(EVENT_NEXT_PEASENT, 1s);
|
||||
break;
|
||||
}
|
||||
case EVENT_NEXT_PEASENT:
|
||||
@@ -397,11 +397,11 @@ struct npc_eastvale_peasent : public ScriptedAI
|
||||
CreatureTemplate const* cinfo = sObjectMgr->GetCreatureTemplate(me->GetEntry());
|
||||
me->SetSpeed(MOVE_WALK, cinfo->speed_walk);
|
||||
me->RemoveAura(SPELL_TRANSFORM_PEASENT_WITH_WOOD);
|
||||
_events.ScheduleEvent(EVENT_MOVETORAELEN, 3000);
|
||||
_events.ScheduleEvent(EVENT_MOVETORAELEN, 3s);
|
||||
}
|
||||
else if (pathId == _path + 1)
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_TALKTORAELEN1, 1000);
|
||||
_events.ScheduleEvent(EVENT_TALKTORAELEN1, 1s);
|
||||
}
|
||||
else if (pathId == _path + 2)
|
||||
{
|
||||
@@ -430,35 +430,35 @@ struct npc_eastvale_peasent : public ScriptedAI
|
||||
{
|
||||
case PATH_PEASENT_0:
|
||||
me->PlayDirectSound(SOUND_PEASENT_GREETING_1);
|
||||
_events.ScheduleEvent(EVENT_TALKTORAELEN2, 2000);
|
||||
_events.ScheduleEvent(EVENT_TALKTORAELEN2, 2s);
|
||||
break;
|
||||
case PATH_PEASENT_1:
|
||||
case PATH_PEASENT_3:
|
||||
me->PlayDirectSound(SOUND_PEASENT_GREETING_3);
|
||||
_events.ScheduleEvent(EVENT_RAELENTALK, 2000);
|
||||
_events.ScheduleEvent(EVENT_RAELENTALK, 2s);
|
||||
break;
|
||||
case PATH_PEASENT_2:
|
||||
case PATH_PEASENT_4:
|
||||
me->PlayDirectSound(SOUND_PEASENT_GREETING_2);
|
||||
_events.ScheduleEvent(EVENT_RAELENTALK, 2000);
|
||||
_events.ScheduleEvent(EVENT_RAELENTALK, 2s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Path back if realen cannot be found alive
|
||||
_events.ScheduleEvent(EVENT_PATHBACK, 2000);
|
||||
_events.ScheduleEvent(EVENT_PATHBACK, 2s);
|
||||
}
|
||||
break;
|
||||
case EVENT_TALKTORAELEN2:
|
||||
me->PlayDirectSound(SOUND_PEASENT_GREETING_2);
|
||||
_events.ScheduleEvent(EVENT_RAELENTALK, 2000);
|
||||
_events.ScheduleEvent(EVENT_RAELENTALK, 2s);
|
||||
break;
|
||||
case EVENT_RAELENTALK:
|
||||
if (Creature* realen = ObjectAccessor::GetCreature(*me, _realenGUID))
|
||||
{
|
||||
realen->AI()->Talk(SAY_RAELEN);
|
||||
_events.ScheduleEvent(EVENT_TALKTORAELEN3, 5000);
|
||||
_events.ScheduleEvent(EVENT_TALKTORAELEN3, 5s);
|
||||
}
|
||||
break;
|
||||
case EVENT_TALKTORAELEN3:
|
||||
@@ -467,27 +467,27 @@ struct npc_eastvale_peasent : public ScriptedAI
|
||||
{
|
||||
case PATH_PEASENT_0:
|
||||
me->PlayDirectSound(SOUND_PEASENT_LEAVING_1);
|
||||
_events.ScheduleEvent(EVENT_PATHBACK, 2000);
|
||||
_events.ScheduleEvent(EVENT_PATHBACK, 2s);
|
||||
break;
|
||||
case PATH_PEASENT_1:
|
||||
case PATH_PEASENT_3:
|
||||
me->PlayDirectSound(SOUND_PEASENT_LEAVING_4);
|
||||
_events.ScheduleEvent(EVENT_TALKTORAELEN4, 2000);
|
||||
_events.ScheduleEvent(EVENT_TALKTORAELEN4, 2s);
|
||||
break;
|
||||
case PATH_PEASENT_2:
|
||||
me->PlayDirectSound(SOUND_PEASENT_LEAVING_3);
|
||||
_events.ScheduleEvent(EVENT_PATHBACK, 2000);
|
||||
_events.ScheduleEvent(EVENT_PATHBACK, 2s);
|
||||
break;
|
||||
case PATH_PEASENT_4:
|
||||
me->PlayDirectSound(SOUND_PEASENT_LEAVING_2);
|
||||
_events.ScheduleEvent(EVENT_PATHBACK, 2000);
|
||||
_events.ScheduleEvent(EVENT_PATHBACK, 2s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case EVENT_TALKTORAELEN4:
|
||||
me->PlayDirectSound(SOUND_PEASENT_LEAVING_5);
|
||||
_events.ScheduleEvent(EVENT_PATHBACK, 2000);
|
||||
_events.ScheduleEvent(EVENT_PATHBACK, 2s);
|
||||
break;
|
||||
case EVENT_PATHBACK:
|
||||
if (Creature* realen = ObjectAccessor::GetCreature(*me, _realenGUID))
|
||||
|
||||
@@ -41,7 +41,7 @@ struct npc_partygoer_pather : public ScriptedAI
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION_PATHER, urand(11000, 14000));
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION_PATHER, 11s, 14s);
|
||||
}
|
||||
|
||||
void PathEndReached(uint32 /*pathId*/) override
|
||||
@@ -50,7 +50,7 @@ struct npc_partygoer_pather : public ScriptedAI
|
||||
if (_path > 594444)
|
||||
_path = 594440;
|
||||
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION_PATHER, urand(11000,14000));
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION_PATHER, 11s, 14s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -72,35 +72,35 @@ struct npc_partygoer_pather : public ScriptedAI
|
||||
{
|
||||
case 1:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
|
||||
_events.ScheduleEvent(EVENT_PATH, 11000);
|
||||
_events.ScheduleEvent(EVENT_PATH, 11s);
|
||||
break;
|
||||
case 2:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
|
||||
_events.ScheduleEvent(EVENT_PATH, 11000);
|
||||
_events.ScheduleEvent(EVENT_PATH, 11s);
|
||||
break;
|
||||
case 3:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_LAUGH);
|
||||
_events.ScheduleEvent(EVENT_PATH, 11000);
|
||||
_events.ScheduleEvent(EVENT_PATH, 11s);
|
||||
break;
|
||||
case 4:
|
||||
me->LoadEquipment(urand(1, 2));
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_EAT_NO_SHEATHE);
|
||||
_events.ScheduleEvent(EVENT_REMOVE_EQUIPMENT_PATHER, 4000);
|
||||
_events.ScheduleEvent(EVENT_REMOVE_EQUIPMENT_PATHER, 4s);
|
||||
break;
|
||||
case 5:
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DANCE);
|
||||
_events.ScheduleEvent(EVENT_STOP_DANCING_PATHER, 6000);
|
||||
_events.ScheduleEvent(EVENT_STOP_DANCING_PATHER, 6s);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case EVENT_REMOVE_EQUIPMENT_PATHER:
|
||||
me->LoadEquipment(0, true);
|
||||
_events.ScheduleEvent(EVENT_PATH, 8000);
|
||||
_events.ScheduleEvent(EVENT_PATH, 8s);
|
||||
break;
|
||||
case EVENT_STOP_DANCING_PATHER:
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
_events.ScheduleEvent(EVENT_PATH, 5000);
|
||||
_events.ScheduleEvent(EVENT_PATH, 5s);
|
||||
break;
|
||||
break;
|
||||
}
|
||||
@@ -160,48 +160,48 @@ struct npc_partygoer : public ScriptedAI
|
||||
{
|
||||
case 1:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION, urand(13000, 20000));
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION, 13s, 20s);
|
||||
break;
|
||||
case 2:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION, urand(13000, 20000));
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION, 13s, 20s);
|
||||
break;
|
||||
case 3:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_LAUGH);
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION, urand(13000, 20000));
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION, 13s, 20s);
|
||||
break;
|
||||
case 4:
|
||||
me->LoadEquipment(urand(1, 2));
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_EAT_NO_SHEATHE);
|
||||
_events.ScheduleEvent(EVENT_REMOVE_EQUIPMENT, 4000);
|
||||
_events.ScheduleEvent(EVENT_REMOVE_EQUIPMENT, 4s);
|
||||
break;
|
||||
case 5:
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DANCE);
|
||||
_events.ScheduleEvent(EVENT_STOP_DANCING, urand(8000, 16000));
|
||||
_events.ScheduleEvent(EVENT_STOP_DANCING, 8s, 16s);
|
||||
break;
|
||||
case 6:
|
||||
if (GameObject* launcher = me->FindNearestGameObject(GO_FIREWORKS_LAUNCHER, 20.0f))
|
||||
me->SetFacingToObject(launcher);
|
||||
_events.ScheduleEvent(EVENT_THROW_FIREWORKS, 1000);
|
||||
_events.ScheduleEvent(EVENT_THROW_FIREWORKS, 1s);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case EVENT_REMOVE_EQUIPMENT:
|
||||
me->LoadEquipment(0, true);
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION, urand(10000, 20000));
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION, 10s, 20s);
|
||||
break;
|
||||
case EVENT_STOP_DANCING:
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION, urand(10000, 20000));
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION, 10s, 20s);
|
||||
break;
|
||||
case EVENT_THROW_FIREWORKS:
|
||||
me->CastSpell(me, 26295);
|
||||
_events.ScheduleEvent(EVENT_RESET_FACING, 3000);
|
||||
_events.ScheduleEvent(EVENT_RESET_FACING, 3s);
|
||||
break;
|
||||
case EVENT_RESET_FACING:
|
||||
me->SetFacingTo(_facing);
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION, urand(12000, 20000));
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION, 12s, 20s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -161,7 +161,7 @@ struct npc_sentinel_leader : public ScriptedAI
|
||||
{
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE);
|
||||
SentinelSpy->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE);
|
||||
_events.ScheduleEvent(EVENT_QUESTION, 5000);
|
||||
_events.ScheduleEvent(EVENT_QUESTION, 5s);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -170,8 +170,8 @@ struct npc_sentinel_leader : public ScriptedAI
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_SINISTER_STRIKE, urand(5000, 9000));
|
||||
_events.ScheduleEvent(EVENT_BACKSTAB, urand(3000, 5000));
|
||||
_events.ScheduleEvent(EVENT_SINISTER_STRIKE, 5s, 9s);
|
||||
_events.ScheduleEvent(EVENT_BACKSTAB, 3s, 5s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -187,7 +187,7 @@ struct npc_sentinel_leader : public ScriptedAI
|
||||
case EVENT_QUESTION:
|
||||
{
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_QUESTION);
|
||||
_events.ScheduleEvent(EVENT_TALK, 1000);
|
||||
_events.ScheduleEvent(EVENT_TALK, 1s);
|
||||
break;
|
||||
}
|
||||
case EVENT_TALK:
|
||||
@@ -212,11 +212,11 @@ struct npc_sentinel_leader : public ScriptedAI
|
||||
{
|
||||
case EVENT_SINISTER_STRIKE:
|
||||
DoCastVictim(SPELL_SINISTER_STRIKE, true);
|
||||
_events.ScheduleEvent(EVENT_SINISTER_STRIKE, urand(5000, 9000));
|
||||
_events.ScheduleEvent(EVENT_SINISTER_STRIKE, 5s, 9s);
|
||||
break;
|
||||
case EVENT_BACKSTAB:
|
||||
DoCastVictim(SPELL_BACKSTAB, true);
|
||||
_events.ScheduleEvent(EVENT_BACKSTAB, urand(7000, 11000));
|
||||
_events.ScheduleEvent(EVENT_BACKSTAB, 7s, 11s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -291,7 +291,7 @@ struct npc_sentinel_infiltrator : public ScriptedAI
|
||||
{
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE);
|
||||
SentinelInfiltrator->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE);
|
||||
_events.ScheduleEvent(EVENT_TALK2, 2000);
|
||||
_events.ScheduleEvent(EVENT_TALK2, 2s);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -308,7 +308,7 @@ struct npc_sentinel_infiltrator : public ScriptedAI
|
||||
{
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE);
|
||||
SentinelInfiltrator->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE);
|
||||
_events.ScheduleEvent(EVENT_TALK, 2000);
|
||||
_events.ScheduleEvent(EVENT_TALK, 2s);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -319,8 +319,8 @@ struct npc_sentinel_infiltrator : public ScriptedAI
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_GOUGE2, urand(9000, 15000));
|
||||
_events.ScheduleEvent(EVENT_BACKSTAB2, urand(3000, 5000));
|
||||
_events.ScheduleEvent(EVENT_GOUGE2, 9s, 15s);
|
||||
_events.ScheduleEvent(EVENT_BACKSTAB2, 3s, 5s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -340,13 +340,13 @@ struct npc_sentinel_infiltrator : public ScriptedAI
|
||||
{
|
||||
SentinelInfiltrator->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
|
||||
}
|
||||
_events.ScheduleEvent(EVENT_QUESTION, 2000);
|
||||
_events.ScheduleEvent(EVENT_QUESTION, 2s);
|
||||
break;
|
||||
}
|
||||
case EVENT_QUESTION2:
|
||||
{
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_QUESTION);
|
||||
_events.ScheduleEvent(EVENT_EXCLAMATION, 1000);
|
||||
_events.ScheduleEvent(EVENT_EXCLAMATION, 1s);
|
||||
break;
|
||||
}
|
||||
case EVENT_EXCLAMATION:
|
||||
@@ -356,7 +356,7 @@ struct npc_sentinel_infiltrator : public ScriptedAI
|
||||
{
|
||||
SentinelInfiltrator->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
|
||||
}
|
||||
_events.ScheduleEvent(EVENT_SALUTE, 3000);
|
||||
_events.ScheduleEvent(EVENT_SALUTE, 3s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SALUTE:
|
||||
@@ -382,11 +382,11 @@ struct npc_sentinel_infiltrator : public ScriptedAI
|
||||
{
|
||||
case EVENT_GOUGE2:
|
||||
DoCastVictim(SPELL_GOUGE, true);
|
||||
_events.ScheduleEvent(EVENT_GOUGE2, urand(9000, 15000));
|
||||
_events.ScheduleEvent(EVENT_GOUGE2, 9s, 15s);
|
||||
break;
|
||||
case EVENT_BACKSTAB2:
|
||||
DoCastVictim(SPELL_BACKSTAB, true);
|
||||
_events.ScheduleEvent(EVENT_BACKSTAB, urand(7000, 11000));
|
||||
_events.ScheduleEvent(EVENT_BACKSTAB, 7s, 11s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -123,11 +123,11 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_FADE, 30000);
|
||||
_events.ScheduleEvent(EVENT_SUMMON_SKELETON, 20000);
|
||||
_events.ScheduleEvent(EVENT_BLACK_ARROW, 15000);
|
||||
_events.ScheduleEvent(EVENT_SHOOT, 8000);
|
||||
_events.ScheduleEvent(EVENT_MULTI_SHOT, 10000);
|
||||
_events.ScheduleEvent(EVENT_FADE, 30s);
|
||||
_events.ScheduleEvent(EVENT_SUMMON_SKELETON, 20s);
|
||||
_events.ScheduleEvent(EVENT_BLACK_ARROW, 15s);
|
||||
_events.ScheduleEvent(EVENT_SHOOT, 8s);
|
||||
_events.ScheduleEvent(EVENT_MULTI_SHOT, 10s);
|
||||
}
|
||||
|
||||
void SetGUID(ObjectGuid guid, int32 type) override
|
||||
@@ -143,8 +143,8 @@ public:
|
||||
for (uint8 i = 0; i < 4; ++i)
|
||||
me->SummonCreature(NPC_HIGHBORNE_LAMENTER, HighborneLoc[i][0], HighborneLoc[i][1], HIGHBORNE_LOC_Y, HighborneLoc[i][2], TEMPSUMMON_TIMED_DESPAWN, 160000);
|
||||
|
||||
_events.ScheduleEvent(EVENT_LAMENT_OF_THE_HIGHBORN, 2000);
|
||||
_events.ScheduleEvent(EVENT_SUNSORROW_WHISPER, 10000);
|
||||
_events.ScheduleEvent(EVENT_LAMENT_OF_THE_HIGHBORN, 2s);
|
||||
_events.ScheduleEvent(EVENT_SUNSORROW_WHISPER, 10s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -181,26 +181,26 @@ public:
|
||||
if (Unit* victim = me->GetVictim())
|
||||
if (me->GetDistance(victim) > 10.0f)
|
||||
DoCast(victim, SPELL_MULTI_SHOT);
|
||||
_events.ScheduleEvent(EVENT_FADE, urand(30000, 35000));
|
||||
_events.ScheduleEvent(EVENT_FADE, 30s, 35s);
|
||||
break;
|
||||
case EVENT_SUMMON_SKELETON:
|
||||
DoCast(me, SPELL_SUMMON_SKELETON);
|
||||
_events.ScheduleEvent(EVENT_SUMMON_SKELETON, urand(20000, 30000));
|
||||
_events.ScheduleEvent(EVENT_SUMMON_SKELETON, 20s, 30s);
|
||||
break;
|
||||
case EVENT_BLACK_ARROW:
|
||||
if (Unit* victim = me->GetVictim())
|
||||
DoCast(victim, SPELL_BLACK_ARROW);
|
||||
_events.ScheduleEvent(EVENT_BLACK_ARROW, urand(15000, 20000));
|
||||
_events.ScheduleEvent(EVENT_BLACK_ARROW, 15s, 20s);
|
||||
break;
|
||||
case EVENT_SHOOT:
|
||||
if (Unit* victim = me->GetVictim())
|
||||
DoCast(victim, SPELL_SHOT);
|
||||
_events.ScheduleEvent(EVENT_SHOOT, urand(8000, 10000));
|
||||
_events.ScheduleEvent(EVENT_SHOOT, 8s, 10s);
|
||||
break;
|
||||
case EVENT_MULTI_SHOT:
|
||||
if (Unit* victim = me->GetVictim())
|
||||
DoCast(victim, SPELL_MULTI_SHOT);
|
||||
_events.ScheduleEvent(EVENT_MULTI_SHOT, urand(10000, 13000));
|
||||
_events.ScheduleEvent(EVENT_MULTI_SHOT, 10s, 13s);
|
||||
break;
|
||||
case EVENT_LAMENT_OF_THE_HIGHBORN:
|
||||
if (!me->HasAura(SPELL_SYLVANAS_CAST))
|
||||
@@ -214,7 +214,7 @@ public:
|
||||
else
|
||||
{
|
||||
DoSummon(NPC_HIGHBORNE_BUNNY, me, 10.0f, 3000, TEMPSUMMON_TIMED_DESPAWN);
|
||||
_events.ScheduleEvent(EVENT_LAMENT_OF_THE_HIGHBORN, 2000);
|
||||
_events.ScheduleEvent(EVENT_LAMENT_OF_THE_HIGHBORN, 2s);
|
||||
}
|
||||
break;
|
||||
case EVENT_SUNSORROW_WHISPER:
|
||||
@@ -1041,10 +1041,10 @@ public:
|
||||
step = 0;
|
||||
phaseTimer = 0;
|
||||
jainaGUID.Clear();
|
||||
_events.ScheduleEvent(EVENT_WHIRLWIND, 5 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_HEROIC_LEAP, 10 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_AGGRO_JAINA, 2 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_WRYNN_BUFF, 2 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_WHIRLWIND, 5s);
|
||||
_events.ScheduleEvent(EVENT_HEROIC_LEAP, 10s);
|
||||
_events.ScheduleEvent(EVENT_AGGRO_JAINA, 2s);
|
||||
_events.ScheduleEvent(EVENT_WRYNN_BUFF, 2s);
|
||||
me->ApplySpellImmune(0, IMMUNITY_ID, SPELL_SYLVANAS_BUFF, true);
|
||||
|
||||
if (Creature* putress = ObjectAccessor::GetCreature(*me, putressGUID))
|
||||
@@ -2043,11 +2043,11 @@ public:
|
||||
{
|
||||
case EVENT_WHIRLWIND:
|
||||
DoCast(me, SPELL_WHIRLWIND);
|
||||
_events.ScheduleEvent(EVENT_WHIRLWIND, 20 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_WHIRLWIND, 20s);
|
||||
break;
|
||||
case EVENT_HEROIC_LEAP:
|
||||
DoCastVictim(SPELL_HEROIC_LEAP);
|
||||
_events.ScheduleEvent(EVENT_HEROIC_LEAP, urand(15, 30) * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_HEROIC_LEAP, 15s, 30s);
|
||||
break;
|
||||
case EVENT_AGGRO_JAINA:
|
||||
if (me->GetVictim())
|
||||
@@ -2058,11 +2058,11 @@ public:
|
||||
}
|
||||
}
|
||||
DoCast(me, SPELL_THUNDER);
|
||||
_events.ScheduleEvent(EVENT_AGGRO_JAINA, 2 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_AGGRO_JAINA, 2s);
|
||||
break;
|
||||
case EVENT_WRYNN_BUFF:
|
||||
DoCast(me, SPELL_WRYNN_BUFF);
|
||||
_events.ScheduleEvent(EVENT_WRYNN_BUFF, 10 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_WRYNN_BUFF, 10s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -2099,9 +2099,9 @@ public:
|
||||
{
|
||||
me->SetCorpseDelay(1);
|
||||
me->SetRespawnTime(1);
|
||||
_events.ScheduleEvent(EVENT_FIREBALL, 1 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_BLIZZARD, 8 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_ELEMENTAL, 30 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_FIREBALL, 1s);
|
||||
_events.ScheduleEvent(EVENT_BLIZZARD, 8s);
|
||||
_events.ScheduleEvent(EVENT_ELEMENTAL, 30s);
|
||||
me->ApplySpellImmune(0, IMMUNITY_ID, SPELL_THRALL_BUFF, true);
|
||||
me->ApplySpellImmune(0, IMMUNITY_ID, SPELL_SYLVANAS_BUFF, true);
|
||||
}
|
||||
@@ -2123,15 +2123,15 @@ public:
|
||||
case EVENT_FIREBALL:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
|
||||
DoCast(target, SPELL_FIREBALL);
|
||||
_events.ScheduleEvent(EVENT_FIREBALL, 3 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_FIREBALL, 3s);
|
||||
break;
|
||||
case EVENT_BLIZZARD:
|
||||
DoCast(SPELL_BLIZZARD);
|
||||
_events.ScheduleEvent(EVENT_BLIZZARD, 15 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_BLIZZARD, 15s);
|
||||
break;
|
||||
case EVENT_ELEMENTAL:
|
||||
DoCast(SPELL_ELEMENTALS);
|
||||
_events.ScheduleEvent(EVENT_ELEMENTAL, 90 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_ELEMENTAL, 90s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -2173,8 +2173,8 @@ public:
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_INFEST, 2 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_BLIGHT_BREATH, 7.5 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_INFEST, 2s);
|
||||
_events.ScheduleEvent(EVENT_BLIGHT_BREATH, 750ms);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -2194,11 +2194,11 @@ public:
|
||||
case EVENT_INFEST:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0, true))
|
||||
DoCast(target, SPELL_INGEST);
|
||||
_events.ScheduleEvent(EVENT_INFEST, 20 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_INFEST, 20s);
|
||||
break;
|
||||
case EVENT_BLIGHT_BREATH:
|
||||
DoCast(SPELL_BLIGHT_BREATH);
|
||||
_events.ScheduleEvent(EVENT_BLIGHT_BREATH, 15 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_BLIGHT_BREATH, 15s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -2382,11 +2382,11 @@ public:
|
||||
step = 0;
|
||||
phaseTimer = 0;
|
||||
sylvanasfollowGUID.Clear();
|
||||
_events.ScheduleEvent(EVENT_CHAIN_LIGHTNING, 3 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_LAVA_BURST, 5 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_THUNDER, 8 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_AGGRO_SYLVANAS, 2 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_THRALL_BUFF, 2 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_CHAIN_LIGHTNING, 3s);
|
||||
_events.ScheduleEvent(EVENT_LAVA_BURST, 5s);
|
||||
_events.ScheduleEvent(EVENT_THUNDER, 8s);
|
||||
_events.ScheduleEvent(EVENT_AGGRO_SYLVANAS, 2s);
|
||||
_events.ScheduleEvent(EVENT_THRALL_BUFF, 2s);
|
||||
|
||||
if (Creature* valimathras = ObjectAccessor::GetCreature(*me, ValimathrasGUID))
|
||||
{
|
||||
@@ -3929,25 +3929,25 @@ public:
|
||||
{
|
||||
case EVENT_CHAIN_LIGHTNING:
|
||||
DoCastVictim(SPELL_CHAIN_LIGHTNING);
|
||||
_events.ScheduleEvent(EVENT_CHAIN_LIGHTNING, urand(5, 8) * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_CHAIN_LIGHTNING, 5s, 8s);
|
||||
break;
|
||||
case EVENT_LAVA_BURST:
|
||||
DoCastVictim(SPELL_LAVA_BURST);
|
||||
_events.ScheduleEvent(EVENT_LAVA_BURST, urand(3, 5) * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_LAVA_BURST, 3s, 5s);
|
||||
break;
|
||||
case EVENT_THUNDER:
|
||||
DoCast(me, SPELL_THUNDER);
|
||||
_events.ScheduleEvent(EVENT_THUNDER, 15 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_THUNDER, 15s);
|
||||
break;
|
||||
case EVENT_AGGRO_SYLVANAS:
|
||||
if (me->GetVictim())
|
||||
if (Creature* sylvanas = ObjectAccessor::GetCreature(*me, sylvanasfollowGUID))
|
||||
sylvanas->AI()->AttackStart(me->GetVictim());
|
||||
_events.ScheduleEvent(EVENT_AGGRO_SYLVANAS, 2 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_AGGRO_SYLVANAS, 2s);
|
||||
break;
|
||||
case EVENT_THRALL_BUFF:
|
||||
DoCast(me, SPELL_THRALL_BUFF);
|
||||
_events.ScheduleEvent(EVENT_THRALL_BUFF, 10 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_THRALL_BUFF, 10s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -3994,12 +3994,12 @@ public:
|
||||
{
|
||||
me->SetCorpseDelay(1);
|
||||
me->SetRespawnTime(1);
|
||||
_events.ScheduleEvent(EVENT_SUMMON_SKELETON, 20 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_BLACK_ARROW, 15 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_SHOOT, 5 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_MULTI_SHOT, 6 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_SHRIEK_OF_HIGHBORN, 3 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_SYLVANAS_BUFF, 1 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_SUMMON_SKELETON, 20s);
|
||||
_events.ScheduleEvent(EVENT_BLACK_ARROW, 15s);
|
||||
_events.ScheduleEvent(EVENT_SHOOT, 5s);
|
||||
_events.ScheduleEvent(EVENT_MULTI_SHOT, 6s);
|
||||
_events.ScheduleEvent(EVENT_SHRIEK_OF_HIGHBORN, 3s);
|
||||
_events.ScheduleEvent(EVENT_SYLVANAS_BUFF, 1s);
|
||||
me->ApplySpellImmune(0, IMMUNITY_ID, SPELL_WRYNN_BUFF, true);
|
||||
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_INCREASE_SPEED, true);
|
||||
}
|
||||
@@ -4025,26 +4025,26 @@ public:
|
||||
{
|
||||
case EVENT_SUMMON_SKELETON:
|
||||
DoCast(me, SPELL_SUMMON_SKELETON);
|
||||
_events.ScheduleEvent(EVENT_SUMMON_SKELETON, urand(20, 30) * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_SUMMON_SKELETON, 20s, 30s);
|
||||
break;
|
||||
case EVENT_BLACK_ARROW:
|
||||
if (Unit* victim = me->GetVictim())
|
||||
DoCast(victim, SPELL_BLACK_ARROW);
|
||||
_events.ScheduleEvent(EVENT_BLACK_ARROW, urand(6, 9) * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_BLACK_ARROW,6s, 9s);
|
||||
break;
|
||||
case EVENT_SHOOT:
|
||||
if (Unit* victim = me->GetVictim())
|
||||
DoCast(victim, SPELL_SHOT);
|
||||
_events.ScheduleEvent(EVENT_SHOOT, urand(5, 10) * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_SHOOT, 5s, 10s);
|
||||
break;
|
||||
case EVENT_MULTI_SHOT:
|
||||
if (Unit* victim = me->GetVictim())
|
||||
DoCast(victim, SPELL_MULTI_SHOT);
|
||||
_events.ScheduleEvent(EVENT_MULTI_SHOT, urand(10, 13) * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_MULTI_SHOT, 10s, 13s);
|
||||
break;
|
||||
case EVENT_SHRIEK_OF_HIGHBORN:
|
||||
DoCastVictim(SPELL_SHRIEK_OF_HIGHBORN);
|
||||
_events.ScheduleEvent(EVENT_SHRIEK_OF_HIGHBORN, 3 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_SHRIEK_OF_HIGHBORN, 3s);
|
||||
break;
|
||||
case EVENT_SYLVANAS_BUFF:
|
||||
DoCast(me, SPELL_SYLVANAS_BUFF, true);
|
||||
|
||||
@@ -328,7 +328,7 @@ struct npc_dark_iron_attack_generator : public ScriptedAI
|
||||
|
||||
summons.DespawnAll();
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_CHECK_HOUR, 2000);
|
||||
events.ScheduleEvent(EVENT_CHECK_HOUR, 2s);
|
||||
kegCounter = 0;
|
||||
guzzlerCounter = 0;
|
||||
thrown = 0;
|
||||
@@ -396,13 +396,13 @@ struct npc_dark_iron_attack_generator : public ScriptedAI
|
||||
case EVENT_PRE_FINISH_ATTACK:
|
||||
{
|
||||
events.CancelEvent(EVENT_SPAWN_MOLE_MACHINE);
|
||||
events.ScheduleEvent(EVENT_FINISH_ATTACK, 20000);
|
||||
events.ScheduleEvent(EVENT_FINISH_ATTACK, 20s);
|
||||
break;
|
||||
}
|
||||
case EVENT_FINISH_ATTACK:
|
||||
{
|
||||
FinishAttackDueToWin();
|
||||
events.RescheduleEvent(EVENT_CHECK_HOUR, 60000);
|
||||
events.RescheduleEvent(EVENT_CHECK_HOUR, 1min);
|
||||
break;
|
||||
}
|
||||
case EVENT_BARTENDER_SAY:
|
||||
@@ -443,7 +443,7 @@ struct npc_dark_iron_attack_generator : public ScriptedAI
|
||||
}
|
||||
|
||||
Reset();
|
||||
events.RescheduleEvent(EVENT_CHECK_HOUR, 60000);
|
||||
events.RescheduleEvent(EVENT_CHECK_HOUR, 1min);
|
||||
}
|
||||
|
||||
void FinishAttackDueToWin()
|
||||
@@ -521,9 +521,9 @@ struct npc_dark_iron_attack_generator : public ScriptedAI
|
||||
guzzlerCounter = 0;
|
||||
thrown = 0;
|
||||
|
||||
events.ScheduleEvent(EVENT_SPAWN_MOLE_MACHINE, 1500);
|
||||
events.ScheduleEvent(EVENT_PRE_FINISH_ATTACK, 280000);
|
||||
events.ScheduleEvent(EVENT_BARTENDER_SAY, 5000);
|
||||
events.ScheduleEvent(EVENT_SPAWN_MOLE_MACHINE, 1500ms);
|
||||
events.ScheduleEvent(EVENT_PRE_FINISH_ATTACK, 280s);
|
||||
events.ScheduleEvent(EVENT_BARTENDER_SAY, 5s);
|
||||
}
|
||||
|
||||
bool AllowStart()
|
||||
@@ -1588,7 +1588,7 @@ struct npc_coren_direbrew : public ScriptedAI
|
||||
}
|
||||
|
||||
_events.SetPhase(PHASE_INTRO);
|
||||
_events.ScheduleEvent(EVENT_INTRO_1, 6 * IN_MILLISECONDS, 0, PHASE_INTRO);
|
||||
_events.ScheduleEvent(EVENT_INTRO_1, 6s, 0, PHASE_INTRO);
|
||||
Talk(SAY_INTRO);
|
||||
}
|
||||
|
||||
@@ -1609,8 +1609,8 @@ struct npc_coren_direbrew : public ScriptedAI
|
||||
EntryCheckPredicate pred(NPC_ANTAGONIST);
|
||||
_summons.DoAction(ACTION_ANTAGONIST_HOSTILE, pred);
|
||||
|
||||
_events.ScheduleEvent(EVENT_SUMMON_MOLE_MACHINE, 15 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_DIREBREW_DISARM, 20 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_SUMMON_MOLE_MACHINE, 15s);
|
||||
_events.ScheduleEvent(EVENT_DIREBREW_DISARM, 20s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1632,11 +1632,11 @@ struct npc_coren_direbrew : public ScriptedAI
|
||||
{
|
||||
if (summon->GetEntry() == NPC_ILSA_DIREBREW)
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_RESPAWN_ILSA, 1 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_RESPAWN_ILSA, 1s);
|
||||
}
|
||||
else if (summon->GetEntry() == NPC_URSULA_DIREBREW)
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_RESPAWN_URSULA, 1 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_RESPAWN_URSULA, 1s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1686,13 +1686,13 @@ struct npc_coren_direbrew : public ScriptedAI
|
||||
{
|
||||
case EVENT_INTRO_1:
|
||||
Talk(SAY_INTRO1);
|
||||
_events.ScheduleEvent(EVENT_INTRO_2, 4 * IN_MILLISECONDS, 0, PHASE_INTRO);
|
||||
_events.ScheduleEvent(EVENT_INTRO_2, 4s, 0, PHASE_INTRO);
|
||||
break;
|
||||
case EVENT_INTRO_2:
|
||||
{
|
||||
EntryCheckPredicate pred(NPC_ANTAGONIST);
|
||||
_summons.DoAction(ACTION_ANTAGONIST_SAY_1, pred);
|
||||
_events.ScheduleEvent(EVENT_INTRO_3, 3 * IN_MILLISECONDS, 0, PHASE_INTRO);
|
||||
_events.ScheduleEvent(EVENT_INTRO_3, 3s, 0, PHASE_INTRO);
|
||||
break;
|
||||
}
|
||||
case EVENT_INTRO_3:
|
||||
|
||||
@@ -679,10 +679,10 @@ struct npc_hallows_end_soh : public ScriptedAI
|
||||
unitList.push_back((*itr)->GetGUID());
|
||||
}
|
||||
|
||||
events.ScheduleEvent(1, 3000);
|
||||
events.ScheduleEvent(2, 25000);
|
||||
events.ScheduleEvent(2, 43000);
|
||||
events.ScheduleEvent(3, 63000);
|
||||
events.ScheduleEvent(1, 3s);
|
||||
events.ScheduleEvent(2, 25s);
|
||||
events.ScheduleEvent(2, 43s);
|
||||
events.ScheduleEvent(3, 63s);
|
||||
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
@@ -1034,7 +1034,7 @@ struct boss_headless_horseman : public ScriptedAI
|
||||
if (spellInfo->Id == SPELL_SUMMONING_RHYME_TARGET)
|
||||
{
|
||||
playerGUID = target->GetGUID();
|
||||
events.ScheduleEvent(EVENT_HH_PLAYER_TALK, 2000);
|
||||
events.ScheduleEvent(EVENT_HH_PLAYER_TALK, 2s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1055,9 +1055,9 @@ struct boss_headless_horseman : public ScriptedAI
|
||||
me->Yell("Here's my body, fit and pure! Now, your blackened souls I'll cure!", LANG_UNIVERSAL);
|
||||
|
||||
if (phase == 1)
|
||||
events.ScheduleEvent(EVENT_HORSEMAN_CONFLAGRATION, 6000);
|
||||
events.ScheduleEvent(EVENT_HORSEMAN_CONFLAGRATION, 6s);
|
||||
else if (phase == 2)
|
||||
events.ScheduleEvent(EVENT_SUMMON_PUMPKIN, 6000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_PUMPKIN, 6s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1074,8 +1074,8 @@ struct boss_headless_horseman : public ScriptedAI
|
||||
|
||||
me->SetInCombatWithZone();
|
||||
inFight = true;
|
||||
events.ScheduleEvent(EVENT_HORSEMAN_FOLLOW, 500);
|
||||
events.ScheduleEvent(EVENT_HORSEMAN_CLEAVE, 7000);
|
||||
events.ScheduleEvent(EVENT_HORSEMAN_FOLLOW, 500ms);
|
||||
events.ScheduleEvent(EVENT_HORSEMAN_CLEAVE, 7s);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1109,8 +1109,8 @@ struct boss_headless_horseman : public ScriptedAI
|
||||
if (phase < 2)
|
||||
phase++;
|
||||
|
||||
events.ScheduleEvent(EVENT_HORSEMAN_WHIRLWIND, 6000);
|
||||
events.ScheduleEvent(EVENT_HORSEMAN_CHECK_HEALTH, 1000);
|
||||
events.ScheduleEvent(EVENT_HORSEMAN_WHIRLWIND, 6s);
|
||||
events.ScheduleEvent(EVENT_HORSEMAN_CHECK_HEALTH, 1s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,8 +101,8 @@ public:
|
||||
Talk(SAY_WATCH_OUT, who);
|
||||
else
|
||||
{
|
||||
events.ScheduleEvent(EVENT_FIREBALL, 1000);
|
||||
events.ScheduleEvent(EVENT_FROST_NOVA, urand(8000, 12000));
|
||||
events.ScheduleEvent(EVENT_FIREBALL, 1s);
|
||||
events.ScheduleEvent(EVENT_FROST_NOVA, 8s, 12s);
|
||||
if (urand(0, 100) > 40)
|
||||
Talk(SAY_AGGRO, who);
|
||||
}
|
||||
@@ -130,7 +130,7 @@ public:
|
||||
if (type == WAYPOINT_MOTION_TYPE && id == POINT_REACH_IDOL)
|
||||
{
|
||||
channeling = true;
|
||||
events.ScheduleEvent(EVENT_CHANNEL, 2000);
|
||||
events.ScheduleEvent(EVENT_CHANNEL, 2s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,15 +148,15 @@ public:
|
||||
case EVENT_CHANNEL:
|
||||
Talk(SAY_EVENT_START);
|
||||
DoCast(me, SPELL_IDOL_SHUTDOWN_VISUAL);
|
||||
events.ScheduleEvent(EVENT_IDOL_ROOM_SPAWNER, 100);
|
||||
events.ScheduleEvent(EVENT_PROGRESS, 120000);
|
||||
events.ScheduleEvent(EVENT_IDOL_ROOM_SPAWNER, 100ms);
|
||||
events.ScheduleEvent(EVENT_PROGRESS, 120s);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
break;
|
||||
case EVENT_IDOL_ROOM_SPAWNER:
|
||||
if (Creature* creature = me->SummonCreature(NPC_IDOL_ROOM_SPAWNER, PosSummonSpawner[urand(0, 2)], TEMPSUMMON_TIMED_DESPAWN, 4000))
|
||||
creature->AI()->SetData(0, spawnerCount);
|
||||
if (++spawnerCount < 8)
|
||||
events.ScheduleEvent(EVENT_IDOL_ROOM_SPAWNER, 35000);
|
||||
events.ScheduleEvent(EVENT_IDOL_ROOM_SPAWNER, 35s);
|
||||
break;
|
||||
case EVENT_PROGRESS:
|
||||
{
|
||||
@@ -165,23 +165,23 @@ public:
|
||||
case 0:
|
||||
Talk(SAY_EVENT_THREE_MIN_LEFT);
|
||||
++eventProgress;
|
||||
events.ScheduleEvent(EVENT_PROGRESS, 60000);
|
||||
events.ScheduleEvent(EVENT_PROGRESS, 1min);
|
||||
break;
|
||||
case 1:
|
||||
Talk(SAY_EVENT_TWO_MIN_LEFT);
|
||||
++eventProgress;
|
||||
events.ScheduleEvent(EVENT_PROGRESS, 60000);
|
||||
events.ScheduleEvent(EVENT_PROGRESS, 1min);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_EVENT_ONE_MIN_LEFT);
|
||||
++eventProgress;
|
||||
events.ScheduleEvent(EVENT_PROGRESS, 60000);
|
||||
events.ScheduleEvent(EVENT_PROGRESS, 1min);
|
||||
break;
|
||||
case 3:
|
||||
events.CancelEvent(EVENT_IDOL_ROOM_SPAWNER);
|
||||
me->InterruptSpell(CURRENT_CHANNELED_SPELL);
|
||||
Talk(SAY_EVENT_END);
|
||||
events.ScheduleEvent(EVENT_COMPLETE, 3000);
|
||||
events.ScheduleEvent(EVENT_COMPLETE, 3s);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -215,13 +215,13 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING) || !UpdateVictim())
|
||||
return;
|
||||
DoCastVictim(SPELL_FIREBALL);
|
||||
events.ScheduleEvent(EVENT_FIREBALL, 8000);
|
||||
events.ScheduleEvent(EVENT_FIREBALL, 8s);
|
||||
break;
|
||||
case EVENT_FROST_NOVA:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING) || !UpdateVictim())
|
||||
return;
|
||||
DoCast(me, SPELL_FROST_NOVA);
|
||||
events.ScheduleEvent(EVENT_FROST_NOVA, 15000);
|
||||
events.ScheduleEvent(EVENT_FROST_NOVA, 15s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -221,9 +221,9 @@ struct npc_general_andorov : public npc_escortAI
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
events.ScheduleEvent(EVENT_BASH, urand(8, 11) * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_COMMAND_AURA, urand(1, 3) * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_STRIKE, urand(2, 5) * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_BASH, 8s, 11s);
|
||||
events.ScheduleEvent(EVENT_COMMAND_AURA, 1s, 3s);
|
||||
events.ScheduleEvent(EVENT_STRIKE, 2s, 5s);
|
||||
}
|
||||
|
||||
void WaypointReached(uint32 waypointId) override
|
||||
@@ -348,15 +348,15 @@ struct npc_general_andorov : public npc_escortAI
|
||||
{
|
||||
case EVENT_BASH:
|
||||
DoCastVictim(SPELL_BASH);
|
||||
events.ScheduleEvent(EVENT_BASH, urand(25, 38) * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_BASH, 25s, 38s);
|
||||
break;
|
||||
case EVENT_COMMAND_AURA:
|
||||
DoCastSelf(SPELL_AURA_OF_COMMAND, true);
|
||||
events.ScheduleEvent(EVENT_COMMAND_AURA, urand(10, 20) * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_COMMAND_AURA, 10s, 20s);
|
||||
break;
|
||||
case EVENT_STRIKE:
|
||||
DoCastVictim(SPELL_STRIKE);
|
||||
events.ScheduleEvent(EVENT_STRIKE, urand(4, 6) * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_STRIKE, 4s, 6s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -255,7 +255,7 @@ public:
|
||||
if (quest->GetQuestId() == QUEST_A_CRY_FOR_HELP)
|
||||
{
|
||||
_player = player->GetGUID();
|
||||
_events.ScheduleEvent(EVENT_ACCEPT_QUEST, 2000);
|
||||
_events.ScheduleEvent(EVENT_ACCEPT_QUEST, 2s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -270,7 +270,7 @@ public:
|
||||
break;
|
||||
case 28:
|
||||
player->GroupEventHappens(QUEST_A_CRY_FOR_HELP, me);
|
||||
_events.ScheduleEvent(EVENT_TALK_END, 2000);
|
||||
_events.ScheduleEvent(EVENT_TALK_END, 2s);
|
||||
SetRun(true);
|
||||
break;
|
||||
case 29:
|
||||
@@ -297,14 +297,14 @@ public:
|
||||
Talk(SAY_START, player);
|
||||
}
|
||||
me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
||||
_events.ScheduleEvent(EVENT_START_ESCORT, 1000);
|
||||
_events.ScheduleEvent(EVENT_START_ESCORT, 1s);
|
||||
break;
|
||||
case EVENT_START_ESCORT:
|
||||
if (Player* player = ObjectAccessor::GetPlayer(*me, _player))
|
||||
{
|
||||
npc_escortAI::Start(true, false, player->GetGUID());
|
||||
}
|
||||
_events.ScheduleEvent(EVENT_STAND, 2000);
|
||||
_events.ScheduleEvent(EVENT_STAND, 2s);
|
||||
break;
|
||||
case EVENT_STAND: // Remove kneel standstate. Using a separate delayed event because it causes unwanted delay before starting waypoint movement.
|
||||
me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_STAND);
|
||||
@@ -314,7 +314,7 @@ public:
|
||||
{
|
||||
Talk(SAY_END1, player);
|
||||
}
|
||||
_events.ScheduleEvent(EVENT_COWLEN_TALK, 2000);
|
||||
_events.ScheduleEvent(EVENT_COWLEN_TALK, 2s);
|
||||
break;
|
||||
case EVENT_COWLEN_TALK:
|
||||
if (Creature* cowlen = me->FindNearestCreature(NPC_COWLEN, 50.0f, true))
|
||||
@@ -475,7 +475,7 @@ public:
|
||||
player->KilledMonsterCredit(me->GetEntry(), me->GetGUID());
|
||||
|
||||
_movementComplete = true;
|
||||
_events.ScheduleEvent(EVENT_DESPAWN, 3500);
|
||||
_events.ScheduleEvent(EVENT_DESPAWN, 3500ms);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
||||
@@ -78,8 +78,8 @@ public:
|
||||
void EnterCombat(Unit*) override
|
||||
{
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_SPELL_SUNDER_ARMOR, 5000);
|
||||
events.ScheduleEvent(EVENT_SPELL_NET, 10000);
|
||||
events.ScheduleEvent(EVENT_SPELL_SUNDER_ARMOR, 5s);
|
||||
events.ScheduleEvent(EVENT_SPELL_NET, 10s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -146,11 +146,11 @@ public:
|
||||
{
|
||||
case EVENT_SPELL_SUNDER_ARMOR:
|
||||
me->CastSpell(me->GetVictim(), SPELL_SUNDER_ARMOR, false);
|
||||
events.ScheduleEvent(EVENT_SPELL_SUNDER_ARMOR, 15000);
|
||||
events.ScheduleEvent(EVENT_SPELL_SUNDER_ARMOR, 15s);
|
||||
break;
|
||||
case EVENT_SPELL_NET:
|
||||
me->CastSpell(me->GetVictim(), SPELL_NET, false);
|
||||
events.ScheduleEvent(EVENT_SPELL_NET, 25000);
|
||||
events.ScheduleEvent(EVENT_SPELL_NET, 25s);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -469,7 +469,7 @@ public:
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
me->GetMotionMaster()->MoveFollow(player, 1.0f, PET_FOLLOW_ANGLE - (PET_FOLLOW_ANGLE / 4));
|
||||
_events.Reset();
|
||||
_events.ScheduleEvent(EVENT_CHECK_FOLLOWING, 1000);
|
||||
_events.ScheduleEvent(EVENT_CHECK_FOLLOWING, 1s);
|
||||
player->KilledMonsterCredit(NPC_CAPTURED_RABID_THISTLE_BEAR);
|
||||
me->DespawnOrUnsummon(240000);
|
||||
}
|
||||
@@ -496,7 +496,7 @@ public:
|
||||
{
|
||||
me->DespawnOrUnsummon();
|
||||
}
|
||||
_events.ScheduleEvent(EVENT_CHECK_FOLLOWING, 1000);
|
||||
_events.ScheduleEvent(EVENT_CHECK_FOLLOWING, 1s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -568,7 +568,7 @@ public:
|
||||
{
|
||||
_bearGUID = bear->GetGUID();
|
||||
_scriptRunning = true;
|
||||
_events.ScheduleEvent(EVENT_POST_QUEST_ONE, 1000);
|
||||
_events.ScheduleEvent(EVENT_POST_QUEST_ONE, 1s);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -586,14 +586,14 @@ public:
|
||||
Talk(SAY_BE_CLEANSED);
|
||||
me->CastSpell(bear, SPELL_THARNARIUMS_HEAL);
|
||||
}
|
||||
_events.ScheduleEvent(EVENT_POST_QUEST_TWO, 4000);
|
||||
_events.ScheduleEvent(EVENT_POST_QUEST_TWO, 4s);
|
||||
break;
|
||||
case EVENT_POST_QUEST_TWO:
|
||||
if (Creature* bear = ObjectAccessor::GetCreature(*me, _bearGUID))
|
||||
{
|
||||
bear->SetUInt32Value(UNIT_FIELD_BYTES_1, 7);
|
||||
}
|
||||
_events.ScheduleEvent(EVENT_POST_QUEST_THREE, 1000);
|
||||
_events.ScheduleEvent(EVENT_POST_QUEST_THREE, 1s);
|
||||
break;
|
||||
case EVENT_POST_QUEST_THREE:
|
||||
if (Creature* bear = ObjectAccessor::GetCreature(*me, _bearGUID))
|
||||
|
||||
@@ -101,7 +101,7 @@ public:
|
||||
_faction = 35;
|
||||
headNorth = true;
|
||||
me->setActive(true);
|
||||
events.ScheduleEvent(EVENT_RESTART_ESCORT, 0);
|
||||
events.ScheduleEvent(EVENT_RESTART_ESCORT, 0ms);
|
||||
}
|
||||
|
||||
void JustRespawned() override
|
||||
@@ -383,7 +383,7 @@ public:
|
||||
break;
|
||||
}
|
||||
case 282:
|
||||
events.ScheduleEvent(EVENT_RESTART_ESCORT, 1000);
|
||||
events.ScheduleEvent(EVENT_RESTART_ESCORT, 1s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,7 +99,7 @@ public:
|
||||
npc_tiger_matriarch_creditAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
SetCombatMovement(false);
|
||||
events.ScheduleEvent(EVENT_CHECK_SUMMON_AURA, 2000);
|
||||
events.ScheduleEvent(EVENT_CHECK_SUMMON_AURA, 2s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -129,7 +129,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_CHECK_SUMMON_AURA, 5000);
|
||||
events.ScheduleEvent(EVENT_CHECK_SUMMON_AURA, 5s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -157,8 +157,8 @@ public:
|
||||
void EnterCombat(Unit* /*target*/) override
|
||||
{
|
||||
_events.Reset();
|
||||
_events.ScheduleEvent(EVENT_POUNCE, 100);
|
||||
_events.ScheduleEvent(EVENT_NOSUMMON, 50000);
|
||||
_events.ScheduleEvent(EVENT_POUNCE, 100ms);
|
||||
_events.ScheduleEvent(EVENT_NOSUMMON, 50s);
|
||||
}
|
||||
|
||||
void IsSummonedBy(WorldObject* summoner) override
|
||||
@@ -232,7 +232,7 @@ public:
|
||||
{
|
||||
case EVENT_POUNCE:
|
||||
DoCastVictim(SPELL_POUNCE);
|
||||
_events.ScheduleEvent(EVENT_POUNCE, 30000);
|
||||
_events.ScheduleEvent(EVENT_POUNCE, 30s);
|
||||
break;
|
||||
case EVENT_NOSUMMON: // Reapply SPELL_NO_SUMMON_AURA
|
||||
if (Unit* tiger = ObjectAccessor::GetUnit(*me, _tigerGuid))
|
||||
@@ -241,7 +241,7 @@ public:
|
||||
if (Unit* vehSummoner = tiger->ToTempSummon()->GetSummonerUnit())
|
||||
me->AddAura(SPELL_NO_SUMMON_AURA, vehSummoner);
|
||||
}
|
||||
_events.ScheduleEvent(EVENT_NOSUMMON, 50000);
|
||||
_events.ScheduleEvent(EVENT_NOSUMMON, 50s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -146,7 +146,7 @@ public:
|
||||
}
|
||||
|
||||
_events.CancelEvent(EVENT_WANDERING_START);
|
||||
_events.ScheduleEvent(EVENT_FINAL_TALK, 5 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_FINAL_TALK, 5s);
|
||||
}
|
||||
|
||||
void EnterEvadeMode(EvadeReason why) override
|
||||
@@ -207,8 +207,8 @@ public:
|
||||
me->SetFaction(FACTION_ESCORT_N_NEUTRAL_ACTIVE);
|
||||
me->GetMotionMaster()->MoveFollow(player, 3.f, M_PI);
|
||||
|
||||
_events.ScheduleEvent(EVENT_WANDERING_START, urand(40 * IN_MILLISECONDS, 70 * IN_MILLISECONDS));
|
||||
_events.ScheduleEvent(EVENT_CHECK_FOLLOWER, 30 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_WANDERING_START, 40s, 70s);
|
||||
_events.ScheduleEvent(EVENT_CHECK_FOLLOWER, 30s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -243,9 +243,9 @@ public:
|
||||
Position pos = me->GetFirstCollisionPosition(15.f, rand_norm() * static_cast<float>(2 * M_PI));
|
||||
me->GetMotionMaster()->MovePoint(0, pos);
|
||||
Talk(TALK_2);
|
||||
_events.ScheduleEvent(EVENT_WANDERING_START, urand(60 * IN_MILLISECONDS, 70 * IN_MILLISECONDS));
|
||||
_events.ScheduleEvent(EVENT_WANDERING_TALK, 3 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_WANDERING_RANDOM, 8 * IN_MILLISECONDS);
|
||||
_events.ScheduleEvent(EVENT_WANDERING_START, 60s, 70s);
|
||||
_events.ScheduleEvent(EVENT_WANDERING_TALK, 3s);
|
||||
_events.ScheduleEvent(EVENT_WANDERING_RANDOM, 8s);
|
||||
break;
|
||||
}
|
||||
case EVENT_WANDERING_TALK:
|
||||
|
||||
@@ -607,8 +607,8 @@ public:
|
||||
void EnterCombat(Unit* /*attacker*/) override
|
||||
{
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_CAST_CLEAVE, urand(3000, 5000));
|
||||
events.ScheduleEvent(EVENT_CAST_STARFALL, urand(8000, 10000));
|
||||
events.ScheduleEvent(EVENT_CAST_CLEAVE, 3s, 5s);
|
||||
events.ScheduleEvent(EVENT_CAST_STARFALL, 8s, 10s);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -623,7 +623,7 @@ public:
|
||||
if (me->HasAura(SPELL_OMEN_STARFALL))
|
||||
me->RemoveAurasDueToSpell(SPELL_OMEN_STARFALL);
|
||||
|
||||
events.RescheduleEvent(EVENT_CAST_STARFALL, urand(14000, 16000));
|
||||
events.RescheduleEvent(EVENT_CAST_STARFALL, 14s, 16s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -638,12 +638,12 @@ public:
|
||||
{
|
||||
case EVENT_CAST_CLEAVE:
|
||||
DoCastVictim(SPELL_OMEN_CLEAVE);
|
||||
events.ScheduleEvent(EVENT_CAST_CLEAVE, urand(8000, 10000));
|
||||
events.ScheduleEvent(EVENT_CAST_CLEAVE, 8s, 10s);
|
||||
break;
|
||||
case EVENT_CAST_STARFALL:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
|
||||
DoCast(target, SPELL_OMEN_STARFALL);
|
||||
events.ScheduleEvent(EVENT_CAST_STARFALL, urand(14000, 16000));
|
||||
events.ScheduleEvent(EVENT_CAST_STARFALL, 14s, 16s);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -671,7 +671,7 @@ public:
|
||||
void Reset() override
|
||||
{
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_DESPAWN, 5 * MINUTE * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_DESPAWN, 5min);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
|
||||
@@ -435,7 +435,7 @@ public:
|
||||
SetEscortPaused(true);
|
||||
DoSummonPriestess();
|
||||
Talk(SAY_RANSHALLA_ALTAR_2);
|
||||
events.ScheduleEvent(EVENT_RESUME, 2000);
|
||||
events.ScheduleEvent(EVENT_RESUME, 2s);
|
||||
break;
|
||||
case 44:
|
||||
// Stop the escort and turn towards the altar
|
||||
|
||||
Reference in New Issue
Block a user