aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Northrend
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts/Northrend')
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp14
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_moragg.cpp10
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp22
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp14
-rw-r--r--src/server/scripts/Northrend/VioletHold/violet_hold.cpp127
-rw-r--r--src/server/scripts/Northrend/zone_dragonblight.cpp18
-rw-r--r--src/server/scripts/Northrend/zone_grizzly_hills.cpp2
-rw-r--r--src/server/scripts/Northrend/zone_icecrown.cpp18
-rw-r--r--src/server/scripts/Northrend/zone_sholazar_basin.cpp24
-rw-r--r--src/server/scripts/Northrend/zone_storm_peaks.cpp12
10 files changed, 200 insertions, 61 deletions
diff --git a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp
index 5d8756bcffc..23c498a9dc1 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp
@@ -44,9 +44,18 @@ public:
{
boss_lavanthorAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
}
+ void Initialize()
+ {
+ uiFireboltTimer = 1000;
+ uiFlameBreathTimer = 5000;
+ uiLavaBurnTimer = 10000;
+ uiCauterizingFlamesTimer = 3000;
+ }
+
uint32 uiFireboltTimer;
uint32 uiFlameBreathTimer;
uint32 uiLavaBurnTimer;
@@ -56,10 +65,7 @@ public:
void Reset() override
{
- uiFireboltTimer = 1000;
- uiFlameBreathTimer = 5000;
- uiLavaBurnTimer = 10000;
- uiCauterizingFlamesTimer = 3000;
+ Initialize();
if (instance->GetData(DATA_WAVE_COUNT) == 6)
instance->SetData(DATA_1ST_BOSS_EVENT, NOT_STARTED);
else if (instance->GetData(DATA_WAVE_COUNT) == 12)
diff --git a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
index 67d71cad24c..a9013333ef9 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
@@ -40,9 +40,16 @@ public:
{
boss_moraggAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
}
+ void Initialize()
+ {
+ uiOpticLinkTimer = 10000;
+ uiCorrosiveSalivaTimer = 5000;
+ }
+
uint32 uiOpticLinkTimer;
uint32 uiCorrosiveSalivaTimer;
@@ -50,8 +57,7 @@ public:
void Reset() override
{
- uiOpticLinkTimer = 10000;
- uiCorrosiveSalivaTimer = 5000;
+ Initialize();
if (instance->GetData(DATA_WAVE_COUNT) == 6)
instance->SetData(DATA_1ST_BOSS_EVENT, NOT_STARTED);
diff --git a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
index 79c535979d7..d79e5525650 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
@@ -70,9 +70,17 @@ public:
{
boss_xevozzAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
}
+ void Initialize()
+ {
+ uiSummonEtherealSphere_Timer = urand(10000, 12000);
+ uiArcaneBarrageVolley_Timer = urand(20000, 22000);
+ uiArcaneBuffet_Timer = uiSummonEtherealSphere_Timer + urand(5000, 6000);
+ }
+
InstanceScript* instance;
uint32 uiSummonEtherealSphere_Timer;
@@ -86,9 +94,7 @@ public:
else if (instance->GetData(DATA_WAVE_COUNT) == 12)
instance->SetData(DATA_2ND_BOSS_EVENT, NOT_STARTED);
- uiSummonEtherealSphere_Timer = urand(10000, 12000);
- uiArcaneBarrageVolley_Timer = urand(20000, 22000);
- uiArcaneBuffet_Timer = uiSummonEtherealSphere_Timer + urand(5000, 6000);
+ Initialize();
DespawnSphere();
}
@@ -229,9 +235,16 @@ public:
{
npc_ethereal_sphereAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
}
+ void Initialize()
+ {
+ uiSummonPlayers_Timer = urand(33000, 35000);
+ uiRangeCheck_Timer = 1000;
+ }
+
InstanceScript* instance;
uint32 uiSummonPlayers_Timer;
@@ -239,8 +252,7 @@ public:
void Reset() override
{
- uiSummonPlayers_Timer = urand(33000, 35000);
- uiRangeCheck_Timer = 1000;
+ Initialize();
}
void UpdateAI(uint32 uiDiff) override
diff --git a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
index e155c4d2e71..5854d242248 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
@@ -65,9 +65,18 @@ public:
{
boss_zuramatAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
}
+ void Initialize()
+ {
+ SpellShroudOfDarknessTimer = 22000;
+ SpellVoidShiftTimer = 15000;
+ SpellSummonVoidTimer = 12000;
+ voidDance = true;
+ }
+
InstanceScript* instance;
uint32 SpellVoidShiftTimer;
@@ -82,10 +91,7 @@ public:
else if (instance->GetData(DATA_WAVE_COUNT) == 12)
instance->SetData(DATA_2ND_BOSS_EVENT, NOT_STARTED);
- SpellShroudOfDarknessTimer = 22000;
- SpellVoidShiftTimer = 15000;
- SpellSummonVoidTimer = 12000;
- voidDance = true;
+ Initialize();
}
void AttackStart(Unit* who) override
diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
index 76a7b701717..a28442dc8dd 100644
--- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
@@ -305,9 +305,16 @@ public:
{
npc_sinclariAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
}
+ void Initialize()
+ {
+ uiPhase = 0;
+ uiTimer = 0;
+ }
+
InstanceScript* instance;
uint8 uiPhase;
@@ -315,8 +322,7 @@ public:
void Reset() override
{
- uiPhase = 0;
- uiTimer = 0;
+ Initialize();
me->SetReactState(REACT_AGGRESSIVE);
@@ -549,8 +555,14 @@ public:
{
npc_teleportation_portalAI(Creature* creature) : ScriptedAI(creature), listOfMobs(me)
{
+ Initialize();
instance = creature->GetInstanceScript();
uiTypeOfMobsPortal = urand(0, 1); // 0 - elite mobs 1 - portal guardian or portal keeper with regular mobs
+ }
+
+ void Initialize()
+ {
+ uiSpawnTimer = 10000;
bPortalGuardianOrKeeperOrEliteSpawn = false;
}
@@ -564,8 +576,7 @@ public:
void Reset() override
{
- uiSpawnTimer = 10000;
- bPortalGuardianOrKeeperOrEliteSpawn = false;
+ Initialize();
}
void EnterCombat(Unit* /*who*/) override { }
@@ -672,7 +683,7 @@ struct violet_hold_trashAI : public npc_escortAI
instance = creature->GetInstanceScript();
bHasGotMovingPoints = false;
portalLocationID = instance->GetData(DATA_PORTAL_LOCATION);
- Reset();
+ secondPortalRouteID = 0;
}
public:
@@ -797,9 +808,18 @@ public:
{
npc_azure_invaderAI(Creature* creature) : violet_hold_trashAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
}
+ void Initialize()
+ {
+ uiCleaveTimer = 5000;
+ uiImpaleTimer = 4000;
+ uiBrutalStrikeTimer = 5000;
+ uiSunderArmorTimer = 4000;
+ }
+
uint32 uiCleaveTimer;
uint32 uiImpaleTimer;
uint32 uiBrutalStrikeTimer;
@@ -807,10 +827,7 @@ public:
void Reset() override
{
- uiCleaveTimer = 5000;
- uiImpaleTimer = 4000;
- uiBrutalStrikeTimer = 5000;
- uiSunderArmorTimer = 4000;
+ Initialize();
}
void UpdateAI(uint32 diff) override
@@ -875,9 +892,18 @@ public:
{
npc_azure_binderAI(Creature* creature) : violet_hold_trashAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
}
+ void Initialize()
+ {
+ uiArcaneExplosionTimer = 5000;
+ uiArcainBarrageTimer = 4000;
+ uiFrostNovaTimer = 5000;
+ uiFrostboltTimer = 4000;
+ }
+
uint32 uiArcaneExplosionTimer;
uint32 uiArcainBarrageTimer;
uint32 uiFrostNovaTimer;
@@ -885,10 +911,7 @@ public:
void Reset() override
{
- uiArcaneExplosionTimer = 5000;
- uiArcainBarrageTimer = 4000;
- uiFrostNovaTimer = 5000;
- uiFrostboltTimer = 4000;
+ Initialize();
}
void UpdateAI(uint32 diff) override
@@ -953,16 +976,22 @@ public:
{
npc_azure_mage_slayerAI(Creature* creature) : violet_hold_trashAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
}
+ void Initialize()
+ {
+ uiArcaneEmpowermentTimer = 5000;
+ uiSpellLockTimer = 5000;
+ }
+
uint32 uiArcaneEmpowermentTimer;
uint32 uiSpellLockTimer;
void Reset() override
{
- uiArcaneEmpowermentTimer = 5000;
- uiSpellLockTimer = 5000;
+ Initialize();
}
void UpdateAI(uint32 diff) override
@@ -1013,16 +1042,22 @@ public:
{
npc_azure_raiderAI(Creature* creature) : violet_hold_trashAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
}
+ void Initialize()
+ {
+ uiConcussionBlowTimer = 5000;
+ uiMagicReflectionTimer = 8000;
+ }
+
uint32 uiConcussionBlowTimer;
uint32 uiMagicReflectionTimer;
void Reset() override
{
- uiConcussionBlowTimer = 5000;
- uiMagicReflectionTimer = 8000;
+ Initialize();
}
void UpdateAI(uint32 diff) override
@@ -1060,14 +1095,20 @@ public:
{
npc_azure_stalkerAI(Creature* creature) : violet_hold_trashAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
}
- void Reset() override
+ void Initialize()
{
_backstabTimer = 1300;
_tacticalBlinkTimer = 8000;
- _tacticalBlinkCast =false;
+ _tacticalBlinkCast = false;
+ }
+
+ void Reset() override
+ {
+ Initialize();
}
void UpdateAI(uint32 diff) override
@@ -1125,9 +1166,18 @@ public:
{
npc_azure_spellbreakerAI(Creature* creature) : violet_hold_trashAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
}
+ void Initialize()
+ {
+ uiArcaneBlastTimer = 5000;
+ uiSlowTimer = 4000;
+ uiChainsOfIceTimer = 5000;
+ uiConeOfColdTimer = 4000;
+ }
+
uint32 uiArcaneBlastTimer;
uint32 uiSlowTimer;
uint32 uiChainsOfIceTimer;
@@ -1135,10 +1185,7 @@ public:
void Reset() override
{
- uiArcaneBlastTimer = 5000;
- uiSlowTimer = 4000;
- uiChainsOfIceTimer = 5000;
- uiConeOfColdTimer = 4000;
+ Initialize();
}
void UpdateAI(uint32 diff) override
@@ -1209,16 +1256,22 @@ public:
{
npc_azure_captainAI(Creature* creature) : violet_hold_trashAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
}
+ void Initialize()
+ {
+ uiMortalStrikeTimer = 5000;
+ uiWhirlwindTimer = 8000;
+ }
+
uint32 uiMortalStrikeTimer;
uint32 uiWhirlwindTimer;
void Reset() override
{
- uiMortalStrikeTimer = 5000;
- uiWhirlwindTimer = 8000;
+ Initialize();
}
void UpdateAI(uint32 diff) override
@@ -1261,18 +1314,24 @@ public:
{
npc_azure_sorcerorAI(Creature* creature) : violet_hold_trashAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
}
+ void Initialize()
+ {
+ uiArcaneStreamTimer = 4000;
+ uiArcaneStreamTimerStartingValueHolder = uiArcaneStreamTimer;
+ uiManaDetonationTimer = 5000;
+ }
+
uint32 uiArcaneStreamTimer;
uint32 uiArcaneStreamTimerStartingValueHolder;
uint32 uiManaDetonationTimer;
void Reset() override
{
- uiArcaneStreamTimer = 4000;
- uiArcaneStreamTimerStartingValueHolder = uiArcaneStreamTimer;
- uiManaDetonationTimer = 5000;
+ Initialize();
}
void UpdateAI(uint32 diff) override
@@ -1311,13 +1370,21 @@ public:
struct npc_violet_hold_arcane_sphereAI : public ScriptedAI
{
- npc_violet_hold_arcane_sphereAI(Creature* creature) : ScriptedAI(creature) { }
+ npc_violet_hold_arcane_sphereAI(Creature* creature) : ScriptedAI(creature)
+ {
+ Initialize();
+ }
+
+ void Initialize()
+ {
+ DespawnTimer = 3000;
+ }
uint32 DespawnTimer;
void Reset() override
{
- DespawnTimer = 3000;
+ Initialize();
me->SetDisableGravity(true);
DoCast(me, SPELL_ARCANE_SPHERE_PASSIVE, true);
diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp
index 68c0ce3acc4..eff84365f63 100644
--- a/src/server/scripts/Northrend/zone_dragonblight.cpp
+++ b/src/server/scripts/Northrend/zone_dragonblight.cpp
@@ -565,7 +565,18 @@ class npc_wyrmrest_defender : public CreatureScript
struct npc_wyrmrest_defenderAI : public VehicleAI
{
- npc_wyrmrest_defenderAI(Creature* creature) : VehicleAI(creature) { }
+ npc_wyrmrest_defenderAI(Creature* creature) : VehicleAI(creature)
+ {
+ Initialize();
+ }
+
+ void Initialize()
+ {
+ hpWarningReady = true;
+ renewRecoveryCanCheck = false;
+
+ RenewRecoveryChecker = 0;
+ }
bool hpWarningReady;
bool renewRecoveryCanCheck;
@@ -574,10 +585,7 @@ class npc_wyrmrest_defender : public CreatureScript
void Reset() override
{
- hpWarningReady = true;
- renewRecoveryCanCheck = false;
-
- RenewRecoveryChecker = 0;
+ Initialize();
}
void UpdateAI(uint32 diff) override
diff --git a/src/server/scripts/Northrend/zone_grizzly_hills.cpp b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
index e06bf32d7d8..e60c2162339 100644
--- a/src/server/scripts/Northrend/zone_grizzly_hills.cpp
+++ b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
@@ -464,7 +464,6 @@ public:
void Reset() override
{
_despawnTimer = 5000;
- _playerGUID = 0;
}
void MovementInform(uint32, uint32 id) override
@@ -498,7 +497,6 @@ public:
DoMeleeAttackIfReady();
}
private:
- uint64 _playerGUID;
uint32 _despawnTimer;
};
diff --git a/src/server/scripts/Northrend/zone_icecrown.cpp b/src/server/scripts/Northrend/zone_icecrown.cpp
index a43df0dc3f0..7436ac8400f 100644
--- a/src/server/scripts/Northrend/zone_icecrown.cpp
+++ b/src/server/scripts/Northrend/zone_icecrown.cpp
@@ -91,17 +91,23 @@ public:
{
npc_argent_valiantAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
creature->GetMotionMaster()->MovePoint(0, 8599.258f, 963.951f, 547.553f);
creature->setFaction(35); //wrong faction in db?
}
+ void Initialize()
+ {
+ uiChargeTimer = 7000;
+ uiShieldBreakerTimer = 10000;
+ }
+
uint32 uiChargeTimer;
uint32 uiShieldBreakerTimer;
void Reset() override
{
- uiChargeTimer = 7000;
- uiShieldBreakerTimer = 10000;
+ Initialize();
}
void MovementInform(uint32 uiType, uint32 /*uiId*/) override
@@ -285,9 +291,15 @@ class npc_tournament_training_dummy : public CreatureScript
{
npc_tournament_training_dummyAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
SetCombatMovement(false);
}
+ void Initialize()
+ {
+ isVulnerable = false;
+ }
+
EventMap events;
bool isVulnerable;
@@ -295,7 +307,7 @@ class npc_tournament_training_dummy : public CreatureScript
{
me->SetControlled(true, UNIT_STATE_STUNNED);
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true);
- isVulnerable = false;
+ Initialize();
// Cast Defend spells to max stack size
switch (me->GetEntry())
diff --git a/src/server/scripts/Northrend/zone_sholazar_basin.cpp b/src/server/scripts/Northrend/zone_sholazar_basin.cpp
index 53fe1500624..f4275121101 100644
--- a/src/server/scripts/Northrend/zone_sholazar_basin.cpp
+++ b/src/server/scripts/Northrend/zone_sholazar_basin.cpp
@@ -229,7 +229,15 @@ public:
struct npc_engineer_heliceAI : public npc_escortAI
{
- npc_engineer_heliceAI(Creature* creature) : npc_escortAI(creature) { }
+ npc_engineer_heliceAI(Creature* creature) : npc_escortAI(creature)
+ {
+ Initialize();
+ }
+
+ void Initialize()
+ {
+ m_uiChatTimer = 4000;
+ }
uint32 m_uiChatTimer;
@@ -274,7 +282,7 @@ public:
void Reset() override
{
- m_uiChatTimer = 4000;
+ Initialize();
}
void JustDied(Unit* /*killer*/) override
@@ -366,9 +374,12 @@ public:
struct npc_jungle_punch_targetAI : public ScriptedAI
{
- npc_jungle_punch_targetAI(Creature* creature) : ScriptedAI(creature) { }
+ npc_jungle_punch_targetAI(Creature* creature) : ScriptedAI(creature)
+ {
+ Initialize();
+ }
- void Reset() override
+ void Initialize()
{
sayTimer = 3500;
sayStep = 0;
@@ -378,6 +389,11 @@ public:
orphanGUID.Clear();
}
+ void Reset() override
+ {
+ Initialize();
+ }
+
void MoveInLineOfSight(Unit* who) override
{
if (!phase && who && who->GetDistance2d(me) < 10.0f)
diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp
index a183d0997d4..e4cff7323b1 100644
--- a/src/server/scripts/Northrend/zone_storm_peaks.cpp
+++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp
@@ -179,13 +179,21 @@ public:
struct npc_brunnhildar_prisonerAI : public ScriptedAI
{
- npc_brunnhildar_prisonerAI(Creature* creature) : ScriptedAI(creature) { }
+ npc_brunnhildar_prisonerAI(Creature* creature) : ScriptedAI(creature)
+ {
+ Initialize();
+ }
+
+ void Initialize()
+ {
+ freed = false;
+ }
bool freed;
void Reset() override
{
- freed = false;
+ Initialize();
me->CastSpell(me, SPELL_ICE_PRISON, true);
}