diff options
author | Tartalo <none@none> | 2010-03-23 22:34:31 +0100 |
---|---|---|
committer | Tartalo <none@none> | 2010-03-23 22:34:31 +0100 |
commit | 29201cf68752c34484fb31d8aa299201389bb6ea (patch) | |
tree | 69a6e31402d88932a917c476fb42638fce73541a | |
parent | 72c3c4696b2d4215245e96c919b857f908c5b4a3 (diff) |
Azjol Nerub, Ahn'Kahet: cleanup
--HG--
branch : trunk
5 files changed, 217 insertions, 222 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(); |