aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/EasternKingdoms/SunwellPlateau
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2014-09-03 21:44:45 +0200
committerjackpoz <giacomopoz@gmail.com>2014-09-03 22:11:41 +0200
commit53d3becf3c5bbefa0d078379decbbc76b2840996 (patch)
tree83bfedf7f9fa34c6f5508bc5fd9cc2f21f7cbb20 /src/server/scripts/EasternKingdoms/SunwellPlateau
parentbeaf778a3024c6d13d7c1708ce27c6c48568c709 (diff)
Core/Misc: Refactor scripts to fix static analysis warnings
Diffstat (limited to 'src/server/scripts/EasternKingdoms/SunwellPlateau')
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp28
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp62
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp68
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp179
5 files changed, 232 insertions, 119 deletions
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
index eb9b6c2a1df..4e401be7df3 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
@@ -70,10 +70,26 @@ public:
{
boss_brutallusAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
Intro = true;
}
+ void Initialize()
+ {
+ SlashTimer = 11000;
+ StompTimer = 30000;
+ BurnTimer = 60000;
+ BerserkTimer = 360000;
+
+ IntroPhase = 0;
+ IntroPhaseTimer = 0;
+ IntroFrostBoltTimer = 0;
+
+ IsIntro = false;
+ Enraged = false;
+ }
+
InstanceScript* instance;
uint32 SlashTimer;
@@ -91,17 +107,7 @@ public:
void Reset() override
{
- SlashTimer = 11000;
- StompTimer = 30000;
- BurnTimer = 60000;
- BerserkTimer = 360000;
-
- IntroPhase = 0;
- IntroPhaseTimer = 0;
- IntroFrostBoltTimer = 0;
-
- IsIntro = false;
- Enraged = false;
+ Initialize();
DoCast(me, SPELL_DUAL_WIELD, true);
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
index 3701d37ed7f..d2382cda37d 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
@@ -82,9 +82,22 @@ public:
{
boss_sacrolashAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
}
+ void Initialize()
+ {
+ ShadowbladesTimer = 10000;
+ ShadownovaTimer = 30000;
+ ConfoundingblowTimer = 25000;
+ ShadowimageTimer = 20000;
+ ConflagrationTimer = 30000;
+ EnrageTimer = 360000;
+ SisterDeath = false;
+ Enraged = false;
+ }
+
InstanceScript* instance;
bool SisterDeath;
@@ -111,13 +124,7 @@ public:
if (!me->IsInCombat())
{
- ShadowbladesTimer = 10000;
- ShadownovaTimer = 30000;
- ConfoundingblowTimer = 25000;
- ShadowimageTimer = 20000;
- ConflagrationTimer = 30000;
- EnrageTimer = 360000;
- SisterDeath = false;
+ Initialize();
}
instance->SetBossState(DATA_EREDAR_TWINS, NOT_STARTED);
@@ -319,12 +326,27 @@ public:
{
boss_alythessAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
SetCombatMovement(false);
instance = creature->GetInstanceScript();
IntroStepCounter = 10;
}
+ void Initialize()
+ {
+ ConflagrationTimer = 45000;
+ BlazeTimer = 100;
+ PyrogenicsTimer = 15000;
+ ShadownovaTimer = 40000;
+ EnrageTimer = 360000;
+ FlamesearTimer = 15000;
+ IntroYellTimer = 10000;
+
+ SisterDeath = false;
+ Enraged = false;
+ }
+
InstanceScript* instance;
bool SisterDeath;
@@ -354,15 +376,7 @@ public:
if (!me->IsInCombat())
{
- ConflagrationTimer = 45000;
- BlazeTimer = 100;
- PyrogenicsTimer = 15000;
- ShadownovaTimer = 40000;
- EnrageTimer = 360000;
- FlamesearTimer = 15000;
- IntroYellTimer = 10000;
-
- SisterDeath = false;
+ Initialize();
}
instance->SetBossState(DATA_EREDAR_TWINS, NOT_STARTED);
@@ -635,7 +649,17 @@ public:
struct npc_shadow_imageAI : public ScriptedAI
{
- npc_shadow_imageAI(Creature* creature) : ScriptedAI(creature) { }
+ npc_shadow_imageAI(Creature* creature) : ScriptedAI(creature)
+ {
+ Initialize();
+ }
+
+ void Initialize()
+ {
+ ShadowfuryTimer = 5000 + (rand32() % 15000);
+ DarkstrikeTimer = 3000;
+ KillTimer = 15000;
+ }
uint32 ShadowfuryTimer;
uint32 KillTimer;
@@ -644,9 +668,7 @@ public:
void Reset() override
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- ShadowfuryTimer = 5000 + (rand32() % 15000);
- DarkstrikeTimer = 3000;
- KillTimer = 15000;
+ Initialize();
}
void EnterCombat(Unit* /*who*/) override { }
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
index 120d3a0b231..4b17f698553 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
@@ -116,7 +116,17 @@ public:
{
boss_felmystAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
+ uiBreathCount = 0;
+ breathX = 0.f;
+ breathY = 0.f;
+ }
+
+ void Initialize()
+ {
+ phase = PHASE_NONE;
+ uiFlightCount = 0;
}
InstanceScript* instance;
@@ -130,12 +140,10 @@ public:
void Reset() override
{
- phase = PHASE_NONE;
+ Initialize();
events.Reset();
- uiFlightCount = 0;
-
me->SetDisableGravity(true);
me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10);
me->SetFloatValue(UNIT_FIELD_COMBATREACH, 10);
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
index b7e03fe0459..3284febb9f3 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
@@ -107,13 +107,30 @@ public:
{
boss_kalecgosAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
- SathGUID = 0;
- DoorGUID = 0;
bJustReset = false;
me->setActive(true);
}
+ void Initialize()
+ {
+ SathGUID = 0;
+ ArcaneBuffetTimer = 8000;
+ FrostBreathTimer = 15000;
+ WildMagicTimer = 10000;
+ TailLashTimer = 25000;
+ SpectralBlastTimer = urand(20000, 25000);
+ CheckTimer = 1000;
+ ResetTimer = 30000;
+
+ TalkTimer = 0;
+ TalkSequence = 0;
+ isFriendly = false;
+ isEnraged = false;
+ isBanished = false;
+ }
+
InstanceScript* instance;
uint32 ArcaneBuffetTimer;
@@ -132,7 +149,6 @@ public:
bool bJustReset;
uint64 SathGUID;
- uint64 DoorGUID;
void Reset() override
{
@@ -151,19 +167,6 @@ public:
me->SetStandState(UNIT_STAND_STATE_SLEEP);
}
me->SetFullHealth(); //dunno why it does not resets health at evade..
- ArcaneBuffetTimer = 8000;
- FrostBreathTimer = 15000;
- WildMagicTimer = 10000;
- TailLashTimer = 25000;
- SpectralBlastTimer = urand(20000, 25000);
- CheckTimer = 1000;
- ResetTimer = 30000;
-
- TalkTimer = 0;
- TalkSequence = 0;
- isFriendly = false;
- isEnraged = false;
- isBanished = false;
}
void EnterEvadeMode() override
@@ -459,13 +462,13 @@ public:
boss_kalecAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
+ SathGUID = 0;
}
- void Reset() override
+ void Initialize()
{
- SathGUID = instance->GetData64(DATA_SATHROVARR);
-
RevitalizeTimer = 5000;
HeroicStrikeTimer = 3000;
YellTimer = 5000;
@@ -474,6 +477,13 @@ public:
isEnraged = false;
}
+ void Reset() override
+ {
+ SathGUID = instance->GetData64(DATA_SATHROVARR);
+
+ Initialize();
+ }
+
void DamageTaken(Unit* done_by, uint32 &damage) override
{
if (done_by->GetGUID() != SathGUID)
@@ -581,11 +591,23 @@ public:
{
boss_sathrovarrAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
KalecGUID = 0;
KalecgosGUID = 0;
}
+ void Initialize()
+ {
+ ShadowBoltTimer = urand(7, 10) * 1000;
+ AgonyCurseTimer = 20000;
+ CorruptionStrikeTimer = 13000;
+ CheckTimer = 1000;
+ ResetThreat = 1000;
+ isEnraged = false;
+ isBanished = false;
+ }
+
InstanceScript* instance;
uint32 CorruptionStrikeTimer;
@@ -613,13 +635,7 @@ public:
KalecGUID = 0;
}
- ShadowBoltTimer = urand(7, 10) * 1000;
- AgonyCurseTimer = 20000;
- CorruptionStrikeTimer = 13000;
- CheckTimer = 1000;
- ResetThreat = 1000;
- isEnraged = false;
- isBanished = false;
+ Initialize();
me->CastSpell(me, AURA_DEMONIC_VISUAL, true);
TeleportAllPlayersBack();
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
index 1f66f834b28..5df2d683e21 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
@@ -243,17 +243,23 @@ public:
{
boss_kalecgos_kjAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
}
+ void Initialize()
+ {
+ OrbsEmpowered = 0;
+ EmpowerCount = 0;
+ }
+
InstanceScript* instance;
uint8 OrbsEmpowered;
uint8 EmpowerCount;
void Reset() override
{
- OrbsEmpowered = 0;
- EmpowerCount = 0;
+ Initialize();
me->SetDisableGravity(true);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->setActive(true);
@@ -393,11 +399,21 @@ public:
{
npc_kiljaeden_controllerAI(Creature* creature) : ScriptedAI(creature), summons(me)
{
+ Initialize();
instance = creature->GetInstanceScript();
SetCombatMovement(false);
}
+ void Initialize()
+ {
+ phase = PHASE_DECEIVERS;
+ deceiverDeathCount = 0;
+ bSummonedDeceivers = false;
+ bKiljaedenDeath = false;
+ uiRandomSayTimer = 30000;
+ }
+
InstanceScript* instance;
SummonList summons;
@@ -419,14 +435,10 @@ public:
void Reset() override
{
- phase = PHASE_DECEIVERS;
+ Initialize();
if (Creature* pKalecKJ = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_KALECGOS_KJ)))
ENSURE_AI(boss_kalecgos_kj::boss_kalecgos_kjAI, pKalecKJ->AI())->ResetOrbs();
- deceiverDeathCount = 0;
- bSummonedDeceivers = false;
- bKiljaedenDeath = false;
- uiRandomSayTimer = 30000;
summons.DespawnAll();
}
@@ -489,11 +501,47 @@ public:
{
boss_kiljaedenAI(Creature* creature) : ScriptedAI(creature), summons(me)
{
+ Initialize();
instance = creature->GetInstanceScript();
SetCombatMovement(false);
}
+ void Initialize()
+ {
+ TimerIsDeactivated[TIMER_SPEECH] = false;
+ Timer[TIMER_SPEECH] = 0;
+
+ //Phase 2 Timer
+ Timer[TIMER_SOUL_FLAY] = 11000;
+ Timer[TIMER_LEGION_LIGHTNING] = 30000;
+ Timer[TIMER_FIRE_BLOOM] = 20000;
+ Timer[TIMER_SUMMON_SHILEDORB] = 35000;
+
+ //Phase 3 Timer
+ Timer[TIMER_SHADOW_SPIKE] = 4000;
+ Timer[TIMER_FLAME_DART] = 3000;
+ Timer[TIMER_DARKNESS] = 45000;
+ Timer[TIMER_ORBS_EMPOWER] = 35000;
+
+ //Phase 4 Timer
+ Timer[TIMER_ARMAGEDDON] = 2000;
+
+ ActiveTimers = 5;
+ WaitTimer = 0;
+ speechCount = 0;
+ SpeechTimer = 0;
+
+ Phase = PHASE_NORMAL;
+
+ IsInDarkness = false;
+ IsWaiting = false;
+ OrbActivated = false;
+ SpeechBegins = true;
+
+ ChangeTimers(false, 0);
+ }
+
InstanceScript* instance;
SummonList summons;
@@ -520,41 +568,12 @@ public:
void Reset() override
{
- TimerIsDeactivated[TIMER_SPEECH] = false;
- Timer[TIMER_SPEECH] = 0;
-
- //Phase 2 Timer
- Timer[TIMER_SOUL_FLAY] = 11000;
- Timer[TIMER_LEGION_LIGHTNING] = 30000;
- Timer[TIMER_FIRE_BLOOM] = 20000;
- Timer[TIMER_SUMMON_SHILEDORB] = 35000;
-
- //Phase 3 Timer
- Timer[TIMER_SHADOW_SPIKE] = 4000;
- Timer[TIMER_FLAME_DART] = 3000;
- Timer[TIMER_DARKNESS] = 45000;
- Timer[TIMER_ORBS_EMPOWER] = 35000;
-
- //Phase 4 Timer
- Timer[TIMER_ARMAGEDDON] = 2000;
-
- ActiveTimers = 5;
- WaitTimer = 0;
- speechCount = 0;
- SpeechTimer = 0;
-
- Phase = PHASE_NORMAL;
-
- IsInDarkness = false;
- IsWaiting = false;
- OrbActivated = false;
- SpeechBegins = true;
+ Initialize();
if (Creature* pKalec = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KALECGOS_KJ)))
pKalec->RemoveDynObject(SPELL_RING_OF_BLUE_FLAMES);
me->SetFloatValue(UNIT_FIELD_COMBATREACH, 12);
- ChangeTimers(false, 0);
summons.DespawnAll();
}
@@ -890,9 +909,17 @@ public:
{
npc_hand_of_the_deceiverAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
}
+ void Initialize()
+ {
+ /// @todo Timers!
+ ShadowBoltVolleyTimer = urand(8000, 14000); // So they don't all cast it in the same moment.
+ FelfirePortalTimer = 20000;
+ }
+
InstanceScript* instance;
uint32 ShadowBoltVolleyTimer;
@@ -900,9 +927,7 @@ public:
void Reset() override
{
- /// @todo Timers!
- ShadowBoltVolleyTimer = urand(8000, 14000); // So they don't all cast it in the same moment.
- FelfirePortalTimer = 20000;
+ Initialize();
instance->SetBossState(DATA_KILJAEDEN, NOT_STARTED);
}
@@ -989,14 +1014,20 @@ public:
{
npc_felfire_portalAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
SetCombatMovement(false);
}
+ void Initialize()
+ {
+ uiSpawnFiendTimer = 5000;
+ }
+
uint32 uiSpawnFiendTimer;
void Reset() override
{
- uiSpawnFiendTimer = 5000;
+ Initialize();
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_NON_ATTACKABLE);
}
@@ -1034,7 +1065,16 @@ public:
struct npc_volatile_felfire_fiendAI : public ScriptedAI
{
- npc_volatile_felfire_fiendAI(Creature* creature) : ScriptedAI(creature) { }
+ npc_volatile_felfire_fiendAI(Creature* creature) : ScriptedAI(creature)
+ {
+ Initialize();
+ }
+
+ void Initialize()
+ {
+ uiExplodeTimer = 2000;
+ bLockedTarget = false;
+ }
uint32 uiExplodeTimer;
@@ -1042,8 +1082,7 @@ public:
void Reset() override
{
- uiExplodeTimer = 2000;
- bLockedTarget = false;
+ Initialize();
}
void DamageTaken(Unit* /*done_by*/, uint32 &damage) override
@@ -1093,16 +1132,22 @@ public:
{
npc_armageddonAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
SetCombatMovement(false);
}
+ void Initialize()
+ {
+ spell = 0;
+ uiTimer = 0;
+ }
+
uint8 spell;
uint32 uiTimer;
void Reset() override
{
- spell = 0;
- uiTimer = 0;
+ Initialize();
}
void UpdateAI(uint32 diff) override
@@ -1150,7 +1195,22 @@ public:
{
npc_shield_orbAI(Creature* creature) : ScriptedAI(creature)
{
+ Initialize();
instance = creature->GetInstanceScript();
+ x = 0.f;
+ y = 0.f;
+ }
+
+ void Initialize()
+ {
+ bPointReached = true;
+ uiTimer = urand(500, 1000);
+ uiCheckTimer = 1000;
+ r = 17;
+ c = 0;
+ mx = ShieldOrbLocations[0][0];
+ my = ShieldOrbLocations[0][1];
+ bClockwise = roll_chance_i(50);
}
InstanceScript* instance;
@@ -1164,14 +1224,7 @@ public:
void Reset() override
{
me->SetDisableGravity(true);
- bPointReached = true;
- uiTimer = urand(500, 1000);
- uiCheckTimer = 1000;
- r = 17;
- c = 0;
- mx = ShieldOrbLocations[0][0];
- my = ShieldOrbLocations[0][1];
- bClockwise = roll_chance_i(50);
+ Initialize();
}
void UpdateAI(uint32 diff) override
@@ -1235,12 +1288,12 @@ public:
struct npc_sinster_reflectionAI : public ScriptedAI
{
- npc_sinster_reflectionAI(Creature* creature) : ScriptedAI(creature) { }
-
- uint8 victimClass;
- uint32 uiTimer[3];
+ npc_sinster_reflectionAI(Creature* creature) : ScriptedAI(creature)
+ {
+ Initialize();
+ }
- void Reset() override
+ void Initialize()
{
uiTimer[0] = 0;
uiTimer[1] = 0;
@@ -1248,6 +1301,14 @@ public:
victimClass = 0;
}
+ uint8 victimClass;
+ uint32 uiTimer[3];
+
+ void Reset() override
+ {
+ Initialize();
+ }
+
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())