aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/scripts/northrend/azjol_nerub/ahnkahet/boss_amanitar.cpp79
-rw-r--r--src/scripts/northrend/azjol_nerub/ahnkahet/boss_elder_nadox.cpp97
-rw-r--r--src/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp37
-rw-r--r--src/scripts/northrend/azjol_nerub/ahnkahet/boss_jedoga_shadowseeker.cpp113
-rw-r--r--src/scripts/northrend/azjol_nerub/ahnkahet/boss_prince_taldaram.cpp113
-rw-r--r--src/scripts/northrend/azjol_nerub/azjol_nerub/azjol_nerub.h2
-rw-r--r--src/scripts/northrend/azjol_nerub/azjol_nerub/boss_anubarak.cpp234
-rw-r--r--src/scripts/northrend/azjol_nerub/azjol_nerub/boss_hadronox.cpp145
-rw-r--r--src/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp337
-rw-r--r--src/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp107
-rw-r--r--src/scripts/northrend/draktharon_keep/drak_tharon_keep.h2
11 files changed, 609 insertions, 657 deletions
diff --git a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_amanitar.cpp b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_amanitar.cpp
index 02fe55ea1a3..757841d4877 100644
--- a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_amanitar.cpp
+++ b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_amanitar.cpp
@@ -47,24 +47,24 @@ struct boss_amanitarAI : public ScriptedAI
boss_amanitarAI(Creature *c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
- FirstTime = true;
+ bFirstTime = true;
}
ScriptedInstance* pInstance;
- uint32 roottimer;
- uint32 bashtimer;
- uint32 bolttimer;
- uint32 spawntimer;
+ uint32 uiRootTimer;
+ uint32 uiBashTimer;
+ uint32 uiBoltTimer;
+ uint32 uiSpawnTimer;
- bool FirstTime;
+ bool bFirstTime;
void Reset()
{
- roottimer = urand(5000,9000);
- bashtimer = urand(10000,14000);
- bolttimer = urand(15000,30000);
- spawntimer = 0;
+ uiRootTimer = urand(5*IN_MILISECONDS,9*IN_MILISECONDS);
+ uiBashTimer = urand(10*IN_MILISECONDS,14*IN_MILISECONDS);
+ uiBoltTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS);
+ uiSpawnTimer = 0;
m_creature->SetMeleeDamageSchool(SPELL_SCHOOL_NATURE);
m_creature->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_NATURE, true);
@@ -72,11 +72,10 @@ struct boss_amanitarAI : public ScriptedAI
if (pInstance)
{
pInstance->DoRemoveAurasDueToSpellOnPlayers(SPELL_MINI);
- if (!FirstTime)
- {
+ if (!bFirstTime)
pInstance->SetData(DATA_AMANITAR_EVENT, FAIL);
- }
- else FirstTime = false;
+ else
+ bFirstTime = false;
}
}
@@ -108,9 +107,9 @@ struct boss_amanitarAI : public ScriptedAI
Position pos;
victim->GetPosition(&pos);
m_creature->GetRandomNearPosition(pos, float(urand(5,80)));
- m_creature->SummonCreature(NPC_POISONOUS_MUSHROOM, pos, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000);
+ m_creature->SummonCreature(NPC_POISONOUS_MUSHROOM, pos, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30*IN_MILISECONDS);
m_creature->GetRandomNearPosition(pos, float(urand(5,80)));
- m_creature->SummonCreature(NPC_HEALTHY_MUSHROOM, pos, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000);
+ m_creature->SummonCreature(NPC_HEALTHY_MUSHROOM, pos, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30*IN_MILISECONDS);
}
}
}
@@ -121,31 +120,31 @@ struct boss_amanitarAI : public ScriptedAI
if (!UpdateVictim())
return;
- if (spawntimer <= diff)
+ if (uiSpawnTimer <= diff)
{
SpawnAdds();
- spawntimer = urand(35000,40000);
- } else spawntimer -= diff;
+ uiSpawnTimer = urand(35*IN_MILISECONDS,40*IN_MILISECONDS);
+ } else uiSpawnTimer -= diff;
- if (roottimer <= diff)
+ if (uiRootTimer <= diff)
{
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget, SPELL_ENTANGLING_ROOTS);
- roottimer = urand(15000,30000);
- }
+ uiRootTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS);
+ } else uiRootTimer -= diff;
- if (bashtimer <= diff)
+ if (uiBashTimer <= diff)
{
DoCastVictim(SPELL_BASH);
- bashtimer = urand(15000,30000);
- } else bashtimer -= diff;
+ uiBashTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS);
+ } else uiBashTimer -= diff;
- if (bolttimer <= diff)
+ if (uiBoltTimer <= diff)
{
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget, SPELL_VENOM_BOLT_VOLLEY);
- bolttimer = urand(15000,30000);
- } else bolttimer -= diff;
+ uiBoltTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS);
+ } else uiBoltTimer -= diff;
DoMeleeAttackIfReady();
}
@@ -153,13 +152,10 @@ struct boss_amanitarAI : public ScriptedAI
struct mob_amanitar_mushroomsAI : public Scripted_NoMovementAI
{
- mob_amanitar_mushroomsAI(Creature* c) : Scripted_NoMovementAI(c)
- {
- c->SetUInt32Value(UNIT_FIELD_DISPLAYID, 26981); // Unsichtbar...
- }
+ mob_amanitar_mushroomsAI(Creature* c) : Scripted_NoMovementAI(c) {}
- uint32 auratimer,
- deathtimer; // Without not all will despawn after 30000! :-(
+ uint32 uiAuraTimer;
+ uint32 uiDeathTimer;
void Reset()
{
@@ -168,8 +164,8 @@ struct mob_amanitar_mushroomsAI : public Scripted_NoMovementAI
if (m_creature->GetEntry() == NPC_POISONOUS_MUSHROOM)
DoCast(m_creature, SPELL_POISONOUS_MUSHROOM_VISUAL_AURA, true);
- auratimer = 0;
- deathtimer = 30000;
+ uiAuraTimer = 0;
+ uiDeathTimer = 30*IN_MILISECONDS;
}
void JustDied(Unit *killer)
@@ -191,17 +187,16 @@ struct mob_amanitar_mushroomsAI : public Scripted_NoMovementAI
{
if (m_creature->GetEntry() == NPC_POISONOUS_MUSHROOM)
{
- if (auratimer <= diff)
+ if (uiAuraTimer <= diff)
{
DoCast(m_creature, SPELL_POISONOUS_MUSHROOM_VISUAL_AREA, true);
DoCast(m_creature, SPELL_POISONOUS_MUSHROOM_POISON_CLOUD, false);
- auratimer = 7000;
- } else auratimer -= diff;
+ uiAuraTimer = 7*IN_MILISECONDS;
+ } else uiAuraTimer -= diff;
}
- if (deathtimer <= diff)
- {
+ if (uiDeathTimer <= diff)
m_creature->DisappearAndDie();
- } else deathtimer -= diff;
+ else uiDeathTimer -= diff;
}
};
diff --git a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_elder_nadox.cpp b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_elder_nadox.cpp
index dc309151470..3e6f3f45a72 100644
--- a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_elder_nadox.cpp
+++ b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_elder_nadox.cpp
@@ -43,7 +43,9 @@ enum Spells
SPELL_BROOD_PLAGUE = 56130,
H_SPELL_BROOD_PLAGUE = 59467,
H_SPELL_BROOD_RAGE = 59465,
- SPELL_ENRAGE = 26662 // Enraged if too far away from home
+ SPELL_ENRAGE = 26662, // Enraged if too far away from home
+ SPELL_SUMMON_SWARMERS = 56119, //2x 30178 -- 2x every 10secs
+ SPELL_SUMMON_SWARM_GUARD = 56120, //1x 30176 -- every 25secs
};
enum Creatures
@@ -52,13 +54,6 @@ enum Creatures
MOB_AHNKAHAR_GUARDIAN_ENTRY = 30176
};
-enum CreatureSpells
-{
- SPELL_SUMMON_SWARMERS = 56119, //2x 30178 -- 2x every 10secs
- SPELL_SUMMON_SWARM_GUARD = 56120, //1x 30176 -- every 25secs
- SPELL_GUARDIAN_AURA = 56151
-};
-
#define EMOTE_HATCHES "An Ahn'kahar Guardian hatches!"
struct boss_elder_nadoxAI : public ScriptedAI
@@ -68,29 +63,29 @@ struct boss_elder_nadoxAI : public ScriptedAI
pInstance = c->GetInstanceData();
}
- uint32 plague_Timer;
- uint32 rage_Timer;
+ uint32 uiPlagueTimer;
+ uint32 uiRagueTimer;
- uint32 swarmer_spawn_Timer;
- uint32 guard_spawn_Timer;
- uint32 enrage_Timer;
+ uint32 uiSwarmerSpawnTimer;
+ uint32 uiGuardSpawnTimer;
+ uint32 uiEnragueTimer;
- bool GuardSpawned;
+ bool bGuardSpawned;
ScriptedInstance *pInstance;
void Reset()
{
- plague_Timer = 13000;
- rage_Timer = 20000;
+ uiPlagueTimer = 13*IN_MILISECONDS;
+ uiRagueTimer = 20*IN_MILISECONDS;
- swarmer_spawn_Timer = 10000;
- guard_spawn_Timer = 25000;
+ uiSwarmerSpawnTimer = 10*IN_MILISECONDS;
+ uiGuardSpawnTimer = 25*IN_MILISECONDS;
- enrage_Timer = 5000;
+ uiEnragueTimer = 5*IN_MILISECONDS;
DeadAhnkaharGuardian = false;
- GuardSpawned = false;
+ bGuardSpawned = false;
if (pInstance)
pInstance->SetData(DATA_ELDER_NADOX_EVENT, NOT_STARTED);
@@ -106,8 +101,6 @@ struct boss_elder_nadoxAI : public ScriptedAI
void KilledUnit(Unit *victim)
{
- if (victim == m_creature)
- return;
DoScriptText(RAND(SAY_SLAY_1,SAY_SLAY_2,SAY_SLAY_3), m_creature);
}
@@ -128,42 +121,40 @@ struct boss_elder_nadoxAI : public ScriptedAI
if (!UpdateVictim())
return;
- if (plague_Timer <= diff)
+ if (uiPlagueTimer <= diff)
{
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_BROOD_PLAGUE, H_SPELL_BROOD_PLAGUE));
- plague_Timer = 15000;
- } else plague_Timer -= diff;
+ uiPlagueTimer = 15*IN_MILISECONDS;
+ } else uiPlagueTimer -= diff;
if (IsHeroic())
- if (rage_Timer <= diff)
+ if (uiRagueTimer <= diff)
{
- Unit* Swarmer = m_creature->FindNearestCreature(MOB_AHNKAHAR_SWARMER, 35);
-
- if (Swarmer)
+ if (Creature *pSwarmer = m_creature->FindNearestCreature(MOB_AHNKAHAR_SWARMER, 35))
{
- DoCast(Swarmer, H_SPELL_BROOD_RAGE, true);
- rage_Timer = 15000;
+ DoCast(pSwarmer, H_SPELL_BROOD_RAGE, true);
+ uiRagueTimer = 15*IN_MILISECONDS;
}
- } else rage_Timer -= diff;
+ } else uiRagueTimer -= diff;
- if (swarmer_spawn_Timer <= diff)
+ if (uiSwarmerSpawnTimer <= diff)
{
DoCast(m_creature, SPELL_SUMMON_SWARMERS, true);
DoCast(m_creature, SPELL_SUMMON_SWARMERS);
if (urand(1,3) == 3) // 33% chance of dialog
DoScriptText(RAND(SAY_EGG_SAC_1,SAY_EGG_SAC_2), m_creature);
- swarmer_spawn_Timer = 10000;
- } else swarmer_spawn_Timer -= diff;
+ uiSwarmerSpawnTimer = 10*IN_MILISECONDS;
+ } else uiSwarmerSpawnTimer -= diff;
- if (!GuardSpawned && guard_spawn_Timer <= diff)
+ if (!bGuardSpawned && uiGuardSpawnTimer <= diff)
{
m_creature->MonsterTextEmote(EMOTE_HATCHES,m_creature->GetGUID(),true);
DoCast(m_creature, SPELL_SUMMON_SWARM_GUARD);
- GuardSpawned = true;
- } else guard_spawn_Timer -= diff;
+ bGuardSpawned = true;
+ } else uiGuardSpawnTimer -= diff;
- if (enrage_Timer <= diff)
+ if (uiEnragueTimer <= diff)
{
if (m_creature->HasAura(SPELL_ENRAGE,0))
return;
@@ -174,8 +165,8 @@ struct boss_elder_nadoxAI : public ScriptedAI
if (!m_creature->IsNonMeleeSpellCasted(false))
DoCast(m_creature, SPELL_ENRAGE, true);
- enrage_Timer = 5000;
- } else enrage_Timer -= diff;
+ uiEnragueTimer = 5*IN_MILISECONDS;
+ } else uiEnragueTimer -= diff;
DoMeleeAttackIfReady();
}
@@ -186,7 +177,11 @@ CreatureAI* GetAI_boss_elder_nadox(Creature* pCreature)
return new boss_elder_nadoxAI(pCreature);
}
-#define SPELL_SPRINT 56354
+enum AddSpells
+{
+ SPELL_SPRINT = 56354,
+ SPELL_GUARDIAN_AURA = 56151
+};
struct mob_ahnkahar_nerubianAI : public ScriptedAI
{
@@ -196,13 +191,13 @@ struct mob_ahnkahar_nerubianAI : public ScriptedAI
}
ScriptedInstance *pInstance;
- uint32 sprint_Timer;
+ uint32 uiSprintTimer;
void Reset()
{
- if (m_creature->GetEntry() == 30176) //magic numbers are bad!
+ if (m_creature->GetEntry() == MOB_AHNKAHAR_GUARDIAN_ENTRY) //magic numbers are bad!
DoCast(m_creature, SPELL_GUARDIAN_AURA, true);
- sprint_Timer = 10000;
+ uiSprintTimer = 10*IN_MILISECONDS;
}
void JustDied(Unit *killer)
@@ -215,7 +210,10 @@ struct mob_ahnkahar_nerubianAI : public ScriptedAI
void UpdateAI(const uint32 diff)
{
- if (m_creature->GetEntry() == 30176) //magic numbers are bad!
+ if (!UpdateVictim())
+ return;
+
+ if (m_creature->GetEntry() == MOB_AHNKAHAR_GUARDIAN_ENTRY)
m_creature->RemoveAurasDueToSpell(SPELL_GUARDIAN_AURA);
if (pInstance)
@@ -229,16 +227,17 @@ struct mob_ahnkahar_nerubianAI : public ScriptedAI
if (!UpdateVictim())
return;
- if (sprint_Timer <= diff)
+ if (uiSprintTimer <= diff)
{
DoCast(m_creature, SPELL_SPRINT);
- sprint_Timer = 25000;
- } else sprint_Timer -= diff;
+ uiSprintTimer = 25*IN_MILISECONDS;
+ } else uiSprintTimer -= diff;
DoMeleeAttackIfReady();
}
};
+//HACK: No, AI. Replace with proper db content?
struct mob_nadox_eggsAI : public Scripted_NoMovementAI
{
mob_nadox_eggsAI(Creature* c) : Scripted_NoMovementAI(c)
diff --git a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp
index 298fa4d30fe..923f000a99b 100644
--- a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp
+++ b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp
@@ -33,7 +33,13 @@ enum Spells
SPELL_SHADOW_BOLT_VOLLEY = 57942,
H_SPELL_SHADOW_BOLT_VOLLEY = 59975,
SPELL_SHIVER = 57949,
- H_SPELL_SHIVER = 59978
+ H_SPELL_SHIVER = 59978,
+ SPELL_CLONE_PLAYER = 57507, //casted on player during insanity
+ SPELL_INSANITY_PHASING_1 = 57508,
+ SPELL_INSANITY_PHASING_2 = 57509,
+ SPELL_INSANITY_PHASING_3 = 57519,
+ SPELL_INSANITY_PHASING_4 = 57511,
+ SPELL_INSANITY_PHASING_5 = 57512
};
enum Creatures
@@ -126,7 +132,7 @@ struct boss_volazjAI : public ScriptedAI
// Fixme: allow mirror image query to send other guid to get rid of minion status
summon->SetUInt64Value(UNIT_FIELD_CREATEDBY, plr->GetGUID());
// clone
- plr->CastSpell(summon, 57507, true);
+ plr->CastSpell(summon, SPELL_CLONE_PLAYER, true);
// set phase
summon->SetPhaseMask((1<<(4+insanityHandled)),true);
}
@@ -138,9 +144,9 @@ struct boss_volazjAI : public ScriptedAI
void Reset()
{
uiEncounterTimer = 0;
- uiMindFlayTimer = 8000;
- uiShadowBoltVolleyTimer = 5000;
- uiShiverTimer = 15000;
+ uiMindFlayTimer = 8*IN_MILISECONDS;
+ uiShadowBoltVolleyTimer = 5*IN_MILISECONDS;
+ uiShiverTimer = 15*IN_MILISECONDS;
if (pInstance)
pInstance->SetData(DATA_HERALD_VOLAZJ, NOT_STARTED);
@@ -174,19 +180,19 @@ struct boss_volazjAI : public ScriptedAI
switch (phase)
{
case 16:
- spell = 57508;
+ spell = SPELL_INSANITY_PHASING_1;
break;
case 32:
- spell = 57509;
+ spell = SPELL_INSANITY_PHASING_2;
break;
case 64:
- spell = 57510;
+ spell = SPELL_INSANITY_PHASING_3;
break;
case 128:
- spell = 57511;
+ spell = SPELL_INSANITY_PHASING_4;
break;
case 256:
- spell = 57512;
+ spell = SPELL_INSANITY_PHASING_5;
break;
}
return spell;
@@ -256,20 +262,20 @@ struct boss_volazjAI : public ScriptedAI
if (uiMindFlayTimer <= diff)
{
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_MIND_FLAY, H_SPELL_MIND_FLAY));
- uiMindFlayTimer = 20000;
+ uiMindFlayTimer = 20*IN_MILISECONDS;
} else uiMindFlayTimer -= diff;
if (uiShadowBoltVolleyTimer <= diff)
{
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SHADOW_BOLT_VOLLEY, H_SPELL_SHADOW_BOLT_VOLLEY));
- uiShadowBoltVolleyTimer = 5000;
+ uiShadowBoltVolleyTimer = 5*IN_MILISECONDS;
} else uiShadowBoltVolleyTimer -= diff;
if (uiShiverTimer <= diff)
{
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
DoCast(pTarget, DUNGEON_MODE(SPELL_SHIVER, H_SPELL_SHIVER));
- uiShiverTimer = 15000;
+ uiShiverTimer = 15*IN_MILISECONDS;
} else uiShiverTimer -= diff;
uiEncounterTimer += diff;
@@ -283,7 +289,7 @@ struct boss_volazjAI : public ScriptedAI
if (pInstance)
{
pInstance->SetData(DATA_HERALD_VOLAZJ, DONE);
- if (IsHeroic() && uiEncounterTimer < 120000)
+ if (IsHeroic() && uiEncounterTimer < 120*IN_MILISECONDS)
pInstance->DoCompleteAchievement(ACHIEV_QUICK_DEMISE);
}
@@ -292,9 +298,6 @@ struct boss_volazjAI : public ScriptedAI
void KilledUnit(Unit *victim)
{
- if (victim == m_creature)
- return;
-
DoScriptText(RAND(SAY_SLAY_1,SAY_SLAY_2,SAY_SLAY_3), m_creature);
}
};
diff --git a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_jedoga_shadowseeker.cpp b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_jedoga_shadowseeker.cpp
index 432f3c66331..fde2cbc800f 100644
--- a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_jedoga_shadowseeker.cpp
+++ b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_jedoga_shadowseeker.cpp
@@ -50,12 +50,17 @@ enum Spells
SPELL_LIGHTNING_BOLT = 56891, // 40Y
SPELL_LIGHTNING_BOLT_H = 60032, // 40Y
SPELL_THUNDERSHOCK = 56926, // 30Y
- SPELL_THUNDERSHOCK_H = 60029 // 30Y
+ SPELL_THUNDERSHOCK_H = 60029 // 30Y
+};
+
+enum Creatures
+{
+ NPC_JEDOGA_CONTROLLER = 30181
};
const Position JedogaPosition[2] =
{
- {372.330994f, -705.278015f, -0.624178f, 5.427970f},
+ {372.330994f, -705.278015f, -0.624178f, 5.427970f},
{372.330994f, -705.278015f, -16.179716f, 5.427970f}
};
@@ -64,8 +69,8 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI
boss_jedoga_shadowseekerAI(Creature* c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
- FirstTime = true;
- predone = false;
+ bFirstTime = true;
+ bPreDone = false;
}
ScriptedInstance* pInstance;
@@ -75,21 +80,21 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI
uint32 uiBoltTimer;
uint32 uiThunderTimer;
- bool predone;
+ bool bPreDone;
bool bOpFerok;
bool bOnGround;
bool bOpFerokFail;
bool bCanDown;
- bool FirstTime;
+ bool bFirstTime;
void Reset()
{
- uiOpFerTimer = urand(15000,20000);
+ uiOpFerTimer = urand(15*IN_MILISECONDS,20*IN_MILISECONDS);
- uiCycloneTimer = 3000;
- uiBoltTimer = 7000;
- uiThunderTimer = 12000;
+ uiCycloneTimer = 3*IN_MILISECONDS;
+ uiBoltTimer = 7*IN_MILISECONDS;
+ uiThunderTimer = 12*IN_MILISECONDS;
bOpFerok = false;
bOpFerokFail = false;
@@ -98,7 +103,7 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI
if (pInstance)
{
- if (!FirstTime)
+ if (!bFirstTime)
pInstance->SetData(DATA_JEDOGA_SHADOWSEEKER_EVENT, FAIL);
pInstance->SetData64(DATA_PL_JEDOGA_TARGET, 0);
@@ -107,12 +112,12 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI
}
MoveUp();
- FirstTime = false;
+ bFirstTime = false;
}
void EnterCombat(Unit* who)
{
- if (!pInstance || (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == 30181))
+ if (!pInstance || (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_JEDOGA_CONTROLLER))
return;
DoScriptText(TEXT_AGGRO, m_creature);
@@ -122,7 +127,7 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI
void AttackStart(Unit* who)
{
- if (!who || (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == 30181))
+ if (!who || (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_JEDOGA_CONTROLLER))
return;
ScriptedAI::AttackStart(who);
@@ -145,13 +150,13 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI
void MoveInLineOfSight(Unit* who)
{
- if (!pInstance || !who || (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == 30181))
+ if (!pInstance || !who || (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_JEDOGA_CONTROLLER))
return;
- if (!predone && who->GetTypeId() == TYPEID_PLAYER && m_creature->GetDistance(who) < 100.0f)
+ if (!bPreDone && who->GetTypeId() == TYPEID_PLAYER && m_creature->GetDistance(who) < 100.0f)
{
DoScriptText(RAND(TEXT_PREACHING_1, TEXT_PREACHING_2, TEXT_PREACHING_3, TEXT_PREACHING_4, TEXT_PREACHING_5), m_creature);
- predone = true;
+ bPreDone = true;
}
if (pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) != IN_PROGRESS || !bOnGround)
@@ -243,7 +248,7 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI
if (pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) == IN_PROGRESS) OpferRufen();
bOnGround = false;
- uiOpFerTimer = urand(15000,30000);
+ uiOpFerTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS);
}
void OpferRufen()
@@ -299,7 +304,7 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI
if (uiCycloneTimer <= diff)
{
DoCast(m_creature, DUNGEON_MODE(SPELL_CYCLONE_STRIKE, SPELL_CYCLONE_STRIKE_H), false);
- uiCycloneTimer = urand(15000,30000);
+ uiCycloneTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS);
} else uiCycloneTimer -= diff;
if (uiBoltTimer <= diff)
@@ -307,7 +312,7 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
m_creature->CastSpell(pTarget, DUNGEON_MODE(SPELL_LIGHTNING_BOLT, SPELL_LIGHTNING_BOLT_H), false);
- uiBoltTimer = urand(15000,30000);
+ uiBoltTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS);
} else uiBoltTimer -= diff;
if (uiThunderTimer <= diff)
@@ -315,7 +320,7 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
m_creature->CastSpell(pTarget, DUNGEON_MODE(SPELL_THUNDERSHOCK, SPELL_THUNDERSHOCK_H), false);
- uiThunderTimer = urand(15000,30000);
+ uiThunderTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS);
} else uiThunderTimer -= diff;
if (uiOpFerTimer <= diff)
@@ -337,17 +342,17 @@ struct mob_jedoga_initiandAI : public ScriptedAI
ScriptedInstance* pInstance;
- uint32 checktimer;
+ uint32 bCheckTimer;
- bool walking;
+ bool bWalking;
void Reset()
{
if (!pInstance)
return;
- walking = false;
- checktimer = 2000;
+ bWalking = false;
+ bCheckTimer = 2*IN_MILISECONDS;
if (pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) != IN_PROGRESS)
{
@@ -369,7 +374,7 @@ struct mob_jedoga_initiandAI : public ScriptedAI
{
if (!Killer || !pInstance) return;
- if (walking)
+ if (bWalking)
{
Creature* boss = m_creature->GetMap()->GetCreature(pInstance->GetData64(DATA_JEDOGA_SHADOWSEEKER));
if (boss && !CAST_AI(boss_jedoga_shadowseekerAI, boss->AI())->bOpFerok) CAST_AI(boss_jedoga_shadowseekerAI, boss->AI())->bOpFerokFail = true;
@@ -377,7 +382,7 @@ struct mob_jedoga_initiandAI : public ScriptedAI
if (Killer->GetTypeId() == TYPEID_PLAYER) pInstance->SetData(DATA_INITIAND_KILLED, 1);
pInstance->SetData64(DATA_ADD_JEDOGA_OPFER, 0);
- walking = false;
+ bWalking = false;
}
if (Killer->GetTypeId() == TYPEID_PLAYER) pInstance->SetData64(DATA_PL_JEDOGA_TARGET, Killer->GetGUID());
}
@@ -423,9 +428,9 @@ struct mob_jedoga_initiandAI : public ScriptedAI
void UpdateAI(const uint32 diff)
{
- if (pInstance && checktimer <= diff)
+ if (pInstance && bCheckTimer <= diff)
{
- if (m_creature->GetGUID() == pInstance->GetData64(DATA_ADD_JEDOGA_OPFER) && !walking)
+ if (m_creature->GetGUID() == pInstance->GetData64(DATA_ADD_JEDOGA_OPFER) && !bWalking)
{
m_creature->RemoveAurasDueToSpell(SPELL_SPHERE_VISUAL);
m_creature->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, false);
@@ -443,9 +448,9 @@ struct mob_jedoga_initiandAI : public ScriptedAI
m_creature->GetMotionMaster()->Clear(false);
m_creature->GetMotionMaster()->MovePoint(1, JedogaPosition[1]);
- walking = true;
+ bWalking = true;
}
- if (!walking)
+ if (!bWalking)
{
if (pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) != IN_PROGRESS && m_creature->HasAura(SPELL_SPHERE_VISUAL))
{
@@ -462,8 +467,8 @@ struct mob_jedoga_initiandAI : public ScriptedAI
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE + UNIT_FLAG_NON_ATTACKABLE);
}
}
- checktimer = 2000;
- } else checktimer -= diff;
+ bCheckTimer = 2*IN_MILISECONDS;
+ } else bCheckTimer -= diff;
//Return since we have no target
if (!UpdateVictim())
@@ -487,20 +492,20 @@ struct npc_jedogas_aufseher_triggerAI : public Scripted_NoMovementAI
npc_jedogas_aufseher_triggerAI(Creature* c) : Scripted_NoMovementAI(c)
{
pInstance = c->GetInstanceData();
- c->SetUInt32Value(UNIT_FIELD_DISPLAYID, 11686);
- c->setFaction(35);
- removed = false;
- removed2 = false;
- casted = false;
- casted2 = false;
+// c->SetUInt32Value(UNIT_FIELD_DISPLAYID, 11686);
+// c->setFaction(35);
+ bRemoved = false;
+ bRemoved2 = false;
+ bCasted = false;
+ bCasted2 = false;
}
ScriptedInstance* pInstance;
- bool removed;
- bool removed2;
- bool casted;
- bool casted2;
+ bool bRemoved;
+ bool bRemoved2;
+ bool bCasted;
+ bool bCasted2;
void Reset() {}
void EnterCombat(Unit* who) {}
@@ -512,36 +517,36 @@ struct npc_jedogas_aufseher_triggerAI : public Scripted_NoMovementAI
if (!pInstance)
return;
- if (!removed && m_creature->GetPositionX() > 440.0f)
+ if (!bRemoved && m_creature->GetPositionX() > 440.0f)
{
if (pInstance->GetData(DATA_PRINCE_TALDARAM_EVENT) == DONE)
{
m_creature->InterruptNonMeleeSpells(true);
- removed = true;
+ bRemoved = true;
return;
}
- if (!casted)
+ if (!bCasted)
{
DoCast(m_creature, SPELL_BEAM_VISUAL_JEDOGAS_AUFSEHER_1, false);
- casted = true;
+ bCasted = true;
}
}
- if (!removed2 && m_creature->GetPositionX() < 440.0f)
+ if (!bRemoved2 && m_creature->GetPositionX() < 440.0f)
{
- if (!casted2 && pInstance->GetData(DATA_JEDOGA_TRIGGER_SWITCH))
+ if (!bCasted2 && pInstance->GetData(DATA_JEDOGA_TRIGGER_SWITCH))
{
DoCast(m_creature, SPELL_BEAM_VISUAL_JEDOGAS_AUFSEHER_2, false);
- casted2 = true;
+ bCasted2 = true;
}
- if (casted2 && !pInstance->GetData(DATA_JEDOGA_TRIGGER_SWITCH))
+ if (bCasted2 && !pInstance->GetData(DATA_JEDOGA_TRIGGER_SWITCH))
{
m_creature->InterruptNonMeleeSpells(true);
- casted2 = false;
+ bCasted2 = false;
}
- if (!removed2 && pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) == DONE)
+ if (!bRemoved2 && pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) == DONE)
{
m_creature->InterruptNonMeleeSpells(true);
- removed2 = true;
+ bRemoved2 = true;
}
}
}
diff --git a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_prince_taldaram.cpp b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_prince_taldaram.cpp
index 5c2cbb724c1..82eda44bb58 100644
--- a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_prince_taldaram.cpp
+++ b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_prince_taldaram.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 Trinity <http://www.trinitycore.org/>
+ * Copyright (C) 2009 - 2010 TrinityCore <http://www.trinitycore.org/>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -16,59 +16,51 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-/* ScriptData
-SDName: boss_prince_taldaram
-SDAuthor: Tartalo & tlexii
-SD%Complete: 0
-SDComment:
-SDCategory: Ahn'kahet
-EndScriptData */
-
#include "ScriptedPch.h"
#include "ahnkahet.h"
enum Spells
{
- SPELL_BLOODTHIRST = 55968, //Trigger Spell + add aura
- SPELL_CONJURE_FLAME_SPHERE = 55931,
- SPELL_FLAME_SPHERE_SUMMON_1 = 55895,// 1x 30106
- H_SPELL_FLAME_SPHERE_SUMMON_1 = 59511,// 1x 31686
- H_SPELL_FLAME_SPHERE_SUMMON_2 = 59512,// 1x 31687
- SPELL_FLAME_SPHERE_SPAWN_EFFECT = 55891,
- SPELL_FLAME_SPHERE_VISUAL = 55928,
- SPELL_FLAME_SPHERE_PERIODIC = 55926,
- H_SPELL_FLAME_SPHERE_PERIODIC = 59508,
- SPELL_FLAME_SPHERE_DEATH_EFFECT = 55947,
- SPELL_BEAM_VISUAL = 60342,
- SPELL_EMBRACE_OF_THE_VAMPYR = 55959,
- H_SPELL_EMBRACE_OF_THE_VAMPYR = 59513,
- SPELL_VANISH = 55964,
- CREATURE_FLAME_SPHERE = 30106,
- H_CREATURE_FLAME_SPHERE_1 = 31686,
- H_CREATURE_FLAME_SPHERE_2 = 31687
+ SPELL_BLOODTHIRST = 55968, //Trigger Spell + add aura
+ SPELL_CONJURE_FLAME_SPHERE = 55931,
+ SPELL_FLAME_SPHERE_SUMMON_1 = 55895,// 1x 30106
+ H_SPELL_FLAME_SPHERE_SUMMON_1 = 59511,// 1x 31686
+ H_SPELL_FLAME_SPHERE_SUMMON_2 = 59512,// 1x 31687
+ SPELL_FLAME_SPHERE_SPAWN_EFFECT = 55891,
+ SPELL_FLAME_SPHERE_VISUAL = 55928,
+ SPELL_FLAME_SPHERE_PERIODIC = 55926,
+ H_SPELL_FLAME_SPHERE_PERIODIC = 59508,
+ SPELL_FLAME_SPHERE_DEATH_EFFECT = 55947,
+ SPELL_BEAM_VISUAL = 60342,
+ SPELL_EMBRACE_OF_THE_VAMPYR = 55959,
+ H_SPELL_EMBRACE_OF_THE_VAMPYR = 59513,
+ SPELL_VANISH = 55964,
+ CREATURE_FLAME_SPHERE = 30106,
+ H_CREATURE_FLAME_SPHERE_1 = 31686,
+ H_CREATURE_FLAME_SPHERE_2 = 31687
};
enum Misc
{
- DATA_EMBRACE_DMG = 20000,
- H_DATA_EMBRACE_DMG = 40000,
- DATA_SPHERE_DISTANCE = 15
+ DATA_EMBRACE_DMG = 20000,
+ H_DATA_EMBRACE_DMG = 40000,
+ DATA_SPHERE_DISTANCE = 15
};
#define DATA_SPHERE_ANGLE_OFFSET 0.7
#define DATA_GROUND_POSITION_Z 11.4
enum Achievements
{
- ACHIEVEMENT_THE_PARTY_IS_OVER = 1861
+ ACHIEV_THE_PARTY_IS_OVER = 1861
};
enum Yells
{
- SAY_AGGRO = -1619021,
- SAY_SLAY_1 = -1619022,
- SAY_SLAY_2 = -1619023,
- SAY_DEATH = -1619024,
- SAY_FEED_1 = -1619025,
- SAY_FEED_2 = -1619026,
- SAY_VANISH_1 = -1619027,
- SAY_VANISH_2 = -1619028
+ SAY_AGGRO = -1619021,
+ SAY_SLAY_1 = -1619022,
+ SAY_SLAY_2 = -1619023,
+ SAY_DEATH = -1619024,
+ SAY_FEED_1 = -1619025,
+ SAY_FEED_2 = -1619026,
+ SAY_VANISH_1 = -1619027,
+ SAY_VANISH_2 = -1619028
};
enum CombatPhase
{
@@ -78,6 +70,11 @@ enum CombatPhase
VANISHED,
FEEDING
};
+enum GameObjects
+{
+ GO_SPHERE1 = 193093,
+ GO_SPHERE2 = 193094
+};
struct boss_taldaramAI : public ScriptedAI
{
@@ -104,10 +101,10 @@ struct boss_taldaramAI : public ScriptedAI
void Reset()
{
- uiBloodthirstTimer = 10000;
- uiVanishTimer = (25 + rand()%10)*1000;
- uiEmbraceTimer = 20000;
- uiFlamesphereTimer = 5000;
+ uiBloodthirstTimer = 10*IN_MILISECONDS;
+ uiVanishTimer = urand(25*IN_MILISECONDS,35*IN_MILISECONDS);
+ uiEmbraceTimer = 20*IN_MILISECONDS;
+ uiFlamesphereTimer = 5*IN_MILISECONDS;
uiEmbraceTakenDamage = 0;
Phase = NORMAL;
uiPhaseTimer = 0;
@@ -136,7 +133,7 @@ struct boss_taldaramAI : public ScriptedAI
Creature* pSpheres[3];
//DoCast(m_creature, SPELL_FLAME_SPHERE_SUMMON_1);
- pSpheres[0] = DoSpawnCreature(CREATURE_FLAME_SPHERE, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
+ pSpheres[0] = DoSpawnCreature(CREATURE_FLAME_SPHERE, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10*IN_MILISECONDS);
Unit *pSphereTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
if (pSphereTarget && pSpheres[0])
{
@@ -149,9 +146,9 @@ struct boss_taldaramAI : public ScriptedAI
if (IsHeroic())
{
//DoCast(m_creature, H_SPELL_FLAME_SPHERE_SUMMON_1);
- pSpheres[1] = DoSpawnCreature(H_CREATURE_FLAME_SPHERE_1, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
+ pSpheres[1] = DoSpawnCreature(H_CREATURE_FLAME_SPHERE_1, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10*IN_MILISECONDS);
//DoCast(m_creature, H_SPELL_FLAME_SPHERE_SUMMON_2);
- pSpheres[2] = DoSpawnCreature(H_CREATURE_FLAME_SPHERE_2, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
+ pSpheres[2] = DoSpawnCreature(H_CREATURE_FLAME_SPHERE_2, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10*IN_MILISECONDS);
if (pSphereTarget && pSpheres[1] && pSpheres[2])
{
float angle,x,y;
@@ -187,7 +184,7 @@ struct boss_taldaramAI : public ScriptedAI
m_creature->SetSpeed(MOVE_WALK, 1.0f, true);
m_creature->GetMotionMaster()->MoveChase(m_creature->getVictim());
Phase = FEEDING;
- uiPhaseTimer = 20000;
+ uiPhaseTimer = 20*IN_MILISECONDS;
break;
case FEEDING:
Phase = NORMAL;
@@ -198,15 +195,15 @@ struct boss_taldaramAI : public ScriptedAI
if (uiBloodthirstTimer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_BLOODTHIRST);
- uiBloodthirstTimer = 10000;
+ uiBloodthirstTimer = 10*IN_MILISECONDS;
} else uiBloodthirstTimer -= diff;
if (uiFlamesphereTimer <= diff)
{
DoCast(m_creature, SPELL_CONJURE_FLAME_SPHERE);
Phase = CASTING_FLAME_SPHERES;
- uiPhaseTimer = 3000 + diff;
- uiFlamesphereTimer = 15000;
+ uiPhaseTimer = 3*IN_MILISECONDS + diff;
+ uiFlamesphereTimer = 15*IN_MILISECONDS;
} else uiFlamesphereTimer -= diff;
if (uiVanishTimer <= diff)
@@ -234,7 +231,7 @@ struct boss_taldaramAI : public ScriptedAI
uiEmbraceTarget = pEmbraceTarget->GetGUID();
}
- uiVanishTimer = urand(25000,35000);
+ uiVanishTimer = urand(25*IN_MILISECONDS,35*IN_MILISECONDS);
} else uiVanishTimer -= diff;
DoMeleeAttackIfReady();
@@ -268,15 +265,11 @@ struct boss_taldaramAI : public ScriptedAI
{
pInstance->SetData(DATA_PRINCE_TALDARAM_EVENT, DONE);
- //The Party's Over achievement:
- AchievementEntry const *AchievThePartyIsOver = GetAchievementStore()->LookupEntry(ACHIEVEMENT_THE_PARTY_IS_OVER);
- Map* pMap = m_creature->GetMap();
- if (pMap && pMap->IsDungeon() && IsHeroic() && AchievThePartyIsOver)
+ if (IsHeroic())
{
- Map::PlayerList const &players = pMap->GetPlayers();
+ Map::PlayerList const &players = pInstance->instance->GetPlayers();
if (players.getSize() < 5)
- for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- itr->getSource()->CompletedAchievement(AchievThePartyIsOver);
+ pInstance->DoCompleteAchievement(ACHIEV_THE_PARTY_IS_OVER);
}
}
}
@@ -358,7 +351,7 @@ struct mob_taldaram_flamesphereAI : public ScriptedAI
DoCast(m_creature, SPELL_FLAME_SPHERE_VISUAL);
DoCast(m_creature, SPELL_FLAME_SPHERE_SPAWN_EFFECT);
DoCast(m_creature, DUNGEON_MODE(SPELL_FLAME_SPHERE_PERIODIC, H_SPELL_FLAME_SPHERE_PERIODIC));
- uiDespawnTimer = 10000;
+ uiDespawnTimer = 10*IN_MILISECONDS;
}
void EnterCombat(Unit *who) {}
@@ -401,8 +394,8 @@ bool GOHello_prince_taldaram_sphere(Player *pPlayer, GameObject *pGO)
switch(pGO->GetEntry())
{
- case 193093: pInstance->SetData(DATA_SPHERE1_EVENT,IN_PROGRESS); break;
- case 193094: pInstance->SetData(DATA_SPHERE2_EVENT,IN_PROGRESS); break;
+ case GO_SPHERE1: pInstance->SetData(DATA_SPHERE1_EVENT,IN_PROGRESS); break;
+ case GO_SPHERE2: pInstance->SetData(DATA_SPHERE2_EVENT,IN_PROGRESS); break;
}
CAST_AI(boss_taldaramAI, pPrinceTaldaram->AI())->CheckSpheres();
diff --git a/src/scripts/northrend/azjol_nerub/azjol_nerub/azjol_nerub.h b/src/scripts/northrend/azjol_nerub/azjol_nerub/azjol_nerub.h
index df02f9e13d3..4113885b6f4 100644
--- a/src/scripts/northrend/azjol_nerub/azjol_nerub/azjol_nerub.h
+++ b/src/scripts/northrend/azjol_nerub/azjol_nerub/azjol_nerub.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 Trinity <http://www.trinitycore.org/>
+ * Copyright (C) 2009 - 2010 TrinityCore <http://www.trinitycore.org/>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_anubarak.cpp b/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_anubarak.cpp
index e8300fd1f97..fc8901270cb 100644
--- a/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_anubarak.cpp
+++ b/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_anubarak.cpp
@@ -1,75 +1,63 @@
/*
- * Copyright (C) 2009 Trinity <http://www.trinitycore.org/>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/* ScriptData
-SDName: boss_anubarak
-SD%Complete: 90 %
-SDComment: Says are not implemented.
-SDCategory: Azjol Nerub
-EndScriptData */
-
+* Copyright (C) 2009 - 2010 TrinityCore <http://www.trinitycore.org/>
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
#include "ScriptedPch.h"
#include "azjol_nerub.h"
enum Spells
{
- SPELL_CARRION_BEETLES = 53520,
- SPELL_SUMMON_CARRION_BEETLES = 53521,
- SPELL_LEECHING_SWARM = 53467,
-
- SPELL_IMPALE = 53454,
- H_SPELL_IMPALE = 59446,
-
- SPELL_POUND = 53472,
- H_SPELL_POUND = 59433,
-
- SPELL_SUBMERGE = 53421,
+ SPELL_CARRION_BEETLES = 53520,
+ SPELL_SUMMON_CARRION_BEETLES = 53521,
+ SPELL_LEECHING_SWARM = 53467,
+ SPELL_IMPALE = 53454,
+ H_SPELL_IMPALE = 59446,
+ SPELL_POUND = 53472,
+ H_SPELL_POUND = 59433,
+ SPELL_SUBMERGE = 53421,
};
enum Creatures
{
- CREATURE_GUARDIAN = 29216,
- CREATURE_VENOMANCER = 29217,
- CREATURE_DATTER = 29213
+ CREATURE_GUARDIAN = 29216,
+ CREATURE_VENOMANCER = 29217,
+ CREATURE_DATTER = 29213
};
// not in db
enum Yells
{
- SAY_INTRO = -1601010,
- SAY_AGGRO = -1601000,
- SAY_SLAY_1 = -1601001,
- SAY_SLAY_2 = -1601002,
- SAY_SLAY_3 = -1601003,
- SAY_LOCUST_1 = -1601005,
- SAY_LOCUST_2 = -1601006,
- SAY_LOCUST_3 = -1601007,
- SAY_SUBMERGE_1 = -1601008,
- SAY_SUBMERGE_2 = -1601009,
- SAY_DEATH = -1601004
+ SAY_INTRO = -1601010,
+ SAY_AGGRO = -1601000,
+ SAY_SLAY_1 = -1601001,
+ SAY_SLAY_2 = -1601002,
+ SAY_SLAY_3 = -1601003,
+ SAY_LOCUST_1 = -1601005,
+ SAY_LOCUST_2 = -1601006,
+ SAY_LOCUST_3 = -1601007,
+ SAY_SUBMERGE_1 = -1601008,
+ SAY_SUBMERGE_2 = -1601009,
+ SAY_DEATH = -1601004
};
-#define SPAWNPOINT_Z 224.3
-float SpawnPoint[2][2] =
+const Position SpawnPoint[2] =
{
- {550.7, 282.8},
- {551.1, 229.4},
+ { 550.7, 282.8, 224.3 },
+ { 551.1, 229.4, 224.3 },
};
struct boss_anub_arakAI : public ScriptedAI
@@ -81,36 +69,35 @@ struct boss_anub_arakAI : public ScriptedAI
ScriptedInstance *pInstance;
- bool Channeling;
- bool HeroicMode;
- bool Summoned_Guardian;
- bool Summoned_Venomancer;
- bool Summoned_Datter;
- uint32 Phase;
- uint32 Phase_Time;
-
- uint32 SPELL_CARRION_BEETLES_Timer;
- uint32 SPELL_LEECHING_SWARM_Timer;
- uint32 SPELL_IMPALE_Timer;
- uint32 SPELL_POUND_Timer;
- uint32 SPELL_SUBMERGE_Timer;
- uint32 UNDERGROUND_Timer;
- uint32 VENOMANCER_Timer;
- uint32 DATTER_Timer;
+ bool bChanneling;
+ bool bGuardianSummoned;
+ bool bVenomancerSummoned;
+ bool bDatterSummoned;
+ uint8 uiPhase;
+ uint32 uiPhaseTimer;
+
+ uint32 uiCarrionBeetlesTimer;
+ uint32 uiLeechingSwarmTimer;
+ uint32 uiImpaleTimer;
+ uint32 uiPoundTimer;
+ uint32 uiSubmergeTimer;
+ uint32 uiUndergroundTimer;
+ uint32 uiVenomancerTimer;
+ uint32 uiDatterTimer;
SummonList lSummons;
void Reset()
{
- SPELL_CARRION_BEETLES_Timer = 8000;
- SPELL_LEECHING_SWARM_Timer = 20000;
- SPELL_IMPALE_Timer = 9000;
- SPELL_POUND_Timer = 15000;
+ uiCarrionBeetlesTimer = 8*IN_MILISECONDS;
+ uiLeechingSwarmTimer = 20*IN_MILISECONDS;
+ uiImpaleTimer = 9*IN_MILISECONDS;
+ uiPoundTimer = 15*IN_MILISECONDS;
- Phase = 0;
- Phase_Time = 0;
- Channeling = false;
+ uiPhase = 0;
+ uiPhaseTimer = 0;
+ bChanneling = false;
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
m_creature->RemoveAura(SPELL_SUBMERGE);
@@ -137,126 +124,125 @@ struct boss_anub_arakAI : public ScriptedAI
if (!UpdateVictim())
return;
- if (Channeling == true)
+ if (bChanneling == true)
{
for (uint8 i = 0; i < 4; ++i)
DoCast(m_creature->getVictim(), SPELL_SUMMON_CARRION_BEETLES, true);
- Channeling = false;
+ bChanneling = false;
}
- if (Phase == 1)
+ if (uiPhase == 1)
{
- if (SPELL_IMPALE_Timer <= diff)
+ if (uiImpaleTimer <= diff)
{
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
m_creature->CastSpell(pTarget, DUNGEON_MODE(SPELL_IMPALE,H_SPELL_IMPALE), true);
+ uiImpaleTimer = 9*IN_MILISECONDS;
+ } else uiImpaleTimer -= diff;
- SPELL_IMPALE_Timer = 9000;
- } else SPELL_IMPALE_Timer -= diff;
-
- if (!Summoned_Guardian)
+ if (!bGuardianSummoned)
{
for (uint8 i = 0; i < 2; ++i)
{
- if (Creature *Guardian = m_creature->SummonCreature(CREATURE_GUARDIAN,SpawnPoint[i][0],SpawnPoint[i][1],SPAWNPOINT_Z,0,TEMPSUMMON_CORPSE_DESPAWN,0))
+ if (Creature *Guardian = m_creature->SummonCreature(CREATURE_GUARDIAN,SpawnPoint[i],TEMPSUMMON_CORPSE_DESPAWN,0))
{
Guardian->AddThreat(m_creature->getVictim(), 0.0f);
DoZoneInCombat(Guardian);
}
}
- Summoned_Guardian = true;
+ bGuardianSummoned = true;
}
- if(!Summoned_Venomancer)
+ if(!bVenomancerSummoned)
{
- if (VENOMANCER_Timer <= diff)
+ if (uiVenomancerTimer <= diff)
{
- if (Phase_Time > 1)
+ if (uiPhaseTimer > 1)
{
for (uint8 i = 0; i < 2; ++i)
{
- if (Creature *Venomancer = m_creature->SummonCreature(CREATURE_VENOMANCER,SpawnPoint[i][0],SpawnPoint[i][1],SPAWNPOINT_Z,0,TEMPSUMMON_CORPSE_DESPAWN,0))
+ if (Creature *Venomancer = m_creature->SummonCreature(CREATURE_VENOMANCER,SpawnPoint[i],TEMPSUMMON_CORPSE_DESPAWN,0))
{
Venomancer->AddThreat(m_creature->getVictim(), 0.0f);
DoZoneInCombat(Venomancer);
}
}
- Summoned_Venomancer = true;
+ bVenomancerSummoned = true;
}
- } else VENOMANCER_Timer -= diff;
+ } else uiVenomancerTimer -= diff;
}
- if(!Summoned_Datter)
+ if(!bDatterSummoned)
{
- if (DATTER_Timer <= diff)
+ if (uiDatterTimer <= diff)
{
- if (Phase_Time > 2)
+ if (uiPhaseTimer > 2)
{
for (uint8 i = 0; i < 2; ++i)
{
- if (Creature *Datter = m_creature->SummonCreature(CREATURE_DATTER,SpawnPoint[i][0],SpawnPoint[i][1],SPAWNPOINT_Z,0,TEMPSUMMON_CORPSE_DESPAWN,0))
+ if (Creature *Datter = m_creature->SummonCreature(CREATURE_DATTER,SpawnPoint[i],TEMPSUMMON_CORPSE_DESPAWN,0))
{
Datter->AddThreat(m_creature->getVictim(), 0.0f);
DoZoneInCombat(Datter);
}
}
- Summoned_Datter = true;
+ bDatterSummoned = true;
}
- } else DATTER_Timer -= diff;
+ } else uiDatterTimer -= diff;
}
- if (UNDERGROUND_Timer <= diff)
+ if (uiUndergroundTimer <= diff)
{
m_creature->RemoveAura(SPELL_SUBMERGE);
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
- Phase = 0;
- } else UNDERGROUND_Timer -= diff;
+ uiPhase = 0;
+ } else uiUndergroundTimer -= diff;
}
- if (Phase == 0)
+ if (uiPhase == 0)
{
- if (SPELL_LEECHING_SWARM_Timer <= diff)
+ if (uiLeechingSwarmTimer <= diff)
{
DoCast(m_creature, SPELL_LEECHING_SWARM, true);
- SPELL_LEECHING_SWARM_Timer = 19000;
- } else SPELL_LEECHING_SWARM_Timer -= diff;
+ uiLeechingSwarmTimer = 19*IN_MILISECONDS;
+ } else uiLeechingSwarmTimer -= diff;
- if (SPELL_CARRION_BEETLES_Timer <= diff)
+ if (uiCarrionBeetlesTimer <= diff)
{
- Channeling = true;
+ bChanneling = true;
DoCastVictim(SPELL_CARRION_BEETLES);
- SPELL_CARRION_BEETLES_Timer = 25000;
- } else SPELL_CARRION_BEETLES_Timer -= diff;
+ uiCarrionBeetlesTimer = 25*IN_MILISECONDS;
+ } else uiCarrionBeetlesTimer -= diff;
- if (SPELL_POUND_Timer <= diff)
+ if (uiPoundTimer <= diff)
{
DoCastVictim(DUNGEON_MODE(SPELL_POUND, H_SPELL_POUND));
- SPELL_POUND_Timer = 16500;
- } else SPELL_POUND_Timer -= diff;
+ uiPoundTimer = 16.5*IN_MILISECONDS;
+ } else uiPoundTimer -= diff;
}
- if ((Phase_Time == 0 && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 75)
- || (Phase_Time == 1 && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 50)
- || (Phase_Time == 2 && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 25))
+ if ((uiPhaseTimer == 0 && HealthBelowPct(75))
+ || (uiPhaseTimer == 1 && HealthBelowPct(50))
+ || (uiPhaseTimer == 2 && HealthBelowPct(25)))
{
- ++Phase_Time;
+ ++uiPhaseTimer;
- Summoned_Guardian = false;
- Summoned_Venomancer = false;
- Summoned_Datter = false;
+ bGuardianSummoned = false;
+ bVenomancerSummoned = false;
+ bDatterSummoned = false;
- UNDERGROUND_Timer = 40000;
- VENOMANCER_Timer = 25000;
- DATTER_Timer = 32000;
+ uiUndergroundTimer = 40*IN_MILISECONDS;
+ uiVenomancerTimer = 25*IN_MILISECONDS;
+ uiDatterTimer = 32*IN_MILISECONDS;
DoCast(m_creature, SPELL_SUBMERGE, false);
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
- Phase = 1;
+ uiPhase = 1;
}
- if (Phase != 1)
+ if (uiPhase != 1)
DoMeleeAttackIfReady();
}
diff --git a/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_hadronox.cpp b/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_hadronox.cpp
index c0dc08b7fe2..cc31d982e03 100644
--- a/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_hadronox.cpp
+++ b/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_hadronox.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 Trinity <http://www.trinitycore.org/>
+ * Copyright (C) 2009 - 2010 TrinityCore <http://www.trinitycore.org/>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -16,89 +16,83 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-/* Script Data Start
-SDName: Boss hadronox
-SDAuthor: WarHead
-SD%Complete: 50
-SDComment: No Waves atm and the doors spells are crazy...
-SDCategory:
-Script Data End */
-
-//Phase 0 => Gauntlet Event described below
-//Phase 1 => Boss Encounter
-
-/*When your group enters the main room (the one after the bridge), you will notice a group of 3 Nerubians.
-When you engage them, 2 more groups like this one spawn behind the first one - it is important to pull the first group back,
-so you don't aggro all 3. Hadronox will be under you, fighting Nerubians.
-
-This is the timed gauntlet - waves of non-elite spiders
- will spawn from the 3 doors located a little above the main room, and will then head down to fight Hadronox. After clearing the
- main room, it is recommended to just stay in it, kill the occasional non-elites that will attack you instead of the boss, and wait for
- Hadronox to make his way to you. When Hadronox enters the main room, she will web the doors, and no more non-elites will spawn.*/
+/*
+* Comment: No Waves atm and the doors spells are crazy...
+*
+* When your group enters the main room (the one after the bridge), you will notice a group of 3 Nerubians.
+* When you engage them, 2 more groups like this one spawn behind the first one - it is important to pull the first group back,
+* so you don't aggro all 3. Hadronox will be under you, fighting Nerubians.
+*
+* This is the timed gauntlet - waves of non-elite spiders
+* will spawn from the 3 doors located a little above the main room, and will then head down to fight Hadronox. After clearing the
+* main room, it is recommended to just stay in it, kill the occasional non-elites that will attack you instead of the boss, and wait for
+* Hadronox to make his way to you. When Hadronox enters the main room, she will web the doors, and no more non-elites will spawn.
+*/
#include "ScriptedPch.h"
#include "azjol_nerub.h"
-#define SPELL_ACID_CLOUD 53400 // Victim
-#define SPELL_LEECH_POISON 53030 // Victim
-#define SPELL_PIERCE_ARMOR 53418 // Victim
-#define SPELL_WEB_GRAB 57731 // Victim
-#define SPELL_WEB_FRONT_DOORS 53177 // Self
-#define SPELL_WEB_SIDE_DOORS 53185 // Self
-
-#define SPELL_ACID_CLOUD_H 59419
-#define SPELL_LEECH_POISON_H 59417
-#define SPELL_WEB_GRAB_H 59421
+enum Spells
+{
+ SPELL_ACID_CLOUD = 53400, // Victim
+ SPELL_LEECH_POISON = 53030, // Victim
+ SPELL_PIERCE_ARMOR = 53418, // Victim
+ SPELL_WEB_GRAB = 57731, // Victim
+ SPELL_WEB_FRONT_DOORS = 53177, // Self
+ SPELL_WEB_SIDE_DOORS = 53185, // Self
+ H_SPELL_ACID_CLOUD = 59419,
+ H_SPELL_LEECH_POISON = 59417,
+ H_SPELL_WEB_GRAB = 59421
+};
struct boss_hadronoxAI : public ScriptedAI
{
boss_hadronoxAI(Creature* c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
- MaxDistance = 50.0f;
- FirstTime = true;
+ fMaxDistance = 50.0f;
+ bFirstTime = true;
}
ScriptedInstance* pInstance;
- uint32 acidtimer,
- leechtimer,
- piercetimer,
- grabtimer,
- doorstimer,
- CheckDistanceTimer;
+ uint32 uiAcidTimer;
+ uint32 uiLeechTimer;
+ uint32 uiPierceTimer;
+ uint32 uiGrabTimer;
+ uint32 uiDoorsTimer;
+ uint32 uiCheckDistanceTimer;
- bool FirstTime;
+ bool bFirstTime;
- float MaxDistance;
+ float fMaxDistance;
void Reset()
{
m_creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 9.0f);
m_creature->SetFloatValue(UNIT_FIELD_COMBATREACH, 9.0f);
- acidtimer = urand(10000,14000);
- leechtimer = urand(3000,9000);
- piercetimer = urand(1000,3000);
- grabtimer = urand(15000,19000);
- doorstimer = urand(20000,30000);
+ uiAcidTimer = urand(10*IN_MILISECONDS,14*IN_MILISECONDS);
+ uiLeechTimer = urand(3*IN_MILISECONDS,9*IN_MILISECONDS);
+ uiPierceTimer = urand(1*IN_MILISECONDS,3*IN_MILISECONDS);
+ uiGrabTimer = urand(15*IN_MILISECONDS,19*IN_MILISECONDS);
+ uiDoorsTimer = urand(20*IN_MILISECONDS,30*IN_MILISECONDS);
+ uiCheckDistanceTimer = 2*IN_MILISECONDS;
- CheckDistanceTimer = 2000;
-
- if (pInstance && (pInstance->GetData(DATA_HADRONOX_EVENT) != DONE && !FirstTime))
+ if (pInstance && (pInstance->GetData(DATA_HADRONOX_EVENT) != DONE && !bFirstTime))
pInstance->SetData(DATA_HADRONOX_EVENT, FAIL);
- FirstTime = false;
+ bFirstTime = false;
}
//when Hadronox kills any enemy (that includes a party member) she will regain 10% of her HP if the target had Leech Poison on
void KilledUnit(Unit* Victim)
{
// not sure if this aura check is correct, I think it is though
- if (!Victim || !Victim->HasAura(DUNGEON_MODE(SPELL_LEECH_POISON, SPELL_LEECH_POISON_H)) || !m_creature->isAlive())
+ if (!Victim || !Victim->HasAura(DUNGEON_MODE(SPELL_LEECH_POISON, H_SPELL_LEECH_POISON)) || !m_creature->isAlive())
return;
- uint32 health = (m_creature->GetMaxHealth()/100)*10;
+ uint32 health = m_creature->GetMaxHealth()/10;
if ((m_creature->GetHealth()+health) >= m_creature->GetMaxHealth())
m_creature->SetHealth(m_creature->GetMaxHealth());
@@ -127,11 +121,11 @@ struct boss_hadronoxAI : public ScriptedAI
float x=0.0f, y=0.0f, z=0.0f;
m_creature->GetRespawnCoord(x,y,z);
- if (CheckDistanceTimer <= uiDiff)
- CheckDistanceTimer = 5000;
+ if (uiCheckDistanceTimer <= uiDiff)
+ uiCheckDistanceTimer = 5*IN_MILISECONDS;
else
{
- CheckDistanceTimer -= uiDiff;
+ uiCheckDistanceTimer -= uiDiff;
return;
}
if (m_creature->IsInEvadeMode() || !m_creature->getVictim())
@@ -146,7 +140,7 @@ struct boss_hadronoxAI : public ScriptedAI
if (!UpdateVictim()) return;
// Without he comes up through the air to players on the bridge after krikthir if players crossing this bridge!
- CheckDistance(MaxDistance, diff);
+ CheckDistance(fMaxDistance, diff);
if (m_creature->HasAura(SPELL_WEB_FRONT_DOORS) || m_creature->HasAura(SPELL_WEB_SIDE_DOORS))
{
@@ -156,42 +150,41 @@ struct boss_hadronoxAI : public ScriptedAI
else if (!IsCombatMovement())
SetCombatMovement(true);
- if (piercetimer <= diff)
+ if (uiPierceTimer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_PIERCE_ARMOR);
- piercetimer = 8000;
- } else piercetimer -= diff;
+ uiPierceTimer = 8*IN_MILISECONDS;
+ } else uiPierceTimer -= diff;
- if (acidtimer <= diff)
+ if (uiAcidTimer <= diff)
{
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
- DoCast(pTarget, DUNGEON_MODE(SPELL_ACID_CLOUD, SPELL_ACID_CLOUD_H));
+ DoCast(pTarget, DUNGEON_MODE(SPELL_ACID_CLOUD, H_SPELL_ACID_CLOUD));
- acidtimer = urand(20000,30000);
- } else acidtimer -= diff;
+ uiAcidTimer = urand(20*IN_MILISECONDS,30*IN_MILISECONDS);
+ } else uiAcidTimer -= diff;
- if (leechtimer <= diff)
+ if (uiLeechTimer <= diff)
{
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
- DoCast(pTarget, DUNGEON_MODE(SPELL_LEECH_POISON, SPELL_LEECH_POISON_H));
+ DoCast(pTarget, DUNGEON_MODE(SPELL_LEECH_POISON, H_SPELL_LEECH_POISON));
- leechtimer = urand(11000,14000);
- } else leechtimer -= diff;
+ uiLeechTimer = urand(11*IN_MILISECONDS,14*IN_MILISECONDS);
+ } else uiLeechTimer -= diff;
- if (grabtimer <= diff)
+ if (uiGrabTimer <= diff)
{
if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) // Draws all players (and attacking Mobs) to itself.
- DoCast(pTarget, DUNGEON_MODE(SPELL_WEB_GRAB, SPELL_WEB_GRAB_H));
+ DoCast(pTarget, DUNGEON_MODE(SPELL_WEB_GRAB, H_SPELL_WEB_GRAB));
- grabtimer = urand(15000,30000);
- } else grabtimer -= diff;
+ uiGrabTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS);
+ } else uiGrabTimer -= diff;
- if (doorstimer <= diff)
- {/* Debuff bleibt auf den Spielern bis zum Tod...
- DoCast(m_creature, RAND(SPELL_WEB_FRONT_DOORS, SPELL_WEB_SIDE_DOORS));
- */
- doorstimer = urand(30000,60000);
- } else doorstimer -= diff;
+ if (uiDoorsTimer <= diff)
+ {
+ //DoCast(m_creature, RAND(SPELL_WEB_FRONT_DOORS, SPELL_WEB_SIDE_DOORS));
+ uiDoorsTimer = urand(30*IN_MILISECONDS,60*IN_MILISECONDS);
+ } else uiDoorsTimer -= diff;
DoMeleeAttackIfReady();
}
diff --git a/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp b/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp
index dda95f0005d..f4d0e7df8e1 100644
--- a/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp
+++ b/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 Trinity <http://www.trinitycore.org/>
+ * Copyright (C) 2009 - 2010 TrinityCore <http://www.trinitycore.org/>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -16,84 +16,81 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-/* ScriptData
-SDName: boss_krikthir_the_gatewatcher
-SD%Complete: 80 %
-SDComment: Find in the future best timers and the event is not implemented.
-SDCategory: Azjol Nerub
-EndScriptData */
-
-/*** SQL START ***
-update creature_template set scriptname = 'boss_krik_thir' where entry = '';
-*** SQL END ***/
+/*
+ * Comment: Find in the future best timers and the event is not implemented.
+ */
#include "ScriptedPch.h"
#include "azjol_nerub.h"
enum Spells
{
- SPELL_MIND_FLAY = 52586,
- H_SPELL_MIND_FLAY = 59367,
- SPELL_CURSE_OF_FATIGUE = 52592,
- H_SPELL_CURSE_OF_FATIGUE = 59368,
- SPELL_FRENZY = 28747, //maybe 53361
-
- SPELL_SUMMON_SKITTERING_SWARMER = 52438, //AOE Effect 140, maybe 52439
- SPELL_SUMMON_SKITTERING_SWARMER_1 = 52439, //Summon 3x 28735
-
- H_SPELL_ACID_SPLASH = 59363,
- SPELL_ACID_SPLASH = 52446,
-
- SPELL_CHARGE = 16979,//maybe is another spell
- SPELL_BACKSTAB = 52540,
-
- SPELL_SHADOW_BOLT = 52534,
- H_SPELL_SHADOW_BOLT = 59357,
- SPELL_SHADOW_NOVA = 52535,
- H_SPELL_SHADOW_NOVA = 59358,
-
- SPELL_STRIKE = 52532,
- SPELL_CLEAVE = 49806,
-
- SPELL_ENRAGE = 52470,
-
- SPELL_INFECTED_BITE = 52469,
- H_SPELL_INFECTED_BITE = 59364,
- SPELL_WEB_WRAP = 52086,//the spell is not working propperly
-
- SPELL_BLINDING_WEBS = 52524,
- H_SPELL_BLINDING_WEBS = 59365,
-
- SPELL_POSION_SPRAY = 52493,
- H_SPELL_POSION_SPRAY = 59366,
+ SPELL_MIND_FLAY = 52586,
+ H_SPELL_MIND_FLAY = 59367,
+ SPELL_CURSE_OF_FATIGUE = 52592,
+ H_SPELL_CURSE_OF_FATIGUE = 59368,
+ SPELL_FRENZY = 28747, //maybe 53361
+ SPELL_SUMMON_SKITTERING_SWARMER = 52438, //AOE Effect 140, maybe 52439
+ SPELL_SUMMON_SKITTERING_SWARMER_1 = 52439, //Summon 3x 28735
+ H_SPELL_ACID_SPLASH = 59363,
+ SPELL_ACID_SPLASH = 52446,
+ SPELL_CHARGE = 16979,//maybe is another spell
+ SPELL_BACKSTAB = 52540,
+ SPELL_SHADOW_BOLT = 52534,
+ H_SPELL_SHADOW_BOLT = 59357,
+ SPELL_SHADOW_NOVA = 52535,
+ H_SPELL_SHADOW_NOVA = 59358,
+ SPELL_STRIKE = 52532,
+ SPELL_CLEAVE = 49806,
+ SPELL_ENRAGE = 52470,
+ SPELL_INFECTED_BITE = 52469,
+ H_SPELL_INFECTED_BITE = 59364,
+ SPELL_WEB_WRAP = 52086,//the spell is not working properly
+ SPELL_BLINDING_WEBS = 52524,
+ H_SPELL_BLINDING_WEBS = 59365,
+ SPELL_POSION_SPRAY = 52493,
+ H_SPELL_POSION_SPRAY = 59366
};
enum Mobs
{
- MOB_SKITTERING_SWARMER = 28735,
- MOB_SKITTERING_SWARMER_CONTROLLER = 32593,
- MOB_SKITTERING_INFECTIOR = 28736,
+ MOB_SKITTERING_SWARMER = 28735,
+ MOB_SKITTERING_SWARMER_CONTROLLER = 32593,
+ MOB_SKITTERING_INFECTIOR = 28736
};
enum Yells
{
- SAY_AGGRO = -1601000,
- SAY_SLAY_1 = -1601001,
- SAY_SLAY_2 = -1601002,
- SAY_DEATH = -1601003,
+ SAY_AGGRO = -1601000,
+ SAY_SLAY_1 = -1601001,
+ SAY_SLAY_2 = -1601002,
+ SAY_DEATH = -1601003,
//Not in db
- SAY_SEND_GROUP_1 = -1601004,
- SAY_SEND_GROUP_2 = -1601005,
- SAY_SEND_GROUP_3 = -1601006,
- SAY_SWARM_1 = -1601007,
- SAY_SWARM_2 = -1601008,
- SAY_PREFIGHT_1 = -1601009,
- SAY_PREFIGHT_2 = -1601010,
- SAY_PREFIGHT_3 = -1601011,
+ SAY_SEND_GROUP_1 = -1601004,
+ SAY_SEND_GROUP_2 = -1601005,
+ SAY_SEND_GROUP_3 = -1601006,
+ SAY_SWARM_1 = -1601007,
+ SAY_SWARM_2 = -1601008,
+ SAY_PREFIGHT_1 = -1601009,
+ SAY_PREFIGHT_2 = -1601010,
+ SAY_PREFIGHT_3 = -1601011
};
+
enum Misc
{
- ACHIEVEMENT_WATCH_HIM_DIE = 1296
+ ACHIEV_WATH_HIM_DIE = 1296
+};
+
+const Position SpawnPoint[] =
+{
+ { 566.164, 682.087, 769.079, 2.21657 },
+ { 529.042, 706.941, 777.298, 1.0821 },
+ { 489.975, 671.239, 772.131, 0.261799 },
+ { 488.556, 692.95, 771.764, 4.88692 },
+ { 553.34, 640.387, 777.419, 1.20428 },
+ { 517.486, 706.398, 777.335, 5.35816 },
+ { 504.01, 637.693, 777.479, 0.506145 },
+ { 552.625, 706.408, 777.177, 3.4383 }
};
struct boss_krik_thirAI : public ScriptedAI
{
@@ -104,14 +101,14 @@ struct boss_krik_thirAI : public ScriptedAI
ScriptedInstance* pInstance;
- uint32 MindFlayTimer;
- uint32 CurseFatigueTimer;
- uint32 SummonTimer;
+ uint32 uiMindFlayTimer;
+ uint32 uiCurseFatigueTimer;
+ uint32 uiSummonTimer;
void Reset()
{
- MindFlayTimer = 15000;
- CurseFatigueTimer = 12000;
+ uiMindFlayTimer = 15*IN_MILISECONDS;
+ uiCurseFatigueTimer = 12*IN_MILISECONDS;
if (pInstance)
pInstance->SetData(DATA_KRIKTHIR_THE_GATEWATCHER_EVENT, NOT_STARTED);
@@ -121,7 +118,7 @@ struct boss_krik_thirAI : public ScriptedAI
{
DoScriptText(SAY_AGGRO, m_creature);
Summon();
- SummonTimer = 15000;
+ uiSummonTimer = 15*IN_MILISECONDS;
if (pInstance)
pInstance->SetData(DATA_KRIKTHIR_THE_GATEWATCHER_EVENT, IN_PROGRESS);
@@ -129,22 +126,22 @@ struct boss_krik_thirAI : public ScriptedAI
void Summon()
{
- m_creature->SummonCreature(MOB_SKITTERING_SWARMER,566.164,682.087,769.079,2.21657,TEMPSUMMON_TIMED_DESPAWN,25000);
- m_creature->SummonCreature(MOB_SKITTERING_SWARMER,566.164,682.087,769.079,2.21657,TEMPSUMMON_TIMED_DESPAWN,25000);
- m_creature->SummonCreature(MOB_SKITTERING_SWARMER,529.042,706.941,777.298,1.0821,TEMPSUMMON_TIMED_DESPAWN,25000);
- m_creature->SummonCreature(MOB_SKITTERING_SWARMER,529.042,706.941,777.298,1.0821,TEMPSUMMON_TIMED_DESPAWN,25000);
- m_creature->SummonCreature(MOB_SKITTERING_SWARMER,489.975,671.239,772.131,0.261799,TEMPSUMMON_TIMED_DESPAWN,25000);
- m_creature->SummonCreature(MOB_SKITTERING_SWARMER,489.975,671.239,772.131,0.261799,TEMPSUMMON_TIMED_DESPAWN,25000);
- m_creature->SummonCreature(MOB_SKITTERING_SWARMER,488.556,692.95,771.764,4.88692,TEMPSUMMON_TIMED_DESPAWN,25000);
- m_creature->SummonCreature(MOB_SKITTERING_SWARMER,488.556,692.95,771.764,4.88692,TEMPSUMMON_TIMED_DESPAWN,25000);
- m_creature->SummonCreature(MOB_SKITTERING_INFECTIOR,553.34,640.387,777.419,1.20428,TEMPSUMMON_TIMED_DESPAWN,25000);
- m_creature->SummonCreature(MOB_SKITTERING_SWARMER,553.34,640.387,777.419,1.20428,TEMPSUMMON_TIMED_DESPAWN,25000);
- m_creature->SummonCreature(MOB_SKITTERING_INFECTIOR,517.486,706.398,777.335,5.35816,TEMPSUMMON_TIMED_DESPAWN,25000);
- m_creature->SummonCreature(MOB_SKITTERING_SWARMER,517.486,706.398,777.335,5.35816,TEMPSUMMON_TIMED_DESPAWN,25000);
- m_creature->SummonCreature(MOB_SKITTERING_INFECTIOR,504.01,637.693,777.479,0.506145,TEMPSUMMON_TIMED_DESPAWN,25000);
- m_creature->SummonCreature(MOB_SKITTERING_SWARMER,504.01,637.693,777.479,0.506145,TEMPSUMMON_TIMED_DESPAWN,25000);
- m_creature->SummonCreature(MOB_SKITTERING_SWARMER,552.625,706.408,777.177,3.4383,TEMPSUMMON_TIMED_DESPAWN,25000);
- m_creature->SummonCreature(MOB_SKITTERING_SWARMER,552.625,706.408,777.177,3.4383,TEMPSUMMON_TIMED_DESPAWN,25000);
+ m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[0],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS);
+ m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[0],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS);
+ m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[1],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS);
+ m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[1],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS);
+ m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[2],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS);
+ m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[2],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS);
+ m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[3],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS);
+ m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[3],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS);
+ m_creature->SummonCreature(MOB_SKITTERING_INFECTIOR,SpawnPoint[4],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS);
+ m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[4],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS);
+ m_creature->SummonCreature(MOB_SKITTERING_INFECTIOR,SpawnPoint[5],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS);
+ m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[5],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS);
+ m_creature->SummonCreature(MOB_SKITTERING_INFECTIOR,SpawnPoint[6],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS);
+ m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[6],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS);
+ m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[7],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS);
+ m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[7],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS);
}
void UpdateAI(const uint32 diff)
@@ -152,19 +149,19 @@ struct boss_krik_thirAI : public ScriptedAI
if (!UpdateVictim())
return;
- if (SummonTimer <= diff)
+ if (uiSummonTimer <= diff)
{
Summon();
- SummonTimer = 15000;
- } else SummonTimer -= diff;
+ uiSummonTimer = 15*IN_MILISECONDS;
+ } else uiSummonTimer -= diff;
- if (MindFlayTimer <= diff)
+ if (uiMindFlayTimer <= diff)
{
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_MIND_FLAY, H_SPELL_MIND_FLAY));
- MindFlayTimer = 15000;
- } else MindFlayTimer -= diff;
+ uiMindFlayTimer = 15*IN_MILISECONDS;
+ } else uiMindFlayTimer -= diff;
- if (CurseFatigueTimer <= diff)
+ if (uiCurseFatigueTimer <= diff)
{
//WowWiki say "Curse of Fatigue-Kirk'thir will cast Curse of Fatigue on 2-3 targets periodically."
Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
@@ -173,10 +170,10 @@ struct boss_krik_thirAI : public ScriptedAI
DoCast(pTarget, DUNGEON_MODE(SPELL_CURSE_OF_FATIGUE, H_SPELL_CURSE_OF_FATIGUE));
DoCast(pTarget_1, DUNGEON_MODE(SPELL_CURSE_OF_FATIGUE, H_SPELL_CURSE_OF_FATIGUE));
- CurseFatigueTimer = 10000;
- } else CurseFatigueTimer -= diff;
+ uiCurseFatigueTimer = 10*IN_MILISECONDS;
+ } else uiCurseFatigueTimer -= diff;
- if (!m_creature->HasAura(SPELL_FRENZY) && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 10)
+ if (!m_creature->HasAura(SPELL_FRENZY) && HealthBelowPct(10))
DoCast(m_creature, SPELL_FRENZY, true);
DoMeleeAttackIfReady();
@@ -189,19 +186,12 @@ struct boss_krik_thirAI : public ScriptedAI
{
pInstance->SetData(DATA_KRIKTHIR_THE_GATEWATCHER_EVENT, DONE);
//Achievement: Watch him die
- AchievementEntry const *AchievWatchHimDie = GetAchievementStore()->LookupEntry(ACHIEVEMENT_WATCH_HIM_DIE);
- Map* pMap = m_creature->GetMap();
Creature *pAdd1, *pAdd2, *pAdd3;
if ((pAdd1 = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_WATCHER_GASHRA))) && pAdd1->isAlive() &&
(pAdd2 = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_WATCHER_SILTHIK))) && pAdd2->isAlive() &&
(pAdd3 = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_WATCHER_NARJIL))) && pAdd3->isAlive() &&
- IsHeroic() && pMap && pMap->IsDungeon() && AchievWatchHimDie)
- {
- Map::PlayerList const &players = pMap->GetPlayers();
- for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if (itr->getSource())
- itr->getSource()->CompletedAchievement(AchievWatchHimDie);
- }
+ IsHeroic())
+ pInstance->DoCompleteAchievement(ACHIEV_WATH_HIM_DIE);
}
}
void KilledUnit(Unit *victim)
@@ -214,7 +204,7 @@ struct boss_krik_thirAI : public ScriptedAI
void JustSummoned(Creature* summoned)
{
- summoned->GetMotionMaster()->MovePoint(m_creature->GetEntry(),m_creature->GetPositionX(),m_creature->GetPositionY(),m_creature->GetPositionZ());
+ summoned->GetMotionMaster()->MovePoint(0,m_creature->GetPositionX(),m_creature->GetPositionY(),m_creature->GetPositionZ());
}
};
@@ -234,13 +224,13 @@ struct npc_anub_ar_skirmisherAI : public ScriptedAI
{
npc_anub_ar_skirmisherAI(Creature *c) : ScriptedAI(c) {}
- uint32 ChargeTimer;
- uint32 BackstabTimer;
+ uint32 uiChargeTimer;
+ uint32 uiBackstabTimer;
void Reset()
{
- ChargeTimer = 11000;
- BackstabTimer = 7000;
+ uiChargeTimer = 11*IN_MILISECONDS;
+ uiBackstabTimer = 7*IN_MILISECONDS;
}
void UpdateAI(const uint32 diff)
@@ -248,7 +238,7 @@ struct npc_anub_ar_skirmisherAI : public ScriptedAI
if (!UpdateVictim())
return;
- if (ChargeTimer <= diff)
+ if (uiChargeTimer <= diff)
{
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
{
@@ -256,15 +246,14 @@ struct npc_anub_ar_skirmisherAI : public ScriptedAI
m_creature->AddThreat(pTarget,1.0f);
DoCast(pTarget, SPELL_CHARGE, true);
}
+ uiChargeTimer = 15*IN_MILISECONDS;
+ } else uiChargeTimer -= diff;
- ChargeTimer = 15000;
- } else ChargeTimer -= diff;
-
- if (BackstabTimer <= diff)
+ if (uiBackstabTimer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_BACKSTAB);
- BackstabTimer = 12000;
- } else BackstabTimer -= diff;
+ uiBackstabTimer = 12*IN_MILISECONDS;
+ } else uiBackstabTimer -= diff;
DoMeleeAttackIfReady();
@@ -275,13 +264,13 @@ struct npc_anub_ar_shadowcasterAI : public ScriptedAI
{
npc_anub_ar_shadowcasterAI(Creature *c) : ScriptedAI(c) {}
- uint32 ShadowBoltTimer;
- uint32 ShadowNovaTimer;
+ uint32 uiShadowBoltTimer;
+ uint32 uiShadowNovaTimer;
void Reset()
{
- ShadowBoltTimer = 6000;
- ShadowNovaTimer = 15000;
+ uiShadowBoltTimer = 6*IN_MILISECONDS;
+ uiShadowNovaTimer = 15*IN_MILISECONDS;
}
void UpdateAI(const uint32 diff)
@@ -289,18 +278,18 @@ struct npc_anub_ar_shadowcasterAI : public ScriptedAI
if (!UpdateVictim())
return;
- if (ShadowBoltTimer <= diff)
+ if (uiShadowBoltTimer <= diff)
{
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget, DUNGEON_MODE(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT), true);
- ShadowBoltTimer = 15000;
- } else ShadowBoltTimer -= diff;
+ uiShadowBoltTimer = 15*IN_MILISECONDS;
+ } else uiShadowBoltTimer -= diff;
- if (ShadowNovaTimer <= diff)
+ if (uiShadowNovaTimer <= diff)
{
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SHADOW_NOVA, H_SPELL_SHADOW_NOVA), true);
- ShadowNovaTimer = 17000;
- } else ShadowNovaTimer -= diff;
+ uiShadowNovaTimer = 17*IN_MILISECONDS;
+ } else uiShadowNovaTimer -= diff;
DoMeleeAttackIfReady();
}
@@ -310,13 +299,13 @@ struct npc_anub_ar_warriorAI : public ScriptedAI
{
npc_anub_ar_warriorAI(Creature *c) : ScriptedAI(c){}
- uint32 CleaveTimer;
- uint32 StrikeTimer;
+ uint32 uiCleaveTimer;
+ uint32 uiStrikeTimer;
void Reset()
{
- CleaveTimer = 11000;
- StrikeTimer = 6000;
+ uiCleaveTimer = 11*IN_MILISECONDS;
+ uiStrikeTimer = 6*IN_MILISECONDS;
}
void UpdateAI(const uint32 diff)
@@ -324,17 +313,17 @@ struct npc_anub_ar_warriorAI : public ScriptedAI
if (!UpdateVictim())
return;
- if (StrikeTimer <= diff)
+ if (uiStrikeTimer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_STRIKE, true);
- StrikeTimer = 15000;
- } else StrikeTimer -= diff;
+ uiStrikeTimer = 15*IN_MILISECONDS;
+ } else uiStrikeTimer -= diff;
- if (CleaveTimer <= diff)
+ if (uiCleaveTimer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_CLEAVE, true);
- CleaveTimer = 17000;
- } else CleaveTimer -= diff;
+ uiCleaveTimer = 17*IN_MILISECONDS;
+ } else uiCleaveTimer -= diff;
DoMeleeAttackIfReady();
@@ -346,13 +335,13 @@ struct npc_watcher_gashraAI : public ScriptedAI
{
npc_watcher_gashraAI(Creature *c) : ScriptedAI(c) {}
- uint32 WebWrapTimer;
- uint32 InfectedBiteTimer;
+ uint32 uiWebWrapTimer;
+ uint32 uiInfectedBiteTimer;
void Reset()
{
- WebWrapTimer = 11000;
- InfectedBiteTimer = 4000;
+ uiWebWrapTimer = 11*IN_MILISECONDS;
+ uiInfectedBiteTimer = 4*IN_MILISECONDS;
}
void EnterCombat(Unit* who)
@@ -365,18 +354,18 @@ struct npc_watcher_gashraAI : public ScriptedAI
if (!UpdateVictim())
return;
- if (WebWrapTimer <= diff)
+ if (uiWebWrapTimer <= diff)
{
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget, SPELL_WEB_WRAP, true);
- WebWrapTimer = 17000;
- } else WebWrapTimer -= diff;
+ uiWebWrapTimer = 17*IN_MILISECONDS;
+ } else uiWebWrapTimer -= diff;
- if (InfectedBiteTimer <= diff)
+ if (uiInfectedBiteTimer <= diff)
{
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_INFECTED_BITE, H_SPELL_INFECTED_BITE), true);
- InfectedBiteTimer = 15000;
- } else InfectedBiteTimer -= diff;
+ uiInfectedBiteTimer = 15*IN_MILISECONDS;
+ } else uiInfectedBiteTimer -= diff;
DoMeleeAttackIfReady();
}
@@ -386,15 +375,15 @@ struct npc_watcher_narjilAI : public ScriptedAI
{
npc_watcher_narjilAI(Creature *c) : ScriptedAI(c) {}
- uint32 WebWrapTimer;
- uint32 InfectedBiteTimer;
- uint32 BlindingWebsTimer;
+ uint32 uiWebWrapTimer;
+ uint32 uiInfectedBiteTimer;
+ uint32 uiBindingWebsTimer;
void Reset()
{
- WebWrapTimer = 11000;
- InfectedBiteTimer = 4000;
- BlindingWebsTimer = 17000;
+ uiWebWrapTimer = 11*IN_MILISECONDS;
+ uiInfectedBiteTimer = 4*IN_MILISECONDS;
+ uiBindingWebsTimer = 17*IN_MILISECONDS;
}
void UpdateAI(const uint32 diff)
@@ -402,24 +391,24 @@ struct npc_watcher_narjilAI : public ScriptedAI
if (!UpdateVictim())
return;
- if (WebWrapTimer <= diff)
+ if (uiWebWrapTimer <= diff)
{
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget, SPELL_WEB_WRAP, true);
- WebWrapTimer = 15000;
- } else WebWrapTimer -= diff;
+ uiWebWrapTimer = 15*IN_MILISECONDS;
+ } else uiWebWrapTimer -= diff;
- if (InfectedBiteTimer <= diff)
+ if (uiInfectedBiteTimer <= diff)
{
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_INFECTED_BITE, H_SPELL_INFECTED_BITE), true);
- InfectedBiteTimer = 11000;
- } else InfectedBiteTimer -= diff;
+ uiInfectedBiteTimer = 11*IN_MILISECONDS;
+ } else uiInfectedBiteTimer -= diff;
- if (BlindingWebsTimer <= diff)
+ if (uiBindingWebsTimer <= diff)
{
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_BLINDING_WEBS, H_SPELL_BLINDING_WEBS), true);
- BlindingWebsTimer = 17000;
- } else BlindingWebsTimer -= diff;
+ uiBindingWebsTimer = 17*IN_MILISECONDS;
+ } else uiBindingWebsTimer -= diff;
DoMeleeAttackIfReady();
}
@@ -429,15 +418,15 @@ struct npc_watcher_silthikAI : public ScriptedAI
{
npc_watcher_silthikAI(Creature *c) : ScriptedAI(c) {}
- uint32 WebWrapTimer;
- uint32 InfectedBiteTimer;
- uint32 PosionSprayTimer;
+ uint32 uiWebWrapTimer;
+ uint32 uiInfectedBiteTimer;
+ uint32 uiPoisonSprayTimer;
void Reset()
{
- WebWrapTimer = 11000;
- InfectedBiteTimer = 4000;
- PosionSprayTimer = 15000;
+ uiWebWrapTimer = 11*IN_MILISECONDS;
+ uiInfectedBiteTimer = 4*IN_MILISECONDS;
+ uiPoisonSprayTimer = 15*IN_MILISECONDS;
}
void UpdateAI(const uint32 diff)
@@ -445,25 +434,25 @@ struct npc_watcher_silthikAI : public ScriptedAI
if (!UpdateVictim())
return;
- if (WebWrapTimer <= diff)
+ if (uiWebWrapTimer <= diff)
{
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget, SPELL_WEB_WRAP, true);
- WebWrapTimer = 15000;
- } else WebWrapTimer -= diff;
+ uiWebWrapTimer = 15*IN_MILISECONDS;
+ } else uiWebWrapTimer -= diff;
- if (InfectedBiteTimer <= diff)
+ if (uiInfectedBiteTimer <= diff)
{
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_INFECTED_BITE, H_SPELL_INFECTED_BITE), true);
- InfectedBiteTimer = 15000;
- } else InfectedBiteTimer -= diff;
+ uiInfectedBiteTimer = 15*IN_MILISECONDS;
+ } else uiInfectedBiteTimer -= diff;
- if (PosionSprayTimer <= diff)
+ if (uiPoisonSprayTimer <= diff)
{
DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_POSION_SPRAY, H_SPELL_POSION_SPRAY), true);
- PosionSprayTimer = 17000;
- } else PosionSprayTimer -= diff;
+ uiPoisonSprayTimer = 17*IN_MILISECONDS;
+ } else uiPoisonSprayTimer -= diff;
DoMeleeAttackIfReady();
diff --git a/src/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp b/src/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp
index 8f80d0cc4d0..bf322e8b392 100644
--- a/src/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp
+++ b/src/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 Trinity <http://www.trinitycore.org/>
+ * Copyright (C) 2009 - 2010 TrinityCore <http://www.trinitycore.org/>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -16,13 +16,6 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-/* ScriptData
-SDName: Instance_Azjol_Nerub
-SD%Complete: 0
-SDComment: Placeholder
-SDCategory: Azjol Nerub
-EndScriptData */
-
#include "ScriptedPch.h"
#include "azjol_nerub.h"
@@ -38,34 +31,34 @@ struct instance_azjol_nerub : public ScriptedInstance
{
instance_azjol_nerub(Map* pMap) : ScriptedInstance(pMap) {Initialize();};
- uint64 m_uiKrikthir;
- uint64 m_uiHadronox;
- uint64 m_uiAnubarak;
- uint64 m_uiWatcherGashra;
- uint64 m_uiWatcherSilthik;
- uint64 m_uiWatcherNarjil;
+ uint64 uiKrikthir;
+ uint64 uiHadronox;
+ uint64 uiAnubarak;
+ uint64 uiWatcherGashra;
+ uint64 uiWatcherSilthik;
+ uint64 uiWatcherNarjil;
- uint64 m_uiKrikthirDoor;
+ uint64 uiKrikthirDoor;
- uint32 m_auiEncounter[MAX_ENCOUNTER];
+ uint32 auiEncounter[MAX_ENCOUNTER];
void Initialize()
{
- memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
-
- m_uiKrikthir = 0;
- m_uiHadronox = 0;
- m_uiAnubarak = 0;
- m_uiWatcherGashra = 0;
- m_uiWatcherSilthik = 0;
- m_uiWatcherNarjil = 0;
- m_uiKrikthirDoor = 0;
+ memset(&auiEncounter, 0, sizeof(auiEncounter));
+
+ uiKrikthir = 0;
+ uiHadronox = 0;
+ uiAnubarak = 0;
+ uiWatcherGashra = 0;
+ uiWatcherSilthik = 0;
+ uiWatcherNarjil = 0;
+ uiKrikthirDoor = 0;
}
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS) return true;
+ if (auiEncounter[i] == IN_PROGRESS) return true;
return false;
}
@@ -74,12 +67,12 @@ struct instance_azjol_nerub : public ScriptedInstance
{
switch(pCreature->GetEntry())
{
- case 28684: m_uiKrikthir = pCreature->GetGUID(); break;
- case 28921: m_uiHadronox = pCreature->GetGUID(); break;
- case 29120: m_uiAnubarak = pCreature->GetGUID(); break;
- case 28730: m_uiWatcherGashra = pCreature->GetGUID(); break;
- case 28731: m_uiWatcherSilthik = pCreature->GetGUID(); break;
- case 28729: m_uiWatcherNarjil = pCreature->GetGUID(); break;
+ case 28684: uiKrikthir = pCreature->GetGUID(); break;
+ case 28921: uiHadronox = pCreature->GetGUID(); break;
+ case 29120: uiAnubarak = pCreature->GetGUID(); break;
+ case 28730: uiWatcherGashra = pCreature->GetGUID(); break;
+ case 28731: uiWatcherSilthik = pCreature->GetGUID(); break;
+ case 28729: uiWatcherNarjil = pCreature->GetGUID(); break;
}
}
@@ -88,8 +81,8 @@ struct instance_azjol_nerub : public ScriptedInstance
switch (pGo->GetEntry())
{
case 192395:
- m_uiKrikthirDoor = pGo->GetGUID();
- if (m_auiEncounter[0] == DONE)
+ uiKrikthirDoor = pGo->GetGUID();
+ if (auiEncounter[0] == DONE)
HandleGameObject(NULL,true,pGo);
break;
}
@@ -99,12 +92,12 @@ struct instance_azjol_nerub : public ScriptedInstance
{
switch(identifier)
{
- case DATA_KRIKTHIR_THE_GATEWATCHER: return m_uiKrikthir;
- case DATA_HADRONOX: return m_uiHadronox;
- case DATA_ANUBARAK: return m_uiAnubarak;
- case DATA_WATCHER_GASHRA: return m_uiWatcherGashra;
- case DATA_WATCHER_SILTHIK: return m_uiWatcherSilthik;
- case DATA_WATCHER_NARJIL: return m_uiWatcherNarjil;
+ case DATA_KRIKTHIR_THE_GATEWATCHER: return uiKrikthir;
+ case DATA_HADRONOX: return uiHadronox;
+ case DATA_ANUBARAK: return uiAnubarak;
+ case DATA_WATCHER_GASHRA: return uiWatcherGashra;
+ case DATA_WATCHER_SILTHIK: return uiWatcherSilthik;
+ case DATA_WATCHER_NARJIL: return uiWatcherNarjil;
}
return 0;
@@ -115,14 +108,14 @@ struct instance_azjol_nerub : public ScriptedInstance
switch(type)
{
case DATA_KRIKTHIR_THE_GATEWATCHER_EVENT:
- m_auiEncounter[0] = data;
+ auiEncounter[0] = data;
if (data == DONE)
- HandleGameObject(m_uiKrikthirDoor,true);
+ HandleGameObject(uiKrikthirDoor,true);
break;
case DATA_HADRONOX_EVENT:
- m_auiEncounter[1] = data; break;
+ auiEncounter[1] = data; break;
case DATA_ANUBARAK_EVENT:
- m_auiEncounter[2] = data; break;
+ auiEncounter[2] = data; break;
}
if (data == DONE)
@@ -135,9 +128,9 @@ struct instance_azjol_nerub : public ScriptedInstance
{
switch(type)
{
- case DATA_KRIKTHIR_THE_GATEWATCHER_EVENT: return m_auiEncounter[0];
- case DATA_HADRONOX_EVENT: return m_auiEncounter[1];
- case DATA_ANUBARAK_EVENT: return m_auiEncounter[2];
+ case DATA_KRIKTHIR_THE_GATEWATCHER_EVENT: return auiEncounter[0];
+ case DATA_HADRONOX_EVENT: return auiEncounter[1];
+ case DATA_ANUBARAK_EVENT: return auiEncounter[2];
}
return 0;
@@ -147,16 +140,12 @@ struct instance_azjol_nerub : public ScriptedInstance
{
OUT_SAVE_INST_DATA;
- std::string str_data;
-
std::ostringstream saveStream;
- saveStream << "A N " << m_auiEncounter[0] << " " << m_auiEncounter[1] << " "
- << m_auiEncounter[2];
-
- str_data = saveStream.str();
+ saveStream << "A N " << auiEncounter[0] << " " << auiEncounter[1] << " "
+ << auiEncounter[2];
OUT_SAVE_INST_DATA_COMPLETE;
- return str_data;
+ return saveStream.str();
}
void Load(const char* in)
@@ -177,13 +166,13 @@ struct instance_azjol_nerub : public ScriptedInstance
if (dataHead1 == 'A' && dataHead2 == 'N')
{
- m_auiEncounter[0] = data0;
- m_auiEncounter[1] = data1;
- m_auiEncounter[2] = data2;
+ auiEncounter[0] = data0;
+ auiEncounter[1] = data1;
+ auiEncounter[2] = data2;
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- if (m_auiEncounter[i] == IN_PROGRESS)
- m_auiEncounter[i] = NOT_STARTED;
+ if (auiEncounter[i] == IN_PROGRESS)
+ auiEncounter[i] = NOT_STARTED;
} else OUT_LOAD_INST_DATA_FAIL;
diff --git a/src/scripts/northrend/draktharon_keep/drak_tharon_keep.h b/src/scripts/northrend/draktharon_keep/drak_tharon_keep.h
index 6d343f34232..597971d17dd 100644
--- a/src/scripts/northrend/draktharon_keep/drak_tharon_keep.h
+++ b/src/scripts/northrend/draktharon_keep/drak_tharon_keep.h
@@ -1,5 +1,5 @@
/*
-* Copyright (C) 2008-2010 Trinity <http://www.trinitycore.org/>
+* Copyright (C) 2008 - 2010 TrinityCore <http://www.trinitycore.org/>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by