mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-25 06:36:24 +00:00
refactor(Core/EventMap): Refactor EventMap and related scripts (#23121)
Co-authored-by: Kelno <3866946+kelno@users.noreply.github.com> Co-authored-by: Peter Keresztes Schmidt <carbenium@outlook.com>
This commit is contained in:
@@ -80,7 +80,7 @@ void CombatAI::JustEngagedWith(Unit* who)
|
||||
if (AISpellInfo[*i].condition == AICOND_AGGRO)
|
||||
me->CastSpell(who, *i, false);
|
||||
else if (AISpellInfo[*i].condition == AICOND_COMBAT)
|
||||
events.ScheduleEvent(*i, AISpellInfo[*i].cooldown + rand() % AISpellInfo[*i].cooldown);
|
||||
events.ScheduleEvent(*i, Milliseconds(AISpellInfo[*i].cooldown + rand() % AISpellInfo[*i].cooldown));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ void CombatAI::UpdateAI(uint32 diff)
|
||||
if (uint32 spellId = events.ExecuteEvent())
|
||||
{
|
||||
DoCast(spellId);
|
||||
events.ScheduleEvent(spellId, AISpellInfo[spellId].cooldown + rand() % AISpellInfo[spellId].cooldown);
|
||||
events.ScheduleEvent(spellId, Milliseconds(AISpellInfo[spellId].cooldown + rand() % AISpellInfo[spellId].cooldown));
|
||||
}
|
||||
else
|
||||
DoMeleeAttackIfReady();
|
||||
@@ -143,7 +143,7 @@ void CasterAI::JustEngagedWith(Unit* who)
|
||||
DoCast(spells[spell]);
|
||||
cooldown += me->GetCurrentSpellCastTime(*itr);
|
||||
}
|
||||
events.ScheduleEvent(*itr, cooldown);
|
||||
events.ScheduleEvent(*itr, Milliseconds(cooldown));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -168,7 +168,7 @@ void CasterAI::UpdateAI(uint32 diff)
|
||||
{
|
||||
DoCast(spellId);
|
||||
uint32 casttime = me->GetCurrentSpellCastTime(spellId);
|
||||
events.ScheduleEvent(spellId, (casttime ? casttime : 500) + GetAISpellInfo(spellId)->realCooldown);
|
||||
events.ScheduleEvent(spellId, Milliseconds((casttime ? casttime : 500) + GetAISpellInfo(spellId)->realCooldown));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -101,7 +101,7 @@ void BattlegroundAB::PostUpdateImpl(uint32 diff)
|
||||
uint8 controlledPoints = _controlledPoints[teamId];
|
||||
if (controlledPoints == 0)
|
||||
{
|
||||
_bgEvents.ScheduleEvent(eventId, 3000);
|
||||
_bgEvents.ScheduleEvent(eventId, 3s);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -170,8 +170,8 @@ void BattlegroundAB::StartingEventOpenDoors()
|
||||
DoorOpen(BG_AB_OBJECT_GATE_A);
|
||||
DoorOpen(BG_AB_OBJECT_GATE_H);
|
||||
StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, BG_AB_EVENT_START_BATTLE);
|
||||
_bgEvents.ScheduleEvent(BG_AB_EVENT_ALLIANCE_TICK, 3000);
|
||||
_bgEvents.ScheduleEvent(BG_AB_EVENT_HORDE_TICK, 3000);
|
||||
_bgEvents.ScheduleEvent(BG_AB_EVENT_ALLIANCE_TICK, 3s);
|
||||
_bgEvents.ScheduleEvent(BG_AB_EVENT_HORDE_TICK, 3s);
|
||||
}
|
||||
|
||||
void BattlegroundAB::AddPlayer(Player* player)
|
||||
|
||||
@@ -170,12 +170,11 @@ enum BG_AB_Misc
|
||||
|
||||
BG_AB_WARNING_NEAR_VICTORY_SCORE = 1400,
|
||||
BG_AB_MAX_TEAM_SCORE = 1600,
|
||||
|
||||
BG_AB_FLAG_CAPTURING_TIME = 60000,
|
||||
BG_AB_BANNER_UPDATE_TIME = 2000
|
||||
};
|
||||
constexpr Milliseconds BG_AB_FLAG_CAPTURING_TIME = 60s;
|
||||
constexpr Milliseconds BG_AB_BANNER_UPDATE_TIME = 2s;
|
||||
|
||||
const uint32 BG_AB_TickIntervals[BG_AB_DYNAMIC_NODES_COUNT + 1] = {0, 12000, 9000, 6000, 3000, 1000};
|
||||
const Milliseconds BG_AB_TickIntervals[BG_AB_DYNAMIC_NODES_COUNT + 1] = {0ms, 12s, 9s, 6s, 3s, 1s};
|
||||
const uint32 BG_AB_TickPoints[BG_AB_DYNAMIC_NODES_COUNT + 1] = {0, 10, 10, 10, 10, 30};
|
||||
const uint32 BG_AB_GraveyardIds[BG_AB_ALL_NODES_COUNT] = {895, 894, 893, 897, 896, 898, 899};
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ void BattlegroundEY::PostUpdateImpl(uint32 diff)
|
||||
AddPoints(TEAM_ALLIANCE, BG_EY_TickPoints[_ownedPointsCount[TEAM_ALLIANCE] - 1]);
|
||||
if (_ownedPointsCount[TEAM_HORDE] > 0)
|
||||
AddPoints(TEAM_HORDE, BG_EY_TickPoints[_ownedPointsCount[TEAM_HORDE] - 1]);
|
||||
_bgEvents.ScheduleEvent(BG_EY_EVENT_ADD_POINTS, BG_EY_FPOINTS_TICK_TIME - (GameTime::GetGameTimeMS().count() % BG_EY_FPOINTS_TICK_TIME));
|
||||
_bgEvents.ScheduleEvent(BG_EY_EVENT_ADD_POINTS, BG_EY_FPOINTS_TICK_TIME - (GameTime::GetGameTimeMS() % BG_EY_FPOINTS_TICK_TIME));
|
||||
break;
|
||||
case BG_EY_EVENT_FLAG_ON_GROUND:
|
||||
RespawnFlagAfterDrop();
|
||||
@@ -78,7 +78,7 @@ void BattlegroundEY::PostUpdateImpl(uint32 diff)
|
||||
break;
|
||||
case BG_EY_EVENT_CHECK_CPOINTS:
|
||||
UpdatePointsState();
|
||||
_bgEvents.ScheduleEvent(BG_EY_EVENT_CHECK_CPOINTS, BG_EY_FPOINTS_CHECK_TIME - (GameTime::GetGameTimeMS().count() % BG_EY_FPOINTS_CHECK_TIME));
|
||||
_bgEvents.ScheduleEvent(BG_EY_EVENT_CHECK_CPOINTS, BG_EY_FPOINTS_CHECK_TIME - (GameTime::GetGameTimeMS() % BG_EY_FPOINTS_CHECK_TIME));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -106,8 +106,8 @@ void BattlegroundEY::StartingEventOpenDoors()
|
||||
|
||||
// Achievement: Flurry
|
||||
StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, BG_EY_EVENT_START_BATTLE);
|
||||
_bgEvents.ScheduleEvent(BG_EY_EVENT_ADD_POINTS, 0);
|
||||
_bgEvents.ScheduleEvent(BG_EY_EVENT_CHECK_CPOINTS, 0);
|
||||
_bgEvents.ScheduleEvent(BG_EY_EVENT_ADD_POINTS, 0ms);
|
||||
_bgEvents.ScheduleEvent(BG_EY_EVENT_CHECK_CPOINTS, 0ms);
|
||||
}
|
||||
|
||||
void BattlegroundEY::AddPoints(TeamId teamId, uint32 points)
|
||||
|
||||
@@ -31,13 +31,10 @@ enum BG_EY_Events
|
||||
BG_EY_EVENT_CHECK_CPOINTS = 4
|
||||
};
|
||||
|
||||
enum BG_EY_Timers
|
||||
{
|
||||
BG_EY_FLAG_RESPAWN_TIME = 10 * IN_MILLISECONDS,
|
||||
BG_EY_FLAG_ON_GROUND_TIME = 10 * IN_MILLISECONDS,
|
||||
BG_EY_FPOINTS_CHECK_TIME = 2 * IN_MILLISECONDS,
|
||||
BG_EY_FPOINTS_TICK_TIME = 2 * IN_MILLISECONDS
|
||||
};
|
||||
constexpr Milliseconds BG_EY_FLAG_RESPAWN_TIME = 10s;
|
||||
constexpr Milliseconds BG_EY_FLAG_ON_GROUND_TIME = 10s;
|
||||
constexpr Milliseconds BG_EY_FPOINTS_CHECK_TIME = 2s;
|
||||
constexpr Milliseconds BG_EY_FPOINTS_TICK_TIME = 2s;
|
||||
|
||||
enum BG_EY_ProgressBarConsts
|
||||
{
|
||||
|
||||
@@ -63,7 +63,7 @@ void BattlegroundWS::PostUpdateImpl(uint32 diff)
|
||||
{
|
||||
case BG_WS_EVENT_UPDATE_GAME_TIME:
|
||||
UpdateWorldState(WORLD_STATE_BATTLEGROUND_WS_STATE_TIMER, GetMatchTime());
|
||||
_bgEvents.ScheduleEvent(BG_WS_EVENT_UPDATE_GAME_TIME, ((BG_WS_TOTAL_GAME_TIME - GetStartTime()) % (MINUTE * IN_MILLISECONDS)) + 1);
|
||||
_bgEvents.ScheduleEvent(BG_WS_EVENT_UPDATE_GAME_TIME, Milliseconds(((BG_WS_TOTAL_GAME_TIME - GetStartTime()) % (MINUTE * IN_MILLISECONDS)) + 1));
|
||||
break;
|
||||
case BG_WS_EVENT_NO_TIME_LEFT:
|
||||
if (GetTeamScore(TEAM_ALLIANCE) == GetTeamScore(TEAM_HORDE))
|
||||
@@ -137,8 +137,8 @@ void BattlegroundWS::StartingEventOpenDoors()
|
||||
|
||||
StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, WS_EVENT_START_BATTLE);
|
||||
UpdateWorldState(WORLD_STATE_BATTLEGROUND_WS_STATE_TIMER_ACTIVE, 1);
|
||||
_bgEvents.ScheduleEvent(BG_WS_EVENT_UPDATE_GAME_TIME, 0);
|
||||
_bgEvents.ScheduleEvent(BG_WS_EVENT_NO_TIME_LEFT, BG_WS_TOTAL_GAME_TIME - 2 * MINUTE * IN_MILLISECONDS); // 27 - 2 = 25 minutes
|
||||
_bgEvents.ScheduleEvent(BG_WS_EVENT_UPDATE_GAME_TIME, 0ms);
|
||||
_bgEvents.ScheduleEvent(BG_WS_EVENT_NO_TIME_LEFT, Milliseconds(BG_WS_TOTAL_GAME_TIME - 2 * MINUTE * IN_MILLISECONDS)); // 27 - 2 = 25 minutes
|
||||
_bgEvents.ScheduleEvent(BG_WS_EVENT_DESPAWN_DOORS, BG_WS_DOOR_DESPAWN_TIME);
|
||||
}
|
||||
|
||||
@@ -229,7 +229,7 @@ void BattlegroundWS::EventPlayerCapturedFlag(Player* player)
|
||||
EndBattleground(GetTeamScore(TEAM_HORDE) == _configurableMaxTeamScore ? TEAM_HORDE : TEAM_ALLIANCE);
|
||||
}
|
||||
else
|
||||
_bgEvents.ScheduleEvent(BG_WS_EVENT_RESPAWN_BOTH_FLAGS, BG_WS_FLAG_RESPAWN_TIME);
|
||||
_bgEvents.ScheduleEvent(BG_WS_EVENT_RESPAWN_BOTH_FLAGS, Milliseconds(BG_WS_FLAG_RESPAWN_TIME));
|
||||
|
||||
_bgEvents.CancelEvent(BG_WS_EVENT_BOTH_FLAGS_KEPT10);
|
||||
_bgEvents.CancelEvent(BG_WS_EVENT_BOTH_FLAGS_KEPT15);
|
||||
@@ -580,10 +580,10 @@ uint32 BattlegroundWS::GetAssaultSpellId() const
|
||||
{
|
||||
if ((!GetFlagPickerGUID(TEAM_ALLIANCE) && GetFlagState(TEAM_ALLIANCE) != BG_WS_FLAG_STATE_ON_GROUND) ||
|
||||
(!GetFlagPickerGUID(TEAM_HORDE) && GetFlagState(TEAM_HORDE) != BG_WS_FLAG_STATE_ON_GROUND) ||
|
||||
_bgEvents.GetNextEventTime(BG_WS_EVENT_BOTH_FLAGS_KEPT10) > 0)
|
||||
_bgEvents.HasTimeUntilEvent(BG_WS_EVENT_BOTH_FLAGS_KEPT10))
|
||||
return 0;
|
||||
|
||||
return _bgEvents.GetNextEventTime(BG_WS_EVENT_BOTH_FLAGS_KEPT15) > 0 ? BG_WS_SPELL_FOCUSED_ASSAULT : BG_WS_SPELL_BRUTAL_ASSAULT;
|
||||
return _bgEvents.HasTimeUntilEvent(BG_WS_EVENT_BOTH_FLAGS_KEPT15) ? BG_WS_SPELL_FOCUSED_ASSAULT : BG_WS_SPELL_BRUTAL_ASSAULT;
|
||||
}
|
||||
|
||||
void BattlegroundWS::RemoveAssaultAuras()
|
||||
|
||||
@@ -39,12 +39,12 @@ enum BG_WS_TimerOrScore
|
||||
BG_WS_MAX_TEAM_SCORE = 3,
|
||||
|
||||
BG_WS_TOTAL_GAME_TIME = 27 * MINUTE * IN_MILLISECONDS,
|
||||
BG_WS_FLAG_RESPAWN_TIME = 23 * IN_MILLISECONDS,
|
||||
BG_WS_FLAG_DROP_TIME = 10 * IN_MILLISECONDS,
|
||||
BG_WS_SPELL_FORCE_TIME = 10 * MINUTE * IN_MILLISECONDS,
|
||||
BG_WS_SPELL_BRUTAL_TIME = 15 * MINUTE * IN_MILLISECONDS,
|
||||
BG_WS_DOOR_DESPAWN_TIME = 5 * IN_MILLISECONDS
|
||||
BG_WS_FLAG_RESPAWN_TIME = 23 * IN_MILLISECONDS
|
||||
};
|
||||
constexpr Milliseconds BG_WS_FLAG_DROP_TIME = 10s;
|
||||
constexpr Milliseconds BG_WS_SPELL_FORCE_TIME = 600s;
|
||||
constexpr Milliseconds BG_WS_SPELL_BRUTAL_TIME = 900s;
|
||||
constexpr Milliseconds BG_WS_DOOR_DESPAWN_TIME = 5s;
|
||||
|
||||
enum BG_WS_BroadcastTexts
|
||||
{
|
||||
|
||||
@@ -213,7 +213,7 @@ public:
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
return;
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHECK_RESET, 5000);
|
||||
events.ScheduleEvent(EVENT_CHECK_RESET, 5s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,12 +27,13 @@
|
||||
|
||||
enum IronhandData
|
||||
{
|
||||
IRONHAND_FLAMES_TIMER = 16000,
|
||||
IRONHAND_FLAMES_TIMER_RAND = 3000,
|
||||
IRONHAND_N_GROUPS = 3,
|
||||
SPELL_GOUT_OF_FLAMES = 15529
|
||||
};
|
||||
|
||||
constexpr Milliseconds IRONHAND_FLAMES_TIMER = 16s;
|
||||
constexpr Milliseconds IRONHAND_FLAMES_TIMER_RAND = 3s;
|
||||
|
||||
class go_shadowforge_brazier : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
@@ -110,7 +111,7 @@ public:
|
||||
{
|
||||
case SPELL_GOUT_OF_FLAMES:
|
||||
DoCast(SPELL_GOUT_OF_FLAMES);
|
||||
events.RescheduleEvent(SPELL_GOUT_OF_FLAMES, urand(IRONHAND_FLAMES_TIMER - IRONHAND_FLAMES_TIMER_RAND, IRONHAND_FLAMES_TIMER + IRONHAND_FLAMES_TIMER_RAND));
|
||||
events.RescheduleEvent(SPELL_GOUT_OF_FLAMES, IRONHAND_FLAMES_TIMER - IRONHAND_FLAMES_TIMER_RAND, IRONHAND_FLAMES_TIMER + IRONHAND_FLAMES_TIMER_RAND);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -28,14 +28,11 @@ enum Spells
|
||||
SPELL_ENVELOPING_WEB = 15471
|
||||
};
|
||||
|
||||
enum Timers
|
||||
{
|
||||
TIMER_SHADOWBOLT = 7000,
|
||||
TIMER_CURSE_TONGUES = 24000,
|
||||
TIMER_CURSE_WEAKNESS = 12000,
|
||||
TIMER_DEMON_ARMOR = 3000, // virtually only cast once
|
||||
TIMER_ENVELOPING_WEB = 16000
|
||||
};
|
||||
constexpr Milliseconds TIMER_SHADOWBOLT = 7s;
|
||||
constexpr Milliseconds TIMER_CURSE_TONGUES = 24s;
|
||||
constexpr Milliseconds TIMER_CURSE_WEAKNESS = 12s;
|
||||
constexpr Milliseconds TIMER_DEMON_ARMOR = 3s; //virtually only cast once
|
||||
constexpr Milliseconds TIMER_ENVELOPING_WEB = 16s;
|
||||
|
||||
class boss_anubshiah : public CreatureScript
|
||||
{
|
||||
@@ -54,11 +51,11 @@ public:
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_JustEngagedWith();
|
||||
events.ScheduleEvent(SPELL_SHADOWBOLT, 0.2 * (int)TIMER_SHADOWBOLT);
|
||||
events.ScheduleEvent(SPELL_CURSE_TONGUES, 0.2 * (int)TIMER_CURSE_TONGUES);
|
||||
events.ScheduleEvent(SPELL_CURSE_WEAKNESS, 0.2 * (int)TIMER_CURSE_WEAKNESS);
|
||||
events.ScheduleEvent(SPELL_DEMON_ARMOR, 0.2 * (int)TIMER_DEMON_ARMOR);
|
||||
events.ScheduleEvent(SPELL_ENVELOPING_WEB, 0.2 * (int)TIMER_ENVELOPING_WEB);
|
||||
events.ScheduleEvent(SPELL_SHADOWBOLT, TIMER_SHADOWBOLT / 5);
|
||||
events.ScheduleEvent(SPELL_CURSE_TONGUES, TIMER_CURSE_TONGUES / 5);
|
||||
events.ScheduleEvent(SPELL_CURSE_WEAKNESS, TIMER_CURSE_WEAKNESS / 5);
|
||||
events.ScheduleEvent(SPELL_DEMON_ARMOR, TIMER_DEMON_ARMOR / 5);
|
||||
events.ScheduleEvent(SPELL_ENVELOPING_WEB, TIMER_ENVELOPING_WEB / 5);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -80,21 +77,21 @@ public:
|
||||
{
|
||||
case SPELL_SHADOWBOLT:
|
||||
DoCastVictim(SPELL_SHADOWBOLT);
|
||||
events.ScheduleEvent(SPELL_SHADOWBOLT, urand(TIMER_SHADOWBOLT - 2000, TIMER_SHADOWBOLT + 2000));
|
||||
events.ScheduleEvent(SPELL_SHADOWBOLT, TIMER_SHADOWBOLT - 2s, TIMER_SHADOWBOLT + 2s);
|
||||
break;
|
||||
case SPELL_CURSE_TONGUES:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100, true))
|
||||
{
|
||||
DoCast(target, SPELL_CURSE_TONGUES);
|
||||
}
|
||||
events.ScheduleEvent(SPELL_CURSE_TONGUES, urand(TIMER_CURSE_TONGUES - 2000, TIMER_CURSE_TONGUES + 2000));
|
||||
events.ScheduleEvent(SPELL_CURSE_TONGUES, TIMER_CURSE_TONGUES - 2s, TIMER_CURSE_TONGUES + 2s);
|
||||
break;
|
||||
case SPELL_CURSE_WEAKNESS:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100, true))
|
||||
{
|
||||
DoCast(target, SPELL_CURSE_WEAKNESS);
|
||||
}
|
||||
events.ScheduleEvent(SPELL_CURSE_WEAKNESS, urand(TIMER_CURSE_WEAKNESS - 2000, TIMER_CURSE_WEAKNESS + 2000));
|
||||
events.ScheduleEvent(SPELL_CURSE_WEAKNESS, TIMER_CURSE_WEAKNESS - 2s, TIMER_CURSE_WEAKNESS + 2s);
|
||||
break;
|
||||
case SPELL_DEMON_ARMOR:
|
||||
DoCast(me, SPELL_DEMON_ARMOR);
|
||||
@@ -103,7 +100,7 @@ public:
|
||||
case SPELL_ENVELOPING_WEB:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100, true))
|
||||
DoCast(target, SPELL_ENVELOPING_WEB);
|
||||
events.ScheduleEvent(SPELL_ENVELOPING_WEB, urand(TIMER_ENVELOPING_WEB - 2000, TIMER_ENVELOPING_WEB + 2000));
|
||||
events.ScheduleEvent(SPELL_ENVELOPING_WEB, TIMER_ENVELOPING_WEB - 2s, TIMER_ENVELOPING_WEB + 2s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -26,12 +26,9 @@ enum Spells
|
||||
SPELL_SHIELD = 7121
|
||||
};
|
||||
|
||||
enum Timers
|
||||
{
|
||||
TIMER_SHADOWBOLT_VOLLEY = 7000,
|
||||
TIMER_REND = 20000,
|
||||
TIMER_SHIELD = 12000
|
||||
};
|
||||
constexpr Milliseconds TIMER_SHADOWBOLT_VOLLEY = 7s;
|
||||
constexpr Milliseconds TIMER_REND = 20s;
|
||||
constexpr Milliseconds TIMER_SHIELD = 12s;
|
||||
|
||||
class boss_eviscerator : public CreatureScript
|
||||
{
|
||||
@@ -52,9 +49,9 @@ public:
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_JustEngagedWith();
|
||||
events.ScheduleEvent(SPELL_SHADOWBOLT_VOLLEY, 0.2 * (int)TIMER_SHADOWBOLT_VOLLEY);
|
||||
events.ScheduleEvent(SPELL_REND, 0.2 * (int) TIMER_REND);
|
||||
events.ScheduleEvent(SPELL_SHIELD, 0.2 * (int) TIMER_SHIELD);
|
||||
events.ScheduleEvent(SPELL_SHADOWBOLT_VOLLEY, TIMER_SHADOWBOLT_VOLLEY / 5);
|
||||
events.ScheduleEvent(SPELL_REND, TIMER_REND / 5);
|
||||
events.ScheduleEvent(SPELL_SHIELD, TIMER_SHIELD / 5);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /* doneBy */, uint32& /* damage */, DamageEffectType /* damagetype */, SpellSchoolMask damageSchoolMask) override
|
||||
@@ -86,11 +83,11 @@ public:
|
||||
{
|
||||
case SPELL_SHADOWBOLT_VOLLEY:
|
||||
DoCastVictim(SPELL_SHADOWBOLT_VOLLEY);
|
||||
events.ScheduleEvent(SPELL_SHADOWBOLT_VOLLEY, urand(TIMER_SHADOWBOLT_VOLLEY - 2000, TIMER_SHADOWBOLT_VOLLEY + 2000));
|
||||
events.ScheduleEvent(SPELL_SHADOWBOLT_VOLLEY, TIMER_SHADOWBOLT_VOLLEY - 2s, TIMER_SHADOWBOLT_VOLLEY + 2s);
|
||||
break;
|
||||
case SPELL_REND:
|
||||
DoCastVictim(SPELL_REND);
|
||||
events.ScheduleEvent(SPELL_REND, urand(TIMER_REND - 2000, TIMER_REND + 2000));
|
||||
events.ScheduleEvent(SPELL_REND, TIMER_REND - 2s, TIMER_REND + 2s);
|
||||
break;
|
||||
case SPELL_SHIELD:
|
||||
SpellShieldReady = true;
|
||||
|
||||
@@ -26,12 +26,9 @@ enum Spells
|
||||
SPELL_BLOODLUST = 21049
|
||||
};
|
||||
|
||||
enum Timers
|
||||
{
|
||||
TIMER_WHIRLWIND = 12000,
|
||||
TIMER_MORTAL = 22000,
|
||||
TIMER_BLOODLUST = 30000
|
||||
};
|
||||
constexpr Milliseconds TIMER_WHIRLWIND = 12s;
|
||||
constexpr Milliseconds TIMER_MORTAL = 22s;
|
||||
constexpr Milliseconds TIMER_BLOODLUST = 30s;
|
||||
|
||||
class boss_gorosh_the_dervish : public CreatureScript
|
||||
{
|
||||
@@ -47,14 +44,14 @@ public:
|
||||
{
|
||||
boss_gorosh_the_dervishAI(Creature* creature) : BossAI(creature, DATA_GOROSH) { }
|
||||
|
||||
uint32 nextWhirlwindTime;
|
||||
Milliseconds nextWhirlwindTime;
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_JustEngagedWith();
|
||||
events.ScheduleEvent(SPELL_WHIRLWIND, 0.2 * (int) TIMER_WHIRLWIND);
|
||||
events.ScheduleEvent(SPELL_MORTALSTRIKE, 0.2 * (int) TIMER_MORTAL);
|
||||
events.ScheduleEvent(SPELL_BLOODLUST, 0.2 * (int) TIMER_BLOODLUST);
|
||||
events.ScheduleEvent(SPELL_WHIRLWIND, TIMER_WHIRLWIND / 5);
|
||||
events.ScheduleEvent(SPELL_MORTALSTRIKE, TIMER_MORTAL / 5);
|
||||
events.ScheduleEvent(SPELL_BLOODLUST, TIMER_BLOODLUST / 5);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -78,22 +75,22 @@ public:
|
||||
if (me->GetDistance2d(me->GetVictim()) < 10.0f)
|
||||
{
|
||||
DoCastVictim(SPELL_WHIRLWIND);
|
||||
nextWhirlwindTime = urand(TIMER_WHIRLWIND - 2000, TIMER_WHIRLWIND + 2000);
|
||||
nextWhirlwindTime = randtime(TIMER_WHIRLWIND - 2s, TIMER_WHIRLWIND + 2s);
|
||||
}
|
||||
else
|
||||
{
|
||||
// reschedule sooner
|
||||
nextWhirlwindTime = 0.3 * urand(TIMER_WHIRLWIND - 2000, TIMER_WHIRLWIND + 2000);
|
||||
nextWhirlwindTime = randtime(TIMER_WHIRLWIND - 2s, TIMER_WHIRLWIND + 2s) / 3;
|
||||
}
|
||||
events.ScheduleEvent(SPELL_WHIRLWIND, nextWhirlwindTime);
|
||||
break;
|
||||
case SPELL_MORTALSTRIKE:
|
||||
DoCastVictim(SPELL_MORTALSTRIKE);
|
||||
events.ScheduleEvent(SPELL_MORTALSTRIKE, urand(TIMER_MORTAL - 2000, TIMER_MORTAL + 2000));
|
||||
events.ScheduleEvent(SPELL_MORTALSTRIKE, TIMER_MORTAL - 2s, TIMER_MORTAL + 2s);
|
||||
break;
|
||||
case SPELL_BLOODLUST:
|
||||
DoCastSelf(SPELL_BLOODLUST);
|
||||
events.ScheduleEvent(SPELL_BLOODLUST, urand(TIMER_BLOODLUST - 2000, TIMER_BLOODLUST + 2000));
|
||||
events.ScheduleEvent(SPELL_BLOODLUST, TIMER_BLOODLUST - 2s, TIMER_BLOODLUST + 2s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -26,11 +26,8 @@ enum Grizzle
|
||||
EMOTE_FRENZY_KILL = 0
|
||||
};
|
||||
|
||||
enum Timer
|
||||
{
|
||||
TIMER_GROUNDTREMOR = 10000,
|
||||
TIMER_FRENZY = 15000
|
||||
};
|
||||
constexpr Milliseconds TIMER_GROUNDTREMOR = 10s;
|
||||
constexpr Milliseconds TIMER_FRENZY = 15s;
|
||||
|
||||
class boss_grizzle : public CreatureScript
|
||||
{
|
||||
@@ -46,13 +43,13 @@ public:
|
||||
{
|
||||
boss_grizzleAI(Creature* creature) : BossAI(creature, DATA_GRIZZLE) {}
|
||||
|
||||
uint32 nextTremorTime;
|
||||
Milliseconds nextTremorTime;
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_JustEngagedWith();
|
||||
events.ScheduleEvent(SPELL_GROUNDTREMOR, 0.2 * (int) TIMER_GROUNDTREMOR);
|
||||
events.ScheduleEvent(SPELL_FRENZY, 0.2 * (int) TIMER_FRENZY);
|
||||
events.ScheduleEvent(SPELL_GROUNDTREMOR, TIMER_GROUNDTREMOR / 5);
|
||||
events.ScheduleEvent(SPELL_FRENZY, TIMER_FRENZY / 5);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -77,17 +74,17 @@ public:
|
||||
if (me->GetDistance2d(me->GetVictim()) < 10.0f)
|
||||
{
|
||||
DoCastVictim(SPELL_GROUNDTREMOR);
|
||||
nextTremorTime = urand(TIMER_GROUNDTREMOR - 2000, TIMER_GROUNDTREMOR + 2000);
|
||||
nextTremorTime = randtime(TIMER_GROUNDTREMOR - 2s, TIMER_GROUNDTREMOR + 2s);
|
||||
}
|
||||
else
|
||||
{
|
||||
nextTremorTime = 0.3*urand(TIMER_GROUNDTREMOR - 2000, TIMER_GROUNDTREMOR + 2000);
|
||||
nextTremorTime = randtime(TIMER_GROUNDTREMOR - 2s, TIMER_GROUNDTREMOR + 2s) / 3;
|
||||
}
|
||||
events.ScheduleEvent(SPELL_GROUNDTREMOR, nextTremorTime);
|
||||
break;
|
||||
case SPELL_FRENZY:
|
||||
DoCastSelf(SPELL_FRENZY);
|
||||
events.ScheduleEvent(SPELL_FRENZY, urand(TIMER_FRENZY - 2000, TIMER_FRENZY + 2000));
|
||||
events.ScheduleEvent(SPELL_FRENZY, TIMER_FRENZY - 2s, TIMER_FRENZY + 2s);
|
||||
Talk(EMOTE_FRENZY_KILL);
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -26,12 +26,9 @@ enum Spells
|
||||
SPELL_WEB_EXPLOSION = 15474
|
||||
};
|
||||
|
||||
enum Timers
|
||||
{
|
||||
TIMER_PARALYZING = 20000,
|
||||
TIMER_BANEFUL = 24000,
|
||||
TIMER_WEB_EXPLOSION = 20000
|
||||
};
|
||||
constexpr Milliseconds TIMER_PARALYZING = 20s;
|
||||
constexpr Milliseconds TIMER_BANEFUL = 24s;
|
||||
constexpr Milliseconds TIMER_WEB_EXPLOSION = 20s;
|
||||
|
||||
class boss_hedrum : public CreatureScript
|
||||
{
|
||||
@@ -50,9 +47,9 @@ public:
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_JustEngagedWith();
|
||||
events.ScheduleEvent(SPELL_PARALYZING, 0.2 * (int) TIMER_PARALYZING);
|
||||
events.ScheduleEvent(SPELL_BANEFUL, 0.2 * (int) TIMER_BANEFUL);
|
||||
events.ScheduleEvent(SPELL_WEB_EXPLOSION, 0.2 * (int) TIMER_WEB_EXPLOSION);
|
||||
events.ScheduleEvent(SPELL_PARALYZING, TIMER_PARALYZING / 5);
|
||||
events.ScheduleEvent(SPELL_BANEFUL, TIMER_BANEFUL / 5);
|
||||
events.ScheduleEvent(SPELL_WEB_EXPLOSION, TIMER_WEB_EXPLOSION / 5);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -74,18 +71,18 @@ public:
|
||||
{
|
||||
case SPELL_PARALYZING:
|
||||
DoCastVictim(SPELL_PARALYZING);
|
||||
events.ScheduleEvent(SPELL_PARALYZING, urand(TIMER_PARALYZING - 2000, TIMER_PARALYZING + 2000));
|
||||
events.ScheduleEvent(SPELL_PARALYZING, TIMER_PARALYZING - 2s, TIMER_PARALYZING + 2s);
|
||||
break;
|
||||
case SPELL_BANEFUL:
|
||||
DoCastVictim(SPELL_BANEFUL);
|
||||
events.ScheduleEvent(SPELL_BANEFUL, urand(TIMER_BANEFUL - 2000, TIMER_BANEFUL + 2000));
|
||||
events.ScheduleEvent(SPELL_BANEFUL, TIMER_BANEFUL - 2s, TIMER_BANEFUL + 2s);
|
||||
break;
|
||||
case SPELL_WEB_EXPLOSION:
|
||||
if (me->GetDistance2d(me->GetVictim()) < 100.0f)
|
||||
{
|
||||
DoCast(SPELL_WEB_EXPLOSION);
|
||||
}
|
||||
events.ScheduleEvent(SPELL_WEB_EXPLOSION, urand(TIMER_WEB_EXPLOSION - 2000, TIMER_WEB_EXPLOSION + 2000));
|
||||
events.ScheduleEvent(SPELL_WEB_EXPLOSION, TIMER_WEB_EXPLOSION - 2s, TIMER_WEB_EXPLOSION + 2s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -28,14 +28,11 @@ enum Spells
|
||||
SPELL_WORDPAIN = 15654,
|
||||
};
|
||||
|
||||
enum SpellTimers
|
||||
{
|
||||
TIMER_HEAL = 12000,
|
||||
TIMER_MINDBLAST = 16000,
|
||||
TIMER_RENEW = 12000,
|
||||
TIMER_SHADOWBOLT = 16000,
|
||||
TIMER_WORDPAIN = 12000,
|
||||
};
|
||||
constexpr Milliseconds TIMER_HEAL = 12s;
|
||||
constexpr Milliseconds TIMER_MINDBLAST = 16s;
|
||||
constexpr Milliseconds TIMER_RENEW = 12s;
|
||||
constexpr Milliseconds TIMER_SHADOWBOLT = 16s;
|
||||
constexpr Milliseconds TIMER_WORDPAIN = 12s;
|
||||
|
||||
struct boss_moira_bronzebeardAI : public BossAI
|
||||
{
|
||||
@@ -44,9 +41,9 @@ struct boss_moira_bronzebeardAI : public BossAI
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_JustEngagedWith();
|
||||
events.ScheduleEvent(SPELL_MINDBLAST, 0.5 * (int) TIMER_MINDBLAST);
|
||||
events.ScheduleEvent(SPELL_HEAL, 0.5 * (int) TIMER_HEAL);
|
||||
events.ScheduleEvent(SPELL_RENEW, 0.5 * (int) TIMER_RENEW);
|
||||
events.ScheduleEvent(SPELL_MINDBLAST, TIMER_MINDBLAST / 2);
|
||||
events.ScheduleEvent(SPELL_HEAL, TIMER_HEAL / 2);
|
||||
events.ScheduleEvent(SPELL_RENEW, TIMER_RENEW / 2);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -67,7 +64,7 @@ struct boss_moira_bronzebeardAI : public BossAI
|
||||
{
|
||||
case SPELL_MINDBLAST:
|
||||
DoCastVictim(SPELL_MINDBLAST);
|
||||
events.ScheduleEvent(SPELL_MINDBLAST, urand(TIMER_MINDBLAST - 2000, TIMER_MINDBLAST + 2000));
|
||||
events.ScheduleEvent(SPELL_MINDBLAST, TIMER_MINDBLAST - 2s, TIMER_MINDBLAST + 2s);
|
||||
break;
|
||||
case SPELL_HEAL:
|
||||
CastOnEmperorIfPossible(SPELL_HEAL, TIMER_HEAL);
|
||||
@@ -82,7 +79,7 @@ struct boss_moira_bronzebeardAI : public BossAI
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void CastOnEmperorIfPossible(uint32 spell, uint32 timer)
|
||||
void CastOnEmperorIfPossible(uint32 spell, Milliseconds timer)
|
||||
{
|
||||
Creature* emperor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EMPEROR));
|
||||
if (emperor && emperor->HealthBelowPct(90))
|
||||
@@ -93,7 +90,7 @@ struct boss_moira_bronzebeardAI : public BossAI
|
||||
{
|
||||
DoCastSelf(spell);
|
||||
}
|
||||
events.ScheduleEvent(spell, urand(timer - 2000, timer + 2000));
|
||||
events.ScheduleEvent(spell, timer - 2s, timer + 2s);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -107,10 +104,10 @@ struct boss_high_priestess_thaurissanAI : public boss_moira_bronzebeardAI
|
||||
{
|
||||
_JustEngagedWith();
|
||||
Talk(0);
|
||||
events.ScheduleEvent(SPELL_WORDPAIN, 0.5 * (int)TIMER_WORDPAIN);
|
||||
events.ScheduleEvent(SPELL_HEAL, 0.5 * (int) TIMER_HEAL);
|
||||
events.ScheduleEvent(SPELL_RENEW, 0.5 * (int) TIMER_RENEW);
|
||||
events.ScheduleEvent(SPELL_SHADOWBOLT, 0.5 * (int) TIMER_SHADOWBOLT);
|
||||
events.ScheduleEvent(SPELL_WORDPAIN, TIMER_WORDPAIN / 2);
|
||||
events.ScheduleEvent(SPELL_HEAL, TIMER_HEAL / 2);
|
||||
events.ScheduleEvent(SPELL_RENEW, TIMER_RENEW / 2);
|
||||
events.ScheduleEvent(SPELL_SHADOWBOLT, TIMER_SHADOWBOLT / 2);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -131,7 +128,7 @@ struct boss_high_priestess_thaurissanAI : public boss_moira_bronzebeardAI
|
||||
{
|
||||
case SPELL_WORDPAIN:
|
||||
DoCastVictim(SPELL_WORDPAIN);
|
||||
events.ScheduleEvent(SPELL_WORDPAIN, urand(TIMER_WORDPAIN - 2000, TIMER_WORDPAIN + 2000));
|
||||
events.ScheduleEvent(SPELL_WORDPAIN, TIMER_WORDPAIN - 2s, TIMER_WORDPAIN + 2s);
|
||||
break;
|
||||
case SPELL_HEAL:
|
||||
CastOnEmperorIfPossible(SPELL_HEAL, TIMER_HEAL);
|
||||
@@ -141,7 +138,7 @@ struct boss_high_priestess_thaurissanAI : public boss_moira_bronzebeardAI
|
||||
break;
|
||||
case SPELL_SHADOWBOLT:
|
||||
DoCastVictim(SPELL_SHADOWBOLT);
|
||||
events.ScheduleEvent(SPELL_SHADOWBOLT, urand(TIMER_SHADOWBOLT - 2000, TIMER_SHADOWBOLT + 2000));
|
||||
events.ScheduleEvent(SPELL_SHADOWBOLT, TIMER_SHADOWBOLT - 2s, TIMER_SHADOWBOLT + 2s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -27,13 +27,10 @@ enum Spells
|
||||
SPELL_SLOW = 19137
|
||||
};
|
||||
|
||||
enum Timers
|
||||
{
|
||||
TIMER_ARCANE_BOLT = 7000,
|
||||
TIMER_ARCANE_EXPLOSION = 24000,
|
||||
TIMER_POLYMORPH = 12000,
|
||||
TIMER_SLOW = 15000
|
||||
};
|
||||
constexpr Milliseconds TIMER_ARCANE_BOLT = 7s;
|
||||
constexpr Milliseconds TIMER_ARCANE_EXPLOSION = 24s;
|
||||
constexpr Milliseconds TIMER_POLYMORPH = 12s;
|
||||
constexpr Milliseconds TIMER_SLOW = 15s;
|
||||
|
||||
class boss_okthor : public CreatureScript
|
||||
{
|
||||
@@ -49,15 +46,15 @@ public:
|
||||
{
|
||||
boss_okthorAI(Creature* creature) : BossAI(creature, DATA_OKTHOR) {}
|
||||
|
||||
uint32 nextArcaneExplosionTime;
|
||||
Milliseconds nextArcaneExplosionTime;
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_JustEngagedWith();
|
||||
events.ScheduleEvent(SPELL_ARCANE_BOLT, 0.2 * (int) TIMER_ARCANE_BOLT);
|
||||
events.ScheduleEvent(SPELL_ARCANE_EXPLOSION, 0.2 * (int) TIMER_ARCANE_EXPLOSION);
|
||||
events.ScheduleEvent(SPELL_POLYMORPH, 0.2 * (int) TIMER_POLYMORPH);
|
||||
events.ScheduleEvent(SPELL_SLOW, 500);
|
||||
events.ScheduleEvent(SPELL_ARCANE_BOLT, TIMER_ARCANE_BOLT / 5);
|
||||
events.ScheduleEvent(SPELL_ARCANE_EXPLOSION, TIMER_ARCANE_EXPLOSION / 5);
|
||||
events.ScheduleEvent(SPELL_POLYMORPH, TIMER_POLYMORPH / 5);
|
||||
events.ScheduleEvent(SPELL_SLOW, 500ms);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -82,17 +79,17 @@ public:
|
||||
{
|
||||
DoCast(target, SPELL_ARCANE_BOLT);
|
||||
}
|
||||
events.ScheduleEvent(SPELL_ARCANE_BOLT, urand(TIMER_ARCANE_BOLT - 2000, TIMER_ARCANE_BOLT + 2000));
|
||||
events.ScheduleEvent(SPELL_ARCANE_BOLT, TIMER_ARCANE_BOLT - 2s, TIMER_ARCANE_BOLT + 2s);
|
||||
break;
|
||||
case SPELL_ARCANE_EXPLOSION:
|
||||
if (me->GetDistance2d(me->GetVictim()) < 50.0f)
|
||||
{
|
||||
DoCast(SPELL_ARCANE_EXPLOSION);
|
||||
nextArcaneExplosionTime = urand(TIMER_ARCANE_EXPLOSION - 2000, TIMER_ARCANE_EXPLOSION + 2000);
|
||||
nextArcaneExplosionTime = randtime(TIMER_ARCANE_EXPLOSION - 2s, TIMER_ARCANE_EXPLOSION + 2s);
|
||||
}
|
||||
else
|
||||
{
|
||||
nextArcaneExplosionTime = 0.3*urand(TIMER_ARCANE_EXPLOSION - 2000, TIMER_ARCANE_EXPLOSION + 2000);
|
||||
nextArcaneExplosionTime = randtime(TIMER_ARCANE_EXPLOSION - 2s, TIMER_ARCANE_EXPLOSION + 2s) / 3;
|
||||
}
|
||||
events.ScheduleEvent(SPELL_ARCANE_EXPLOSION, nextArcaneExplosionTime);
|
||||
break;
|
||||
@@ -101,7 +98,7 @@ public:
|
||||
{
|
||||
DoCast(target, SPELL_POLYMORPH);
|
||||
}
|
||||
events.ScheduleEvent(SPELL_POLYMORPH, urand(TIMER_POLYMORPH - 2000, TIMER_POLYMORPH + 2000));
|
||||
events.ScheduleEvent(SPELL_POLYMORPH, TIMER_POLYMORPH - 2s, TIMER_POLYMORPH + 2s);
|
||||
break;
|
||||
case SPELL_SLOW:
|
||||
if (me->GetDistance2d(me->GetVictim()) < 50.0f)
|
||||
|
||||
@@ -96,7 +96,7 @@ public:
|
||||
|
||||
void IsSummonedBy(WorldObject* /*summoner*/) override
|
||||
{
|
||||
events.ScheduleEvent(EVENT_SUMMONED_1, 1000);
|
||||
events.ScheduleEvent(EVENT_SUMMONED_1, 1s);
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* summon) override
|
||||
|
||||
@@ -71,7 +71,7 @@ public:
|
||||
|
||||
void IsSummonedBy(WorldObject* /*summoner*/) override
|
||||
{
|
||||
StartTalking(TALK_SUMMON, 8 * IN_MILLISECONDS);
|
||||
StartTalking(TALK_SUMMON, 8s);
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* who) override
|
||||
@@ -92,7 +92,7 @@ public:
|
||||
instance->SetData(DATA_LORD_VALTHALAK, DONE);
|
||||
}
|
||||
|
||||
void StartTalking(uint32 talkGroupId, uint32 timer)
|
||||
void StartTalking(uint32 talkGroupId, Milliseconds timer)
|
||||
{
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
@@ -123,7 +123,7 @@ public:
|
||||
|
||||
events.CancelEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN);
|
||||
|
||||
StartTalking(TALK_40_HP, 5 * IN_MILLISECONDS);
|
||||
StartTalking(TALK_40_HP, 5s);
|
||||
}
|
||||
|
||||
if (!frenzy15 && me->HealthBelowPctDamaged(15, damage))
|
||||
@@ -132,7 +132,7 @@ public:
|
||||
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, 12s, 19s, 0, EVENT_PHASE_FIGHT);
|
||||
|
||||
StartTalking(TALK_15_HP, 5 * IN_MILLISECONDS);
|
||||
StartTalking(TALK_15_HP, 5s);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -108,11 +108,11 @@ struct boss_quartermaster_zigris : public BossAI
|
||||
if (me->IsWithinMeleeRange(me->GetVictim()))
|
||||
{
|
||||
DoCastVictim(SPELL_HOOKEDNET);
|
||||
events.RepeatEvent(16000);
|
||||
events.Repeat(16s);
|
||||
}
|
||||
else
|
||||
{
|
||||
events.RepeatEvent(3000);
|
||||
events.Repeat(3s);
|
||||
}
|
||||
break;
|
||||
case EVENT_SHOOT:
|
||||
@@ -128,7 +128,7 @@ struct boss_quartermaster_zigris : public BossAI
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->GetMotionMaster()->MoveChase(me->GetVictim());
|
||||
}
|
||||
events.RepeatEvent(2000);
|
||||
events.Repeat(2s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -222,7 +222,7 @@ public:
|
||||
if (GameObject* portcullis = me->FindNearestGameObject(GO_DR_PORTCULLIS, 50.0f))
|
||||
waveDoorGUID = portcullis->GetGUID();
|
||||
|
||||
events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0ms);
|
||||
events.ScheduleEvent(EVENT_START_1, 1s);
|
||||
}
|
||||
}
|
||||
@@ -264,7 +264,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_START_2, 4s);
|
||||
break;
|
||||
case EVENT_START_2:
|
||||
events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0ms);
|
||||
if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))
|
||||
victor->HandleEmoteCommand(EMOTE_ONESHOT_POINT);
|
||||
events.ScheduleEvent(EVENT_START_3, 4s);
|
||||
@@ -314,14 +314,14 @@ public:
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE, 3s);
|
||||
break;
|
||||
case EVENT_WAVES_TEXT_2:
|
||||
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_3);
|
||||
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);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0ms);
|
||||
if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))
|
||||
victor->AI()->Talk(SAY_NEFARIUS_4);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4s);
|
||||
@@ -334,14 +334,14 @@ public:
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE, 3s);
|
||||
break;
|
||||
case EVENT_WAVES_TEXT_5:
|
||||
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_5);
|
||||
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);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0ms);
|
||||
if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))
|
||||
victor->AI()->Talk(SAY_NEFARIUS_6);
|
||||
events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4s);
|
||||
|
||||
@@ -227,7 +227,7 @@ public:
|
||||
case EVENT_FIREBALL:
|
||||
DoCastVictim(SPELL_FIREBALL);
|
||||
events.ScheduleEvent(EVENT_FIREBALL, 8s, 21s);
|
||||
if (events.GetNextEventTime(EVENT_FIREBLAST) < 3 * IN_MILLISECONDS)
|
||||
if (events.GetTimeUntilEvent(EVENT_FIREBLAST) < 3s)
|
||||
{
|
||||
events.RescheduleEvent(EVENT_FIREBLAST, 3s);
|
||||
}
|
||||
@@ -235,7 +235,7 @@ public:
|
||||
case EVENT_FIREBLAST:
|
||||
DoCastVictim(SPELL_FIREBLAST);
|
||||
events.ScheduleEvent(EVENT_FIREBLAST, 5s, 8s);
|
||||
if (events.GetNextEventTime(EVENT_FIREBALL) < 3 * IN_MILLISECONDS)
|
||||
if (events.GetTimeUntilEvent(EVENT_FIREBALL) < 3s)
|
||||
{
|
||||
events.RescheduleEvent(EVENT_FIREBALL, 3s);
|
||||
}
|
||||
|
||||
@@ -98,31 +98,31 @@ public:
|
||||
{
|
||||
case EVENT_SNAP_KICK:
|
||||
DoCastVictim(SPELL_SNAPKICK);
|
||||
events.RepeatEvent(6 * IN_MILLISECONDS);
|
||||
events.Repeat(6s);
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
DoCastVictim(SPELL_CLEAVE);
|
||||
events.RepeatEvent(12 * IN_MILLISECONDS);
|
||||
events.Repeat(12s);
|
||||
break;
|
||||
case EVENT_UPPERCUT:
|
||||
DoCastVictim(SPELL_UPPERCUT);
|
||||
events.RepeatEvent(14 * IN_MILLISECONDS);
|
||||
events.Repeat(14s);
|
||||
break;
|
||||
case EVENT_MORTAL_STRIKE:
|
||||
DoCastVictim(SPELL_MORTALSTRIKE);
|
||||
events.RepeatEvent(10 * IN_MILLISECONDS);
|
||||
events.Repeat(10s);
|
||||
break;
|
||||
case EVENT_PUMMEL:
|
||||
DoCastVictim(SPELL_PUMMEL);
|
||||
events.RepeatEvent(16 * IN_MILLISECONDS);
|
||||
events.Repeat(16s);
|
||||
break;
|
||||
case EVENT_THROW_AXE:
|
||||
DoCastRandomTarget(SPELL_THROWAXE);
|
||||
events.RepeatEvent(8 * IN_MILLISECONDS);
|
||||
events.Repeat(8s);
|
||||
break;
|
||||
case EVENT_THRASH:
|
||||
DoCastSelf(SPELL_THRASH);
|
||||
events.RepeatEvent(10 * IN_MILLISECONDS);
|
||||
events.Repeat(10s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,10 +39,7 @@ enum EventIds
|
||||
EVENT_SOLAKAR_WAVE = 3
|
||||
};
|
||||
|
||||
enum Timers
|
||||
{
|
||||
TIMER_SOLAKAR_WAVE = 30000
|
||||
};
|
||||
constexpr Milliseconds TIMER_SOLAKAR_WAVE = 30s;
|
||||
|
||||
enum SolakarWaves
|
||||
{
|
||||
|
||||
@@ -345,7 +345,7 @@ public:
|
||||
{
|
||||
case NPC_BLACKWING_DRAGON:
|
||||
--addsCount[0];
|
||||
if (EggEvent != DONE && _events.GetTimeUntilEvent(EVENT_RAZOR_SPAWN) == Milliseconds::max())
|
||||
if (EggEvent != DONE && !_events.HasTimeUntilEvent(EVENT_RAZOR_SPAWN))
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_RAZOR_SPAWN, 1s);
|
||||
}
|
||||
@@ -353,7 +353,7 @@ public:
|
||||
case NPC_BLACKWING_LEGIONAIRE:
|
||||
case NPC_BLACKWING_MAGE:
|
||||
--addsCount[1];
|
||||
if (EggEvent != DONE && _events.GetTimeUntilEvent(EVENT_RAZOR_SPAWN) == Milliseconds::max())
|
||||
if (EggEvent != DONE && !_events.HasTimeUntilEvent(EVENT_RAZOR_SPAWN))
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_RAZOR_SPAWN, 1s);
|
||||
}
|
||||
@@ -413,7 +413,7 @@ public:
|
||||
|
||||
if (spawnMoreAdds)
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_RAZOR_SPAWN, 15000);
|
||||
_events.ScheduleEvent(EVENT_RAZOR_SPAWN, 15s);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -91,7 +91,7 @@ public:
|
||||
case EVENT_INFERNO:
|
||||
{
|
||||
DoCastAOE(SPELL_INFERNO);
|
||||
events.RepeatEvent(urand(21000, 26000));
|
||||
events.Repeat(21s, 26s);
|
||||
break;
|
||||
}
|
||||
case EVENT_IGNITE_MANA:
|
||||
@@ -101,7 +101,7 @@ public:
|
||||
DoCast(target, SPELL_IGNITE_MANA);
|
||||
}
|
||||
|
||||
events.RepeatEvent(urand(27000, 32000));
|
||||
events.Repeat(27s, 32s);
|
||||
break;
|
||||
}
|
||||
case EVENT_LIVING_BOMB:
|
||||
@@ -111,7 +111,7 @@ public:
|
||||
DoCast(target, SPELL_LIVING_BOMB);
|
||||
}
|
||||
|
||||
events.RepeatEvent(urand(11000, 16000));
|
||||
events.Repeat(11s, 16s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,13 +111,13 @@ public:
|
||||
case EVENT_ANTIMAGIC_PULSE:
|
||||
{
|
||||
DoCastSelf(SPELL_ANTIMAGIC_PULSE);
|
||||
events.RepeatEvent(20000);
|
||||
events.Repeat(20s);
|
||||
break;
|
||||
}
|
||||
case EVENT_MAGMA_SHACKLES:
|
||||
{
|
||||
DoCastSelf(SPELL_MAGMA_SHACKLES);
|
||||
events.RepeatEvent(15000);
|
||||
events.Repeat(15s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ public:
|
||||
case EVENT_GEHENNAS_CURSE:
|
||||
{
|
||||
DoCastVictim(SPELL_GEHENNAS_CURSE);
|
||||
events.RepeatEvent(urand(25000, 30000));
|
||||
events.Repeat(25s, 30s);
|
||||
break;
|
||||
}
|
||||
case EVENT_RAIN_OF_FIRE:
|
||||
@@ -67,7 +67,7 @@ public:
|
||||
{
|
||||
DoCast(target, SPELL_RAIN_OF_FIRE, true);
|
||||
}
|
||||
events.RepeatEvent(6000);
|
||||
events.Repeat(6s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SHADOW_BOLT:
|
||||
@@ -88,7 +88,7 @@ public:
|
||||
DoCastVictim(SPELL_SHADOW_BOLT_VICTIM);
|
||||
}
|
||||
|
||||
events.RepeatEvent(5000);
|
||||
events.Repeat(5s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,19 +57,19 @@ public:
|
||||
case EVENT_IMPENDING_DOOM:
|
||||
{
|
||||
DoCastVictim(SPELL_IMPENDING_DOOM);
|
||||
events.RepeatEvent(20000);
|
||||
events.Repeat(20s);
|
||||
break;
|
||||
}
|
||||
case EVENT_LUCIFRON_CURSE:
|
||||
{
|
||||
DoCastVictim(SPELL_LUCIFRON_CURSE);
|
||||
events.RepeatEvent(20000);
|
||||
events.Repeat(20s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SHADOW_SHOCK:
|
||||
{
|
||||
DoCastVictim(SPELL_SHADOW_SHOCK);
|
||||
events.RepeatEvent(5000);
|
||||
events.Repeat(5s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,13 +73,13 @@ public:
|
||||
{
|
||||
Talk(EMOTE_FRENZY);
|
||||
DoCastSelf(SPELL_FRENZY);
|
||||
events.RepeatEvent(urand(15000, 20000));
|
||||
events.Repeat(15s, 20s);
|
||||
break;
|
||||
}
|
||||
case EVENT_PANIC:
|
||||
{
|
||||
DoCastVictim(SPELL_PANIC);
|
||||
events.RepeatEvent(urand(31000, 38000));
|
||||
events.Repeat(31s, 38s);
|
||||
break;
|
||||
}
|
||||
case EVENT_LAVA_BOMB:
|
||||
@@ -89,7 +89,7 @@ public:
|
||||
DoCast(target, SPELL_LAVA_BOMB);
|
||||
}
|
||||
|
||||
events.RepeatEvent(urand(12000, 15000));
|
||||
events.Repeat(12s, 15s);
|
||||
break;
|
||||
}
|
||||
case EVENT_LAVA_BOMB_RANGED:
|
||||
@@ -104,7 +104,7 @@ public:
|
||||
{
|
||||
DoCast(targets.front() , SPELL_LAVA_BOMB_RANGED);
|
||||
}
|
||||
events.RepeatEvent(urand(12000, 15000));
|
||||
events.Repeat(12s, 15s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -348,7 +348,7 @@ public:
|
||||
{
|
||||
DoCastSelf(SPELL_DAMAGE_REFLECTION);
|
||||
}
|
||||
events.RepeatEvent(30000);
|
||||
events.Repeat(30s);
|
||||
break;
|
||||
}
|
||||
case EVENT_TELEPORT_RANDOM:
|
||||
@@ -359,14 +359,14 @@ public:
|
||||
DoCast(target, SPELL_TELEPORT_RANDOM);
|
||||
}
|
||||
|
||||
events.RepeatEvent(30000);
|
||||
events.Repeat(30s);
|
||||
break;
|
||||
}
|
||||
case EVENT_TELEPORT_TARGET:
|
||||
{
|
||||
DoCastSelf(SPELL_HATE_TO_ZERO, true);
|
||||
DoCastAOE(SPELL_TELEPORT_TARGET);
|
||||
events.RepeatEvent(30000);
|
||||
events.Repeat(30s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -189,7 +189,7 @@ public:
|
||||
{
|
||||
if (_lavaBurstGUIDS.empty())
|
||||
{
|
||||
extraEvents.ScheduleEvent(EVENT_LAVA_BURST_TRIGGER, 1);
|
||||
extraEvents.ScheduleEvent(EVENT_LAVA_BURST_TRIGGER, 1ms);
|
||||
}
|
||||
|
||||
_lavaBurstGUIDS.insert(guid);
|
||||
@@ -309,7 +309,7 @@ public:
|
||||
}
|
||||
|
||||
_lavaBurstGUIDS.erase(lavaBurstGUID);
|
||||
extraEvents.RepeatEvent(1000);
|
||||
extraEvents.Repeat(1s);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -350,7 +350,7 @@ public:
|
||||
{
|
||||
Talk(SAY_WRATH);
|
||||
}
|
||||
events.RepeatEvent(25000);
|
||||
events.Repeat(25s);
|
||||
break;
|
||||
}
|
||||
case EVENT_HAND_OF_RAGNAROS:
|
||||
@@ -362,7 +362,7 @@ public:
|
||||
_isKnockbackEmoteAllowed = false;
|
||||
extraEvents.RescheduleEvent(EVENT_RESET_KNOCKBACK_EMOTE, 5s);
|
||||
}
|
||||
events.RepeatEvent(20000);
|
||||
events.Repeat(20s);
|
||||
break;
|
||||
}
|
||||
case EVENT_LAVA_BURST:
|
||||
@@ -401,7 +401,7 @@ public:
|
||||
extraEvents.RescheduleEvent(EVENT_RESET_KNOCKBACK_EMOTE, 5s);
|
||||
}
|
||||
}
|
||||
events.RepeatEvent(urand(11000, 30000));
|
||||
events.Repeat(11s, 30s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SUBMERGE:
|
||||
|
||||
@@ -67,7 +67,7 @@ public:
|
||||
case EVENT_ARCANE_EXPLOSION:
|
||||
{
|
||||
DoCastVictim(SPELL_ARCANE_EXPLOSION);
|
||||
events.RepeatEvent(urand(4000, 5000));
|
||||
events.Repeat(4s, 5s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SHAZZRAH_CURSE:
|
||||
@@ -76,26 +76,26 @@ public:
|
||||
{
|
||||
DoCast(target, SPELL_SHAZZRAH_CURSE);
|
||||
}
|
||||
events.RepeatEvent(urand(23000, 26000));
|
||||
events.Repeat(23s, 26s);
|
||||
break;
|
||||
}
|
||||
case EVENT_MAGIC_GROUNDING:
|
||||
{
|
||||
DoCastSelf(SPELL_MAGIC_GROUNDING);
|
||||
events.RepeatEvent(urand(7000, 9000));
|
||||
events.Repeat(7s, 9s);
|
||||
break;
|
||||
}
|
||||
case EVENT_COUNTERSPELL:
|
||||
{
|
||||
DoCastAOE(SPELL_COUNTERSPELL);
|
||||
events.RepeatEvent(urand(15000, 18000));
|
||||
events.Repeat(15s, 18s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SHAZZRAH_GATE:
|
||||
{
|
||||
DoCastAOE(SPELL_SHAZZRAH_GATE_DUMMY);
|
||||
events.RescheduleEvent(EVENT_ARCANE_EXPLOSION, 3s, 6s);
|
||||
events.RepeatEvent(45000);
|
||||
events.Repeat(45s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ public:
|
||||
case EVENT_DEMORALIZING_SHOUT:
|
||||
{
|
||||
DoCastVictim(SPELL_DEMORALIZING_SHOUT);
|
||||
events.RepeatEvent(urand(12000, 18000));
|
||||
events.Repeat(12s, 18s);
|
||||
break;
|
||||
}
|
||||
case EVENT_INSPIRE:
|
||||
@@ -84,19 +84,19 @@ public:
|
||||
}
|
||||
|
||||
DoCastSelf(SPELL_INSPIRE);
|
||||
events.RepeatEvent(urand(13000, 20000));
|
||||
events.Repeat(13s, 20s);
|
||||
break;
|
||||
}
|
||||
case EVENT_KNOCKDOWN:
|
||||
{
|
||||
DoCastVictim(SPELL_KNOCKDOWN);
|
||||
events.RepeatEvent(urand(10000, 20000));
|
||||
events.Repeat(10s, 20s);
|
||||
break;
|
||||
}
|
||||
case EVENT_FLAMESPEAR:
|
||||
{
|
||||
DoCastRandomTarget(SPELL_FLAMESPEAR);
|
||||
events.RepeatEvent(urand(12000, 16000));
|
||||
events.Repeat(12s, 16s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -133,7 +133,7 @@ public:
|
||||
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);
|
||||
events.ScheduleEvent(EVENT_IMMOLATE, 3500ms, 6s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -157,7 +157,7 @@ public:
|
||||
case EVENT_DARK_STRIKE:
|
||||
{
|
||||
DoCastVictim(SPELL_DARK_STRIKE);
|
||||
events.RepeatEvent(urand(4000, 7000));
|
||||
events.Repeat(4s, 7s);
|
||||
break;
|
||||
}
|
||||
case EVENT_DARK_MENDING:
|
||||
@@ -169,7 +169,7 @@ public:
|
||||
DoCast(target, SPELL_DARK_MENDING);
|
||||
}
|
||||
}
|
||||
events.RepeatEvent(urand(15000, 20000));
|
||||
events.Repeat(15s, 20s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SHADOW_WORD_PAIN:
|
||||
@@ -178,7 +178,7 @@ public:
|
||||
{
|
||||
DoCast(target, SPELL_SHADOW_WORD_PAIN);
|
||||
}
|
||||
events.RepeatEvent(urand(2500, 5000));
|
||||
events.Repeat(2500ms, 5s);
|
||||
break;
|
||||
}
|
||||
case EVENT_IMMOLATE:
|
||||
@@ -187,7 +187,7 @@ public:
|
||||
{
|
||||
DoCast(target, SPELL_IMMOLATE);
|
||||
}
|
||||
events.RepeatEvent(urand(5000, 7000));
|
||||
events.Repeat(5s, 7s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ public:
|
||||
if (me->HealthBelowPct(67) && !health67)
|
||||
{
|
||||
me->CastSpell(me, SPELL_SMITE_STOMP, false);
|
||||
events.DelayEvents(10000);
|
||||
events.DelayEvents(10s);
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->GetMotionMaster()->MovePoint(EQUIP_TWO_SWORDS, 1.859f, -780.72f, 9.831f);
|
||||
Talk(SAY_SWAP1);
|
||||
@@ -105,7 +105,7 @@ public:
|
||||
if (me->HealthBelowPct(34) && !health34)
|
||||
{
|
||||
me->CastSpell(me, SPELL_SMITE_STOMP, false);
|
||||
events.DelayEvents(10000);
|
||||
events.DelayEvents(10s);
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->GetMotionMaster()->MovePoint(EQUIP_MACE, 1.859f, -780.72f, 9.831f);
|
||||
Talk(SAY_SWAP2);
|
||||
|
||||
@@ -138,7 +138,7 @@ struct boss_felblood_kaelthas : public BossAI
|
||||
|
||||
ScheduleTimedEvent(0ms, [&]{
|
||||
DoCastVictim(SPELL_FIREBALL);
|
||||
}, 3000ms, 4500ms);
|
||||
}, 3s, 4500ms);
|
||||
ScheduleTimedEvent(15s, [&]{
|
||||
Talk(SAY_PHOENIX);
|
||||
DoCastSelf(SPELL_PHOENIX);
|
||||
|
||||
@@ -95,7 +95,7 @@ struct boss_selin_fireheart : public BossAI
|
||||
BossAI::JustEngagedWith(who);
|
||||
ScheduleTimedEvent(2500ms, [&]{
|
||||
DoCastRandomTarget(SPELL_DRAIN_LIFE);
|
||||
}, 10000ms);
|
||||
}, 10s);
|
||||
ScheduleTimedEvent(2s, [&]{
|
||||
me->RemoveAuraFromStack(SPELL_MANA_RAGE_TRIGGER);
|
||||
DoCastAOE(SPELL_FEL_EXPLOSION);
|
||||
|
||||
@@ -438,7 +438,7 @@ public:
|
||||
if (owner->GetVictim())
|
||||
AttackStart(owner->GetVictim());
|
||||
|
||||
events.RepeatEvent(1000);
|
||||
events.Repeat(1s);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -760,22 +760,22 @@ public:
|
||||
{
|
||||
case EVENT_ICY_TOUCH:
|
||||
DoCastVictim(SPELL_ICY_TOUCH);
|
||||
events.DelayEvents(1000, GCD_CAST);
|
||||
events.DelayEvents(1s, 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.DelayEvents(1s, 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.DelayEvents(1s, 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.DelayEvents(1s, GCD_CAST);
|
||||
events.ScheduleEvent(EVENT_DEATH_COIL, 5s, GCD_CAST);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -613,7 +613,7 @@ public:
|
||||
me->GetMotionMaster()->MovePath(pathId, true); // true = repeatable
|
||||
}
|
||||
// Schedule the first ritual after 20-30s
|
||||
events.ScheduleEvent(EVENT_START_RITUAL, urand(20000, 30000));
|
||||
events.ScheduleEvent(EVENT_START_RITUAL, 20s, 30s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -628,7 +628,7 @@ public:
|
||||
{
|
||||
if (isOnRitual) // Already performing ritual
|
||||
{
|
||||
events.ScheduleEvent(EVENT_START_RITUAL, urand(5000, 10000));
|
||||
events.ScheduleEvent(EVENT_START_RITUAL, 5s, 10s);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -655,7 +655,7 @@ public:
|
||||
if (!nearestCorpse)
|
||||
{
|
||||
// No corpse found nearby: try again later
|
||||
events.ScheduleEvent(EVENT_START_RITUAL, urand(5000, 10000));
|
||||
events.ScheduleEvent(EVENT_START_RITUAL, 5s, 10s);
|
||||
break;
|
||||
}
|
||||
// Start ritual
|
||||
@@ -702,7 +702,7 @@ public:
|
||||
// Resume paused waypoint movement
|
||||
me->ResumeMovement();
|
||||
// Schedule next ritual in 20-30s
|
||||
events.ScheduleEvent(EVENT_START_RITUAL, urand(20000, 30000));
|
||||
events.ScheduleEvent(EVENT_START_RITUAL, 20s, 30s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -723,9 +723,9 @@ public:
|
||||
me->SetFacingToObject(geist);
|
||||
geistGUID = geist->GetGUID();
|
||||
// Geist found: schedule Ghoulplosion at +3s, then raising at +6s, then resume at +9s
|
||||
events.ScheduleEvent(EVENT_GHOULPLOSION, 3000);
|
||||
events.ScheduleEvent(EVENT_RAISE_GHOUL, 6000);
|
||||
events.ScheduleEvent(EVENT_RESUME_WP, 9000);
|
||||
events.ScheduleEvent(EVENT_GHOULPLOSION, 3s);
|
||||
events.ScheduleEvent(EVENT_RAISE_GHOUL, 6s);
|
||||
events.ScheduleEvent(EVENT_RESUME_WP, 9s);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -737,8 +737,8 @@ public:
|
||||
me->SetFacingToObject(corpse);
|
||||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_RAISE_GHOUL, 3000);
|
||||
events.ScheduleEvent(EVENT_RESUME_WP, 6000);
|
||||
events.ScheduleEvent(EVENT_RAISE_GHOUL, 3s);
|
||||
events.ScheduleEvent(EVENT_RESUME_WP, 6s);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -800,7 +800,7 @@ public:
|
||||
me->GetMotionMaster()->MovePath(pathId, true); // true = repeatable
|
||||
}
|
||||
// Schedule the first ritual after 50-60s
|
||||
events.ScheduleEvent(EVENT_START_RITUAL, urand(50000, 60000));
|
||||
events.ScheduleEvent(EVENT_START_RITUAL, 50s, 60s);
|
||||
}
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
@@ -814,7 +814,7 @@ public:
|
||||
{
|
||||
if (isOnRitual) // Already performing ritual
|
||||
{
|
||||
events.ScheduleEvent(EVENT_START_RITUAL, urand(5000, 10000));
|
||||
events.ScheduleEvent(EVENT_START_RITUAL, 5s, 10s);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -841,7 +841,7 @@ public:
|
||||
}
|
||||
if (!nearestCorpse)
|
||||
{
|
||||
events.ScheduleEvent(EVENT_START_RITUAL, urand(5000, 10000));
|
||||
events.ScheduleEvent(EVENT_START_RITUAL, 5s, 10s);
|
||||
break;
|
||||
}
|
||||
// Start ritual
|
||||
@@ -894,7 +894,7 @@ public:
|
||||
// Resume paused waypoint movement
|
||||
me->ResumeMovement();
|
||||
// Schedule next ritual in 50-60s
|
||||
events.ScheduleEvent(EVENT_START_RITUAL, urand(50000, 60000));
|
||||
events.ScheduleEvent(EVENT_START_RITUAL, 50s, 60s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -923,15 +923,15 @@ public:
|
||||
me->SetFacingToObject(geist);
|
||||
geistGUID = geist->GetGUID();
|
||||
// Geist present: Ghoulplosion in 3s (with SAY_GEIST), raise in 6s, resume in 9s
|
||||
events.ScheduleEvent(EVENT_GHOULPLOSION, 3000);
|
||||
events.ScheduleEvent(EVENT_RAISE_DEAD, 6000);
|
||||
events.ScheduleEvent(EVENT_RESUME_WP, 9000);
|
||||
events.ScheduleEvent(EVENT_GHOULPLOSION, 3s);
|
||||
events.ScheduleEvent(EVENT_RAISE_DEAD, 6s);
|
||||
events.ScheduleEvent(EVENT_RESUME_WP, 9s);
|
||||
}
|
||||
else
|
||||
{
|
||||
// No Geist: raise in 3s, resume in 6s
|
||||
events.ScheduleEvent(EVENT_RAISE_DEAD, 3000);
|
||||
events.ScheduleEvent(EVENT_RESUME_WP, 6000);
|
||||
events.ScheduleEvent(EVENT_RAISE_DEAD, 3s);
|
||||
events.ScheduleEvent(EVENT_RESUME_WP, 6s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -526,11 +526,11 @@ public:
|
||||
if (battleStarted != ENCOUNTER_STATE_FIGHT)
|
||||
return;
|
||||
|
||||
events.RescheduleEvent(EVENT_SPELL_ANTI_MAGIC_ZONE, 15000);
|
||||
events.RescheduleEvent(EVENT_SPELL_DEATH_STRIKE, 8000);
|
||||
events.RescheduleEvent(EVENT_SPELL_DEATH_EMBRACE, 5000);
|
||||
events.RescheduleEvent(EVENT_SPELL_UNHOLY_BLIGHT, 10000);
|
||||
events.RescheduleEvent(EVENT_SPELL_DARION_MOD_DAMAGE, 500);
|
||||
events.RescheduleEvent(EVENT_SPELL_ANTI_MAGIC_ZONE, 15s);
|
||||
events.RescheduleEvent(EVENT_SPELL_DEATH_STRIKE, 8s);
|
||||
events.RescheduleEvent(EVENT_SPELL_DEATH_EMBRACE, 5s);
|
||||
events.RescheduleEvent(EVENT_SPELL_UNHOLY_BLIGHT, 10s);
|
||||
events.RescheduleEvent(EVENT_SPELL_DARION_MOD_DAMAGE, 500ms);
|
||||
}
|
||||
|
||||
void Reset() override
|
||||
|
||||
@@ -36,16 +36,13 @@ enum BossData
|
||||
GANDLING_ROOM_TO_USE
|
||||
};
|
||||
|
||||
enum Timers
|
||||
{
|
||||
TIMER_ARCANE_MIN = 8000,
|
||||
TIMER_ARCANE_MAX = 14000,
|
||||
TIMER_CURSE_MIN = 20000,
|
||||
TIMER_CURSE_MAX = 30000,
|
||||
TIMER_SHIELD_MIN = 30000,
|
||||
TIMER_SHIELD_MAX = 40000,
|
||||
TIMER_PORTAL = 25000
|
||||
};
|
||||
constexpr Milliseconds TIMER_ARCANE_MIN = 8s;
|
||||
constexpr Milliseconds TIMER_ARCANE_MAX = 14s;
|
||||
constexpr Milliseconds TIMER_CURSE_MIN = 20s;
|
||||
//constexpr Milliseconds TIMER_CURSE_MAX = 30s;
|
||||
constexpr Milliseconds TIMER_SHIELD_MIN = 30s;
|
||||
//constexpr Milliseconds TIMER_SHIELD_MAX = 40s;
|
||||
constexpr Milliseconds TIMER_PORTAL = 25s;
|
||||
|
||||
enum IdPortalSpells
|
||||
{
|
||||
@@ -335,18 +332,18 @@ public:
|
||||
{
|
||||
case SPELL_ARCANE_MISSILES:
|
||||
DoCastVictim(SPELL_ARCANE_MISSILES);
|
||||
events.ScheduleEvent(SPELL_ARCANE_MISSILES, urand(TIMER_ARCANE_MIN, TIMER_ARCANE_MAX));
|
||||
events.ScheduleEvent(SPELL_ARCANE_MISSILES, TIMER_ARCANE_MIN, TIMER_ARCANE_MAX);
|
||||
break;
|
||||
case SPELL_CURSE_DARKMASTER:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true))
|
||||
{
|
||||
DoCast(target, SPELL_CURSE_DARKMASTER);
|
||||
}
|
||||
events.ScheduleEvent(SPELL_ARCANE_MISSILES, urand(TIMER_ARCANE_MIN, TIMER_ARCANE_MAX));
|
||||
events.ScheduleEvent(SPELL_ARCANE_MISSILES, TIMER_ARCANE_MIN, TIMER_ARCANE_MAX);
|
||||
break;
|
||||
case SPELL_SHADOW_SHIELD:
|
||||
DoCastSelf(SPELL_SHADOW_SHIELD);
|
||||
events.ScheduleEvent(SPELL_ARCANE_MISSILES, urand(TIMER_ARCANE_MIN, TIMER_ARCANE_MAX));
|
||||
events.ScheduleEvent(SPELL_ARCANE_MISSILES, TIMER_ARCANE_MIN, TIMER_ARCANE_MAX);
|
||||
break;
|
||||
|
||||
case SPELL_SHADOW_PORTAL:
|
||||
|
||||
@@ -399,17 +399,17 @@ public:
|
||||
{
|
||||
case 1:
|
||||
me->CastSpell(me, BONE_ARMOR_SPELL, false);
|
||||
events.RepeatEvent(60000);
|
||||
events.Repeat(60s);
|
||||
break;
|
||||
case 2:
|
||||
if (Unit* target = SelectUnitCasting())
|
||||
{
|
||||
me->CastSpell(target, COUNTER_SPELL, false);
|
||||
events.RepeatEvent(urand(10000, 20000));
|
||||
events.Repeat(10s, 20s);
|
||||
}
|
||||
else
|
||||
{
|
||||
events.RepeatEvent(400);
|
||||
events.Repeat(400ms);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
@@ -417,11 +417,11 @@ public:
|
||||
{
|
||||
me->CastSpell(target, DRAIN_MANA_SPELL, false);
|
||||
}
|
||||
events.RepeatEvent(urand(13000, 20000));
|
||||
events.Repeat(13s, 20s);
|
||||
break;
|
||||
case 4:
|
||||
me->CastSpell(me->GetVictim(), SHADOWBOLT_VOLLEY_SPELL, true);
|
||||
events.RepeatEvent(urand(11000, 17000));
|
||||
events.Repeat(11s, 17s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -135,14 +135,14 @@ public:
|
||||
if (_slaughterProgress == 2)
|
||||
{
|
||||
for (uint32 i = 0; i < 33; ++i)
|
||||
events.ScheduleEvent(EVENT_SPAWN_MINDLESS, 5000 + i * 210);
|
||||
events.ScheduleEvent(EVENT_SPAWN_MINDLESS, Milliseconds(5000 + i * 210));
|
||||
if (Creature* baron = instance->GetCreature(_baronRivendareGUID))
|
||||
if (GameObject* gate = baron->FindNearestGameObject(GO_SLAUGHTER_GATE_SIDE, 200.0f))
|
||||
gate->SetGoState(GO_STATE_ACTIVE);
|
||||
}
|
||||
if (_slaughterProgress == 3)
|
||||
{
|
||||
events.ScheduleEvent(EVENT_SPAWN_BLACK_GUARD, 20000);
|
||||
events.ScheduleEvent(EVENT_SPAWN_BLACK_GUARD, 20s);
|
||||
}
|
||||
if (_slaughterProgress == 4)
|
||||
{
|
||||
@@ -296,7 +296,7 @@ public:
|
||||
_baronRunProgress = DATA_BARON_RUN_GATE;
|
||||
_baronRunTime = 45;
|
||||
DoCastSpellOnPlayers(SPELL_BARON_ULTIMATUM);
|
||||
events.ScheduleEvent(EVENT_BARON_TIME, 60000);
|
||||
events.ScheduleEvent(EVENT_BARON_TIME, 60s);
|
||||
|
||||
if (Creature* baron = instance->GetCreature(_baronRivendareGUID))
|
||||
baron->AI()->Talk(SAY_BARON_INIT_YELL);
|
||||
@@ -379,12 +379,12 @@ public:
|
||||
data >> _barthilasrunProgress;
|
||||
if (_baronRunTime)
|
||||
{
|
||||
events.ScheduleEvent(EVENT_BARON_TIME, 60000);
|
||||
events.ScheduleEvent(EVENT_BARON_TIME, 60s);
|
||||
}
|
||||
|
||||
if (_slaughterProgress > 0 && _slaughterProgress < 4)
|
||||
{
|
||||
events.ScheduleEvent(EVENT_FORCE_SLAUGHTER_EVENT, 5000);
|
||||
events.ScheduleEvent(EVENT_FORCE_SLAUGHTER_EVENT, 5s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -455,20 +455,20 @@ public:
|
||||
if (i == 0)
|
||||
{
|
||||
// set timer to reset the trap
|
||||
events.ScheduleEvent(EVENT_GATE1_TRAP, 30 * MINUTE * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_GATE1_TRAP, 1800s);
|
||||
// set timer to reopen gates
|
||||
events.ScheduleEvent(EVENT_GATE1_DELAY, 20 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_GATE1_DELAY, 20s);
|
||||
// set timer to spawn the plagued critters
|
||||
events.ScheduleEvent(EVENT_GATE1_CRITTER_DELAY, 2 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_GATE1_CRITTER_DELAY, 2s);
|
||||
}
|
||||
else if (i == 1)
|
||||
{
|
||||
// set timer to reset the trap
|
||||
events.ScheduleEvent(EVENT_GATE2_TRAP, 30 * MINUTE * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_GATE2_TRAP, 1800s);
|
||||
// set timer to reopen gates
|
||||
events.ScheduleEvent(EVENT_GATE2_DELAY, 20 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_GATE2_DELAY, 20s);
|
||||
// set timer to spawn the plagued critters
|
||||
events.ScheduleEvent(EVENT_GATE2_CRITTER_DELAY, 2 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_GATE2_CRITTER_DELAY, 2s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -196,10 +196,10 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
me->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||
me->SendMovementFlagUpdate();
|
||||
|
||||
events.ScheduleEvent(EVENT_MAD_1, 2000);
|
||||
events.ScheduleEvent(EVENT_MAD_1, 2s);
|
||||
}
|
||||
else if (param == ACTION_SPAWN_FELMYST)
|
||||
events.ScheduleEvent(EVENT_SPAWN_FELMYST, 60000);
|
||||
events.ScheduleEvent(EVENT_SPAWN_FELMYST, 60s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -217,27 +217,27 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
}
|
||||
me->GetMotionMaster()->MoveTakeoff(1, 1477.94f, 643.22f, 21.21f);
|
||||
me->AddUnitState(UNIT_STATE_NO_ENVIRONMENT_UPD);
|
||||
events.ScheduleEvent(EVENT_MAD_2, 4000);
|
||||
events.ScheduleEvent(EVENT_MAD_2, 4s);
|
||||
break;
|
||||
case EVENT_MAD_2:
|
||||
Talk(SAY_MAD_1);
|
||||
me->CastSpell(me, SPELL_MADRIGOSA_FREEZE, false);
|
||||
events.ScheduleEvent(EVENT_MAD_2_1, 1000);
|
||||
events.ScheduleEvent(EVENT_MAD_2_1, 1s);
|
||||
break;
|
||||
case EVENT_MAD_2_1:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_LAND);
|
||||
me->SetDisableGravity(false);
|
||||
me->CastSpell(me, SPELL_MADRIGOSA_FROST_BREATH, false);
|
||||
events.ScheduleEvent(EVENT_MAD_3, 7000);
|
||||
events.ScheduleEvent(EVENT_MAD_3, 7s);
|
||||
break;
|
||||
case EVENT_MAD_3:
|
||||
Talk(SAY_MAD_2);
|
||||
events.ScheduleEvent(EVENT_MAD_4, 7000);
|
||||
events.ScheduleEvent(EVENT_MAD_4, 7s);
|
||||
break;
|
||||
case EVENT_MAD_4:
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
brutallus->AI()->Talk(YELL_INTRO);
|
||||
events.ScheduleEvent(EVENT_MAD_5, 5000);
|
||||
events.ScheduleEvent(EVENT_MAD_5, 5s);
|
||||
break;
|
||||
case EVENT_MAD_5:
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
@@ -245,7 +245,7 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
brutallus->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_ATTACK1H);
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_ATTACK1H);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_MAD_6, 10000);
|
||||
events.ScheduleEvent(EVENT_MAD_6, 10s);
|
||||
break;
|
||||
case EVENT_MAD_6:
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
@@ -255,21 +255,21 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
}
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
|
||||
me->SetDisableGravity(true);
|
||||
events.ScheduleEvent(EVENT_MAD_7, 4000);
|
||||
events.ScheduleEvent(EVENT_MAD_7, 4s);
|
||||
break;
|
||||
case EVENT_MAD_7:
|
||||
Talk(SAY_MAD_3);
|
||||
me->CastSpell(me, SPELL_MADRIGOSA_FROST_BLAST, false);
|
||||
events.ScheduleEvent(EVENT_MAD_8, 3000);
|
||||
events.ScheduleEvent(EVENT_MAD_8, 5000);
|
||||
events.ScheduleEvent(EVENT_MAD_8_1, 6000);
|
||||
events.ScheduleEvent(EVENT_MAD_8, 6500);
|
||||
events.ScheduleEvent(EVENT_MAD_8, 7500);
|
||||
events.ScheduleEvent(EVENT_MAD_8, 8500);
|
||||
events.ScheduleEvent(EVENT_MAD_8, 9500);
|
||||
events.ScheduleEvent(EVENT_MAD_9, 11000);
|
||||
events.ScheduleEvent(EVENT_MAD_8, 12000);
|
||||
events.ScheduleEvent(EVENT_MAD_8, 14000);
|
||||
events.ScheduleEvent(EVENT_MAD_8, 3s);
|
||||
events.ScheduleEvent(EVENT_MAD_8, 5s);
|
||||
events.ScheduleEvent(EVENT_MAD_8_1, 6s);
|
||||
events.ScheduleEvent(EVENT_MAD_8, 6500ms);
|
||||
events.ScheduleEvent(EVENT_MAD_8, 7500ms);
|
||||
events.ScheduleEvent(EVENT_MAD_8, 8500ms);
|
||||
events.ScheduleEvent(EVENT_MAD_8, 9500ms);
|
||||
events.ScheduleEvent(EVENT_MAD_9, 11s);
|
||||
events.ScheduleEvent(EVENT_MAD_8, 12s);
|
||||
events.ScheduleEvent(EVENT_MAD_8, 14s);
|
||||
break;
|
||||
case EVENT_MAD_8:
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
@@ -286,19 +286,19 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
brutallus->CastSpell(brutallus, SPELL_BRUTALLUS_FEL_FIREBALL, false);
|
||||
brutallus->AI()->Talk(YELL_INTRO_BREAK_ICE);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_MAD_11, 6000);
|
||||
events.ScheduleEvent(EVENT_MAD_11, 6s);
|
||||
break;
|
||||
//case EVENT_MAD_10:
|
||||
case EVENT_MAD_11:
|
||||
me->SetDisableGravity(false);
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_LAND);
|
||||
events.ScheduleEvent(EVENT_MAD_13, 2500);
|
||||
events.ScheduleEvent(EVENT_MAD_13, 2500ms);
|
||||
break;
|
||||
case EVENT_MAD_13:
|
||||
Talk(SAY_MAD_4);
|
||||
me->RemoveAllAuras();
|
||||
me->CastSpell(me, SPELL_MADRIGOSA_ENCAPSULATE, false);
|
||||
events.ScheduleEvent(EVENT_MAD_14, 2000);
|
||||
events.ScheduleEvent(EVENT_MAD_14, 2s);
|
||||
break;
|
||||
case EVENT_MAD_14:
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
@@ -306,7 +306,7 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
brutallus->SetDisableGravity(true);
|
||||
brutallus->GetMotionMaster()->MovePoint(0, brutallus->GetPositionX(), brutallus->GetPositionY() - 30.0f, brutallus->GetPositionZ() + 15.0f, false, true);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_MAD_15, 10000);
|
||||
events.ScheduleEvent(EVENT_MAD_15, 10s);
|
||||
break;
|
||||
case EVENT_MAD_15:
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
@@ -316,28 +316,28 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
brutallus->GetMotionMaster()->MoveFall();
|
||||
brutallus->AI()->Talk(YELL_INTRO_CHARGE);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_MAD_16, 1400);
|
||||
events.ScheduleEvent(EVENT_MAD_16, 1400ms);
|
||||
break;
|
||||
case EVENT_MAD_16:
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
brutallus->CastSpell(me, SPELL_BRUTALLUS_CHARGE, true);
|
||||
events.ScheduleEvent(EVENT_MAD_17, 1200);
|
||||
events.ScheduleEvent(EVENT_MAD_17, 1200ms);
|
||||
break;
|
||||
case EVENT_MAD_17:
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
brutallus->HandleEmoteCommand(EMOTE_ONESHOT_ATTACK1H);
|
||||
events.ScheduleEvent(EVENT_MAD_18, 500);
|
||||
events.ScheduleEvent(EVENT_MAD_18, 500ms);
|
||||
break;
|
||||
case EVENT_MAD_18:
|
||||
Talk(SAY_MAD_5);
|
||||
me->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||
me->SetStandState(UNIT_STAND_STATE_DEAD);
|
||||
events.ScheduleEvent(EVENT_MAD_19, 6000);
|
||||
events.ScheduleEvent(EVENT_MAD_19, 6s);
|
||||
break;
|
||||
case EVENT_MAD_19:
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
brutallus->AI()->Talk(YELL_INTRO_KILL_MADRIGOSA);
|
||||
events.ScheduleEvent(EVENT_MAD_20, 7000);
|
||||
events.ScheduleEvent(EVENT_MAD_20, 7s);
|
||||
break;
|
||||
case EVENT_MAD_20:
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
@@ -347,7 +347,7 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
brutallus->AI()->Talk(YELL_INTRO_TAUNT);
|
||||
brutallus->CastSpell(brutallus, SPELL_BRUTALLUS_BREAK_ICE, false);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_MAD_21, 4000);
|
||||
events.ScheduleEvent(EVENT_MAD_21, 4s);
|
||||
break;
|
||||
case EVENT_MAD_21:
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
|
||||
@@ -719,7 +719,7 @@ struct npc_kalecgos_kj : public NullCreatureAI
|
||||
me->SetCanFly(false);
|
||||
me->SetDisableGravity(false);
|
||||
me->CastSpell(me, SPELL_TELEPORT_AND_TRANSFORM, true);
|
||||
events.ScheduleEvent(EVENT_SCENE_01, 35000);
|
||||
events.ScheduleEvent(EVENT_SCENE_01, 35s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -775,21 +775,21 @@ struct npc_kalecgos_kj : public NullCreatureAI
|
||||
{
|
||||
case EVENT_SCENE_01:
|
||||
Talk(SAY_KALECGOS_GOODBYE);
|
||||
events.ScheduleEvent(eventId + 1, 15000);
|
||||
events.ScheduleEvent(eventId + 1, 15s);
|
||||
break;
|
||||
case EVENT_SCENE_02:
|
||||
me->SummonCreature(NPC_SHATTERED_SUN_RIFTWAKER, 1688.42f, 641.82f, 27.60f, 0.67f);
|
||||
me->SummonCreature(NPC_SHATTERED_SUN_RIFTWAKER, 1712.58f, 616.29f, 27.78f, 0.76f);
|
||||
events.ScheduleEvent(eventId + 1, 6000);
|
||||
events.ScheduleEvent(eventId + 1, 6s);
|
||||
break;
|
||||
case EVENT_SCENE_03:
|
||||
me->SummonCreature(NPC_SHATTRATH_PORTAL_DUMMY, 1727.08f + cos(5.14f), 656.82f + std::sin(5.14f), 28.37f + 2.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 10000);
|
||||
me->SummonCreature(NPC_SHATTRATH_PORTAL_DUMMY, 1738.84f + cos(2.0f), 627.32f + std::sin(2.0f), 28.26f + 2.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 10000);
|
||||
events.ScheduleEvent(eventId + 1, 11000);
|
||||
events.ScheduleEvent(eventId + 1, 11s);
|
||||
break;
|
||||
case EVENT_SCENE_04:
|
||||
me->SummonCreature(NPC_INERT_PORTAL, 1734.96f, 642.43f, 28.06f, 3.49f);
|
||||
events.ScheduleEvent(eventId + 1, 4000);
|
||||
events.ScheduleEvent(eventId + 1, 4s);
|
||||
break;
|
||||
case EVENT_SCENE_05:
|
||||
if (Creature* first = me->SummonCreature(NPC_SHATTERED_SUN_SOLDIER, 1729.48f, 640.49f, 28.06f, 3.49f))
|
||||
@@ -800,7 +800,7 @@ struct npc_kalecgos_kj : public NullCreatureAI
|
||||
if (Creature* follower = me->SummonCreature(NPC_SHATTERED_SUN_SOLDIER, 1729.48f + 5 * cos(i * 2.0f * M_PI / 9), 640.49f + 5 * std::sin(i * 2.0f * M_PI / 9), 28.06f, 3.49f))
|
||||
follower->GetMotionMaster()->MoveFollow(first, 3.0f, follower->GetAngle(first));
|
||||
}
|
||||
events.ScheduleEvent(eventId + 1, 10000);
|
||||
events.ScheduleEvent(eventId + 1, 10s);
|
||||
break;
|
||||
case EVENT_SCENE_06:
|
||||
if (Creature* first = me->SummonCreature(NPC_SHATTERED_SUN_SOLDIER, 1729.48f, 640.49f, 28.06f, 3.49f))
|
||||
@@ -811,33 +811,33 @@ struct npc_kalecgos_kj : public NullCreatureAI
|
||||
if (Creature* follower = me->SummonCreature(NPC_SHATTERED_SUN_SOLDIER, 1729.48f + 5 * cos(i * 2.0f * M_PI / 9), 640.49f + 5 * std::sin(i * 2.0f * M_PI / 9), 28.06f, 3.49f))
|
||||
follower->GetMotionMaster()->MoveFollow(first, 3.0f, follower->GetAngle(first));
|
||||
}
|
||||
events.ScheduleEvent(eventId + 1, 12000);
|
||||
events.ScheduleEvent(eventId + 1, 12s);
|
||||
break;
|
||||
case EVENT_SCENE_07:
|
||||
me->SummonCreature(NPC_LADY_LIADRIN, 1719.87f, 644.265f, 28.06f, 3.83f);
|
||||
me->SummonCreature(NPC_PROPHET_VELEN, 1717.97f, 646.44f, 28.06f, 3.94f);
|
||||
events.ScheduleEvent(eventId + 1, 7000);
|
||||
events.ScheduleEvent(eventId + 1, 7s);
|
||||
break;
|
||||
case EVENT_SCENE_08:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->AI()->Talk(SAY_VELEN_01);
|
||||
events.ScheduleEvent(eventId + 1, 25000);
|
||||
events.ScheduleEvent(eventId + 1, 25s);
|
||||
break;
|
||||
case EVENT_SCENE_09:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->AI()->Talk(SAY_VELEN_02);
|
||||
events.ScheduleEvent(eventId + 1, 14500);
|
||||
events.ScheduleEvent(eventId + 1, 14500ms);
|
||||
break;
|
||||
case EVENT_SCENE_10:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->AI()->Talk(SAY_VELEN_03);
|
||||
events.ScheduleEvent(eventId + 1, 12500);
|
||||
events.ScheduleEvent(eventId + 1, 12500ms);
|
||||
break;
|
||||
case EVENT_SCENE_11:
|
||||
me->SummonCreature(NPC_THE_CORE_OF_ENTROPIUS, 1698.86f, 628.73f, 92.83f, 0.0f);
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->CastSpell(velen, SPELL_CALL_ENTROPIUS, false);
|
||||
events.ScheduleEvent(eventId + 1, 8000);
|
||||
events.ScheduleEvent(eventId + 1, 8s);
|
||||
break;
|
||||
case EVENT_SCENE_12:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
@@ -845,32 +845,32 @@ struct npc_kalecgos_kj : public NullCreatureAI
|
||||
velen->InterruptNonMeleeSpells(false);
|
||||
velen->AI()->Talk(SAY_VELEN_04);
|
||||
}
|
||||
events.ScheduleEvent(eventId + 1, 20000);
|
||||
events.ScheduleEvent(eventId + 1, 20s);
|
||||
break;
|
||||
case EVENT_SCENE_13:
|
||||
if (Creature* liadrin = summons.GetCreatureWithEntry(NPC_LADY_LIADRIN))
|
||||
liadrin->GetMotionMaster()->MovePoint(0, 1711.28f, 637.29f, 27.29f);
|
||||
events.ScheduleEvent(eventId + 1, 6000);
|
||||
events.ScheduleEvent(eventId + 1, 6s);
|
||||
break;
|
||||
case EVENT_SCENE_14:
|
||||
if (Creature* liadrin = summons.GetCreatureWithEntry(NPC_LADY_LIADRIN))
|
||||
liadrin->AI()->Talk(SAY_LIADRIN_01);
|
||||
events.ScheduleEvent(eventId + 1, 10000);
|
||||
events.ScheduleEvent(eventId + 1, 10s);
|
||||
break;
|
||||
case EVENT_SCENE_15:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->AI()->Talk(SAY_VELEN_05);
|
||||
events.ScheduleEvent(eventId + 1, 14000);
|
||||
events.ScheduleEvent(eventId + 1, 14s);
|
||||
break;
|
||||
case EVENT_SCENE_16:
|
||||
if (Creature* liadrin = summons.GetCreatureWithEntry(NPC_LADY_LIADRIN))
|
||||
liadrin->AI()->Talk(SAY_LIADRIN_02);
|
||||
events.ScheduleEvent(eventId + 1, 2000);
|
||||
events.ScheduleEvent(eventId + 1, 2s);
|
||||
break;
|
||||
case EVENT_SCENE_17:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->AI()->Talk(SAY_VELEN_06);
|
||||
events.ScheduleEvent(eventId + 1, 3000);
|
||||
events.ScheduleEvent(eventId + 1, 3s);
|
||||
break;
|
||||
case EVENT_SCENE_18:
|
||||
if (Creature* core = summons.GetCreatureWithEntry(NPC_THE_CORE_OF_ENTROPIUS))
|
||||
@@ -878,7 +878,7 @@ struct npc_kalecgos_kj : public NullCreatureAI
|
||||
core->RemoveAllAuras();
|
||||
core->CastSpell(core, SPELL_BLAZE_TO_LIGHT, true);
|
||||
}
|
||||
events.ScheduleEvent(eventId + 1, 8000);
|
||||
events.ScheduleEvent(eventId + 1, 8s);
|
||||
break;
|
||||
case EVENT_SCENE_19:
|
||||
if (Creature* core = summons.GetCreatureWithEntry(NPC_THE_CORE_OF_ENTROPIUS))
|
||||
@@ -886,34 +886,34 @@ struct npc_kalecgos_kj : public NullCreatureAI
|
||||
core->SetObjectScale(0.75f);
|
||||
core->GetMotionMaster()->MovePoint(0, core->GetPositionX(), core->GetPositionY(), 28.0f);
|
||||
}
|
||||
events.ScheduleEvent(eventId + 1, 2000);
|
||||
events.ScheduleEvent(eventId + 1, 2s);
|
||||
break;
|
||||
case EVENT_SCENE_20:
|
||||
if (Creature* core = summons.GetCreatureWithEntry(NPC_THE_CORE_OF_ENTROPIUS))
|
||||
core->CastSpell(core, SPELL_SUNWELL_IGNITION, true);
|
||||
events.ScheduleEvent(eventId + 1, 3000);
|
||||
events.ScheduleEvent(eventId + 1, 3s);
|
||||
break;
|
||||
case EVENT_SCENE_21:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->AI()->Talk(SAY_VELEN_07);
|
||||
events.ScheduleEvent(eventId + 1, 15000);
|
||||
events.ScheduleEvent(eventId + 1, 15s);
|
||||
break;
|
||||
case EVENT_SCENE_22:
|
||||
if (Creature* liadrin = summons.GetCreatureWithEntry(NPC_LADY_LIADRIN))
|
||||
liadrin->AI()->Talk(SAY_LIADRIN_03);
|
||||
events.ScheduleEvent(eventId + 1, 20000);
|
||||
events.ScheduleEvent(eventId + 1, 20s);
|
||||
break;
|
||||
case EVENT_SCENE_23:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->AI()->Talk(SAY_VELEN_08);
|
||||
if (Creature* liadrin = summons.GetCreatureWithEntry(NPC_LADY_LIADRIN))
|
||||
liadrin->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
events.ScheduleEvent(eventId + 1, 8000);
|
||||
events.ScheduleEvent(eventId + 1, 8s);
|
||||
break;
|
||||
case EVENT_SCENE_24:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
velen->AI()->Talk(SAY_VELEN_09);
|
||||
events.ScheduleEvent(eventId + 1, 5000);
|
||||
events.ScheduleEvent(eventId + 1, 5s);
|
||||
break;
|
||||
case EVENT_SCENE_25:
|
||||
if (Creature* velen = summons.GetCreatureWithEntry(NPC_PROPHET_VELEN))
|
||||
@@ -921,7 +921,7 @@ struct npc_kalecgos_kj : public NullCreatureAI
|
||||
velen->GetMotionMaster()->MovePoint(0, 1739.38f, 643.79f, 28.06f);
|
||||
velen->DespawnOrUnsummon(5000);
|
||||
}
|
||||
events.ScheduleEvent(eventId + 1, 3000);
|
||||
events.ScheduleEvent(eventId + 1, 3s);
|
||||
break;
|
||||
case EVENT_SCENE_26:
|
||||
for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
@@ -931,7 +931,7 @@ struct npc_kalecgos_kj : public NullCreatureAI
|
||||
summon->GetMotionMaster()->MovePoint(0, 1739.38f, 643.79f, 28.06f);
|
||||
summon->DespawnOrUnsummon(summon->GetExactDist2d(1734.96f, 642.43f) * 100);
|
||||
}
|
||||
events.ScheduleEvent(eventId + 1, 7000);
|
||||
events.ScheduleEvent(eventId + 1, 7s);
|
||||
break;
|
||||
case EVENT_SCENE_27:
|
||||
me->setActive(false);
|
||||
|
||||
@@ -161,72 +161,72 @@ static PlayerAbilityStruct PlayerAbility[13][3] =
|
||||
// 0 UNK class (should never be set)
|
||||
{
|
||||
// Warrior as fallback behavior if for some reason UNK class
|
||||
{ SPELL_WR_SPELL_REFLECT, ABILITY_TARGET_SELF, 10000ms },
|
||||
{ SPELL_WR_WHIRLWIND, ABILITY_TARGET_SELF, 10000ms },
|
||||
{ SPELL_WR_MORTAL_STRIKE, ABILITY_TARGET_VICTIM, 6000ms }
|
||||
{ SPELL_WR_SPELL_REFLECT, ABILITY_TARGET_SELF, 10s },
|
||||
{ SPELL_WR_WHIRLWIND, ABILITY_TARGET_SELF, 10s },
|
||||
{ SPELL_WR_MORTAL_STRIKE, ABILITY_TARGET_VICTIM, 6s }
|
||||
},
|
||||
// 1 warrior
|
||||
{ { SPELL_WR_SPELL_REFLECT, ABILITY_TARGET_SELF, 10000ms },
|
||||
{ SPELL_WR_WHIRLWIND, ABILITY_TARGET_SELF, 10000ms },
|
||||
{ SPELL_WR_MORTAL_STRIKE, ABILITY_TARGET_VICTIM, 6000ms }
|
||||
{ { SPELL_WR_SPELL_REFLECT, ABILITY_TARGET_SELF, 10s },
|
||||
{ SPELL_WR_WHIRLWIND, ABILITY_TARGET_SELF, 10s },
|
||||
{ SPELL_WR_MORTAL_STRIKE, ABILITY_TARGET_VICTIM, 6s }
|
||||
},
|
||||
// 2 paladin
|
||||
{ { SPELL_PA_CONSECRATION, ABILITY_TARGET_SELF, 10000ms },
|
||||
{ SPELL_PA_HOLY_LIGHT, ABILITY_TARGET_HEAL, 10000ms },
|
||||
{ SPELL_PA_AVENGING_WRATH, ABILITY_TARGET_SELF, 10000ms }
|
||||
{ { SPELL_PA_CONSECRATION, ABILITY_TARGET_SELF, 10s },
|
||||
{ SPELL_PA_HOLY_LIGHT, ABILITY_TARGET_HEAL, 10s },
|
||||
{ SPELL_PA_AVENGING_WRATH, ABILITY_TARGET_SELF, 10s }
|
||||
},
|
||||
// 3 hunter
|
||||
{ { SPELL_HU_EXPLOSIVE_TRAP, ABILITY_TARGET_SELF, 10000ms },
|
||||
{ SPELL_HU_FREEZING_TRAP, ABILITY_TARGET_SELF, 10000ms },
|
||||
{ SPELL_HU_SNAKE_TRAP, ABILITY_TARGET_SELF, 10000ms }
|
||||
{ { SPELL_HU_EXPLOSIVE_TRAP, ABILITY_TARGET_SELF, 10s },
|
||||
{ SPELL_HU_FREEZING_TRAP, ABILITY_TARGET_SELF, 10s },
|
||||
{ SPELL_HU_SNAKE_TRAP, ABILITY_TARGET_SELF, 10s }
|
||||
},
|
||||
// 4 rogue
|
||||
{ { SPELL_RO_WOUND_POISON, ABILITY_TARGET_VICTIM, 3000ms },
|
||||
{ SPELL_RO_SLICE_DICE, ABILITY_TARGET_SELF, 10000ms },
|
||||
{ SPELL_RO_BLIND, ABILITY_TARGET_ENEMY, 10000ms }
|
||||
{ { SPELL_RO_WOUND_POISON, ABILITY_TARGET_VICTIM, 3s },
|
||||
{ SPELL_RO_SLICE_DICE, ABILITY_TARGET_SELF, 10s },
|
||||
{ SPELL_RO_BLIND, ABILITY_TARGET_ENEMY, 10s }
|
||||
},
|
||||
// 5 priest
|
||||
{ { SPELL_PR_PAIN_SUPP, ABILITY_TARGET_HEAL, 10000ms },
|
||||
{ SPELL_PR_HEAL, ABILITY_TARGET_HEAL, 10000ms },
|
||||
{ SPELL_PR_PSYCHIC_SCREAM, ABILITY_TARGET_SELF, 10000ms }
|
||||
{ { SPELL_PR_PAIN_SUPP, ABILITY_TARGET_HEAL, 10s },
|
||||
{ SPELL_PR_HEAL, ABILITY_TARGET_HEAL, 10s },
|
||||
{ SPELL_PR_PSYCHIC_SCREAM, ABILITY_TARGET_SELF, 10s }
|
||||
},
|
||||
// 6 death knight
|
||||
{
|
||||
{ SPELL_DK_PLAGUE_STRIKE, ABILITY_TARGET_ENEMY, 2000ms },
|
||||
{ SPELL_DK_DEATH_AND_DECAY, ABILITY_TARGET_SELF, 10000ms },
|
||||
{ SPELL_DK_BLOOD_WORMS, ABILITY_TARGET_ENEMY, 5000ms }
|
||||
{ SPELL_DK_PLAGUE_STRIKE, ABILITY_TARGET_ENEMY, 2s },
|
||||
{ SPELL_DK_DEATH_AND_DECAY, ABILITY_TARGET_SELF, 10s },
|
||||
{ SPELL_DK_BLOOD_WORMS, ABILITY_TARGET_ENEMY, 5s }
|
||||
},
|
||||
// 7 shaman
|
||||
{ { SPELL_SH_FIRE_NOVA, ABILITY_TARGET_SELF, 10000ms },
|
||||
{ SPELL_SH_HEALING_WAVE, ABILITY_TARGET_HEAL, 10000ms },
|
||||
{ SPELL_SH_CHAIN_LIGHT, ABILITY_TARGET_ENEMY, 8000ms }
|
||||
{ { SPELL_SH_FIRE_NOVA, ABILITY_TARGET_SELF, 10s },
|
||||
{ SPELL_SH_HEALING_WAVE, ABILITY_TARGET_HEAL, 10s },
|
||||
{ SPELL_SH_CHAIN_LIGHT, ABILITY_TARGET_ENEMY, 8s }
|
||||
},
|
||||
// 8 mage
|
||||
{ { SPELL_MG_FIREBALL, ABILITY_TARGET_ENEMY, 5000ms },
|
||||
{ SPELL_MG_FROSTBOLT, ABILITY_TARGET_ENEMY, 5000ms },
|
||||
{ SPELL_MG_ICE_LANCE, ABILITY_TARGET_SPECIAL, 2000ms }
|
||||
{ { SPELL_MG_FIREBALL, ABILITY_TARGET_ENEMY, 5s },
|
||||
{ SPELL_MG_FROSTBOLT, ABILITY_TARGET_ENEMY, 5s },
|
||||
{ SPELL_MG_ICE_LANCE, ABILITY_TARGET_SPECIAL, 2s }
|
||||
},
|
||||
// 9 warlock
|
||||
{ { SPELL_WL_CURSE_OF_DOOM, ABILITY_TARGET_ENEMY, 10000ms },
|
||||
{ SPELL_WL_RAIN_OF_FIRE, ABILITY_TARGET_ENEMY, 10000ms },
|
||||
{ SPELL_WL_UNSTABLE_AFFL, ABILITY_TARGET_ENEMY, 10000ms }
|
||||
{ { SPELL_WL_CURSE_OF_DOOM, ABILITY_TARGET_ENEMY, 10s },
|
||||
{ SPELL_WL_RAIN_OF_FIRE, ABILITY_TARGET_ENEMY, 10s },
|
||||
{ SPELL_WL_UNSTABLE_AFFL, ABILITY_TARGET_ENEMY, 10s }
|
||||
},
|
||||
// 10 UNK class (should never be set)
|
||||
{
|
||||
// Warrior as fallback behavior if for some reason UNK class
|
||||
{ SPELL_WR_SPELL_REFLECT, ABILITY_TARGET_SELF, 10000ms },
|
||||
{ SPELL_WR_WHIRLWIND, ABILITY_TARGET_SELF, 10000ms },
|
||||
{ SPELL_WR_MORTAL_STRIKE, ABILITY_TARGET_VICTIM, 6000ms }
|
||||
{ SPELL_WR_SPELL_REFLECT, ABILITY_TARGET_SELF, 10s },
|
||||
{ SPELL_WR_WHIRLWIND, ABILITY_TARGET_SELF, 10s },
|
||||
{ SPELL_WR_MORTAL_STRIKE, ABILITY_TARGET_VICTIM, 6s }
|
||||
},
|
||||
// 11 druid
|
||||
{ { SPELL_DR_LIFEBLOOM, ABILITY_TARGET_HEAL, 10000ms },
|
||||
{ SPELL_DR_THORNS, ABILITY_TARGET_SELF, 10000ms },
|
||||
{ SPELL_DR_MOONFIRE, ABILITY_TARGET_ENEMY, 8000ms }
|
||||
{ { SPELL_DR_LIFEBLOOM, ABILITY_TARGET_HEAL, 10s },
|
||||
{ SPELL_DR_THORNS, ABILITY_TARGET_SELF, 10s },
|
||||
{ SPELL_DR_MOONFIRE, ABILITY_TARGET_ENEMY, 8s }
|
||||
},
|
||||
// MISC shadow priest
|
||||
{ { SPELL_PR_MIND_CONTROL, ABILITY_TARGET_ENEMY, 15000ms },
|
||||
{ SPELL_PR_MIND_BLAST, ABILITY_TARGET_ENEMY, 5000ms },
|
||||
{ SPELL_PR_SW_DEATH, ABILITY_TARGET_ENEMY, 10000ms }
|
||||
{ { SPELL_PR_MIND_CONTROL, ABILITY_TARGET_ENEMY, 15s },
|
||||
{ SPELL_PR_MIND_BLAST, ABILITY_TARGET_ENEMY, 5s },
|
||||
{ SPELL_PR_SW_DEATH, ABILITY_TARGET_ENEMY, 10s }
|
||||
}
|
||||
};
|
||||
|
||||
@@ -244,7 +244,7 @@ struct boss_hexlord_malacrass : public BossAI
|
||||
{
|
||||
BossAI::Reset();
|
||||
_currentClass = CLASS_NONE;
|
||||
_classAbilityTimer = 10000ms;
|
||||
_classAbilityTimer = 10s;
|
||||
_timeUntilNextDrainPower = 0ms;
|
||||
SpawnAdds();
|
||||
ScheduleHealthCheckEvent(80, [&] {
|
||||
|
||||
@@ -103,7 +103,7 @@ struct npc_forest_frog : public ScriptedAI
|
||||
Talk(SAY_THANKS_FREED, player);
|
||||
|
||||
eventTimer = 2;
|
||||
events.ScheduleEvent(eventTimer, urand(4000, 5000));
|
||||
events.ScheduleEvent(eventTimer, 4s, 5s);
|
||||
break;
|
||||
case 2:
|
||||
if (me->GetEntry() != NPC_GUNTER && me->GetEntry() != NPC_KYREN) // vendors don't kneel?
|
||||
@@ -140,7 +140,7 @@ struct npc_forest_frog : public ScriptedAI
|
||||
break;
|
||||
}
|
||||
eventTimer = 3;
|
||||
events.ScheduleEvent(eventTimer, urand(6000, 7000));
|
||||
events.ScheduleEvent(eventTimer, 6s, 7s);
|
||||
break;
|
||||
case 3:
|
||||
me->SetStandState(EMOTE_ONESHOT_NONE);
|
||||
@@ -152,9 +152,9 @@ struct npc_forest_frog : public ScriptedAI
|
||||
|
||||
eventTimer = 4;
|
||||
if (me->GetEntry() == NPC_GUNTER || me->GetEntry() == NPC_KYREN)
|
||||
events.ScheduleEvent(eventTimer, 5 * MINUTE * IN_MILLISECONDS); // vendors wait for 5 minutes before running away and despawning
|
||||
events.ScheduleEvent(eventTimer, 300s); // vendors wait for 5 minutes before running away and despawning
|
||||
else
|
||||
events.ScheduleEvent(eventTimer, 6000);
|
||||
events.ScheduleEvent(eventTimer, 6s);
|
||||
break;
|
||||
case 4:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_WAVE);
|
||||
@@ -165,7 +165,7 @@ struct npc_forest_frog : public ScriptedAI
|
||||
Talk(SAY_GOODBYE, player);
|
||||
|
||||
eventTimer = 5;
|
||||
events.ScheduleEvent(eventTimer, 2000);
|
||||
events.ScheduleEvent(eventTimer, 2s);
|
||||
break;
|
||||
case 5:
|
||||
|
||||
@@ -205,7 +205,7 @@ struct npc_forest_frog : public ScriptedAI
|
||||
|
||||
// start generic rp
|
||||
eventTimer = 1;
|
||||
events.ScheduleEvent(eventTimer, 3000);
|
||||
events.ScheduleEvent(eventTimer, 3s);
|
||||
|
||||
me->UpdateEntry(cEntry);
|
||||
|
||||
|
||||
@@ -330,7 +330,7 @@ public:
|
||||
|
||||
if (Unit* arlokk = ObjectAccessor::GetUnit(*me, _instance->GetGuidData(NPC_ARLOKK)))
|
||||
me->GetMotionMaster()->MovePoint(0, arlokk->GetPositionX(), arlokk->GetPositionY(), arlokk->GetPositionZ());
|
||||
_events.ScheduleEvent(EVENT_ATTACK, 6000);
|
||||
_events.ScheduleEvent(EVENT_ATTACK, 6s);
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
|
||||
@@ -156,7 +156,7 @@ public:
|
||||
killCount = 0;
|
||||
if (me->GetPositionZ() > 140.0f)
|
||||
{
|
||||
events.ScheduleEvent(EVENT_CHECK_START, 1000);
|
||||
events.ScheduleEvent(EVENT_CHECK_START, 1s);
|
||||
if (Creature* speaker = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_VILEBRANCH_SPEAKER)))
|
||||
{
|
||||
if (!speaker->IsAlive())
|
||||
|
||||
@@ -207,7 +207,7 @@ public:
|
||||
EnterEvadeMode();
|
||||
return;
|
||||
}
|
||||
events.RepeatEvent(2000);
|
||||
events.Repeat(2s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SUMMON_ARCHERS:
|
||||
@@ -217,7 +217,7 @@ public:
|
||||
_spoken = false;
|
||||
SummonPeasants();
|
||||
_spoken = false;
|
||||
events.RepeatEvent(60 * IN_MILLISECONDS);
|
||||
events.Repeat(60s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@ struct npc_partygoer : public ScriptedAI
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION, urand(1000, 20000));
|
||||
_events.ScheduleEvent(EVENT_RANDOM_ACTION, 1s, 20s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
||||
@@ -136,25 +136,25 @@ public:
|
||||
if (Creature* c = me->FindNearestCreature(NPC_THALORIEN_REMAINS, 100.0f, true))
|
||||
c->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_CHECK_PLAYER, 5000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_SOLDIERS, 0);
|
||||
events.ScheduleEvent(EVENT_TALK_INTRO_0, 3000);
|
||||
events.ScheduleEvent(EVENT_TALK_INTRO_1, 8000);
|
||||
events.ScheduleEvent(EVENT_TALK_INTRO_2, 15000);
|
||||
events.ScheduleEvent(EVENT_TALK_INTRO_3, 22000);
|
||||
events.ScheduleEvent(EVENT_SALUTE, 24000);
|
||||
events.ScheduleEvent(EVENT_SOLDIERS_RUN_AWAY, 30000);
|
||||
events.ScheduleEvent(EVENT_GO_FIGHTPOINT, 31000);
|
||||
events.ScheduleEvent(EVENT_TALK_SPAWN_0, 38000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_MORLEN, 44000);
|
||||
events.ScheduleEvent(EVENT_TALK_SPAWN_1, 47000);
|
||||
events.ScheduleEvent(EVENT_TALK_MORLEN_0, 52000);
|
||||
events.ScheduleEvent(EVENT_TALK_MORLEN_1, 58000);
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE_1, 61000);
|
||||
events.ScheduleEvent(EVENT_CHECK_PLAYER, 5s);
|
||||
events.ScheduleEvent(EVENT_SUMMON_SOLDIERS, 0ms);
|
||||
events.ScheduleEvent(EVENT_TALK_INTRO_0, 3s);
|
||||
events.ScheduleEvent(EVENT_TALK_INTRO_1, 8s);
|
||||
events.ScheduleEvent(EVENT_TALK_INTRO_2, 15s);
|
||||
events.ScheduleEvent(EVENT_TALK_INTRO_3, 22s);
|
||||
events.ScheduleEvent(EVENT_SALUTE, 24s);
|
||||
events.ScheduleEvent(EVENT_SOLDIERS_RUN_AWAY, 30s);
|
||||
events.ScheduleEvent(EVENT_GO_FIGHTPOINT, 31s);
|
||||
events.ScheduleEvent(EVENT_TALK_SPAWN_0, 38s);
|
||||
events.ScheduleEvent(EVENT_SUMMON_MORLEN, 44s);
|
||||
events.ScheduleEvent(EVENT_TALK_SPAWN_1, 47s);
|
||||
events.ScheduleEvent(EVENT_TALK_MORLEN_0, 52s);
|
||||
events.ScheduleEvent(EVENT_TALK_MORLEN_1, 58s);
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE_1, 61s);
|
||||
|
||||
events.ScheduleEvent(EVENT_SPELL_BLADESTORM, urand(6000, 15000));
|
||||
events.ScheduleEvent(EVENT_SPELL_MORTAL_STRIKE, urand(3000, 7000));
|
||||
events.ScheduleEvent(EVENT_SPELL_HEROIC_STRIKE, urand(4000, 10000));
|
||||
events.ScheduleEvent(EVENT_SPELL_BLADESTORM, 6s, 15s);
|
||||
events.ScheduleEvent(EVENT_SPELL_MORTAL_STRIKE, 3s, 7s);
|
||||
events.ScheduleEvent(EVENT_SPELL_HEROIC_STRIKE, 4s, 10s);
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* summon) override
|
||||
@@ -172,10 +172,10 @@ public:
|
||||
me->RemoveAurasDueToSpell(67541);
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
me->GetMotionMaster()->MoveCharge(11779.30f, -7065.43f, 24.92f, me->GetSpeed(MOVE_RUN), EVENT_CHARGE);
|
||||
events.ScheduleEvent(EVENT_OUTRO_0, 0);
|
||||
events.ScheduleEvent(EVENT_OUTRO_1, 5000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_2, 12000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_3, 19000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_0, 0ms);
|
||||
events.ScheduleEvent(EVENT_OUTRO_1, 5s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_2, 12s);
|
||||
events.ScheduleEvent(EVENT_OUTRO_3, 19s);
|
||||
}
|
||||
else if (summons.size() == 1)
|
||||
{
|
||||
@@ -184,13 +184,13 @@ public:
|
||||
switch (summon->GetEntry())
|
||||
{
|
||||
case NPC_SCOURGE_ZOMBIE:
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE_2, 3000);
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE_2, 3s);
|
||||
break;
|
||||
case NPC_GHOUL_INVADER:
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE_3, 3000);
|
||||
events.ScheduleEvent(EVENT_SPAWN_WAVE_3, 3s);
|
||||
break;
|
||||
case NPC_CRYPT_RAIDER:
|
||||
events.ScheduleEvent(EVENT_SUMMONS_ATTACK, 3000);
|
||||
events.ScheduleEvent(EVENT_SUMMONS_ATTACK, 3s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -227,7 +227,7 @@ public:
|
||||
if (Player* p = ObjectAccessor::GetPlayer(*me, playerGUID))
|
||||
if (p->GetExactDist(me) <= 50.0f)
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
events.Repeat(5s);
|
||||
break;
|
||||
}
|
||||
me->setActive(false);
|
||||
@@ -266,7 +266,7 @@ public:
|
||||
{
|
||||
if (!summons.empty())
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
events.Repeat(5s);
|
||||
return;
|
||||
}
|
||||
else
|
||||
@@ -350,7 +350,7 @@ public:
|
||||
break;
|
||||
}
|
||||
}
|
||||
events.ScheduleEvent(EVENT_SUMMONS_ATTACK, 3000);
|
||||
events.ScheduleEvent(EVENT_SUMMONS_ATTACK, 3s);
|
||||
break;
|
||||
case EVENT_SUMMONS_ATTACK:
|
||||
for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
@@ -370,13 +370,13 @@ public:
|
||||
case EVENT_OUTRO_3:
|
||||
Talk(SAY_OUTRO_0 + (evId - EVENT_OUTRO_0));
|
||||
if (evId == EVENT_OUTRO_3)
|
||||
events.ScheduleEvent(EVENT_OUTRO_KNEEL, 6000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_KNEEL, 6s);
|
||||
break;
|
||||
case EVENT_OUTRO_KNEEL:
|
||||
if (Player* p = ObjectAccessor::GetPlayer(*me, playerGUID))
|
||||
p->KilledMonsterCredit(NPC_THALORIEN_KILL_CREDIT);
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
events.ScheduleEvent(EVENT_DISAPPEAR, 6000);
|
||||
events.ScheduleEvent(EVENT_DISAPPEAR, 6s);
|
||||
break;
|
||||
case EVENT_DISAPPEAR:
|
||||
me->SetVisible(false);
|
||||
@@ -390,17 +390,17 @@ public:
|
||||
case EVENT_SPELL_BLADESTORM:
|
||||
if (me->GetVictim() && me->IsWithinMeleeRange(me->GetVictim()))
|
||||
me->CastSpell(me->GetVictim(), 67541, false);
|
||||
events.RepeatEvent(urand(25000, 35000));
|
||||
events.Repeat(25s, 35s);
|
||||
break;
|
||||
case EVENT_SPELL_MORTAL_STRIKE:
|
||||
if (me->GetVictim() && me->IsWithinMeleeRange(me->GetVictim()))
|
||||
me->CastSpell(me->GetVictim(), 67542, false);
|
||||
events.RepeatEvent(urand(7000, 12000));
|
||||
events.Repeat(7s, 12s);
|
||||
break;
|
||||
case EVENT_SPELL_HEROIC_STRIKE:
|
||||
if (me->GetVictim() && me->IsWithinMeleeRange(me->GetVictim()))
|
||||
me->CastSpell(me->GetVictim(), 57846, false);
|
||||
events.RepeatEvent(urand(5000, 10000));
|
||||
events.Repeat(5s, 10s);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -410,7 +410,7 @@ public:
|
||||
void MovementInform(uint32 type, uint32 id) override
|
||||
{
|
||||
if (type == POINT_MOTION_TYPE && id == EVENT_CHARGE)
|
||||
events.ScheduleEvent(EVENT_SET_FACING, 0);
|
||||
events.ScheduleEvent(EVENT_SET_FACING, 0ms);
|
||||
}
|
||||
|
||||
void EnterEvadeMode(EvadeReason why) override
|
||||
@@ -504,19 +504,19 @@ public:
|
||||
me->SummonCreature(NPC_SUNWELL_VISUAL_BUNNY, 1688.24f, 621.769f, 29.1745f, 0.523177f, TEMPSUMMON_MANUAL_DESPAWN);
|
||||
me->setActive(true);
|
||||
events.Reset();
|
||||
events.ScheduleEvent(1, 1000); // guard talk
|
||||
events.ScheduleEvent(2, 4000); // theron talk
|
||||
events.ScheduleEvent(3, 10000); // npcs walk
|
||||
events.ScheduleEvent(4, 17000); // rommath talk
|
||||
events.ScheduleEvent(5, 20000); // theron talk
|
||||
events.ScheduleEvent(6, 28000); // theron talk
|
||||
events.ScheduleEvent(7, 37000); // rommath talk
|
||||
events.ScheduleEvent(8, 44000); // rommath talk
|
||||
events.ScheduleEvent(9, 52000); // rommath talk
|
||||
events.ScheduleEvent(10, 60000); // auric talk
|
||||
events.ScheduleEvent(11, 66000); // auric talk
|
||||
events.ScheduleEvent(12, 76000); // rommath talk
|
||||
events.ScheduleEvent(13, 80000); // move home
|
||||
events.ScheduleEvent(1, 1s); // guard talk
|
||||
events.ScheduleEvent(2, 4s); // theron talk
|
||||
events.ScheduleEvent(3, 10s); // npcs walk
|
||||
events.ScheduleEvent(4, 17s); // rommath talk
|
||||
events.ScheduleEvent(5, 20s); // theron talk
|
||||
events.ScheduleEvent(6, 28s); // theron talk
|
||||
events.ScheduleEvent(7, 37s); // rommath talk
|
||||
events.ScheduleEvent(8, 44s); // rommath talk
|
||||
events.ScheduleEvent(9, 52s); // rommath talk
|
||||
events.ScheduleEvent(10, 60s); // auric talk
|
||||
events.ScheduleEvent(11, 66s); // auric talk
|
||||
events.ScheduleEvent(12, 76s); // rommath talk
|
||||
events.ScheduleEvent(13, 80s); // move home
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -328,7 +328,7 @@ public:
|
||||
{
|
||||
HasEnded = false;
|
||||
TalkRNG = urand(0,1);
|
||||
events.ScheduleEvent(EVENT_APPA_INTRO, 2000);
|
||||
events.ScheduleEvent(EVENT_APPA_INTRO, 2s);
|
||||
summons.DespawnAll();
|
||||
}
|
||||
|
||||
@@ -387,31 +387,31 @@ public:
|
||||
case EVENT_APPA_INTRO:
|
||||
Talk(SAY_APPA_INTRO);
|
||||
SummonCrowd();
|
||||
events.ScheduleEvent(EVENT_APPA_SAY_1, 3000);
|
||||
events.ScheduleEvent(EVENT_APPA_SAY_1, 3s);
|
||||
break;
|
||||
case EVENT_APPA_SAY_1:
|
||||
Talk(TalkRNG ? SAY_APPA_OPTION_1_1 : SAY_APPA_OPTION_2_1);
|
||||
events.ScheduleEvent(EVENT_APPA_SAY_2, 5000);
|
||||
events.ScheduleEvent(EVENT_APPA_SAY_2, 5s);
|
||||
break;
|
||||
case EVENT_APPA_SAY_2:
|
||||
Talk(TalkRNG ? SAY_APPA_OPTION_1_2 : SAY_APPA_OPTION_2_2);
|
||||
events.ScheduleEvent(EVENT_APPA_SAY_3, 5000);
|
||||
events.ScheduleEvent(EVENT_APPA_SAY_3, 5s);
|
||||
break;
|
||||
case EVENT_APPA_SAY_3:
|
||||
Talk(TalkRNG ? SAY_APPA_OPTION_1_3 : SAY_APPA_OPTION_2_3);
|
||||
events.ScheduleEvent(EVENT_APPA_SAY_4, 5000);
|
||||
events.ScheduleEvent(EVENT_APPA_SAY_4, 5s);
|
||||
break;
|
||||
case EVENT_APPA_SAY_4:
|
||||
Talk(TalkRNG ? SAY_APPA_OPTION_1_4 : SAY_APPA_OPTION_2_4);
|
||||
events.ScheduleEvent(EVENT_APPA_OUTRO, 5000);
|
||||
events.ScheduleEvent(EVENT_APPA_OUTRO, 5s);
|
||||
break;
|
||||
case EVENT_APPA_OUTRO:
|
||||
Talk(SAY_APPA_OUTRO);
|
||||
events.ScheduleEvent(EVENT_APPA_OUTRO_CROWD, 3000);
|
||||
events.ScheduleEvent(EVENT_APPA_OUTRO_CROWD, 3s);
|
||||
break;
|
||||
case EVENT_APPA_OUTRO_CROWD:
|
||||
EmoteCrowd();
|
||||
events.ScheduleEvent(EVENT_APPA_OUTRO_END, 5000);
|
||||
events.ScheduleEvent(EVENT_APPA_OUTRO_END, 5s);
|
||||
break;
|
||||
case EVENT_APPA_OUTRO_END: // Despawn for Apparition is handled via Areatrigger SAI (5m)
|
||||
summons.DespawnAll();
|
||||
|
||||
@@ -367,10 +367,10 @@ struct npc_dark_iron_attack_generator : public ScriptedAI
|
||||
if (AllowStart())
|
||||
{
|
||||
PrepareEvent();
|
||||
events.RepeatEvent(300000);
|
||||
events.Repeat(300s);
|
||||
return;
|
||||
}
|
||||
events.RepeatEvent(2000);
|
||||
events.Repeat(2s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SPAWN_MOLE_MACHINE:
|
||||
@@ -393,7 +393,7 @@ struct npc_dark_iron_attack_generator : public ScriptedAI
|
||||
if (Creature* cr = me->SummonCreature(NPC_MOLE_MACHINE_TRIGGER, x, y, 398.11f, 0.0f))
|
||||
cr->CastSpell(cr, SPELL_SPAWN_MOLE_MACHINE, true);
|
||||
}
|
||||
events.RepeatEvent(3000);
|
||||
events.Repeat(3s);
|
||||
break;
|
||||
}
|
||||
case EVENT_PRE_FINISH_ATTACK:
|
||||
@@ -410,7 +410,7 @@ struct npc_dark_iron_attack_generator : public ScriptedAI
|
||||
}
|
||||
case EVENT_BARTENDER_SAY:
|
||||
{
|
||||
events.RepeatEvent(12000);
|
||||
events.Repeat(12s);
|
||||
Creature* sayer = GetRandomBartender();
|
||||
if (!sayer)
|
||||
return;
|
||||
@@ -1714,12 +1714,12 @@ struct npc_coren_direbrew : public ScriptedAI
|
||||
case EVENT_SUMMON_MOLE_MACHINE:
|
||||
{
|
||||
me->CastCustomSpell(SPELL_MOLE_MACHINE_TARGET_PICKER, SPELLVALUE_MAX_TARGETS, 1, nullptr, true);
|
||||
_events.RepeatEvent(15 * IN_MILLISECONDS);
|
||||
_events.Repeat(15s);
|
||||
break;
|
||||
}
|
||||
case EVENT_DIREBREW_DISARM:
|
||||
DoCastSelf(SPELL_DIREBREW_DISARM_PRE_CAST, true);
|
||||
_events.RepeatEvent(20 * IN_MILLISECONDS);
|
||||
_events.Repeat(20s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -763,7 +763,7 @@ struct npc_hallows_end_soh : public ScriptedAI
|
||||
}
|
||||
|
||||
CastFires(false);
|
||||
events.RepeatEvent(15000);
|
||||
events.Repeat(15s);
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
@@ -868,7 +868,7 @@ struct npc_hallows_end_soh : public ScriptedAI
|
||||
me->RemoveAllAuras();
|
||||
me->SetCanFly(false);
|
||||
me->SetDisableGravity(false);
|
||||
events.ScheduleEvent(4, 2000);
|
||||
events.ScheduleEvent(4, 2s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1202,7 +1202,7 @@ struct boss_headless_horseman : public ScriptedAI
|
||||
talkCount = 0;
|
||||
return; // pop and return, skip repeat
|
||||
}
|
||||
events.RepeatEvent(2000);
|
||||
events.Repeat(2s);
|
||||
break;
|
||||
}
|
||||
case EVENT_HORSEMAN_FOLLOW:
|
||||
@@ -1218,7 +1218,7 @@ struct boss_headless_horseman : public ScriptedAI
|
||||
case EVENT_HORSEMAN_CLEAVE:
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_HORSEMAN_CLEAVE, false);
|
||||
events.RepeatEvent(8000);
|
||||
events.Repeat(8s);
|
||||
break;
|
||||
}
|
||||
case EVENT_HORSEMAN_WHIRLWIND:
|
||||
@@ -1226,11 +1226,11 @@ struct boss_headless_horseman : public ScriptedAI
|
||||
if (me->HasAuraEffect(SPELL_HORSEMAN_WHIRLWIND, EFFECT_0))
|
||||
{
|
||||
me->RemoveAura(SPELL_HORSEMAN_WHIRLWIND);
|
||||
events.RepeatEvent(15000);
|
||||
events.Repeat(15s);
|
||||
break;
|
||||
}
|
||||
me->CastSpell(me, SPELL_HORSEMAN_WHIRLWIND, true);
|
||||
events.RepeatEvent(6000);
|
||||
events.Repeat(6s);
|
||||
break;
|
||||
}
|
||||
case EVENT_HORSEMAN_CHECK_HEALTH:
|
||||
@@ -1241,7 +1241,7 @@ struct boss_headless_horseman : public ScriptedAI
|
||||
return;
|
||||
}
|
||||
|
||||
events.RepeatEvent(1000);
|
||||
events.Repeat(1s);
|
||||
break;
|
||||
}
|
||||
case EVENT_HORSEMAN_CONFLAGRATION:
|
||||
@@ -1253,21 +1253,21 @@ struct boss_headless_horseman : public ScriptedAI
|
||||
Talk(TALK_CONFLAGRATION);
|
||||
}
|
||||
|
||||
events.RepeatEvent(12500);
|
||||
events.Repeat(12500ms);
|
||||
break;
|
||||
}
|
||||
case EVENT_SUMMON_PUMPKIN:
|
||||
{
|
||||
if (talkCount < 4)
|
||||
{
|
||||
events.RepeatEvent(1);
|
||||
events.Repeat(1ms);
|
||||
talkCount++;
|
||||
me->CastSpell(me, SPELL_SUMMON_PUMPKIN, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
Talk(TALK_SPROUTING_PUMPKINS);
|
||||
events.RepeatEvent(15000);
|
||||
events.Repeat(15s);
|
||||
talkCount = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -297,7 +297,7 @@ struct boss_archimonde : public BossAI
|
||||
}
|
||||
}
|
||||
}, 5s);
|
||||
ScheduleTimedEvent(5000ms, [&]
|
||||
ScheduleTimedEvent(5s, [&]
|
||||
{
|
||||
bool noPlayersInRange = true;
|
||||
if (Map* map = me->GetMap())
|
||||
|
||||
@@ -110,7 +110,7 @@ public:
|
||||
if (Creature* archi = instance->GetCreature(DATA_ARCHIMONDE))
|
||||
{
|
||||
archi->AI()->DoAction(ACTION_BECOME_ACTIVE_AND_CHANNEL);
|
||||
archi->AI()->Talk(SAY_ARCHIMONDE_INTRO, 25000ms);
|
||||
archi->AI()->Talk(SAY_ARCHIMONDE_INTRO, 25s);
|
||||
}
|
||||
BossAI::JustDied(killer);
|
||||
}
|
||||
|
||||
@@ -94,9 +94,9 @@ public:
|
||||
Milliseconds GetMarkRepeatTimer()
|
||||
{
|
||||
++_markCounter;
|
||||
Milliseconds timer = 45000ms - (5000ms * _markCounter);
|
||||
if (timer <= 10000ms)
|
||||
return 10000ms;
|
||||
Milliseconds timer = 45s - (5s * _markCounter);
|
||||
if (timer <= 10s)
|
||||
return 10s;
|
||||
else
|
||||
return timer;
|
||||
}
|
||||
|
||||
@@ -53,16 +53,16 @@ ObjectData const creatureData[] =
|
||||
|
||||
Milliseconds hyjalWaveTimers[4][MAX_WAVES_STANDARD]
|
||||
{
|
||||
{ 130000ms, 130000ms, 130000ms, 130000ms, 130000ms, 130000ms, 130000ms, 190000ms, 0ms }, // Winterchill
|
||||
{ 130000ms, 130000ms, 130000ms, 130000ms, 130000ms, 130000ms, 130000ms, 190000ms, 0ms }, // Anetheron
|
||||
{ 130000ms, 155000ms, 130000ms, 155000ms, 130000ms, 130000ms, 155000ms, 225000ms, 0ms }, // Kaz'rogal
|
||||
{ 130000ms, 190000ms, 190000ms, 190000ms, 130000ms, 155000ms, 190000ms, 225000ms, 0ms } // Azgalor
|
||||
{ 130s, 130s, 130s, 130s, 130s, 130s, 130s, 190s, 0ms }, // Winterchill
|
||||
{ 130s, 130s, 130s, 130s, 130s, 130s, 130s, 190s, 0ms }, // Anetheron
|
||||
{ 130s, 155s, 130s, 155s, 130s, 130s, 155s, 225s, 0ms }, // Kaz'rogal
|
||||
{ 130s, 190s, 190s, 190s, 130s, 155s, 190s, 225s, 0ms } // Azgalor
|
||||
};
|
||||
|
||||
Milliseconds hyjalRetreatTimers[2][MAX_WAVES_RETREAT]
|
||||
{
|
||||
{ 10000ms, 6000ms , 0ms }, // Alliance
|
||||
{ 10000ms, 40000ms, 0ms } // Horde
|
||||
{ 10s, 6s , 0ms }, // Alliance
|
||||
{ 10s, 40s, 0ms } // Horde
|
||||
};
|
||||
|
||||
Milliseconds hyjalNightElfWaveTimers[1][MAX_WAVES_NIGHT_ELF]
|
||||
@@ -295,7 +295,7 @@ public:
|
||||
}
|
||||
|
||||
// Despawn all alliance NPCs
|
||||
scheduler.Schedule(21000ms, [this](TaskContext)
|
||||
scheduler.Schedule(21s, [this](TaskContext)
|
||||
{
|
||||
for (ObjectGuid const& guid : _baseAlliance)
|
||||
if (Creature* creature = instance->GetCreature(guid))
|
||||
@@ -343,7 +343,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
scheduler.Schedule(21000ms, [this](TaskContext)
|
||||
scheduler.Schedule(21s, [this](TaskContext)
|
||||
{
|
||||
for (ObjectGuid const& guid : _baseHorde)
|
||||
if (Creature* creature = instance->GetCreature(guid))
|
||||
|
||||
@@ -77,12 +77,12 @@ public:
|
||||
{
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
events.ScheduleEvent(EVENT_SPELL_CURSE_OF_EXERTION, 9000);
|
||||
events.ScheduleEvent(EVENT_SPELL_WOUNDING_STRIKE, 3000);
|
||||
events.ScheduleEvent(EVENT_SPELL_TIME_WARP, 25000);
|
||||
events.ScheduleEvent(EVENT_SPELL_CURSE_OF_EXERTION, 9s);
|
||||
events.ScheduleEvent(EVENT_SPELL_WOUNDING_STRIKE, 3s);
|
||||
events.ScheduleEvent(EVENT_SPELL_TIME_WARP, 25s);
|
||||
|
||||
if (IsHeroic())
|
||||
events.ScheduleEvent(EVENT_SPELL_TIME_STOP, 20000);
|
||||
events.ScheduleEvent(EVENT_SPELL_TIME_STOP, 20s);
|
||||
}
|
||||
|
||||
void SpellHitTarget(Unit* target, SpellInfo const* spellInfo) override
|
||||
@@ -116,15 +116,15 @@ public:
|
||||
case EVENT_SPELL_CURSE_OF_EXERTION:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
|
||||
me->CastSpell(target, SPELL_CURSE_OF_EXERTION, false);
|
||||
events.RepeatEvent(9000);
|
||||
events.Repeat(9s);
|
||||
break;
|
||||
case EVENT_SPELL_WOUNDING_STRIKE:
|
||||
me->CastSpell(me->GetVictim(), DUNGEON_MODE(SPELL_WOUNDING_STRIKE_N, SPELL_WOUNDING_STRIKE_H), false);
|
||||
events.RepeatEvent(6000);
|
||||
events.Repeat(6s);
|
||||
break;
|
||||
case EVENT_SPELL_TIME_STOP:
|
||||
me->CastSpell(me, SPELL_TIME_STOP, false);
|
||||
events.RepeatEvent(20000);
|
||||
events.Repeat(20s);
|
||||
break;
|
||||
case EVENT_SPELL_TIME_WARP:
|
||||
Talk(SAY_TIME_WARP);
|
||||
@@ -132,7 +132,7 @@ public:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
|
||||
me->CastSpell(target, DUNGEON_MODE(SPELL_TIME_STEP_N, SPELL_TIME_STEP_H), true);
|
||||
|
||||
events.RepeatEvent(25000);
|
||||
events.Repeat(25s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -79,8 +79,8 @@ public:
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
events.ScheduleEvent(EVENT_SPELL_VOID_STRIKE, 8000);
|
||||
events.ScheduleEvent(EVENT_SPELL_CORRUPTING_BLIGHT, 12000);
|
||||
events.ScheduleEvent(EVENT_SPELL_VOID_STRIKE, 8s);
|
||||
events.ScheduleEvent(EVENT_SPELL_CORRUPTING_BLIGHT, 12s);
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
@@ -147,12 +147,12 @@ public:
|
||||
{
|
||||
case EVENT_SPELL_VOID_STRIKE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_VOID_STRIKE, false);
|
||||
events.RepeatEvent(8000);
|
||||
events.Repeat(8s);
|
||||
break;
|
||||
case EVENT_SPELL_CORRUPTING_BLIGHT:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
|
||||
me->CastSpell(target, SPELL_CORRUPTING_BLIGHT, false);
|
||||
events.RepeatEvent(12000);
|
||||
events.Repeat(12s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -87,10 +87,10 @@ public:
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
Talk(SAY_AGGRO);
|
||||
events.ScheduleEvent(EVENT_SPELL_CARRION_SWARM, 6000);
|
||||
events.ScheduleEvent(EVENT_SPELL_MIND_BLAST, 11000);
|
||||
events.ScheduleEvent(EVENT_SPELL_SLEEP, 20000);
|
||||
events.ScheduleEvent(EVENT_SPELL_VAMPIRIC_TOUCH, 15000);
|
||||
events.ScheduleEvent(EVENT_SPELL_CARRION_SWARM, 6s);
|
||||
events.ScheduleEvent(EVENT_SPELL_MIND_BLAST, 11s);
|
||||
events.ScheduleEvent(EVENT_SPELL_SLEEP, 20s);
|
||||
events.ScheduleEvent(EVENT_SPELL_VAMPIRIC_TOUCH, 15s);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -146,22 +146,22 @@ public:
|
||||
{
|
||||
case EVENT_SPELL_CARRION_SWARM:
|
||||
me->CastSpell(me->GetVictim(), DUNGEON_MODE(SPELL_CARRION_SWARM_N, SPELL_CARRION_SWARM_H), false);
|
||||
events.RepeatEvent(7000);
|
||||
events.Repeat(7s);
|
||||
break;
|
||||
case EVENT_SPELL_MIND_BLAST:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
|
||||
me->CastSpell(target, DUNGEON_MODE(SPELL_MIND_BLAST_N, SPELL_MIND_BLAST_H), false);
|
||||
events.RepeatEvent(6000);
|
||||
events.Repeat(6s);
|
||||
break;
|
||||
case EVENT_SPELL_SLEEP:
|
||||
Talk(SAY_SLEEP);
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
|
||||
me->CastSpell(target, DUNGEON_MODE(SPELL_SLEEP_N, SPELL_SLEEP_H), false);
|
||||
events.RepeatEvent(17000);
|
||||
events.Repeat(17s);
|
||||
break;
|
||||
case EVENT_SPELL_VAMPIRIC_TOUCH:
|
||||
me->CastSpell(me, SPELL_VAMPIRIC_TOUCH, true);
|
||||
events.RepeatEvent(30000);
|
||||
events.Repeat(30s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -66,9 +66,9 @@ public:
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
Talk(SAY_AGGRO);
|
||||
events.RescheduleEvent(EVENT_SPELL_CONSTRICTING_CHAINS, 15000);
|
||||
events.RescheduleEvent(EVENT_SPELL_DISEASE_EXPULSION, 4000);
|
||||
events.RescheduleEvent(EVENT_SPELL_FRENZY, 20000);
|
||||
events.RescheduleEvent(EVENT_SPELL_CONSTRICTING_CHAINS, 15s);
|
||||
events.RescheduleEvent(EVENT_SPELL_DISEASE_EXPULSION, 4s);
|
||||
events.RescheduleEvent(EVENT_SPELL_FRENZY, 20s);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -98,16 +98,16 @@ public:
|
||||
{
|
||||
case EVENT_SPELL_DISEASE_EXPULSION:
|
||||
me->CastSpell(me, DUNGEON_MODE(SPELL_DISEASE_EXPULSION_N, SPELL_DISEASE_EXPULSION_H), false);
|
||||
events.RepeatEvent(6000);
|
||||
events.Repeat(6s);
|
||||
break;
|
||||
case EVENT_SPELL_FRENZY:
|
||||
me->CastSpell(me, SPELL_FRENZY, false);
|
||||
events.RepeatEvent(20000);
|
||||
events.Repeat(20s);
|
||||
break;
|
||||
case EVENT_SPELL_CONSTRICTING_CHAINS:
|
||||
if (Unit* pTarget = SelectTarget(SelectTargetMethod::MinThreat, 0, 50.0f, true))
|
||||
me->CastSpell(pTarget, DUNGEON_MODE(SPELL_CONSTRICTING_CHAINS_N, SPELL_CONSTRICTING_CHAINS_H), false);
|
||||
events.RepeatEvent(14000);
|
||||
events.Repeat(14s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -84,12 +84,12 @@ public:
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
Talk(SAY_AGGRO);
|
||||
events.ScheduleEvent(EVENT_SPELL_SHADOW_BOLT, 7000);
|
||||
events.ScheduleEvent(EVENT_SPELL_STEAL_FLESH, 11000);
|
||||
events.ScheduleEvent(EVENT_SPELL_SUMMON_GHOULS, 16000);
|
||||
events.ScheduleEvent(EVENT_EXPLODE_GHOUL, 22000);
|
||||
events.ScheduleEvent(EVENT_SPELL_SHADOW_BOLT, 7s);
|
||||
events.ScheduleEvent(EVENT_SPELL_STEAL_FLESH, 11s);
|
||||
events.ScheduleEvent(EVENT_SPELL_SUMMON_GHOULS, 16s);
|
||||
events.ScheduleEvent(EVENT_EXPLODE_GHOUL, 22s);
|
||||
if (IsHeroic())
|
||||
events.ScheduleEvent(EVENT_SPELL_CURSE, 25000);
|
||||
events.ScheduleEvent(EVENT_SPELL_CURSE, 25s);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -130,29 +130,29 @@ public:
|
||||
{
|
||||
case EVENT_SPELL_SHADOW_BOLT:
|
||||
me->CastSpell(me->GetVictim(), DUNGEON_MODE(SPELL_SHADOW_BOLT_N, SPELL_SHADOW_BOLT_H), false);
|
||||
events.RepeatEvent(10000);
|
||||
events.Repeat(10s);
|
||||
break;
|
||||
case EVENT_SPELL_STEAL_FLESH:
|
||||
if (!urand(0, 2))
|
||||
Talk(SAY_STEAL_FLESH);
|
||||
me->CastSpell(me->GetVictim(), SPELL_STEAL_FLESH_CHANNEL, false);
|
||||
events.RepeatEvent(12000);
|
||||
events.Repeat(12s);
|
||||
break;
|
||||
case EVENT_SPELL_SUMMON_GHOULS:
|
||||
if (!urand(0, 2))
|
||||
Talk(SAY_SUMMON_GHOULS);
|
||||
me->CastSpell(me, SPELL_SUMMON_GHOULS, false);
|
||||
events.RepeatEvent(10000);
|
||||
events.Repeat(10s);
|
||||
break;
|
||||
case EVENT_EXPLODE_GHOUL:
|
||||
if (!urand(0, 2))
|
||||
Talk(SAY_EXPLODE_GHOUL);
|
||||
ExplodeGhoul();
|
||||
events.RepeatEvent(15000);
|
||||
events.Repeat(15s);
|
||||
break;
|
||||
case EVENT_SPELL_CURSE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_CURSE_OF_TWISTED_FAITH, false);
|
||||
events.RepeatEvent(30000);
|
||||
events.Repeat(30s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -385,7 +385,7 @@ public:
|
||||
uint8 timeRiftId;
|
||||
|
||||
Creature* GetEventNpc(uint32 entry);
|
||||
void ScheduleNextEvent(uint32 currentEvent, uint32 time);
|
||||
void ScheduleNextEvent(uint32 currentEvent, Milliseconds time);
|
||||
void SummonNextWave();
|
||||
void ReorderInstance(uint32 data);
|
||||
void JustEngagedWith(Unit* /*who*/) override ;
|
||||
@@ -418,12 +418,12 @@ public:
|
||||
{
|
||||
// Event
|
||||
eventInRun = true;
|
||||
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE1, 0);
|
||||
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE1, 0ms);
|
||||
}
|
||||
else if (param == ACTION_START_CITY)
|
||||
{
|
||||
Talk(SAY_PHASE201);
|
||||
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE2, 12000);
|
||||
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE2, 12s);
|
||||
SetRun(false);
|
||||
eventInRun = true;
|
||||
|
||||
@@ -435,7 +435,7 @@ public:
|
||||
waveGroupId = 10;
|
||||
eventInRun = true;
|
||||
SetRun(true);
|
||||
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE2 + 9, 10000);
|
||||
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE2 + 9, 10s);
|
||||
}
|
||||
else if (param == ACTION_START_TOWN_HALL)
|
||||
{
|
||||
@@ -486,7 +486,7 @@ public:
|
||||
{
|
||||
EnterEvadeMode();
|
||||
eventInRun = true;
|
||||
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE5 + 1, 22000);
|
||||
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE5 + 1, 22s);
|
||||
me->SetFacingTo(1.84f);
|
||||
|
||||
if (!me->GetMap()->GetPlayers().IsEmpty())
|
||||
@@ -579,7 +579,7 @@ public:
|
||||
break;
|
||||
// Inside Town Hall first scene pos
|
||||
case 22:
|
||||
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE3, 0);
|
||||
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE3, 0ms);
|
||||
eventInRun = true;
|
||||
SetEscortPaused(true);
|
||||
break;
|
||||
@@ -652,7 +652,7 @@ public:
|
||||
// Infront of malganis
|
||||
case 55:
|
||||
Talk(SAY_PHASE502);
|
||||
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE5, 7000);
|
||||
actionEvents.ScheduleEvent(EVENT_ACTION_PHASE5, 7s);
|
||||
SetEscortPaused(true);
|
||||
eventInRun = true;
|
||||
break;
|
||||
@@ -686,7 +686,7 @@ public:
|
||||
if (Creature* horse = me->SummonCreature(NPC_HORSE_ESCORT, EventPos[EVENT_SRC_HORSE1 + i], TEMPSUMMON_DEAD_DESPAWN, 180000))
|
||||
horse->GetMotionMaster()->MovePoint(0, EventPos[EVENT_DST_HORSE1 + i], false);
|
||||
|
||||
ScheduleNextEvent(currentEvent, 4000);
|
||||
ScheduleNextEvent(currentEvent, 4s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+1:
|
||||
// Start Event
|
||||
@@ -694,24 +694,24 @@ public:
|
||||
SetDespawnAtEnd(false);
|
||||
SetDespawnAtFar(false);
|
||||
|
||||
ScheduleNextEvent(currentEvent, 9000);
|
||||
ScheduleNextEvent(currentEvent, 9s);
|
||||
break;
|
||||
// After waypoint 0
|
||||
case EVENT_ACTION_PHASE1+2:
|
||||
Talk(SAY_PHASE101);
|
||||
ScheduleNextEvent(currentEvent, 2000);
|
||||
ScheduleNextEvent(currentEvent, 2s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+3:
|
||||
if (Creature* uther = GetEventNpc(NPC_UTHER))
|
||||
uther->AI()->Talk(SAY_PHASE102);
|
||||
|
||||
ScheduleNextEvent(currentEvent, 8000);
|
||||
ScheduleNextEvent(currentEvent, 8s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+4:
|
||||
SetEscortPaused(false);
|
||||
eventInRun = false;
|
||||
Talk(SAY_PHASE103);
|
||||
ScheduleNextEvent(currentEvent, 2000);
|
||||
ScheduleNextEvent(currentEvent, 2s);
|
||||
break;
|
||||
// After waypoint 1
|
||||
case EVENT_ACTION_PHASE1+5:
|
||||
@@ -719,63 +719,63 @@ public:
|
||||
jaina->SetTarget(me->GetGUID());
|
||||
|
||||
Talk(SAY_PHASE104);
|
||||
ScheduleNextEvent(currentEvent, 10000);
|
||||
ScheduleNextEvent(currentEvent, 10s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+6:
|
||||
if (Creature* uther = GetEventNpc(NPC_UTHER))
|
||||
uther->AI()->Talk(SAY_PHASE105);
|
||||
|
||||
ScheduleNextEvent(currentEvent, 1000);
|
||||
ScheduleNextEvent(currentEvent, 1s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+7:
|
||||
Talk(SAY_PHASE106);
|
||||
ScheduleNextEvent(currentEvent, 4000);
|
||||
ScheduleNextEvent(currentEvent, 4s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+8:
|
||||
if (Creature* uther = GetEventNpc(NPC_UTHER))
|
||||
uther->AI()->Talk(SAY_PHASE107);
|
||||
|
||||
ScheduleNextEvent(currentEvent, 6000);
|
||||
ScheduleNextEvent(currentEvent, 6s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+9:
|
||||
Talk(SAY_PHASE108);
|
||||
ScheduleNextEvent(currentEvent, 4000);
|
||||
ScheduleNextEvent(currentEvent, 4s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+10:
|
||||
if (Creature* uther = GetEventNpc(NPC_UTHER))
|
||||
uther->AI()->Talk(SAY_PHASE109);
|
||||
|
||||
ScheduleNextEvent(currentEvent, 8000);
|
||||
ScheduleNextEvent(currentEvent, 8s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+11:
|
||||
Talk(SAY_PHASE110);
|
||||
ScheduleNextEvent(currentEvent, 4000);
|
||||
ScheduleNextEvent(currentEvent, 4s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+12:
|
||||
if (Creature* uther = GetEventNpc(NPC_UTHER))
|
||||
uther->AI()->Talk(SAY_PHASE111);
|
||||
|
||||
ScheduleNextEvent(currentEvent, 4000);
|
||||
ScheduleNextEvent(currentEvent, 4s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+13:
|
||||
Talk(SAY_PHASE112);
|
||||
ScheduleNextEvent(currentEvent, 11000);
|
||||
ScheduleNextEvent(currentEvent, 11s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+14:
|
||||
if (Creature* jaina = GetEventNpc(NPC_JAINA))
|
||||
jaina->AI()->Talk(SAY_PHASE113);
|
||||
|
||||
ScheduleNextEvent(currentEvent, 2500);
|
||||
ScheduleNextEvent(currentEvent, 2500ms);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+15:
|
||||
Talk(SAY_PHASE114);
|
||||
ScheduleNextEvent(currentEvent, 9000);
|
||||
ScheduleNextEvent(currentEvent, 9s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+16:
|
||||
if (Creature* uther = GetEventNpc(NPC_UTHER))
|
||||
uther->AI()->Talk(SAY_PHASE115);
|
||||
|
||||
ScheduleNextEvent(currentEvent, 4000);
|
||||
ScheduleNextEvent(currentEvent, 4s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+17:
|
||||
for (SummonList::const_iterator i = summons.begin(); i != summons.end(); ++i)
|
||||
@@ -785,7 +785,7 @@ public:
|
||||
summon->GetMotionMaster()->MovePoint(0, EventPos[EVENT_POS_RETREAT], false);
|
||||
}
|
||||
|
||||
ScheduleNextEvent(currentEvent, 1000);
|
||||
ScheduleNextEvent(currentEvent, 1s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+18:
|
||||
if (Creature* uther = GetEventNpc(NPC_UTHER))
|
||||
@@ -794,7 +794,7 @@ public:
|
||||
uther->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
uther->GetMotionMaster()->MovePoint(0, EventPos[EVENT_POS_RETREAT], false);
|
||||
}
|
||||
ScheduleNextEvent(currentEvent, 1000);
|
||||
ScheduleNextEvent(currentEvent, 1s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+19:
|
||||
if (Creature* jaina = GetEventNpc(NPC_JAINA))
|
||||
@@ -804,7 +804,7 @@ public:
|
||||
jaina->GetMotionMaster()->MovePoint(0, EventPos[EVENT_POS_RETREAT], false);
|
||||
}
|
||||
Talk(SAY_PHASE116);
|
||||
ScheduleNextEvent(currentEvent, 2000);
|
||||
ScheduleNextEvent(currentEvent, 2s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+20:
|
||||
if (Creature* jaina = GetEventNpc(NPC_JAINA))
|
||||
@@ -813,7 +813,7 @@ public:
|
||||
jaina->AI()->Talk(SAY_PHASE117);
|
||||
}
|
||||
|
||||
ScheduleNextEvent(currentEvent, 2000);
|
||||
ScheduleNextEvent(currentEvent, 2s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+21:
|
||||
if (Creature* jaina = GetEventNpc(NPC_JAINA))
|
||||
@@ -822,7 +822,7 @@ public:
|
||||
jaina->GetMotionMaster()->MovePoint(0, EventPos[EVENT_POS_RETREAT], false);
|
||||
}
|
||||
summons.DespawnEntry(NPC_HORSE_ESCORT);
|
||||
ScheduleNextEvent(currentEvent, 4000);
|
||||
ScheduleNextEvent(currentEvent, 4s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE1+22:
|
||||
SetEscortPaused(false);
|
||||
@@ -836,7 +836,7 @@ public:
|
||||
me->SetTarget();
|
||||
SetEscortPaused(false);
|
||||
eventInRun = false;
|
||||
ScheduleNextEvent(currentEvent, 1000);
|
||||
ScheduleNextEvent(currentEvent, 1s);
|
||||
break;
|
||||
// After waypoint 9
|
||||
case EVENT_ACTION_PHASE2+1:
|
||||
@@ -848,13 +848,13 @@ public:
|
||||
cityman->GetMotionMaster()->MovePoint(0, EventPos[EVENT_DST_CITYMAN]);
|
||||
}
|
||||
|
||||
ScheduleNextEvent(currentEvent, 9000);
|
||||
ScheduleNextEvent(currentEvent, 9s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE2+2:
|
||||
Talk(SAY_PHASE203);
|
||||
SetEscortPaused(false);
|
||||
eventInRun = false;
|
||||
ScheduleNextEvent(currentEvent, 1500);
|
||||
ScheduleNextEvent(currentEvent, 1500ms);
|
||||
break;
|
||||
// After waypoint 11
|
||||
case EVENT_ACTION_PHASE2+3:
|
||||
@@ -864,7 +864,7 @@ public:
|
||||
stalker->DespawnOrUnsummon(500);
|
||||
}
|
||||
Talk(SAY_PHASE205);
|
||||
ScheduleNextEvent(currentEvent, 4000);
|
||||
ScheduleNextEvent(currentEvent, 4s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE2+4:
|
||||
if (Creature* malganis = me->SummonCreature(NPC_MAL_GANIS, EventPos[EVENT_SRC_MALGANIS], TEMPSUMMON_TIMED_DESPAWN, 60000))
|
||||
@@ -889,13 +889,13 @@ public:
|
||||
unitList.clear();
|
||||
}
|
||||
|
||||
ScheduleNextEvent(currentEvent, 12000);
|
||||
ScheduleNextEvent(currentEvent, 12s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE2+5:
|
||||
if (Creature* malganis = GetEventNpc(NPC_MAL_GANIS))
|
||||
malganis->AI()->Talk(SAY_PHASE207);
|
||||
|
||||
ScheduleNextEvent(currentEvent, 15000);
|
||||
ScheduleNextEvent(currentEvent, 15s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE2+6:
|
||||
if (Creature* malganis = GetEventNpc(NPC_MAL_GANIS))
|
||||
@@ -906,7 +906,7 @@ public:
|
||||
}
|
||||
|
||||
Talk(SAY_PHASE208);
|
||||
ScheduleNextEvent(currentEvent, 11000);
|
||||
ScheduleNextEvent(currentEvent, 11s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE2+7:
|
||||
summons.DespawnEntry(NPC_MAL_GANIS);
|
||||
@@ -914,7 +914,7 @@ public:
|
||||
summons.DespawnEntry(NPC_CITY_MAN2);
|
||||
Talk(SAY_PHASE209);
|
||||
me->SetReactState(REACT_DEFENSIVE);
|
||||
ScheduleNextEvent(currentEvent, 20000);
|
||||
ScheduleNextEvent(currentEvent, 20s);
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_FINISHED_CITY_INTRO);
|
||||
break;
|
||||
@@ -941,36 +941,36 @@ public:
|
||||
cr->SetTarget(me->GetGUID());
|
||||
if (Creature* cr = GetEventNpc(NPC_CITY_MAN))
|
||||
cr->SetTarget(me->GetGUID());
|
||||
ScheduleNextEvent(currentEvent, 1000);
|
||||
ScheduleNextEvent(currentEvent, 1s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE3+1:
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
if (Creature* cr = GetEventNpc(NPC_CITY_MAN3))
|
||||
cr->AI()->Talk(SAY_PHASE302);
|
||||
|
||||
ScheduleNextEvent(currentEvent, 7000);
|
||||
ScheduleNextEvent(currentEvent, 7s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE3+2:
|
||||
Talk(SAY_PHASE303);
|
||||
SetEscortPaused(false);
|
||||
eventInRun = false;
|
||||
ScheduleNextEvent(currentEvent, 0);
|
||||
ScheduleNextEvent(currentEvent, 0ms);
|
||||
break;
|
||||
// After waypoint 23
|
||||
case EVENT_ACTION_PHASE3+3:
|
||||
SetRun(true);
|
||||
if (Creature* cr = GetEventNpc(NPC_CITY_MAN3))
|
||||
me->CastSpell(cr, SPELL_ARTHAS_CRUSADER_STRIKE, true);
|
||||
ScheduleNextEvent(currentEvent, 2000);
|
||||
ScheduleNextEvent(currentEvent, 2s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE3+4:
|
||||
Talk(SAY_PHASE304);
|
||||
ScheduleNextEvent(currentEvent, 2000);
|
||||
ScheduleNextEvent(currentEvent, 2s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE3+5:
|
||||
if (Creature* cr = GetEventNpc(NPC_CITY_MAN3))
|
||||
cr->AI()->Talk(SAY_PHASE305);
|
||||
ScheduleNextEvent(currentEvent, 1000);
|
||||
ScheduleNextEvent(currentEvent, 1s);
|
||||
break;
|
||||
// Trio citizen transformation right as we enter Town Hall
|
||||
case EVENT_ACTION_PHASE3+6:
|
||||
@@ -981,7 +981,7 @@ public:
|
||||
cr->SetImmuneToAll(true);
|
||||
cr->SetReactState(REACT_PASSIVE);
|
||||
}
|
||||
ScheduleNextEvent(currentEvent, 2000);
|
||||
ScheduleNextEvent(currentEvent, 2s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE3+7:
|
||||
if (Creature* cr = GetEventNpc(NPC_CITY_MAN4))
|
||||
@@ -991,7 +991,7 @@ public:
|
||||
cr->SetImmuneToAll(true);
|
||||
cr->SetReactState(REACT_PASSIVE);
|
||||
}
|
||||
ScheduleNextEvent(currentEvent, 2000);
|
||||
ScheduleNextEvent(currentEvent, 2s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE3+8:
|
||||
if (Creature* cr = GetEventNpc(NPC_CITY_MAN3))
|
||||
@@ -1016,35 +1016,35 @@ public:
|
||||
cr->SetInCombatWithZone();
|
||||
cr->AddThreat(me, 0.0f);
|
||||
}
|
||||
ScheduleNextEvent(currentEvent, 2000);
|
||||
ScheduleNextEvent(currentEvent, 2s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE3+9:
|
||||
// Arthas is fighting infinites in town hall
|
||||
if (me->IsInCombat())
|
||||
{
|
||||
actionEvents.RepeatEvent(1000);
|
||||
actionEvents.Repeat(1s);
|
||||
return;
|
||||
}
|
||||
|
||||
summons.DespawnAll();
|
||||
Talk(SAY_PHASE305_1);
|
||||
me->SetFacingTo(0.0f);
|
||||
ScheduleNextEvent(currentEvent, 5000);
|
||||
ScheduleNextEvent(currentEvent, 5s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE3+10:
|
||||
Talk(SAY_PHASE306);
|
||||
ScheduleNextEvent(currentEvent, 5000);
|
||||
ScheduleNextEvent(currentEvent, 5s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE3+11:
|
||||
SetEscortPaused(false);
|
||||
eventInRun = false;
|
||||
ScheduleNextEvent(currentEvent, 1000);
|
||||
ScheduleNextEvent(currentEvent, 1s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE3+12:
|
||||
// Arthas is fighting first chronos
|
||||
if (me->IsInCombat())
|
||||
{
|
||||
actionEvents.RepeatEvent(1000);
|
||||
actionEvents.Repeat(1s);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1052,13 +1052,13 @@ public:
|
||||
SetEscortPaused(false);
|
||||
Talk(SAY_PHASE308);
|
||||
me->SetFacingTo(M_PI);
|
||||
ScheduleNextEvent(currentEvent, 0);
|
||||
ScheduleNextEvent(currentEvent, 0ms);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE3+13:
|
||||
// Arthas is fighting second chronos
|
||||
if (me->IsInCombat())
|
||||
{
|
||||
actionEvents.RepeatEvent(1000);
|
||||
actionEvents.Repeat(1s);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1066,18 +1066,18 @@ public:
|
||||
SetEscortPaused(false);
|
||||
Talk(SAY_PHASE311);
|
||||
me->SetFacingTo(M_PI * 3 / 2);
|
||||
ScheduleNextEvent(currentEvent, 0);
|
||||
ScheduleNextEvent(currentEvent, 0ms);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE3+14:
|
||||
// Arthas is fighting third chronos
|
||||
if (me->IsInCombat())
|
||||
{
|
||||
actionEvents.RepeatEvent(1000);
|
||||
actionEvents.Repeat(1s);
|
||||
return;
|
||||
}
|
||||
|
||||
me->SetFacingTo(M_PI / 2);
|
||||
ScheduleNextEvent(currentEvent, 8000);
|
||||
ScheduleNextEvent(currentEvent, 8s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE3+15:
|
||||
Talk(SAY_PHASE313);
|
||||
@@ -1090,17 +1090,17 @@ public:
|
||||
cr->GetMotionMaster()->MovePoint(0, EventPos[EVENT_DST_EPOCH]);
|
||||
}
|
||||
|
||||
ScheduleNextEvent(currentEvent, 3000);
|
||||
ScheduleNextEvent(currentEvent, 3s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE3+16:
|
||||
if (Creature* cr = GetEventNpc(NPC_EPOCH))
|
||||
cr->AI()->Talk(SAY_PHASE314);
|
||||
|
||||
ScheduleNextEvent(currentEvent, 14000);
|
||||
ScheduleNextEvent(currentEvent, 14s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE3+17:
|
||||
Talk(SAY_PHASE315);
|
||||
ScheduleNextEvent(currentEvent, 7000);
|
||||
ScheduleNextEvent(currentEvent, 7s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE3+18:
|
||||
if (Creature* cr = GetEventNpc(NPC_EPOCH))
|
||||
@@ -1111,13 +1111,13 @@ public:
|
||||
cr->AddThreat(me, 0.0f);
|
||||
cr->SetInCombatWithZone();
|
||||
}
|
||||
ScheduleNextEvent(currentEvent, 1000);
|
||||
ScheduleNextEvent(currentEvent, 1s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE3+19:
|
||||
// Arthas is fighting epoch chronos
|
||||
if (me->IsInCombat())
|
||||
{
|
||||
actionEvents.RepeatEvent(1000);
|
||||
actionEvents.Repeat(1s);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1143,7 +1143,7 @@ public:
|
||||
Talk(SAY_PHASE503);
|
||||
SetEscortPaused(false);
|
||||
eventInRun = false;
|
||||
ScheduleNextEvent(currentEvent, 5000);
|
||||
ScheduleNextEvent(currentEvent, 5s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE5+2:
|
||||
me->SetFacingTo(5.28f);
|
||||
@@ -1156,7 +1156,7 @@ public:
|
||||
|
||||
pInstance->instance->SummonGameObject(DUNGEON_MODE(GO_MALGANIS_CHEST_N, GO_MALGANIS_CHEST_H), 2288.35f, 1498.73f, 128.414f, -0.994837f, 0, 0, 0, 0, 7 * DAY * IN_MILLISECONDS);
|
||||
}
|
||||
ScheduleNextEvent(currentEvent, 10000);
|
||||
ScheduleNextEvent(currentEvent, 10s);
|
||||
break;
|
||||
case EVENT_ACTION_PHASE5+3:
|
||||
eventInRun = false;
|
||||
@@ -1179,13 +1179,13 @@ public:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
|
||||
me->CastSpell(target, DUNGEON_MODE(SPELL_ARTHAS_EXORCISM_N, SPELL_ARTHAS_EXORCISM_H), false);
|
||||
|
||||
combatEvents.RepeatEvent(7300);
|
||||
combatEvents.Repeat(7300ms);
|
||||
break;
|
||||
case EVENT_COMBAT_HEALTH_CHECK:
|
||||
if (HealthBelowPct(40))
|
||||
me->CastSpell(me, SPELL_ARTHAS_HOLY_LIGHT, false);
|
||||
|
||||
combatEvents.RepeatEvent(1000);
|
||||
combatEvents.Repeat(1s);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1210,7 +1210,7 @@ Creature* npc_arthas::npc_arthasAI::GetEventNpc(uint32 entry)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void npc_arthas::npc_arthasAI::ScheduleNextEvent(uint32 currentEvent, uint32 time)
|
||||
void npc_arthas::npc_arthasAI::ScheduleNextEvent(uint32 currentEvent, Milliseconds time)
|
||||
{
|
||||
actionEvents.ScheduleEvent(currentEvent + 1, time);
|
||||
}
|
||||
@@ -1236,8 +1236,8 @@ void npc_arthas::npc_arthasAI::JustEngagedWith(Unit* /*who*/)
|
||||
DoCast(me, SPELL_ARTHAS_AURA);
|
||||
|
||||
// Fight
|
||||
combatEvents.ScheduleEvent(EVENT_COMBAT_EXORCISM, 2000);
|
||||
combatEvents.ScheduleEvent(EVENT_COMBAT_HEALTH_CHECK, 2000);
|
||||
combatEvents.ScheduleEvent(EVENT_COMBAT_EXORCISM, 2s);
|
||||
combatEvents.ScheduleEvent(EVENT_COMBAT_HEALTH_CHECK, 2s);
|
||||
}
|
||||
|
||||
void npc_arthas::npc_arthasAI::ReorderInstance(uint32 data)
|
||||
@@ -1261,7 +1261,7 @@ void npc_arthas::npc_arthasAI::ReorderInstance(uint32 data)
|
||||
if (data == COS_PROGRESS_FINISHED_CITY_INTRO)
|
||||
{
|
||||
eventInRun = true;
|
||||
actionEvents.RescheduleEvent(EVENT_ACTION_PHASE2 + 8, 10000);
|
||||
actionEvents.RescheduleEvent(EVENT_ACTION_PHASE2 + 8, 10s);
|
||||
}
|
||||
else if (data == COS_PROGRESS_KILLED_MEATHOOK)
|
||||
{
|
||||
|
||||
@@ -79,11 +79,11 @@ public:
|
||||
if (_encounterProgress == ENCOUNTER_PROGRESS_NONE)
|
||||
return;
|
||||
|
||||
_events.ScheduleEvent(EVENT_INITIAL_BARRELS_FLAME, 0);
|
||||
_events.ScheduleEvent(EVENT_FINAL_BARRELS_FLAME, 0);
|
||||
_events.ScheduleEvent(EVENT_INITIAL_BARRELS_FLAME, 0ms);
|
||||
_events.ScheduleEvent(EVENT_FINAL_BARRELS_FLAME, 0ms);
|
||||
|
||||
if (_encounterProgress == ENCOUNTER_PROGRESS_BARRELS)
|
||||
_events.ScheduleEvent(EVENT_SUMMON_LIEUTENANT, 0);
|
||||
_events.ScheduleEvent(EVENT_SUMMON_LIEUTENANT, 0ms);
|
||||
else
|
||||
SetData(DATA_THRALL_REPOSITION, 2);
|
||||
}
|
||||
@@ -138,7 +138,7 @@ public:
|
||||
{
|
||||
case DATA_THRALL_REPOSITION:
|
||||
if (data > 1)
|
||||
_events.ScheduleEvent(EVENT_THRALL_REPOSITION, data == 2 ? 0 : 10000);
|
||||
_events.ScheduleEvent(EVENT_THRALL_REPOSITION, data == 2 ? 0ms : 10s);
|
||||
else if (Creature* thrall = instance->GetCreature(_thrallGUID))
|
||||
Reposition(thrall);
|
||||
return;
|
||||
@@ -157,9 +157,9 @@ public:
|
||||
DoUpdateWorldState(WORLD_STATE_OLD_HILLSBRAD_BARRELS_PLANTED, ++_barrelCount);
|
||||
if (_barrelCount == 5)
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_INITIAL_BARRELS_FLAME, 4000);
|
||||
_events.ScheduleEvent(EVENT_FINAL_BARRELS_FLAME, 12000);
|
||||
_events.ScheduleEvent(EVENT_SUMMON_LIEUTENANT, 18000);
|
||||
_events.ScheduleEvent(EVENT_INITIAL_BARRELS_FLAME, 4s);
|
||||
_events.ScheduleEvent(EVENT_FINAL_BARRELS_FLAME, 12s);
|
||||
_events.ScheduleEvent(EVENT_SUMMON_LIEUTENANT, 18s);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -258,8 +258,8 @@ public:
|
||||
switch (param)
|
||||
{
|
||||
case ENCOUNTER_PROGRESS_BARRELS:
|
||||
events.ScheduleEvent(EVENT_OPEN_DOORS, 0);
|
||||
events.ScheduleEvent(EVENT_START_WP, 3000);
|
||||
events.ScheduleEvent(EVENT_OPEN_DOORS, 0ms);
|
||||
events.ScheduleEvent(EVENT_START_WP, 3s);
|
||||
break;
|
||||
case ENCOUNTER_PROGRESS_THRALL_ARMORED:
|
||||
case ENCOUNTER_PROGRESS_AMBUSHES_1:
|
||||
@@ -268,27 +268,27 @@ public:
|
||||
SetEscortPaused(false);
|
||||
break;
|
||||
case ENCOUNTER_PROGRESS_TARETHA_MEET:
|
||||
events.ScheduleEvent(EVENT_SUMMON_CHRONO, 0);
|
||||
events.ScheduleEvent(EVENT_THRALL_TALK_2, 6000);
|
||||
events.ScheduleEvent(EVENT_TARETHA_FALL, 11000);
|
||||
events.ScheduleEvent(EVENT_THRALL_TALK_3, 15000);
|
||||
events.ScheduleEvent(EVENT_THRALL_MOVE_DOWN, 17000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_CHRONO, 0ms);
|
||||
events.ScheduleEvent(EVENT_THRALL_TALK_2, 6s);
|
||||
events.ScheduleEvent(EVENT_TARETHA_FALL, 11s);
|
||||
events.ScheduleEvent(EVENT_THRALL_TALK_3, 15s);
|
||||
events.ScheduleEvent(EVENT_THRALL_MOVE_DOWN, 17s);
|
||||
break;
|
||||
case NPC_TARETHA:
|
||||
events.ScheduleEvent(EVENT_THRALL_FACE_TARETHA, 0);
|
||||
events.ScheduleEvent(EVENT_THRALL_TALK_4, 4000);
|
||||
events.ScheduleEvent(EVENT_TARETHA_TALK_1, 13000);
|
||||
events.ScheduleEvent(EVENT_THRALL_TALK_5, 17000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_EROZION, 17500);
|
||||
events.ScheduleEvent(EVENT_EROZION_TALK_1, 18000);
|
||||
events.ScheduleEvent(EVENT_EROZION_ACTION_1, 24000);
|
||||
events.ScheduleEvent(EVENT_EROZION_TALK_2, 29000);
|
||||
events.ScheduleEvent(EVENT_EROZION_TALK_3, 40000);
|
||||
events.ScheduleEvent(EVENT_EROZION_ACTION_2, 46000);
|
||||
events.ScheduleEvent(EVENT_THRALL_TALK_6, 48000);
|
||||
events.ScheduleEvent(EVENT_THRALL_RUN_AWAY, 51000);
|
||||
events.ScheduleEvent(EVENT_TARETHA_TALK_2, 53000);
|
||||
events.ScheduleEvent(EVENT_EROZION_FLAGS, 56000);
|
||||
events.ScheduleEvent(EVENT_THRALL_FACE_TARETHA, 0ms);
|
||||
events.ScheduleEvent(EVENT_THRALL_TALK_4, 4s);
|
||||
events.ScheduleEvent(EVENT_TARETHA_TALK_1, 13s);
|
||||
events.ScheduleEvent(EVENT_THRALL_TALK_5, 17s);
|
||||
events.ScheduleEvent(EVENT_SUMMON_EROZION, 17500ms);
|
||||
events.ScheduleEvent(EVENT_EROZION_TALK_1, 18s);
|
||||
events.ScheduleEvent(EVENT_EROZION_ACTION_1, 24s);
|
||||
events.ScheduleEvent(EVENT_EROZION_TALK_2, 29s);
|
||||
events.ScheduleEvent(EVENT_EROZION_TALK_3, 40s);
|
||||
events.ScheduleEvent(EVENT_EROZION_ACTION_2, 46s);
|
||||
events.ScheduleEvent(EVENT_THRALL_TALK_6, 48s);
|
||||
events.ScheduleEvent(EVENT_THRALL_RUN_AWAY, 51s);
|
||||
events.ScheduleEvent(EVENT_TARETHA_TALK_2, 53s);
|
||||
events.ScheduleEvent(EVENT_EROZION_FLAGS, 56s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -311,23 +311,23 @@ public:
|
||||
Talk(SAY_START_EVENT_PART1);
|
||||
break;
|
||||
case 8:
|
||||
events.ScheduleEvent(EVENT_SET_FACING, 500);
|
||||
events.ScheduleEvent(EVENT_ARMORER_SAY, 700);
|
||||
events.ScheduleEvent(EVENT_THRALL_EMOTE, 1300);
|
||||
events.ScheduleEvent(EVENT_SET_FACING, 500ms);
|
||||
events.ScheduleEvent(EVENT_ARMORER_SAY, 700ms);
|
||||
events.ScheduleEvent(EVENT_THRALL_EMOTE, 1300ms);
|
||||
break;
|
||||
case 9:
|
||||
SetRun(false);
|
||||
events.ScheduleEvent(EVENT_KILL_ARMORER, 500);
|
||||
events.ScheduleEvent(EVENT_TALK_KILL_ARMORER, 3000);
|
||||
events.ScheduleEvent(EVENT_KILL_ARMORER, 500ms);
|
||||
events.ScheduleEvent(EVENT_TALK_KILL_ARMORER, 3s);
|
||||
break;
|
||||
case 10:
|
||||
SetRun(true);
|
||||
events.ScheduleEvent(EVENT_DRESSING_KNEEL, 500);
|
||||
events.ScheduleEvent(EVENT_DRESSING_ARMOR, 3000);
|
||||
events.ScheduleEvent(EVENT_DRESSING_STAND, 4000);
|
||||
events.ScheduleEvent(EVENT_DRESSING_AXE, 7000);
|
||||
events.ScheduleEvent(EVENT_DRESSING_SHIELD, 9000);
|
||||
events.ScheduleEvent(EVENT_DRESSING_TALK, 12000);
|
||||
events.ScheduleEvent(EVENT_DRESSING_KNEEL, 500ms);
|
||||
events.ScheduleEvent(EVENT_DRESSING_ARMOR, 3s);
|
||||
events.ScheduleEvent(EVENT_DRESSING_STAND, 4s);
|
||||
events.ScheduleEvent(EVENT_DRESSING_AXE, 7s);
|
||||
events.ScheduleEvent(EVENT_DRESSING_SHIELD, 9s);
|
||||
events.ScheduleEvent(EVENT_DRESSING_TALK, 12s);
|
||||
break;
|
||||
case 18:
|
||||
if (Creature* warden = me->SummonCreature(NPC_DURNHOLDE_WARDEN, 2149.4634f, 104.97559f, 73.632385f, 1.9065f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30 * IN_MILLISECONDS))
|
||||
@@ -362,8 +362,8 @@ public:
|
||||
Talk(SAY_SKARLOC_MEET);
|
||||
break;
|
||||
case 30:
|
||||
events.ScheduleEvent(EVENT_ENTER_MOUNT, 3000);
|
||||
events.ScheduleEvent(EVENT_TALK_START_RIDE, 7000);
|
||||
events.ScheduleEvent(EVENT_ENTER_MOUNT, 3s);
|
||||
events.ScheduleEvent(EVENT_TALK_START_RIDE, 7s);
|
||||
break;
|
||||
case 59:
|
||||
instance->SetData(DATA_ESCORT_PROGRESS, ENCOUNTER_PROGRESS_TARREN_MILL);
|
||||
@@ -394,20 +394,20 @@ public:
|
||||
SetRun(false);
|
||||
break;
|
||||
case 67:
|
||||
events.ScheduleEvent(EVENT_LOOK_1, 1200);
|
||||
events.ScheduleEvent(EVENT_MOVE_AROUND, 3500);
|
||||
events.ScheduleEvent(EVENT_LOOK_2, 5000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_GUARDS, 5100);
|
||||
events.ScheduleEvent(EVENT_LOOK_3, 7000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_TALK1, 12000);
|
||||
events.ScheduleEvent(EVENT_LOOK_4, 17000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_TALK2, 19000);
|
||||
events.ScheduleEvent(EVENT_GUARDS_MOVING, 21000);
|
||||
events.ScheduleEvent(EVENT_LOOK_1, 1200ms);
|
||||
events.ScheduleEvent(EVENT_MOVE_AROUND, 3500ms);
|
||||
events.ScheduleEvent(EVENT_LOOK_2, 5s);
|
||||
events.ScheduleEvent(EVENT_SUMMON_GUARDS, 5100ms);
|
||||
events.ScheduleEvent(EVENT_LOOK_3, 7s);
|
||||
events.ScheduleEvent(EVENT_SUMMON_TALK1, 12s);
|
||||
events.ScheduleEvent(EVENT_LOOK_4, 17s);
|
||||
events.ScheduleEvent(EVENT_SUMMON_TALK2, 19s);
|
||||
events.ScheduleEvent(EVENT_GUARDS_MOVING, 21s);
|
||||
break;
|
||||
case 82:
|
||||
events.ScheduleEvent(EVENT_LOOK_5, 500);
|
||||
events.ScheduleEvent(EVENT_SUMMON_GUARDS_2, 1000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_TALK3, 1500);
|
||||
events.ScheduleEvent(EVENT_LOOK_5, 500ms);
|
||||
events.ScheduleEvent(EVENT_SUMMON_GUARDS_2, 1s);
|
||||
events.ScheduleEvent(EVENT_SUMMON_TALK3, 1500ms);
|
||||
break;
|
||||
case 91:
|
||||
me->SummonCreature(NPC_TM_PROTECTOR, 2652.71f, 660.31f, 61.93f, 1.67f, TEMPSUMMON_MANUAL_DESPAWN);
|
||||
@@ -430,14 +430,14 @@ public:
|
||||
Taretha->HandleEmoteCommand(EMOTE_ONESHOT_CHEER);
|
||||
Taretha->AI()->Talk(SAY_TARETHA_ESCAPED);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_THRALL_TALK, 4000);
|
||||
events.ScheduleEvent(EVENT_THRALL_TALK, 4s);
|
||||
break;
|
||||
case 101:
|
||||
SetEscortPaused(true);
|
||||
events.ScheduleEvent(EVENT_EPOCH_INTRO, 500);
|
||||
events.ScheduleEvent(EVENT_SUMMON_INFINITES, 1500);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 8000);
|
||||
events.ScheduleEvent(EVENT_START_WAVE_1, 25000);
|
||||
events.ScheduleEvent(EVENT_EPOCH_INTRO, 500ms);
|
||||
events.ScheduleEvent(EVENT_SUMMON_INFINITES, 1500ms);
|
||||
events.ScheduleEvent(EVENT_TRANSFORM, 8s);
|
||||
events.ScheduleEvent(EVENT_START_WAVE_1, 25s);
|
||||
break;
|
||||
case 103:
|
||||
instance->SetData(DATA_ESCORT_PROGRESS, ENCOUNTER_PROGRESS_FINISHED);
|
||||
@@ -473,9 +473,9 @@ public:
|
||||
void JustEngagedWith(Unit*) override
|
||||
{
|
||||
combatEvents.Reset();
|
||||
combatEvents.ScheduleEvent(EVENT_CHECK_HEALTH, 500);
|
||||
combatEvents.ScheduleEvent(EVENT_SPELL_SHIELD_BLOCK, 8000);
|
||||
combatEvents.ScheduleEvent(EVENT_SPELL_STRIKE, 2000);
|
||||
combatEvents.ScheduleEvent(EVENT_CHECK_HEALTH, 500ms);
|
||||
combatEvents.ScheduleEvent(EVENT_SPELL_SHIELD_BLOCK, 8s);
|
||||
combatEvents.ScheduleEvent(EVENT_SPELL_STRIKE, 2s);
|
||||
|
||||
if (roll_chance_i(50))
|
||||
Talk(SAY_RANDOM_AGGRO);
|
||||
@@ -766,7 +766,7 @@ public:
|
||||
summons.DoAction(ACTION_SET_IMMUNE_FLAG);
|
||||
break;
|
||||
case EVENT_START_WAVE_1:
|
||||
events.ScheduleEvent(EVENT_CHECK_WAVE_1, 500);
|
||||
events.ScheduleEvent(EVENT_CHECK_WAVE_1, 500ms);
|
||||
summons.DoAction(ACTION_REMOVE_IMMUNE_FLAG);
|
||||
summons.DoAction(ACTION_START_COMBAT);
|
||||
break;
|
||||
@@ -777,10 +777,10 @@ public:
|
||||
me->SummonCreature(NPC_INFINITE_SLAYER, 2599.57f, 677.0f, 55.975f, 0.05f, TEMPSUMMON_MANUAL_DESPAWN);
|
||||
me->SummonCreature(NPC_INFINITE_DEFILER, 2592.57f, 680.0f, 55.975f, 0.05f, TEMPSUMMON_MANUAL_DESPAWN);
|
||||
summons.DoAction(ACTION_START_COMBAT);
|
||||
events.ScheduleEvent(EVENT_CHECK_WAVE_2, 500);
|
||||
events.ScheduleEvent(EVENT_CHECK_WAVE_2, 500ms);
|
||||
break;
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHECK_WAVE_1, 500);
|
||||
events.ScheduleEvent(EVENT_CHECK_WAVE_1, 500ms);
|
||||
break;
|
||||
case EVENT_CHECK_WAVE_2:
|
||||
if (summons.size() == 1)
|
||||
@@ -790,20 +790,20 @@ public:
|
||||
me->SummonCreature(NPC_INFINITE_SABOTEUR, 2638.62f, 705.43f, 55.965f, 4.46f, TEMPSUMMON_MANUAL_DESPAWN);
|
||||
me->SummonCreature(NPC_INFINITE_DEFILER, 2642.62f, 705.43f, 55.965f, 4.46f, TEMPSUMMON_MANUAL_DESPAWN);
|
||||
summons.DoAction(ACTION_START_COMBAT);
|
||||
events.ScheduleEvent(EVENT_CHECK_WAVE_3, 500);
|
||||
events.ScheduleEvent(EVENT_CHECK_WAVE_3, 500ms);
|
||||
break;
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHECK_WAVE_2, 500);
|
||||
events.ScheduleEvent(EVENT_CHECK_WAVE_2, 500ms);
|
||||
break;
|
||||
case EVENT_CHECK_WAVE_3:
|
||||
if (summons.size() == 1)
|
||||
{
|
||||
me->SetHomePosition(2634.79f, 672.964f, 54.8577f, 1.33f);
|
||||
me->GetMotionMaster()->MoveTargetedHome();
|
||||
events.ScheduleEvent(EVENT_CALL_EPOCH, 8000);
|
||||
events.ScheduleEvent(EVENT_CALL_EPOCH, 8s);
|
||||
break;
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHECK_WAVE_3, 500);
|
||||
events.ScheduleEvent(EVENT_CHECK_WAVE_3, 500ms);
|
||||
break;
|
||||
case EVENT_CALL_EPOCH:
|
||||
if (Creature* epoch = summons.GetCreatureWithEntry(NPC_EPOCH_HUNTER))
|
||||
@@ -905,15 +905,15 @@ public:
|
||||
Talk(SAY_RANDOM_LOW_HP);
|
||||
break;
|
||||
}
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH, 500);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH, 500ms);
|
||||
break;
|
||||
case EVENT_SPELL_STRIKE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_STRIKE, false);
|
||||
events.ScheduleEvent(EVENT_SPELL_STRIKE, 6000);
|
||||
events.ScheduleEvent(EVENT_SPELL_STRIKE, 6s);
|
||||
break;
|
||||
case EVENT_SPELL_SHIELD_BLOCK:
|
||||
me->CastSpell(me, SPELL_SHIELD_BLOCK, false);
|
||||
events.ScheduleEvent(EVENT_SPELL_SHIELD_BLOCK, 6000);
|
||||
events.ScheduleEvent(EVENT_SPELL_SHIELD_BLOCK, 6s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -137,13 +137,13 @@ struct npc_medivh_bm : public ScriptedAI
|
||||
|
||||
me->CastSpell(me, SPELL_MEDIVH_CHANNEL, false);
|
||||
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH_75, 500);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH_50, 500);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH_25, 500);
|
||||
events.ScheduleEvent(EVENT_SUMMON_CRYSTAL, 2000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_CRYSTAL, 4000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_CRYSTAL, 6000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_FLYING_CRYSTAL, 8000);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH_75, 500ms);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH_50, 500ms);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH_25, 500ms);
|
||||
events.ScheduleEvent(EVENT_SUMMON_CRYSTAL, 2s);
|
||||
events.ScheduleEvent(EVENT_SUMMON_CRYSTAL, 4s);
|
||||
events.ScheduleEvent(EVENT_SUMMON_CRYSTAL, 6s);
|
||||
events.ScheduleEvent(EVENT_SUMMON_FLYING_CRYSTAL, 8s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -154,7 +154,7 @@ struct npc_medivh_bm : public ScriptedAI
|
||||
if (param == ACTION_OUTRO)
|
||||
{
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_OUTRO_1, 4000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_1, 4s);
|
||||
me->InterruptNonMeleeSpells(true);
|
||||
|
||||
me->SummonGameObject(GO_DARK_PORTAL, -2086.0f, 7125.6215f, 30.5f, 6.148f, 0.0f, 0.0f, 0.0f, 0.0f, 0);
|
||||
@@ -180,43 +180,43 @@ struct npc_medivh_bm : public ScriptedAI
|
||||
Talk(eventId + 1);
|
||||
break;
|
||||
}
|
||||
events.ScheduleEvent(eventId, 500);
|
||||
events.ScheduleEvent(eventId, 500ms);
|
||||
break;
|
||||
case EVENT_SUMMON_CRYSTAL:
|
||||
me->SummonCreature(NPC_DP_EMITTER_STALKER, me->GetPositionX() + 8.0f, me->GetPositionY(), me->GetPositionZ());
|
||||
break;
|
||||
case EVENT_SUMMON_FLYING_CRYSTAL:
|
||||
me->CastSpell(me, SPELL_PORTAL_CRYSTALS, true);
|
||||
events.ScheduleEvent(EVENT_SUMMON_FLYING_CRYSTAL, 1000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_FLYING_CRYSTAL, 1s);
|
||||
break;
|
||||
case EVENT_OUTRO_1:
|
||||
me->SetFacingTo(6.21f);
|
||||
Talk(SAY_MEDIVH_WIN);
|
||||
events.ScheduleEvent(EVENT_OUTRO_2, 17000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_2, 17s);
|
||||
break;
|
||||
case EVENT_OUTRO_2:
|
||||
me->SetFacingTo(3.07f);
|
||||
events.ScheduleEvent(EVENT_OUTRO_3, 2000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_3, 2s);
|
||||
break;
|
||||
case EVENT_OUTRO_3:
|
||||
SummonOrcs(-2046.158f, -3.0f, 37000, 30000, true);
|
||||
events.ScheduleEvent(EVENT_OUTRO_4, 2000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_4, 2s);
|
||||
break;
|
||||
case EVENT_OUTRO_4:
|
||||
SummonOrcs(-2055.97f, -2.0f, 33000, 28000, false);
|
||||
events.ScheduleEvent(EVENT_OUTRO_5, 2000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_5, 2s);
|
||||
break;
|
||||
case EVENT_OUTRO_5:
|
||||
SummonOrcs(-2064.0f, -1.5f, 29000, 26000, false);
|
||||
events.ScheduleEvent(EVENT_OUTRO_6, 2000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_6, 2s);
|
||||
break;
|
||||
case EVENT_OUTRO_6:
|
||||
SummonOrcs(-2074.35f, -0.1f, 26000, 24000, false);
|
||||
events.ScheduleEvent(EVENT_OUTRO_7, 7000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_7, 7s);
|
||||
break;
|
||||
case EVENT_OUTRO_7:
|
||||
Talk(SAY_MEDIVH_ORCS_ENTER);
|
||||
events.ScheduleEvent(EVENT_OUTRO_8, 7000);
|
||||
events.ScheduleEvent(EVENT_OUTRO_8, 7s);
|
||||
break;
|
||||
case EVENT_OUTRO_8:
|
||||
if (Creature* cr = me->FindNearestCreature(NPC_SHADOW_COUNCIL_ENFORCER, 20.0f))
|
||||
@@ -368,7 +368,7 @@ struct npc_time_rift : public NullCreatureAI
|
||||
if (!_instance->GetCreature(DATA_AEONUS))
|
||||
{
|
||||
DoSelectSummon();
|
||||
events.ScheduleEvent(EVENT_SUMMON_AT_RIFT, 15000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_AT_RIFT, 15s);
|
||||
}
|
||||
break;
|
||||
case EVENT_SUMMON_BOSS:
|
||||
|
||||
@@ -138,16 +138,16 @@ public:
|
||||
switch (ph)
|
||||
{
|
||||
case PHASE_GROUNDED:
|
||||
events.ScheduleEvent(EVENT_SPELL_WINGBUFFET, urand(10000, 20000));
|
||||
events.ScheduleEvent(EVENT_SPELL_FLAMEBREATH, urand(10000, 20000));
|
||||
events.ScheduleEvent(EVENT_SPELL_TAILSWEEP, urand(15000, 20000));
|
||||
events.ScheduleEvent(EVENT_SPELL_CLEAVE, urand(2000, 5000));
|
||||
events.ScheduleEvent(EVENT_SPELL_WINGBUFFET, 10s, 20s);
|
||||
events.ScheduleEvent(EVENT_SPELL_FLAMEBREATH, 10s, 20s);
|
||||
events.ScheduleEvent(EVENT_SPELL_TAILSWEEP, 15s, 20s);
|
||||
events.ScheduleEvent(EVENT_SPELL_CLEAVE, 2s, 5s);
|
||||
break;
|
||||
case PHASE_AIRPHASE:
|
||||
events.ScheduleEvent(EVENT_START_PHASE_2, 0);
|
||||
events.ScheduleEvent(EVENT_START_PHASE_2, 0ms);
|
||||
break;
|
||||
case PHASE_LANDED:
|
||||
events.ScheduleEvent(EVENT_START_PHASE_3, 5000);
|
||||
events.ScheduleEvent(EVENT_START_PHASE_3, 5s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -237,7 +237,7 @@ public:
|
||||
me->SetFacingTo(OnyxiaMoveData[id].o);
|
||||
me->SetSpeed(MOVE_RUN, 1.6f, false);
|
||||
CurrentWP = id;
|
||||
events.ScheduleEvent(EVENT_SPELL_FIREBALL_FIRST, 1000);
|
||||
events.ScheduleEvent(EVENT_SPELL_FIREBALL_FIRST, 1s);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -246,21 +246,21 @@ public:
|
||||
{
|
||||
case 10:
|
||||
me->SetFacingTo(OnyxiaMoveData[0].o);
|
||||
events.ScheduleEvent(EVENT_LIFTOFF, 0);
|
||||
events.ScheduleEvent(EVENT_LIFTOFF, 0ms);
|
||||
break;
|
||||
case 11:
|
||||
me->SetFacingTo(OnyxiaMoveData[1].o);
|
||||
events.ScheduleEvent(EVENT_FLY_S_TO_N, 0);
|
||||
events.ScheduleEvent(EVENT_FLY_S_TO_N, 0ms);
|
||||
break;
|
||||
case 12:
|
||||
me->SetFacingTo(OnyxiaMoveData[1].o);
|
||||
events.ScheduleEvent(EVENT_LAND, 0);
|
||||
events.ScheduleEvent(EVENT_LAND, 0ms);
|
||||
break;
|
||||
case 13:
|
||||
me->SetCanFly(false);
|
||||
me->SetDisableGravity(false);
|
||||
me->SetSpeed(MOVE_RUN, me->GetCreatureTemplate()->speed_run, false);
|
||||
events.ScheduleEvent(EVENT_PHASE_3_ATTACK, 0);
|
||||
events.ScheduleEvent(EVENT_PHASE_3_ATTACK, 0ms);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -326,25 +326,25 @@ public:
|
||||
case EVENT_SPELL_WINGBUFFET:
|
||||
{
|
||||
DoCastAOE(SPELL_WINGBUFFET);
|
||||
events.RepeatEvent(urand(15000, 30000));
|
||||
events.Repeat(15s, 30s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SPELL_FLAMEBREATH:
|
||||
{
|
||||
DoCastAOE(SPELL_FLAMEBREATH);
|
||||
events.RepeatEvent(urand(10000, 20000));
|
||||
events.Repeat(10s, 20s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SPELL_TAILSWEEP:
|
||||
{
|
||||
DoCastAOE(SPELL_TAILSWEEP);
|
||||
events.RepeatEvent(urand(15000, 20000));
|
||||
events.Repeat(15s, 20s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SPELL_CLEAVE:
|
||||
{
|
||||
DoCastVictim(SPELL_CLEAVE);
|
||||
events.RepeatEvent(urand(2000, 5000));
|
||||
events.Repeat(2s, 5s);
|
||||
break;
|
||||
}
|
||||
case EVENT_START_PHASE_2:
|
||||
@@ -369,7 +369,7 @@ public:
|
||||
me->GetMotionMaster()->MoveTakeoff(11, OnyxiaMoveData[1].x + 1.0f, OnyxiaMoveData[1].y, OnyxiaMoveData[1].z, 12.0f);
|
||||
bManyWhelpsAvailable = true;
|
||||
|
||||
events.RescheduleEvent(EVENT_END_MANY_WHELPS_TIME, 10000);
|
||||
events.RescheduleEvent(EVENT_END_MANY_WHELPS_TIME, 10s);
|
||||
break;
|
||||
}
|
||||
case EVENT_END_MANY_WHELPS_TIME:
|
||||
@@ -381,20 +381,20 @@ public:
|
||||
me->GetMotionMaster()->MovePoint(5, OnyxiaMoveData[5].x, OnyxiaMoveData[5].y, OnyxiaMoveData[5].z);
|
||||
|
||||
whelpSpam = true;
|
||||
events.ScheduleEvent(EVENT_WHELP_SPAM, 90000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_LAIR_GUARD, 30000);
|
||||
events.ScheduleEvent(EVENT_WHELP_SPAM, 90s);
|
||||
events.ScheduleEvent(EVENT_SUMMON_LAIR_GUARD, 30s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SUMMON_LAIR_GUARD:
|
||||
{
|
||||
me->CastSpell(-101.654f, -214.491f, -80.70f, SPELL_SUMMON_LAIR_GUARD, true);
|
||||
events.RepeatEvent(30000);
|
||||
events.Repeat(30s);
|
||||
break;
|
||||
}
|
||||
case EVENT_WHELP_SPAM:
|
||||
{
|
||||
whelpSpam = true;
|
||||
events.RepeatEvent(90000);
|
||||
events.Repeat(90s);
|
||||
break;
|
||||
}
|
||||
case EVENT_LAND:
|
||||
@@ -413,7 +413,7 @@ public:
|
||||
DoCast(v, SPELL_FIREBALL);
|
||||
}
|
||||
|
||||
events.ScheduleEvent(EVENT_SPELL_FIREBALL_SECOND, 4000);
|
||||
events.ScheduleEvent(EVENT_SPELL_FIREBALL_SECOND, 4s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SPELL_FIREBALL_SECOND:
|
||||
@@ -427,15 +427,15 @@ public:
|
||||
uint8 rand = urand(0, 99);
|
||||
if (rand < 33)
|
||||
{
|
||||
events.ScheduleEvent(EVENT_PHASE_2_STEP_CW, 4000);
|
||||
events.ScheduleEvent(EVENT_PHASE_2_STEP_CW, 4s);
|
||||
}
|
||||
else if (rand < 66)
|
||||
{
|
||||
events.ScheduleEvent(EVENT_PHASE_2_STEP_ACW, 4000);
|
||||
events.ScheduleEvent(EVENT_PHASE_2_STEP_ACW, 4s);
|
||||
}
|
||||
else
|
||||
{
|
||||
events.ScheduleEvent(EVENT_PHASE_2_STEP_ACROSS, 4000);
|
||||
events.ScheduleEvent(EVENT_PHASE_2_STEP_ACROSS, 4s);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -464,7 +464,7 @@ public:
|
||||
Talk(EMOTE_BREATH);
|
||||
me->SetFacingTo(OnyxiaMoveData[CurrentWP].o);
|
||||
DoCastAOE(OnyxiaMoveData[CurrentWP].spellId);
|
||||
events.ScheduleEvent(EVENT_SPELL_BREATH, 8250);
|
||||
events.ScheduleEvent(EVENT_SPELL_BREATH, 8250ms);
|
||||
break;
|
||||
}
|
||||
case EVENT_SPELL_BREATH:
|
||||
@@ -491,20 +491,20 @@ public:
|
||||
|
||||
DoCastAOE(SPELL_BELLOWINGROAR);
|
||||
|
||||
events.ScheduleEvent(EVENT_ERUPTION, 0);
|
||||
events.ScheduleEvent(EVENT_SPELL_WINGBUFFET, urand(10000, 20000));
|
||||
events.ScheduleEvent(EVENT_SPELL_FLAMEBREATH, urand(10000, 20000));
|
||||
events.ScheduleEvent(EVENT_SPELL_TAILSWEEP, urand(15000, 20000));
|
||||
events.ScheduleEvent(EVENT_SPELL_CLEAVE, urand(2000, 5000));
|
||||
events.ScheduleEvent(EVENT_SPELL_BELLOWINGROAR, 15000);
|
||||
events.ScheduleEvent(EVENT_SUMMON_WHELP, 10000);
|
||||
events.ScheduleEvent(EVENT_ERUPTION, 0ms);
|
||||
events.ScheduleEvent(EVENT_SPELL_WINGBUFFET, 10s, 20s);
|
||||
events.ScheduleEvent(EVENT_SPELL_FLAMEBREATH, 10s, 20s);
|
||||
events.ScheduleEvent(EVENT_SPELL_TAILSWEEP, 15s, 20s);
|
||||
events.ScheduleEvent(EVENT_SPELL_CLEAVE, 2s, 5s);
|
||||
events.ScheduleEvent(EVENT_SPELL_BELLOWINGROAR, 15s);
|
||||
events.ScheduleEvent(EVENT_SUMMON_WHELP, 10s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SPELL_BELLOWINGROAR:
|
||||
{
|
||||
DoCastAOE(SPELL_BELLOWINGROAR);
|
||||
events.RepeatEvent(22000);
|
||||
events.ScheduleEvent(EVENT_ERUPTION, 0);
|
||||
events.Repeat(22s);
|
||||
events.ScheduleEvent(EVENT_ERUPTION, 0ms);
|
||||
break;
|
||||
}
|
||||
case EVENT_ERUPTION:
|
||||
@@ -521,7 +521,7 @@ public:
|
||||
float dist = rand_norm() * 4.0f;
|
||||
me->CastSpell(-33.18f + cos(angle) * dist, -258.80f + std::sin(angle) * dist, -89.0f, 17646, true);
|
||||
me->CastSpell(-32.535f + cos(angle) * dist, -170.190f + std::sin(angle) * dist, -89.0f, 17646, true);
|
||||
events.RepeatEvent(30000);
|
||||
events.Repeat(30s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -555,8 +555,8 @@ public:
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_OLG_SPELL_BLASTNOVA, 15000);
|
||||
events.ScheduleEvent(EVENT_OLG_SPELL_IGNITEWEAPON, 10000);
|
||||
events.ScheduleEvent(EVENT_OLG_SPELL_BLASTNOVA, 15s);
|
||||
events.ScheduleEvent(EVENT_OLG_SPELL_IGNITEWEAPON, 10s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -577,17 +577,17 @@ public:
|
||||
{
|
||||
case EVENT_OLG_SPELL_BLASTNOVA:
|
||||
DoCastAOE(SPELL_OLG_BLASTNOVA);
|
||||
events.RepeatEvent(15000);
|
||||
events.Repeat(15s);
|
||||
break;
|
||||
case EVENT_OLG_SPELL_IGNITEWEAPON:
|
||||
if (me->HasUnitFlag(UNIT_FLAG_DISARMED))
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
events.Repeat(5s);
|
||||
}
|
||||
else
|
||||
{
|
||||
DoCastSelf(SPELL_OLG_IGNITEWEAPON);
|
||||
events.RepeatEvent(urand(18000, 21000));
|
||||
events.Repeat(18s, 21s);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -175,7 +175,7 @@ struct boss_viscidus : public BossAI
|
||||
{
|
||||
DoCastSelf(SPELL_EXPLODE_TRIGGER, true);
|
||||
})
|
||||
.Schedule(3000ms, [this](TaskContext /*context*/)
|
||||
.Schedule(3s, [this](TaskContext /*context*/)
|
||||
{
|
||||
DoCastSelf(SPELL_INVIS_SELF, true);
|
||||
me->SetAuraStack(SPELL_VISCIDUS_SHRINKS, me, 20);
|
||||
|
||||
@@ -393,10 +393,10 @@ struct npc_obsidian_nullifier : public ScriptedAI
|
||||
|
||||
context.Repeat(6s);
|
||||
})
|
||||
.Schedule(6000ms, 8400ms, [this](TaskContext context)
|
||||
.Schedule(6s, 8400ms, [this](TaskContext context)
|
||||
{
|
||||
DoCastVictim(SPELL_CLEAVE, true);
|
||||
context.Repeat(6000ms, 8400ms);
|
||||
context.Repeat(6s, 8400ms);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -447,7 +447,7 @@ struct npc_ahnqiraji_critter : public ScriptedAI
|
||||
}
|
||||
}
|
||||
|
||||
context.Repeat(3500ms, 4000ms);
|
||||
context.Repeat(3500ms, 4s);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -42,9 +42,6 @@ enum Caravan
|
||||
|
||||
MAX_CARAVAN_SUMMONS = 3,
|
||||
|
||||
TIME_SHOP_STOP = 10 * MINUTE * IN_MILLISECONDS,
|
||||
TIME_HIRE_STOP = 4 * MINUTE * IN_MILLISECONDS,
|
||||
|
||||
// Ambush
|
||||
NPC_KOLKAR_WAYLAYER = 12976,
|
||||
NPC_KOLKAR_AMBUSHER = 12977,
|
||||
@@ -53,6 +50,9 @@ enum Caravan
|
||||
NPC_NETHER = 4684,
|
||||
};
|
||||
|
||||
constexpr Milliseconds TIME_SHOP_STOP = 600s;
|
||||
constexpr Milliseconds TIME_HIRE_STOP = 240s;
|
||||
|
||||
class npc_cork_gizelton : public CreatureScript
|
||||
{
|
||||
public:
|
||||
@@ -264,14 +264,14 @@ public:
|
||||
{
|
||||
// Finished north path
|
||||
case 52:
|
||||
me->SummonCreature(NPC_VENDOR_TRON, -694.61f, 1460.7f, 90.794f, 2.4f, TEMPSUMMON_TIMED_DESPAWN, TIME_SHOP_STOP + 15 * IN_MILLISECONDS);
|
||||
me->SummonCreature(NPC_VENDOR_TRON, -694.61f, 1460.7f, 90.794f, 2.4f, TEMPSUMMON_TIMED_DESPAWN, 600000 + 15 * IN_MILLISECONDS);
|
||||
SetEscortPaused(true);
|
||||
events.ScheduleEvent(EVENT_RESUME_PATH, TIME_SHOP_STOP);
|
||||
CheckCaravan();
|
||||
break;
|
||||
// Finished south path
|
||||
case 193:
|
||||
me->SummonCreature(NPC_SUPER_SELLER, -1905.5f, 2463.3f, 61.52f, 5.87f, TEMPSUMMON_TIMED_DESPAWN, TIME_SHOP_STOP + 15 * IN_MILLISECONDS);
|
||||
me->SummonCreature(NPC_SUPER_SELLER, -1905.5f, 2463.3f, 61.52f, 5.87f, TEMPSUMMON_TIMED_DESPAWN, 600000 + 15 * IN_MILLISECONDS);
|
||||
SetEscortPaused(true);
|
||||
events.ScheduleEvent(EVENT_RESUME_PATH, TIME_SHOP_STOP);
|
||||
CheckCaravan();
|
||||
|
||||
@@ -1145,7 +1145,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
me->DespawnOrUnsummon(5000ms, respawnTimer); // Despawn in 5 Seconds for respawnTimer value
|
||||
me->DespawnOrUnsummon(5s, respawnTimer); // Despawn in 5 Seconds for respawnTimer value
|
||||
me->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
CloseGossipMenuFor(player);
|
||||
return false;
|
||||
|
||||
@@ -114,7 +114,7 @@ class boss_anub_arak : public CreatureScript
|
||||
|
||||
void KilledUnit(Unit* /*victim*/) override
|
||||
{
|
||||
if (events.GetNextEventTime(EVENT_KILL_TALK) == 0)
|
||||
if (!events.HasTimeUntilEvent(EVENT_KILL_TALK))
|
||||
{
|
||||
Talk(SAY_SLAY);
|
||||
events.ScheduleEvent(EVENT_KILL_TALK, 6s);
|
||||
|
||||
@@ -111,7 +111,7 @@ public:
|
||||
uint32 GetData(uint32 data) const override
|
||||
{
|
||||
if (data == me->GetEntry())
|
||||
return !me->isActiveObject() || events.GetNextEventTime(EVENT_HADRONOX_MOVE4) != 0;
|
||||
return !me->isActiveObject() || events.HasTimeUntilEvent(EVENT_HADRONOX_MOVE4) ? 1 : 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -583,7 +583,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
events.RepeatEvent((below11PctReached ? urand(1400, 2000) : urand(5000, 20000)));
|
||||
events.Repeat((below11PctReached ? randtime(1400ms, 2s) : randtime(5s, 20s)));
|
||||
break;
|
||||
}
|
||||
case EVENT_SARTHARION_BERSERK:
|
||||
@@ -1086,7 +1086,7 @@ public:
|
||||
Talk(SAY_TENEBRON_BREATH);
|
||||
}
|
||||
DoCastVictim(SPELL_SHADOW_BREATH, false);
|
||||
events.RepeatEvent(17500);
|
||||
events.Repeat(17500ms);
|
||||
break;
|
||||
}
|
||||
case EVENT_MINIBOSS_SHADOW_FISSURE:
|
||||
@@ -1095,7 +1095,7 @@ public:
|
||||
{
|
||||
DoCast(target, SPELL_SHADOW_FISSURE, false);
|
||||
}
|
||||
events.RepeatEvent(22500);
|
||||
events.Repeat(22500ms);
|
||||
break;
|
||||
}
|
||||
case EVENT_MINIBOSS_OPEN_PORTAL:
|
||||
@@ -1270,7 +1270,7 @@ public:
|
||||
}
|
||||
|
||||
DoCastVictim(SPELL_SHADOW_BREATH, false);
|
||||
events.RepeatEvent(17500);
|
||||
events.Repeat(17500ms);
|
||||
break;
|
||||
}
|
||||
case EVENT_MINIBOSS_SHADOW_FISSURE:
|
||||
@@ -1279,7 +1279,7 @@ public:
|
||||
{
|
||||
DoCast(target, SPELL_SHADOW_FISSURE, false);
|
||||
}
|
||||
events.RepeatEvent(22500);
|
||||
events.Repeat(22500ms);
|
||||
break;
|
||||
}
|
||||
case EVENT_MINIBOSS_OPEN_PORTAL:
|
||||
|
||||
@@ -191,7 +191,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/) override
|
||||
{
|
||||
if (events.GetNextEventTime(EVENT_KILL_TALK) == 0)
|
||||
if (!events.HasTimeUntilEvent(EVENT_KILL_TALK))
|
||||
{
|
||||
Talk(SAY_KILL);
|
||||
events.ScheduleEvent(EVENT_KILL_TALK, 6s);
|
||||
|
||||
@@ -136,7 +136,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/) override
|
||||
{
|
||||
if (events.GetNextEventTime(EVENT_KILL_TALK) == 0)
|
||||
if (!events.HasTimeUntilEvent(EVENT_KILL_TALK))
|
||||
{
|
||||
Talk(SAY_KILL);
|
||||
events.ScheduleEvent(EVENT_KILL_TALK, 6s);
|
||||
|
||||
@@ -310,7 +310,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* victim) override
|
||||
{
|
||||
if (victim->IsPlayer() && events.GetNextEventTime(EVENT_KILL_TALK) == 0)
|
||||
if (victim->IsPlayer() && !events.HasTimeUntilEvent(EVENT_KILL_TALK))
|
||||
{
|
||||
Talk(SAY_KILL);
|
||||
events.ScheduleEvent(EVENT_KILL_TALK, 6s);
|
||||
@@ -335,7 +335,7 @@ public:
|
||||
|
||||
void DamageTaken(Unit* attacker, uint32& damage, DamageEffectType, SpellSchoolMask) override
|
||||
{
|
||||
if (events.GetNextEventTime(EVENT_CHECK_HEALTH) != 0)
|
||||
if (events.HasTimeUntilEvent(EVENT_CHECK_HEALTH))
|
||||
return;
|
||||
|
||||
if (!attacker || !me->InSamePhase(attacker))
|
||||
@@ -477,7 +477,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* victim) override
|
||||
{
|
||||
if (victim->IsPlayer() && _events.GetNextEventTime(EVENT_KILL_TALK) == 0)
|
||||
if (victim->IsPlayer() && !_events.HasTimeUntilEvent(EVENT_KILL_TALK))
|
||||
{
|
||||
Talk(SAY_KILL);
|
||||
_events.ScheduleEvent(EVENT_KILL_TALK, 6s);
|
||||
@@ -598,7 +598,7 @@ public:
|
||||
|
||||
void SetData(uint32 id, uint32 value) override
|
||||
{
|
||||
if (_events.GetNextEventTime(EVENT_CHECK_CORPOREALITY) == 0)
|
||||
if (!events.HasTimeUntilEvent(EVENT_CHECK_CORPOREALITY))
|
||||
return;
|
||||
|
||||
if (id == DATA_MATERIAL_DAMAGE_TAKEN)
|
||||
|
||||
@@ -121,7 +121,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/) override
|
||||
{
|
||||
if (events.GetNextEventTime(EVENT_KILL_TALK) == 0)
|
||||
if (!events.HasTimeUntilEvent(EVENT_KILL_TALK))
|
||||
{
|
||||
Talk(SAY_KILL);
|
||||
events.ScheduleEvent(EVENT_KILL_TALK, 6s);
|
||||
|
||||
@@ -125,8 +125,8 @@ public:
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_SPELL_RADIANCE, 16000);
|
||||
events.ScheduleEvent(EVENT_SPELL_HAMMER_RIGHTEOUS, 25000);
|
||||
events.ScheduleEvent(EVENT_SPELL_RADIANCE, 16s);
|
||||
events.ScheduleEvent(EVENT_SPELL_HAMMER_RIGHTEOUS, 25s);
|
||||
Talk(SAY_EADRIC_AGGRO);
|
||||
me->CastSpell(me, SPELL_VENGEANCE, false);
|
||||
if (pInstance)
|
||||
|
||||
@@ -182,7 +182,7 @@ public:
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_ANNOUNCER_SAY_ZOMBIE, 2500ms);
|
||||
events.ScheduleEvent(EVENT_SPELL_PLAGUE_STRIKE, 7s, 9s);
|
||||
events.ScheduleEvent(EVENT_SPELL_ICY_TOUCH, 3500ms, 7000ms);
|
||||
events.ScheduleEvent(EVENT_SPELL_ICY_TOUCH, 3500ms, 7s);
|
||||
events.ScheduleEvent(EVENT_SPELL_DEATH_RESPITE, 13s, 15s);
|
||||
events.ScheduleEvent(EVENT_SPELL_OBLITERATE, 11s, 19s);
|
||||
}
|
||||
@@ -214,7 +214,7 @@ public:
|
||||
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_SPELL_PLAGUE_STRIKE, 7s, 9s);
|
||||
events.ScheduleEvent(EVENT_SPELL_ICY_TOUCH, 3500ms, 7000ms);
|
||||
events.ScheduleEvent(EVENT_SPELL_ICY_TOUCH, 3500ms, 7s);
|
||||
events.ScheduleEvent(EVENT_SPELL_OBLITERATE, 11s, 19s);
|
||||
events.ScheduleEvent(EVENT_SPELL_DESECRATION, 2s, 3s);
|
||||
break;
|
||||
|
||||
@@ -255,7 +255,7 @@ public:
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_MOUNT_CHARGE, 2500ms, 4000ms);
|
||||
events.ScheduleEvent(EVENT_MOUNT_CHARGE, 2500ms, 4s);
|
||||
events.ScheduleEvent(EVENT_SHIELD_BREAKER, 5s, 8s);
|
||||
events.ScheduleEvent(EVENT_THRUST, 3s, 5s);
|
||||
me->CastSpell(me, SPELL_TRAMPLE_AURA, true);
|
||||
@@ -311,7 +311,7 @@ public:
|
||||
me->CastSpell(target, SPELL_MINIONS_CHARGE, false);
|
||||
}
|
||||
}
|
||||
events.Repeat(4500ms, 6000ms);
|
||||
events.Repeat(4500ms, 6s);
|
||||
}
|
||||
break;
|
||||
case EVENT_SHIELD_BREAKER:
|
||||
@@ -372,7 +372,7 @@ public:
|
||||
me->CastSpell(me, SPELL_BOSS_DEFEND_PERIODIC, true);
|
||||
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_MOUNT_CHARGE, 2500ms, 4000ms);
|
||||
events.ScheduleEvent(EVENT_MOUNT_CHARGE, 2500ms, 4s);
|
||||
events.ScheduleEvent(EVENT_SHIELD_BREAKER, 5s, 8s);
|
||||
events.ScheduleEvent(EVENT_THRUST, 3s, 5s);
|
||||
|
||||
@@ -640,7 +640,7 @@ public:
|
||||
me->CastSpell(me, SPELL_BOSS_DEFEND_PERIODIC, true);
|
||||
me->SetRegeneratingHealth(true);
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_MOUNT_CHARGE, 2500ms, 4000ms);
|
||||
events.ScheduleEvent(EVENT_MOUNT_CHARGE, 2500ms, 4s);
|
||||
events.ScheduleEvent(EVENT_SHIELD_BREAKER, 5s, 8s);
|
||||
events.ScheduleEvent(EVENT_THRUST, 3s, 5s);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
@@ -766,7 +766,7 @@ public:
|
||||
me->CastSpell(target, SPELL_MINIONS_CHARGE, false);
|
||||
}
|
||||
}
|
||||
events.Repeat(4500ms, 6000ms);
|
||||
events.Repeat(4500ms, 6s);
|
||||
}
|
||||
break;
|
||||
case EVENT_SHIELD_BREAKER:
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
#include "trial_of_the_champion.h"
|
||||
|
||||
const Position SpawnPosition = {746.67f, 684.08f, 412.5f, 4.65f};
|
||||
#define CLEANUP_CHECK_INTERVAL 5000
|
||||
|
||||
/**
|
||||
* @todo: Missing dialog/RP (already populated in DB) && spawns (can use ToC25 locations?) for:
|
||||
@@ -88,7 +87,7 @@ public:
|
||||
VehicleList.clear();
|
||||
CLEANED = false;
|
||||
events.Reset();
|
||||
events.RescheduleEvent(EVENT_CHECK_PLAYERS, 0);
|
||||
events.RescheduleEvent(EVENT_CHECK_PLAYERS, 0ms);
|
||||
Counter = 0;
|
||||
temp1 = 0;
|
||||
temp2 = 0;
|
||||
@@ -268,7 +267,7 @@ public:
|
||||
if (DoNeedCleanup(player))
|
||||
InstanceCleanup();
|
||||
|
||||
events.RescheduleEvent(EVENT_CHECK_PLAYERS, CLEANUP_CHECK_INTERVAL);
|
||||
events.RescheduleEvent(EVENT_CHECK_PLAYERS, 5s);
|
||||
}
|
||||
|
||||
bool DoNeedCleanup(Player* ignoredPlayer = nullptr)
|
||||
@@ -443,7 +442,7 @@ public:
|
||||
Counter = 0;
|
||||
SaveToDB();
|
||||
events.Reset();
|
||||
events.RescheduleEvent(EVENT_CHECK_PLAYERS, CLEANUP_CHECK_INTERVAL);
|
||||
events.RescheduleEvent(EVENT_CHECK_PLAYERS, 5s);
|
||||
|
||||
CLEANED = true;
|
||||
}
|
||||
@@ -785,7 +784,7 @@ public:
|
||||
{
|
||||
InstanceCleanup();
|
||||
}
|
||||
events.RepeatEvent(CLEANUP_CHECK_INTERVAL);
|
||||
events.Repeat(5s);
|
||||
}
|
||||
break;
|
||||
case EVENT_SUMMON_GRAND_CHAMPION_1:
|
||||
@@ -812,7 +811,7 @@ public:
|
||||
while( number == temp1 || number == temp2 );
|
||||
DoSummonGrandChampion(number, 2);
|
||||
HandleGameObject(GO_MainGateGUID, true);
|
||||
events.ScheduleEvent(EVENT_CLOSE_GATE, 6000);
|
||||
events.ScheduleEvent(EVENT_CLOSE_GATE, 6s);
|
||||
}
|
||||
break;
|
||||
case EVENT_CLOSE_GATE:
|
||||
|
||||
@@ -655,7 +655,7 @@ public:
|
||||
me->NearTeleportTo(target->GetPositionX() + cos(o) * 5.0f, target->GetPositionY() + std::sin(o) * 5.0f, target->GetPositionZ() + 0.6f, target->GetOrientation());
|
||||
AttackStart(target);
|
||||
me->GetMotionMaster()->MoveChase(target);
|
||||
events.DelayEvents(3000);
|
||||
events.DelayEvents(3s);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -119,7 +119,7 @@ struct boss_faction_championsAI : public ScriptedAI
|
||||
}
|
||||
|
||||
/// @todo - Convert to std::chrono
|
||||
void EventMapGCD(EventMap& e, uint32 delay, uint32 gcd = 0)
|
||||
void EventMapGCD(EventMap& e, Milliseconds delay, uint32 gcd = 0)
|
||||
{
|
||||
e.DelayEventsToMax(delay, gcd);
|
||||
}
|
||||
@@ -316,43 +316,43 @@ public:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_LIFEBLOOM, 40.0f))
|
||||
me->CastSpell(target, SPELL_LIFEBLOOM, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_NOURISH:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_NOURISH, 40.0f))
|
||||
me->CastSpell(target, SPELL_NOURISH, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_REGROWTH:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_REGROWTH, 40.0f))
|
||||
me->CastSpell(target, SPELL_REGROWTH, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_REJUVENATION:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_REJUVENATION, 40.0f))
|
||||
me->CastSpell(target, SPELL_REJUVENATION, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_THORNS:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_THORNS, 30.0f))
|
||||
me->CastSpell(target, SPELL_THORNS, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_TRANQUILITY:
|
||||
me->CastSpell(me, SPELL_TRANQUILITY, false);
|
||||
events.Repeat(2min, 3min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_BARKSKIN:
|
||||
if (HealthBelowPct(50))
|
||||
{
|
||||
me->CastSpell(me, SPELL_BARKSKIN, false);
|
||||
events.Repeat(1min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(6s);
|
||||
@@ -360,7 +360,7 @@ public:
|
||||
case EVENT_SPELL_NATURE_GRASP:
|
||||
me->CastSpell(me, SPELL_NATURE_GRASP, false);
|
||||
events.Repeat(1min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -445,19 +445,19 @@ public:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_HEALING_WAVE, 40.0f))
|
||||
me->CastSpell(target, SPELL_HEALING_WAVE, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_RIPTIDE:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_RIPTIDE, 40.0f))
|
||||
me->CastSpell(target, SPELL_RIPTIDE, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_SPIRIT_CLEANSE:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_SPIRIT_CLEANSE, 40.0f))
|
||||
me->CastSpell(target, SPELL_SPIRIT_CLEANSE, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_HEROISM_OR_BLOODLUST:
|
||||
if (me->GetEntry() == NPC_ALLIANCE_SHAMAN_RESTORATION )
|
||||
@@ -465,25 +465,25 @@ public:
|
||||
else
|
||||
me->CastSpell((Unit*)nullptr, SPELL_BLOODLUST, true);
|
||||
events.Repeat(10min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_HEX:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 20.0f, true))
|
||||
me->CastSpell(target, SPELL_HEX, false);
|
||||
events.Repeat(45s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_EARTH_SHIELD:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_EARTH_SHIELD, 40.0f))
|
||||
me->CastSpell(target, SPELL_EARTH_SHIELD, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_EARTH_SHOCK:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_EARTH_SHOCK, false);
|
||||
events.Repeat(5s, 10s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -568,14 +568,14 @@ public:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_HAND_OF_FREEDOM, 30.0f))
|
||||
me->CastSpell(target, SPELL_HAND_OF_FREEDOM, false);
|
||||
events.Repeat(25s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_BUBBLE:
|
||||
if (HealthBelowPct(25))
|
||||
{
|
||||
me->CastSpell(me, SPELL_BUBBLE, false);
|
||||
events.Repeat(5min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(10s);
|
||||
@@ -584,32 +584,32 @@ public:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_CLEANSE, 40.0f))
|
||||
me->CastSpell(target, SPELL_CLEANSE, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_FLASH_OF_LIGHT:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_FLASH_OF_LIGHT, 40.0f))
|
||||
me->CastSpell(target, SPELL_FLASH_OF_LIGHT, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_HOLY_LIGHT:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_HOLY_LIGHT, 40.0f))
|
||||
me->CastSpell(target, SPELL_HOLY_LIGHT, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_HOLY_SHOCK:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_HOLY_SHOCK, 40.0f))
|
||||
me->CastSpell(target, SPELL_HOLY_SHOCK, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_HAND_OF_PROTECTION:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_HAND_OF_PROTECTION, 40.0f))
|
||||
{
|
||||
me->CastSpell(target, SPELL_HAND_OF_PROTECTION, false);
|
||||
events.Repeat(5min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(10s);
|
||||
@@ -619,7 +619,7 @@ public:
|
||||
{
|
||||
me->CastSpell(target, SPELL_HAMMER_OF_JUSTICE, false);
|
||||
events.Repeat(40s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(10s);
|
||||
@@ -701,32 +701,32 @@ public:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_RENEW, 40.0f))
|
||||
me->CastSpell(target, SPELL_RENEW, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_SHIELD:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_SHIELD, 40.0f))
|
||||
me->CastSpell(target, SPELL_SHIELD, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_FLASH_HEAL:
|
||||
if (Creature* target = SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_FLASH_HEAL, 40.0f))
|
||||
me->CastSpell(target, SPELL_FLASH_HEAL, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_DISPEL:
|
||||
if (Unit* target = (urand(0, 1) ? SelectTarget(SelectTargetMethod::MaxThreat, 0, 30.0f, true) : SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_DISPEL, 40.0f)))
|
||||
me->CastSpell(target, SPELL_DISPEL, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_MANA_BURN:
|
||||
if (Unit* target = SelectEnemyCaster(false, 30.0f))
|
||||
{
|
||||
me->CastSpell(target, SPELL_MANA_BURN, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(6s);
|
||||
@@ -736,7 +736,7 @@ public:
|
||||
{
|
||||
me->CastSpell((Unit*)nullptr, SPELL_PSYCHIC_SCREAM, false);
|
||||
events.Repeat(30s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(6s);
|
||||
@@ -825,7 +825,7 @@ public:
|
||||
{
|
||||
me->CastSpell(target, SPELL_SILENCE, false);
|
||||
events.Repeat(45s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
}
|
||||
else
|
||||
@@ -835,32 +835,32 @@ public:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_VAMPIRIC_TOUCH, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_SW_PAIN:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_SW_PAIN, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_MIND_FLAY:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_MIND_FLAY, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_MIND_BLAST:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_MIND_BLAST, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_HORROR:
|
||||
if (me->GetVictim() && me->GetExactDist2d(me->GetVictim()) <= 30.0f )
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_HORROR, false);
|
||||
events.Repeat(2min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(10s);
|
||||
@@ -870,7 +870,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me, SPELL_DISPERSION, false);
|
||||
events.Repeat(3min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(6s);
|
||||
@@ -879,14 +879,14 @@ public:
|
||||
if (Unit* target = (urand(0, 1) ? SelectTarget(SelectTargetMethod::MaxThreat, 0, 30.0f, true) : SelectTarget_MostHPLostFriendlyMissingBuff(SPELL_DISPEL, 40.0f)))
|
||||
me->CastSpell(target, SPELL_DISPEL, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_PSYCHIC_SCREAM:
|
||||
if (EnemiesInRange(8.0f) >= 3 )
|
||||
{
|
||||
me->CastSpell((Unit*)nullptr, SPELL_PSYCHIC_SCREAM, false);
|
||||
events.Repeat(30s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(6s);
|
||||
@@ -989,7 +989,7 @@ public:
|
||||
{
|
||||
me->CastSpell((Unit*)nullptr, SPELL_HELLFIRE, false);
|
||||
events.Repeat(30s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(6s);
|
||||
@@ -998,43 +998,43 @@ public:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_CORRUPTION, false);
|
||||
events.Repeat(10s, 20s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_CURSE_OF_AGONY:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_CURSE_OF_AGONY, false);
|
||||
events.Repeat(10s, 20s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_CURSE_OF_EXHAUSTION:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_CURSE_OF_EXHAUSTION, false);
|
||||
events.Repeat(10s, 20s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_FEAR:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 20.0f, true))
|
||||
me->CastSpell(target, SPELL_FEAR, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_SEARING_PAIN:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_SEARING_PAIN, false);
|
||||
events.Repeat(5s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_SHADOW_BOLT:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_SHADOW_BOLT, false);
|
||||
events.Repeat(5s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_UNSTABLE_AFFLICTION:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_UNSTABLE_AFFLICTION, false);
|
||||
events.Repeat(5s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1121,20 +1121,20 @@ public:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_ARCANE_BARRAGE, false);
|
||||
events.Repeat(5s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_ARCANE_BLAST:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_ARCANE_BLAST, false);
|
||||
events.Repeat(5s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_ARCANE_EXPLOSION:
|
||||
if (EnemiesInRange(9.0f) >= 3 )
|
||||
{
|
||||
me->CastSpell((Unit*)nullptr, SPELL_ARCANE_EXPLOSION, false);
|
||||
events.Repeat(6s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(6s);
|
||||
@@ -1144,7 +1144,7 @@ public:
|
||||
{
|
||||
me->CastSpell((Unit*)nullptr, SPELL_FROST_NOVA, false);
|
||||
events.Repeat(15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
// blink disabled, movement not working
|
||||
}
|
||||
else
|
||||
@@ -1155,7 +1155,7 @@ public:
|
||||
{
|
||||
me->CastSpell(target, SPELL_COUNTERSPELL, false);
|
||||
events.Repeat(24s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(6s);
|
||||
@@ -1164,14 +1164,14 @@ public:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_FROSTBOLT, false);
|
||||
events.Repeat(5s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_ICE_BLOCK:
|
||||
if (HealthBelowPct(25))
|
||||
{
|
||||
me->CastSpell(me, SPELL_ICE_BLOCK, false);
|
||||
events.Repeat(5min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(6s);
|
||||
@@ -1180,7 +1180,7 @@ public:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f, true))
|
||||
me->CastSpell(target, SPELL_POLYMORPH, false);
|
||||
events.Repeat(15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1279,14 +1279,14 @@ public:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_AIMED_SHOT, false);
|
||||
events.Repeat(5s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_DETERRENCE:
|
||||
if (HealthBelowPct(25))
|
||||
{
|
||||
me->CastSpell(me, SPELL_DETERRENCE, false);
|
||||
events.Repeat(90s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(6s);
|
||||
@@ -1296,7 +1296,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me, SPELL_DISENGAGE, false);
|
||||
events.Repeat(20s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(6s);
|
||||
@@ -1305,31 +1305,31 @@ public:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_EXPLOSIVE_SHOT, false);
|
||||
events.Repeat(5s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_FROST_TRAP:
|
||||
me->CastSpell(me, SPELL_FROST_TRAP, false);
|
||||
events.Repeat(30s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_STEADY_SHOT:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_STEADY_SHOT, false);
|
||||
events.Repeat(5s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_WING_CLIP:
|
||||
if (me->GetVictim() && me->GetDistance2d(me->GetVictim()) <= 5.0f )
|
||||
me->CastSpell(me->GetVictim(), SPELL_WING_CLIP, false);
|
||||
events.Repeat(8s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_WYVERN_STING:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 35.0f, true))
|
||||
{
|
||||
me->CastSpell(target, SPELL_WYVERN_STING, false);
|
||||
events.Repeat(1min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
}
|
||||
events.Repeat(10s);
|
||||
@@ -1429,7 +1429,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me, SPELL_BARKSKIN, false);
|
||||
events.Repeat(1min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(6s);
|
||||
@@ -1438,48 +1438,48 @@ public:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_WRATH, false);
|
||||
events.Repeat(5s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_MOONFIRE:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_MOONFIRE, false);
|
||||
events.Repeat(5s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_STARFIRE:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_STARFIRE, false);
|
||||
events.Repeat(5s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_INSECT_SWARM:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_INSECT_SWARM, false);
|
||||
events.Repeat(5s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_ENTANGLING_ROOTS:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f, true))
|
||||
me->CastSpell(target, SPELL_ENTANGLING_ROOTS, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_FAERIE_FIRE:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_FAERIE_FIRE, false);
|
||||
events.Repeat(15s, 20s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_CYCLONE:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::MaxDistance, 0, 20.0f, true))
|
||||
me->CastSpell(target, SPELL_CYCLONE, false);
|
||||
events.Repeat(25s, 40s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_FORCE_OF_NATURE:
|
||||
me->CastSpell((Unit*)nullptr, SPELL_FORCE_OF_NATURE, false);
|
||||
events.Repeat(3min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1583,7 +1583,7 @@ public:
|
||||
{
|
||||
me->CastSpell((Unit*)nullptr, SPELL_INTIMIDATING_SHOUT, false);
|
||||
events.Repeat(2min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -1597,14 +1597,14 @@ public:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_MORTAL_STRIKE, false);
|
||||
events.Repeat(6s, 8s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_CHARGE:
|
||||
if (me->GetVictim() && me->GetDistance2d(me->GetVictim()) > 8.0f && me->GetDistance2d(me->GetVictim()) < 25.0f )
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_CHARGE, false);
|
||||
events.Repeat(10s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -1614,7 +1614,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_DISARM, false);
|
||||
events.Repeat(1min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -1629,7 +1629,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_OVERPOWER, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -1644,7 +1644,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_SUNDER_ARMOR, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -1659,7 +1659,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_SHATTERING_THROW, false);
|
||||
events.Repeat(5min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(6s);
|
||||
@@ -1674,7 +1674,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me, SPELL_RETALIATION, false);
|
||||
events.Repeat(5min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -1760,7 +1760,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_CHAINS_OF_ICE, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -1770,7 +1770,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_DEATH_COIL, false);
|
||||
events.Repeat(5s, 8s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -1785,7 +1785,7 @@ public:
|
||||
pos.Relocate(x, y, z);
|
||||
me->GetVictim()->CastSpell(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), 49575, true);
|
||||
events.Repeat(35s);
|
||||
EventMapGCD(events, 2000);
|
||||
EventMapGCD(events, 2s);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -1800,7 +1800,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_FROST_STRIKE, false);
|
||||
events.Repeat(6s, 10s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -1810,7 +1810,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me, SPELL_ICEBOUND_FORTITUDE, false);
|
||||
events.Repeat(1min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(6s);
|
||||
@@ -1820,7 +1820,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_ICY_TOUCH, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -1830,7 +1830,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_STRANGULATE, false);
|
||||
events.Repeat(2min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -1922,7 +1922,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_FAN_OF_KNIVES, false);
|
||||
events.Repeat(6s, 10s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -1932,7 +1932,7 @@ public:
|
||||
{
|
||||
me->CastSpell(target, SPELL_BLIND, false);
|
||||
events.Repeat(2min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -1942,7 +1942,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me, SPELL_CLOAK, false);
|
||||
events.Repeat(90s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(6s);
|
||||
@@ -1954,7 +1954,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me, SPELL_BLADE_FLURRY, false);
|
||||
events.Repeat(2min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
break;
|
||||
case EVENT_SPELL_SHADOWSTEP:
|
||||
@@ -1962,7 +1962,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_SHADOWSTEP, false);
|
||||
events.Repeat(30s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -1977,7 +1977,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_HEMORRHAGE, false);
|
||||
events.Repeat(5s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -1992,7 +1992,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me->GetVictim(), SPELL_EVISCERATE, false);
|
||||
events.Repeat(15s, 25s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -2080,7 +2080,7 @@ public:
|
||||
{
|
||||
me->CastSpell(target, SPELL_EARTH_SHOCK_ENH, false);
|
||||
events.Repeat(6s, 8s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -2095,7 +2095,7 @@ public:
|
||||
{
|
||||
me->CastSpell(target, SPELL_LAVA_LASH, false);
|
||||
events.Repeat(6s, 8s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -2110,7 +2110,7 @@ public:
|
||||
{
|
||||
me->CastSpell(target, SPELL_STORMSTRIKE, false);
|
||||
events.Repeat(8s, 9s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -2121,12 +2121,12 @@ public:
|
||||
else
|
||||
me->CastSpell((Unit*)nullptr, SPELL_BLOODLUST, true);
|
||||
events.Repeat(10min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SUMMON_TOTEM:
|
||||
me->CastSpell((Unit*)nullptr, RAND(SPELL_GROUNDING_TOTEM, SPELL_WINDFURY_TOTEM, SPELL_TREMOR_TOTEM), false);
|
||||
events.Repeat(30s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -2211,7 +2211,7 @@ public:
|
||||
case EVENT_SPELL_AVENGING_WRATH:
|
||||
me->CastSpell(me, SPELL_AVENGING_WRATH, false);
|
||||
events.Repeat(3min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_CRUSADER_STRIKE:
|
||||
if (me->HasUnitFlag(UNIT_FLAG_DISARMED))
|
||||
@@ -2223,7 +2223,7 @@ public:
|
||||
{
|
||||
me->CastSpell(target, SPELL_CRUSADER_STRIKE, false);
|
||||
events.Repeat(6s, 8s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -2233,7 +2233,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me, SPELL_DIVINE_SHIELD, false);
|
||||
events.Repeat(5min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -2248,7 +2248,7 @@ public:
|
||||
{
|
||||
me->CastSpell((Unit*)nullptr, SPELL_DIVINE_STORM, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -2258,7 +2258,7 @@ public:
|
||||
{
|
||||
me->CastSpell(target, SPELL_HAMMER_OF_JUSTICE_RET, false);
|
||||
events.Repeat(40s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -2268,7 +2268,7 @@ public:
|
||||
{
|
||||
me->CastSpell(target, SPELL_HAND_OF_PROTECTION_RET, false);
|
||||
events.Repeat(5min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -2278,7 +2278,7 @@ public:
|
||||
{
|
||||
me->CastSpell(target, SPELL_JUDGEMENT_OF_COMMAND, false);
|
||||
events.Repeat(10s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -2288,7 +2288,7 @@ public:
|
||||
{
|
||||
me->CastSpell(target, SPELL_REPENTANCE, false);
|
||||
events.Repeat(1min);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
}
|
||||
else
|
||||
events.Repeat(5s);
|
||||
@@ -2357,13 +2357,13 @@ public:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_DEVOUR_MAGIC, false);
|
||||
events.Repeat(8s, 15s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
case EVENT_SPELL_SPELL_LOCK:
|
||||
if (me->GetVictim())
|
||||
me->CastSpell(me->GetVictim(), SPELL_SPELL_LOCK, false);
|
||||
events.Repeat(24s);
|
||||
EventMapGCD(events, 1500);
|
||||
EventMapGCD(events, 1500ms);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -848,7 +848,7 @@ public:
|
||||
me->CastSpell(me, SPELL_STAGGERED_DAZE, true);
|
||||
me->CastSpell((Unit*)nullptr, SPELL_TRAMPLE, true);
|
||||
Talk(EMOTE_TRAMPLE_CRASH);
|
||||
events.DelayEvents(15000);
|
||||
events.DelayEvents(15s);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -384,7 +384,7 @@ struct boss_twin_valkyrAI : public ScriptedAI
|
||||
/*
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true, essenceId))
|
||||
me->CastSpell(target, me->GetEntry()==NPC_LIGHTBANE ? SPELL_LIGHT_TOUCH : SPELL_DARK_TOUCH, false);
|
||||
events.RepeatEvent(urand(45000,50000));
|
||||
events.Repeat(45s,50s);
|
||||
*/
|
||||
|
||||
GuidVector tList;
|
||||
@@ -458,7 +458,7 @@ struct boss_twin_valkyrAI : public ScriptedAI
|
||||
if ((SpecialMask & 0xF) == 0xF )
|
||||
SpecialMask = 0;
|
||||
events.Repeat(45s);
|
||||
events.DelayEventsToMax(15000, 1); // no touch of light/darkness during special abilities!
|
||||
events.DelayEventsToMax(15s, 1); // no touch of light/darkness during special abilities!
|
||||
}
|
||||
break;
|
||||
case EVENT_REMOVE_DUAL_WIELD:
|
||||
|
||||
@@ -175,7 +175,7 @@ public:
|
||||
bSwitcher = false;
|
||||
bNooneDied = true;
|
||||
events.Reset();
|
||||
events.RescheduleEvent(EVENT_CHECK_PLAYERS, 0);
|
||||
events.RescheduleEvent(EVENT_CHECK_PLAYERS, 0ms);
|
||||
|
||||
NPC_ChampionGUIDs.clear();
|
||||
}
|
||||
@@ -295,22 +295,22 @@ public:
|
||||
switch (InstanceProgress)
|
||||
{
|
||||
case INSTANCE_PROGRESS_INITIAL:
|
||||
events.RescheduleEvent(EVENT_SCENE_001, 0);
|
||||
events.RescheduleEvent(EVENT_SCENE_001, 0ms);
|
||||
break;
|
||||
case INSTANCE_PROGRESS_INTRO_DONE:
|
||||
events.RescheduleEvent(EVENT_SCENE_004, 0);
|
||||
events.RescheduleEvent(EVENT_SCENE_004, 0ms);
|
||||
break;
|
||||
case INSTANCE_PROGRESS_BEASTS_DEAD:
|
||||
events.RescheduleEvent(EVENT_SCENE_101, 0);
|
||||
events.RescheduleEvent(EVENT_SCENE_101, 0ms);
|
||||
break;
|
||||
case INSTANCE_PROGRESS_JARAXXUS_DEAD:
|
||||
events.RescheduleEvent(EVENT_SCENE_201, 0);
|
||||
events.RescheduleEvent(EVENT_SCENE_201, 0ms);
|
||||
break;
|
||||
case INSTANCE_PROGRESS_FACTION_CHAMPIONS_DEAD:
|
||||
events.RescheduleEvent(EVENT_SCENE_301, 0);
|
||||
events.RescheduleEvent(EVENT_SCENE_301, 0ms);
|
||||
break;
|
||||
case INSTANCE_PROGRESS_VALKYR_DEAD:
|
||||
events.RescheduleEvent(EVENT_SCENE_401, 0);
|
||||
events.RescheduleEvent(EVENT_SCENE_401, 0ms);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -331,7 +331,7 @@ public:
|
||||
if ((northrendBeastsMask & 7) == 7)
|
||||
SetData(TYPE_NORTHREND_BEASTS_ALL, DONE);
|
||||
else if ((northrendBeastsMask & 16) == 0)
|
||||
events.RescheduleEvent(EVENT_SCENE_005, 2500);
|
||||
events.RescheduleEvent(EVENT_SCENE_005, 2500ms);
|
||||
}
|
||||
break;
|
||||
case TYPE_JORMUNGAR:
|
||||
@@ -363,7 +363,7 @@ public:
|
||||
else if ((northrendBeastsMask & 32) == 0)
|
||||
{
|
||||
Counter = 0;
|
||||
events.RescheduleEvent(EVENT_SCENE_006, 2500);
|
||||
events.RescheduleEvent(EVENT_SCENE_006, 2500ms);
|
||||
}
|
||||
}
|
||||
else // first one died, start timer for achievement
|
||||
@@ -390,7 +390,7 @@ public:
|
||||
InstanceProgress = INSTANCE_PROGRESS_BEASTS_DEAD;
|
||||
HandleGameObject(GO_EnterGateGUID, true);
|
||||
events.CancelEvent(EVENT_NORTHREND_BEASTS_ENRAGE);
|
||||
events.RescheduleEvent(EVENT_SCENE_BEASTS_DONE, 2500);
|
||||
events.RescheduleEvent(EVENT_SCENE_BEASTS_DONE, 2500ms);
|
||||
SaveToDB();
|
||||
}
|
||||
break;
|
||||
@@ -402,7 +402,7 @@ public:
|
||||
{
|
||||
HandleGameObject(GO_EnterGateGUID, true);
|
||||
InstanceProgress = INSTANCE_PROGRESS_JARAXXUS_DEAD;
|
||||
events.RescheduleEvent(EVENT_SCENE_110, 2500);
|
||||
events.RescheduleEvent(EVENT_SCENE_110, 2500ms);
|
||||
SaveToDB();
|
||||
}
|
||||
break;
|
||||
@@ -416,7 +416,7 @@ public:
|
||||
Counter = 0;
|
||||
EncounterStatus = NOT_STARTED;
|
||||
InstanceProgress = INSTANCE_PROGRESS_FACTION_CHAMPIONS_DEAD;
|
||||
events.RescheduleEvent(EVENT_SCENE_FACTION_CHAMPIONS_DEAD, 2500);
|
||||
events.RescheduleEvent(EVENT_SCENE_FACTION_CHAMPIONS_DEAD, 2500ms);
|
||||
|
||||
for (ObjectGuid const& guid : NPC_ChampionGUIDs)
|
||||
if (Creature* c = instance->GetCreature(guid))
|
||||
@@ -491,7 +491,7 @@ public:
|
||||
InstanceProgress = INSTANCE_PROGRESS_VALKYR_DEAD;
|
||||
DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, 34497, 1); // Lightbane
|
||||
DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, 34496, 1); // Darkbane
|
||||
events.RescheduleEvent(EVENT_SCENE_VALKYR_DEAD, 2500);
|
||||
events.RescheduleEvent(EVENT_SCENE_VALKYR_DEAD, 2500ms);
|
||||
HandleGameObject(GO_EnterGateGUID, true);
|
||||
SaveToDB();
|
||||
}
|
||||
@@ -516,7 +516,7 @@ public:
|
||||
c->UpdatePosition(Locs[LOC_TIRION_FINAL], true);
|
||||
c->StopMovingOnCurrentPos();
|
||||
c->SetFacingTo(Locs[LOC_TIRION_FINAL].GetOrientation());
|
||||
events.RescheduleEvent(EVENT_SCENE_501, 20000);
|
||||
events.RescheduleEvent(EVENT_SCENE_501, 20s);
|
||||
}
|
||||
if (GameObject* floor = instance->GetGameObject(GO_FloorGUID))
|
||||
floor->SetDestructibleState(GO_DESTRUCTIBLE_REBUILDING, nullptr, true);
|
||||
@@ -591,7 +591,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_TirionGUID))
|
||||
c->AI()->Talk(SAY_STAGE_0_01);
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_002, 22000);
|
||||
events.RescheduleEvent(EVENT_SCENE_002, 22s);
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_002:
|
||||
@@ -599,7 +599,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_VarianGUID))
|
||||
c->AI()->Talk(SAY_STAGE_0_03a);
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_003, 5000);
|
||||
events.RescheduleEvent(EVENT_SCENE_003, 5s);
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_003:
|
||||
@@ -607,7 +607,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_GarroshGUID))
|
||||
c->AI()->Talk(SAY_STAGE_0_03h);
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_004, 8000);
|
||||
events.RescheduleEvent(EVENT_SCENE_004, 8s);
|
||||
}
|
||||
break;
|
||||
case EVENT_SCENE_004:
|
||||
@@ -620,12 +620,12 @@ public:
|
||||
HandleGameObject(GO_MainGateGUID, true);
|
||||
HandleGameObject(GO_EnterGateGUID, false);
|
||||
|
||||
events.RescheduleEvent(EVENT_SUMMON_GORMOK, 1000);
|
||||
events.RescheduleEvent(EVENT_SUMMON_GORMOK, 1s);
|
||||
if (instance->IsHeroic())
|
||||
{
|
||||
events.RescheduleEvent(EVENT_SCENE_005, 150000);
|
||||
events.RescheduleEvent(EVENT_SCENE_006, 340000);
|
||||
events.RescheduleEvent(EVENT_NORTHREND_BEASTS_ENRAGE, 520000);
|
||||
events.RescheduleEvent(EVENT_SCENE_005, 150s);
|
||||
events.RescheduleEvent(EVENT_SCENE_006, 340s);
|
||||
events.RescheduleEvent(EVENT_NORTHREND_BEASTS_ENRAGE, 520s);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -650,8 +650,8 @@ public:
|
||||
if (Creature* gormok = c->SummonCreature(NPC_GORMOK, Locs[LOC_BEHIND_GATE].GetPositionX(), Locs[LOC_BEHIND_GATE].GetPositionY(), Locs[LOC_BEHIND_GATE].GetPositionZ(), Locs[LOC_BEHIND_GATE].GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000))
|
||||
gormok->GetMotionMaster()->MovePoint(0, Locs[LOC_GATE_FRONT].GetPositionX(), Locs[LOC_GATE_FRONT].GetPositionY(), Locs[LOC_GATE_FRONT].GetPositionZ());
|
||||
|
||||
events.RescheduleEvent(EVENT_GORMOK_ATTACK, 10000);
|
||||
events.RescheduleEvent(EVENT_CLOSE_GATE, 6000);
|
||||
events.RescheduleEvent(EVENT_GORMOK_ATTACK, 10s);
|
||||
events.RescheduleEvent(EVENT_CLOSE_GATE, 6s);
|
||||
}
|
||||
break;
|
||||
case EVENT_GORMOK_ATTACK:
|
||||
@@ -676,8 +676,8 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_TirionGUID))
|
||||
c->AI()->Talk(SAY_STAGE_0_04);
|
||||
|
||||
events.RescheduleEvent(EVENT_OPEN_GATE, 3000);
|
||||
events.RescheduleEvent(EVENT_SUMMON_ACIDMAW_AND_DREADSCALE, 4000);
|
||||
events.RescheduleEvent(EVENT_OPEN_GATE, 3s);
|
||||
events.RescheduleEvent(EVENT_SUMMON_ACIDMAW_AND_DREADSCALE, 4s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SUMMON_ACIDMAW_AND_DREADSCALE:
|
||||
@@ -690,7 +690,7 @@ public:
|
||||
acidmaw->AddAura(53421, acidmaw);
|
||||
}
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_005_2, 4000);
|
||||
events.RescheduleEvent(EVENT_SCENE_005_2, 4s);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -699,7 +699,7 @@ public:
|
||||
if (Creature* dreadscale = instance->GetCreature(NPC_DreadscaleGUID))
|
||||
dreadscale->GetMotionMaster()->MovePoint(0, Locs[LOC_DREADSCALE].GetPositionX(), Locs[LOC_DREADSCALE].GetPositionY(), Locs[LOC_DREADSCALE].GetPositionZ());
|
||||
|
||||
events.RescheduleEvent(EVENT_ACIDMAW_AND_DREADSCALE_ATTACK, 7000);
|
||||
events.RescheduleEvent(EVENT_ACIDMAW_AND_DREADSCALE_ATTACK, 7s);
|
||||
break;
|
||||
}
|
||||
case EVENT_ACIDMAW_AND_DREADSCALE_ATTACK:
|
||||
@@ -737,8 +737,8 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_TirionGUID))
|
||||
c->AI()->Talk(SAY_STAGE_0_05);
|
||||
|
||||
events.RescheduleEvent(EVENT_OPEN_GATE, 2000);
|
||||
events.RescheduleEvent(EVENT_SUMMON_ICEHOWL, 3000);
|
||||
events.RescheduleEvent(EVENT_OPEN_GATE, 2s);
|
||||
events.RescheduleEvent(EVENT_SUMMON_ICEHOWL, 3s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SUMMON_ICEHOWL:
|
||||
@@ -747,8 +747,8 @@ public:
|
||||
if (Creature* icehowl = c->SummonCreature(NPC_ICEHOWL, Locs[LOC_BEHIND_GATE].GetPositionX(), Locs[LOC_BEHIND_GATE].GetPositionY(), Locs[LOC_BEHIND_GATE].GetPositionZ(), Locs[LOC_BEHIND_GATE].GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 630000000))
|
||||
icehowl->GetMotionMaster()->MovePoint(0, Locs[LOC_GATE_FRONT].GetPositionX(), Locs[LOC_GATE_FRONT].GetPositionY(), Locs[LOC_GATE_FRONT].GetPositionZ());
|
||||
|
||||
events.RescheduleEvent(EVENT_ICEHOWL_ATTACK, 10000);
|
||||
events.RescheduleEvent(EVENT_CLOSE_GATE, 6000);
|
||||
events.RescheduleEvent(EVENT_ICEHOWL_ATTACK, 10s);
|
||||
events.RescheduleEvent(EVENT_CLOSE_GATE, 6s);
|
||||
break;
|
||||
}
|
||||
case EVENT_ICEHOWL_ATTACK:
|
||||
@@ -785,7 +785,7 @@ public:
|
||||
fizzlebang->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
fizzlebang->GetMotionMaster()->MovePoint(0, Locs[LOC_BEHIND_GATE].GetPositionX(), Locs[LOC_BEHIND_GATE].GetPositionY() - 65.0f, Locs[LOC_BEHIND_GATE].GetPositionZ() - 1.0f);
|
||||
}
|
||||
events.RescheduleEvent(EVENT_SCENE_102, 20000);
|
||||
events.RescheduleEvent(EVENT_SCENE_102, 20s);
|
||||
|
||||
// move Icehowl to side, can't remove corpse because of loot!
|
||||
if (Creature* icehowl = instance->GetCreature(NPC_IcehowlGUID))
|
||||
@@ -803,7 +803,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_FizzlebangGUID))
|
||||
c->AI()->Talk(SAY_STAGE_1_02);
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_103, 11000);
|
||||
events.RescheduleEvent(EVENT_SCENE_103, 11s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_103:
|
||||
@@ -816,7 +816,7 @@ public:
|
||||
NPC_PurpleGroundGUID = trigger->GetGUID();
|
||||
}
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_104, 5000);
|
||||
events.RescheduleEvent(EVENT_SCENE_104, 5s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_104:
|
||||
@@ -833,7 +833,7 @@ public:
|
||||
c->HandleEmoteCommand(EMOTE_STATE_SPELL_PRECAST);
|
||||
}
|
||||
|
||||
events.RescheduleEvent(EVENT_SUMMON_JARAXXUS, 5000);
|
||||
events.RescheduleEvent(EVENT_SUMMON_JARAXXUS, 5s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SUMMON_JARAXXUS:
|
||||
@@ -846,7 +846,7 @@ public:
|
||||
c->AI()->Talk(SAY_STAGE_1_04);
|
||||
}
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_105, 3000);
|
||||
events.RescheduleEvent(EVENT_SCENE_105, 3s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_105:
|
||||
@@ -860,7 +860,7 @@ public:
|
||||
c->DespawnOrUnsummon();
|
||||
NPC_PortalGUID.Clear();
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_106, 10000);
|
||||
events.RescheduleEvent(EVENT_SCENE_106, 10s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_106:
|
||||
@@ -868,7 +868,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_JaraxxusGUID))
|
||||
c->AI()->Talk(SAY_STAGE_1_05);
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_107, 5000);
|
||||
events.RescheduleEvent(EVENT_SCENE_107, 5s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_107:
|
||||
@@ -876,7 +876,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_FizzlebangGUID))
|
||||
c->AI()->Talk(SAY_STAGE_1_06);
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_108, 800);
|
||||
events.RescheduleEvent(EVENT_SCENE_108, 800ms);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_108:
|
||||
@@ -891,7 +891,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_109, 5000);
|
||||
events.RescheduleEvent(EVENT_SCENE_109, 5s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_109:
|
||||
@@ -901,7 +901,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_TirionGUID))
|
||||
c->AI()->Talk(SAY_STAGE_1_07);
|
||||
|
||||
events.RescheduleEvent(EVENT_JARAXXUS_ATTACK, 6000);
|
||||
events.RescheduleEvent(EVENT_JARAXXUS_ATTACK, 6s);
|
||||
break;
|
||||
}
|
||||
case EVENT_JARAXXUS_ATTACK:
|
||||
@@ -925,7 +925,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_TirionGUID))
|
||||
c->AI()->Talk(SAY_STAGE_1_08);
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_111, 18000);
|
||||
events.RescheduleEvent(EVENT_SCENE_111, 18s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_111:
|
||||
@@ -933,7 +933,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_GarroshGUID))
|
||||
c->AI()->Talk(SAY_STAGE_1_09);
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_112, 9000);
|
||||
events.RescheduleEvent(EVENT_SCENE_112, 9s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_112:
|
||||
@@ -941,7 +941,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_VarianGUID))
|
||||
c->AI()->Talk(SAY_STAGE_1_10);
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_113, 5000);
|
||||
events.RescheduleEvent(EVENT_SCENE_113, 5s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_113:
|
||||
@@ -965,7 +965,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_TirionGUID))
|
||||
c->AI()->Talk(SAY_STAGE_2_01);
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_202, 9000);
|
||||
events.RescheduleEvent(EVENT_SCENE_202, 9s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_202:
|
||||
@@ -974,13 +974,13 @@ public:
|
||||
{
|
||||
if (Creature* c = instance->GetCreature(NPC_GarroshGUID))
|
||||
c->AI()->Talk(SAY_STAGE_2_02h);
|
||||
events.RescheduleEvent(EVENT_SCENE_203, 15000);
|
||||
events.RescheduleEvent(EVENT_SCENE_203, 15s);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Creature* c = instance->GetCreature(NPC_VarianGUID))
|
||||
c->AI()->Talk(SAY_STAGE_2_02a);
|
||||
events.RescheduleEvent(EVENT_SCENE_203, 18000);
|
||||
events.RescheduleEvent(EVENT_SCENE_203, 18s);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -989,7 +989,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_TirionGUID))
|
||||
c->AI()->Talk(SAY_STAGE_2_03);
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_204, 5000);
|
||||
events.RescheduleEvent(EVENT_SCENE_204, 5s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_204:
|
||||
@@ -998,16 +998,16 @@ public:
|
||||
{
|
||||
if (Creature* c = instance->GetCreature(NPC_GarroshGUID))
|
||||
c->AI()->Talk(SAY_STAGE_2_04h);
|
||||
events.RescheduleEvent(EVENT_SCENE_205, 6000);
|
||||
events.RescheduleEvent(EVENT_SCENE_205, 6s);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Creature* c = instance->GetCreature(NPC_VarianGUID))
|
||||
c->AI()->Talk(SAY_STAGE_2_04a);
|
||||
events.RescheduleEvent(EVENT_SCENE_205, 5000);
|
||||
events.RescheduleEvent(EVENT_SCENE_205, 5s);
|
||||
}
|
||||
|
||||
events.RescheduleEvent(EVENT_SUMMON_CHAMPIONS, 2500);
|
||||
events.RescheduleEvent(EVENT_SUMMON_CHAMPIONS, 2500ms);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_205:
|
||||
@@ -1089,7 +1089,7 @@ public:
|
||||
}
|
||||
|
||||
HandleGameObject(GO_EnterGateGUID, false);
|
||||
events.RescheduleEvent(EVENT_CHAMPIONS_ATTACK, 4000);
|
||||
events.RescheduleEvent(EVENT_CHAMPIONS_ATTACK, 4s);
|
||||
break;
|
||||
}
|
||||
case EVENT_CHAMPIONS_ATTACK:
|
||||
@@ -1122,7 +1122,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_TirionGUID))
|
||||
c->AI()->Talk(SAY_STAGE_3_01);
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_302, 13000);
|
||||
events.RescheduleEvent(EVENT_SCENE_302, 13s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_302:
|
||||
@@ -1130,7 +1130,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_TirionGUID))
|
||||
c->AI()->Talk(SAY_STAGE_3_02);
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_303, 3000);
|
||||
events.RescheduleEvent(EVENT_SCENE_303, 3s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_303:
|
||||
@@ -1145,7 +1145,7 @@ public:
|
||||
t->GetMotionMaster()->MovePoint(0, Locs[LOC_VALKYR_DEST_LEFT].GetPositionX(), Locs[LOC_VALKYR_DEST_LEFT].GetPositionY(), Locs[LOC_VALKYR_DEST_LEFT].GetPositionZ());
|
||||
}
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_304, 6250);
|
||||
events.RescheduleEvent(EVENT_SCENE_304, 6250ms);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_304:
|
||||
@@ -1157,7 +1157,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_DarkbaneGUID))
|
||||
c->GetMotionMaster()->MovePoint(0, Locs[LOC_VALKYR_DEST_2_LEFT].GetPositionX(), Locs[LOC_VALKYR_DEST_2_LEFT].GetPositionY(), Locs[LOC_VALKYR_DEST_2_LEFT].GetPositionZ());
|
||||
|
||||
events.RescheduleEvent(EVENT_VALKYRIES_ATTACK, 3250);
|
||||
events.RescheduleEvent(EVENT_VALKYRIES_ATTACK, 3250ms);
|
||||
break;
|
||||
}
|
||||
case EVENT_VALKYRIES_ATTACK:
|
||||
@@ -1189,7 +1189,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(GetTeamIdInInstance() == TEAM_ALLIANCE ? NPC_VarianGUID : NPC_GarroshGUID))
|
||||
c->AI()->Talk((GetTeamIdInInstance() == TEAM_ALLIANCE ? SAY_STAGE_3_03a : SAY_STAGE_3_03h));
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_401, 60000);
|
||||
events.RescheduleEvent(EVENT_SCENE_401, 60s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_401:
|
||||
@@ -1197,7 +1197,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_TirionGUID))
|
||||
c->AI()->Talk(SAY_STAGE_4_01);
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_402, 20000);
|
||||
events.RescheduleEvent(EVENT_SCENE_402, 20s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_402:
|
||||
@@ -1214,7 +1214,7 @@ public:
|
||||
t->SetVisible(false);
|
||||
}
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_403, 2000);
|
||||
events.RescheduleEvent(EVENT_SCENE_403, 2s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_403:
|
||||
@@ -1226,7 +1226,7 @@ public:
|
||||
t->CastSpell(t, 51807, true);
|
||||
}
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_404, 2000);
|
||||
events.RescheduleEvent(EVENT_SCENE_404, 2s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_404:
|
||||
@@ -1238,7 +1238,7 @@ public:
|
||||
c->GetMotionMaster()->MovePoint(0, Locs[LOC_ARTHAS]);
|
||||
}
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_405, 3000);
|
||||
events.RescheduleEvent(EVENT_SCENE_405, 3s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_405:
|
||||
@@ -1246,7 +1246,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_TirionGUID))
|
||||
c->AI()->Talk(SAY_STAGE_4_03);
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_406, 7000);
|
||||
events.RescheduleEvent(EVENT_SCENE_406, 7s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_406:
|
||||
@@ -1257,8 +1257,8 @@ public:
|
||||
c->HandleEmoteCommand(EMOTE_ONESHOT_LAUGH);
|
||||
}
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_406_2, 2500);
|
||||
events.RescheduleEvent(EVENT_SCENE_407, 12000);
|
||||
events.RescheduleEvent(EVENT_SCENE_406_2, 2500ms);
|
||||
events.RescheduleEvent(EVENT_SCENE_407, 12s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_406_2:
|
||||
@@ -1276,7 +1276,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_LichKingGUID))
|
||||
c->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_408, 4000);
|
||||
events.RescheduleEvent(EVENT_SCENE_408, 4s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_408:
|
||||
@@ -1286,7 +1286,7 @@ public:
|
||||
c->HandleEmoteCommand(EMOTE_ONESHOT_KNEEL);
|
||||
}
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_409, 1500);
|
||||
events.RescheduleEvent(EVENT_SCENE_409, 1500ms);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_409:
|
||||
@@ -1305,7 +1305,7 @@ public:
|
||||
SpawnAnubArak();
|
||||
}
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_410, 2000);
|
||||
events.RescheduleEvent(EVENT_SCENE_410, 2s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_410:
|
||||
@@ -1328,7 +1328,7 @@ public:
|
||||
c->SummonGameObject(195682, 668.15f, 134.57f, 142.12f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 630000000);
|
||||
}
|
||||
|
||||
events.RescheduleEvent(EVENT_SCENE_502, 20000);
|
||||
events.RescheduleEvent(EVENT_SCENE_502, 20s);
|
||||
break;
|
||||
}
|
||||
case EVENT_SCENE_502:
|
||||
|
||||
@@ -167,7 +167,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/) override
|
||||
{
|
||||
if (events.GetNextEventTime(EVENT_KILL_TALK) == 0)
|
||||
if (!events.HasTimeUntilEvent(EVENT_KILL_TALK))
|
||||
{
|
||||
Talk(SAY_KILL);
|
||||
events.ScheduleEvent(EVENT_KILL_TALK, 6s);
|
||||
|
||||
@@ -104,7 +104,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/) override
|
||||
{
|
||||
if (events.GetNextEventTime(EVENT_KILL_TALK) == 0)
|
||||
if (!events.HasTimeUntilEvent(EVENT_KILL_TALK))
|
||||
{
|
||||
Talk(SAY_KILL);
|
||||
events.ScheduleEvent(EVENT_KILL_TALK, 6s);
|
||||
|
||||
@@ -102,7 +102,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/) override
|
||||
{
|
||||
if (events.GetNextEventTime(EVENT_KILL_TALK) == 0)
|
||||
if (!events.HasTimeUntilEvent(EVENT_KILL_TALK))
|
||||
{
|
||||
Talk(SAY_KILL);
|
||||
events.ScheduleEvent(EVENT_KILL_TALK, 6s);
|
||||
|
||||
@@ -115,7 +115,7 @@ public:
|
||||
me->GetMotionMaster()->MoveIdle();
|
||||
me->CastSpell(me, SPELL_TELEPORT, false);
|
||||
events.CancelEvent(EVENT_SPELL_CORRUPT_SOUL);
|
||||
events.DelayEvents(6000);
|
||||
events.DelayEvents(6s);
|
||||
events.RescheduleEvent(EVENT_SPELL_FEAR, 8s, 14s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -225,14 +225,14 @@ public:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
|
||||
me->CastSpell(target, SPELL_WELL_OF_SOULS, false);
|
||||
events.Repeat(25s, 30s);
|
||||
events.DelayEventsToMax(4000, 0);
|
||||
events.DelayEventsToMax(4s, 0);
|
||||
break;
|
||||
case EVENT_SPELL_UNLEASHED_SOULS:
|
||||
me->CastSpell(me, SPELL_UNLEASHED_SOULS, false);
|
||||
Talk(SAY_FACE_UNLEASH_SOUL);
|
||||
Talk(EMOTE_UNLEASH_SOUL);
|
||||
events.Repeat(30s, 40s);
|
||||
events.DelayEventsToMax(5000, 0);
|
||||
events.DelayEventsToMax(5s, 0);
|
||||
me->setAttackTimer(BASE_ATTACK, 5500);
|
||||
break;
|
||||
case EVENT_SPELL_WAILING_SOULS:
|
||||
@@ -241,7 +241,7 @@ public:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true))
|
||||
me->CastCustomSpell(SPELL_WAILING_SOULS_TARGETING, SPELLVALUE_MAX_TARGETS, 1, target, false);
|
||||
events.Repeat(80s);
|
||||
events.DelayEventsToMax(20000, 0);
|
||||
events.DelayEventsToMax(20s, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@ public:
|
||||
Talk(SAY_DEFILING_HORROR);
|
||||
me->CastSpell((Unit*)nullptr, SPELL_DEFILING_HORROR, false);
|
||||
me->SetControlled(true, UNIT_STATE_ROOT);
|
||||
events.DelayEventsToMax(5000, 0);
|
||||
events.DelayEventsToMax(5s, 0);
|
||||
events.ScheduleEvent(EVENT_UNROOT, 4s);
|
||||
events.ScheduleEvent(EVENT_DEFILING_HORROR, 20s);
|
||||
break;
|
||||
|
||||
@@ -658,7 +658,7 @@ public:
|
||||
pLichKing->SendMovementFlagUpdate();
|
||||
pLichKing->CastSpell(pLichKing, SPELL_FROSTMOURNE_EQUIP, false);
|
||||
pInstance->HandleGameObject(pInstance->GetGuidData(GO_FROSTMOURNE), false);
|
||||
events.ScheduleEvent(EVENT_INTRO_LK_4_3, 1750);
|
||||
events.ScheduleEvent(EVENT_INTRO_LK_4_3, 1750ms);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_INTRO_LK_5, 6s);
|
||||
break;
|
||||
@@ -1732,7 +1732,7 @@ public:
|
||||
{
|
||||
|
||||
++reqKillCount;
|
||||
if (events.GetNextEventTime(EVENT_DECREASE_REQ_COUNT_BY_100))
|
||||
if (events.HasTimeUntilEvent(EVENT_DECREASE_REQ_COUNT_BY_100))
|
||||
events.RescheduleEvent(EVENT_DECREASE_REQ_COUNT_BY_100, 10s);
|
||||
summons.Summon(s);
|
||||
s->SetHomePosition(PathWaypoints[WP_STOP[currentWall + 1]]);
|
||||
|
||||
@@ -112,7 +112,7 @@ public:
|
||||
|
||||
Talk(SAY_AGGRO);
|
||||
DoZoneInCombat();
|
||||
events.RescheduleEvent(EVENT_SPELL_THROW_SARONITE, 5000ms, 7500ms);
|
||||
events.RescheduleEvent(EVENT_SPELL_THROW_SARONITE, 5s, 7500ms);
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_GARFROST, IN_PROGRESS);
|
||||
@@ -178,7 +178,7 @@ public:
|
||||
}
|
||||
if (spell->Id == uint32(SPELL_FORGE_BLADE))
|
||||
{
|
||||
events.RescheduleEvent(EVENT_SPELL_CHILLING_WAVE, 10000);
|
||||
events.RescheduleEvent(EVENT_SPELL_CHILLING_WAVE, 10s);
|
||||
SetEquipmentSlots(false, EQUIP_ID_SWORD);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
|
||||
@@ -298,7 +298,7 @@ public:
|
||||
if (a == 1)
|
||||
{
|
||||
me->setActive(true);
|
||||
events.RescheduleEvent(20, 0);
|
||||
events.RescheduleEvent(20, 0ms);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -404,7 +404,7 @@ public:
|
||||
case 8:
|
||||
Talk(SAY_OUTRO_KRICK_4);
|
||||
|
||||
events.RescheduleEvent(9, 1500);
|
||||
events.RescheduleEvent(9, 1500ms);
|
||||
break;
|
||||
case 9:
|
||||
if (pInstance)
|
||||
@@ -430,7 +430,7 @@ public:
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
|
||||
c->AI()->Talk(SAY_TYRANNUS_KRICK_2);
|
||||
|
||||
events.RescheduleEvent(11, 9000);
|
||||
events.RescheduleEvent(11, 9s);
|
||||
break;
|
||||
case 11:
|
||||
if (pInstance)
|
||||
|
||||
@@ -161,7 +161,7 @@ public:
|
||||
events.RescheduleEvent(EVENT_SPELL_UNHOLY_POWER, 1s);
|
||||
break;
|
||||
}
|
||||
events.RepeatEvent(3000);
|
||||
events.Repeat(3s);
|
||||
break;
|
||||
case EVENT_SPELL_UNHOLY_POWER:
|
||||
Talk(SAY_DARK_MIGHT);
|
||||
|
||||
@@ -1082,7 +1082,7 @@ public:
|
||||
s->AddThreat(c, 0.0f);
|
||||
}
|
||||
}
|
||||
events.RescheduleEvent(10, 3000);
|
||||
events.RescheduleEvent(10, 3s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -161,7 +161,7 @@ public:
|
||||
summon->SetRegeneratingHealth(false);
|
||||
summon->SetReactState(REACT_PASSIVE);
|
||||
summon->m_Events.AddEvent(new RestoreFight(summon), summon->m_Events.CalculateTime(3000));
|
||||
if (events.GetNextEventTime(EVENT_COLOSSUS_HEALTH_2) == 0)
|
||||
if (!events.HasTimeUntilEvent(EVENT_COLOSSUS_HEALTH_2))
|
||||
{
|
||||
summon->SetHealth(summon->GetMaxHealth() / 2);
|
||||
summon->LowerPlayerDamageReq(summon->GetMaxHealth() / 2);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user