diff options
Diffstat (limited to 'src')
103 files changed, 455 insertions, 537 deletions
diff --git a/src/bindings/scripts/include/sc_creature.cpp b/src/bindings/scripts/include/sc_creature.cpp index bb4d3e68888..565eb76cfae 100644 --- a/src/bindings/scripts/include/sc_creature.cpp +++ b/src/bindings/scripts/include/sc_creature.cpp @@ -87,7 +87,8 @@ ScriptedAI::ScriptedAI(Creature* pCreature) : CreatureAI(pCreature), m_bCombatMovement(true), m_uiEvadeCheckCooldown(2500) { - HeroicMode = m_creature->GetMap()->IsHeroic(); + m_heroicMode = m_creature->GetMap()->IsHeroic(); + m_difficulty = Difficulty(m_creature->GetMap()->GetSpawnMode()); } void ScriptedAI::AttackStartNoMove(Unit* pWho) diff --git a/src/bindings/scripts/include/sc_creature.h b/src/bindings/scripts/include/sc_creature.h index fdeea02997c..ac6cc4fcba5 100644 --- a/src/bindings/scripts/include/sc_creature.h +++ b/src/bindings/scripts/include/sc_creature.h @@ -43,7 +43,7 @@ class SummonList : public std::list<uint64> struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI { explicit ScriptedAI(Creature* pCreature); - ~ScriptedAI() {} + virtual ~ScriptedAI() {} //************* //CreatureAI Functions @@ -91,8 +91,6 @@ struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI //For fleeing bool IsFleeing; - bool HeroicMode; - //************* //Pure virtual functions //************* @@ -171,14 +169,74 @@ struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI bool EnterEvadeIfOutOfCombatArea(const uint32 uiDiff); + // return true for heroic mode. i.e. + // - for dungeon in mode 10-heroic, + // - for raid in mode 10-Heroic + // - for raid in mode 25-heroic + // DO NOT USE to check raid in mode 25-normal. + bool IsHeroic() { return m_heroicMode; } + + // return the dungeon or raid difficulty + Difficulty getDifficulty() { return m_difficulty; } + + template<class T> inline + const T& DUNGEON_MODE(const T& normal5, const T& heroic10) + { + switch(m_difficulty) + { + case DUNGEON_DIFFICULTY_NORMAL: + return normal5; + case DUNGEON_DIFFICULTY_HEROIC: + return heroic10; + } + + return heroic10; + } + + template<class T> inline + const T& RAID_MODE(const T& normal10, const T& normal25) + { + switch(m_difficulty) + { + case RAID_DIFFICULTY_10MAN_NORMAL: + return normal10; + case RAID_DIFFICULTY_25MAN_NORMAL: + return normal25; + } + + return normal25; + } + + template<class T> inline + const T& RAID_MODE(const T& normal10, const T& normal25, const T& heroic10, const T& heroic25) + { + switch(m_difficulty) + { + case RAID_DIFFICULTY_10MAN_NORMAL: + return normal10; + case RAID_DIFFICULTY_25MAN_NORMAL: + return normal25; + case RAID_DIFFICULTY_10MAN_HEROIC: + return heroic10; + case RAID_DIFFICULTY_25MAN_HEROIC: + return heroic25; + } + + return heroic25; + } + private: bool m_bCombatMovement; uint32 m_uiEvadeCheckCooldown; + + bool m_heroicMode; + Difficulty m_difficulty; }; struct TRINITY_DLL_DECL Scripted_NoMovementAI : public ScriptedAI { Scripted_NoMovementAI(Creature* creature) : ScriptedAI(creature) {} + virtual ~Scripted_NoMovementAI() {} //Called at each attack of m_creature by any victim void AttackStart(Unit* who); @@ -187,6 +245,7 @@ struct TRINITY_DLL_DECL Scripted_NoMovementAI : public ScriptedAI struct TRINITY_DLL_DECL BossAI : public ScriptedAI { BossAI(Creature *c, uint32 id); + virtual ~BossAI() {} const uint32 bossId; EventMap events; diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_felblood_kaelthas.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_felblood_kaelthas.cpp index 6a35f458bf5..48ec974a86b 100644 --- a/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_felblood_kaelthas.cpp +++ b/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_felblood_kaelthas.cpp @@ -80,7 +80,6 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI boss_felblood_kaelthasAI(Creature* c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - Heroic = c->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; @@ -102,7 +101,6 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI // 4 = Applied an aura that allows them to fly, channeling visual, relased Arcane Orbs. bool FirstGravityLapse; - bool Heroic; bool HasTaunted; uint8 Phase; @@ -271,7 +269,7 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI case 0: { // *Heroic mode only: - if (Heroic) + if (IsHeroic()) { if (PyroblastTimer <= diff) { @@ -285,7 +283,7 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI if (FireballTimer <= diff) { - DoCast(m_creature->getVictim(), Heroic ? SPELL_FIREBALL_HEROIC : SPELL_FIREBALL_NORMAL); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_FIREBALL_NORMAL, SPELL_FIREBALL_HEROIC)); FireballTimer = urand(2000,6000); } else FireballTimer -= diff; @@ -421,11 +419,9 @@ struct TRINITY_DLL_DECL mob_felkael_flamestrikeAI : public ScriptedAI { mob_felkael_flamestrikeAI(Creature *c) : ScriptedAI(c) { - Heroic = c->GetMap()->IsHeroic(); } uint32 FlameStrikeTimer; - bool Heroic; void Reset() { @@ -443,7 +439,7 @@ struct TRINITY_DLL_DECL mob_felkael_flamestrikeAI : public ScriptedAI { if (FlameStrikeTimer <= diff) { - DoCast(m_creature, Heroic ? SPELL_FLAMESTRIKE1_HEROIC : SPELL_FLAMESTRIKE1_NORMAL, true); + DoCast(m_creature, DUNGEON_MODE(SPELL_FLAMESTRIKE1_NORMAL, SPELL_FLAMESTRIKE1_HEROIC), true); m_creature->Kill(m_creature); } else FlameStrikeTimer -= diff; } diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_priestess_delrissa.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_priestess_delrissa.cpp index 2a92b19166c..2c76872176c 100644 --- a/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_priestess_delrissa.cpp +++ b/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_priestess_delrissa.cpp @@ -90,13 +90,11 @@ struct TRINITY_DLL_DECL boss_priestess_delrissaAI : public ScriptedAI boss_priestess_delrissaAI(Creature* c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - Heroic = c->GetMap()->IsHeroic(); memset(&m_auiLackeyGUID, 0, sizeof(m_auiLackeyGUID)); LackeyEntryList.clear(); } ScriptedInstance* pInstance; - bool Heroic; std::vector<uint32> LackeyEntryList; uint64 m_auiLackeyGUID[MAX_ACTIVE_LACKEY]; @@ -269,7 +267,7 @@ struct TRINITY_DLL_DECL boss_priestess_delrissaAI : public ScriptedAI if (pAdd->isAlive()) pTarget = pAdd; - DoCast(pTarget, Heroic ? SPELL_RENEW_HEROIC : SPELL_RENEW_NORMAL); + DoCast(pTarget, DUNGEON_MODE(SPELL_RENEW_NORMAL, SPELL_RENEW_HEROIC)); RenewTimer = 5000; } else RenewTimer -= diff; @@ -314,7 +312,7 @@ struct TRINITY_DLL_DECL boss_priestess_delrissaAI : public ScriptedAI if (SWPainTimer <= diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, Heroic ? SPELL_SW_PAIN_HEROIC : SPELL_SW_PAIN_NORMAL); + DoCast(pTarget, DUNGEON_MODE(SPELL_SW_PAIN_NORMAL, SPELL_SW_PAIN_HEROIC)); SWPainTimer = 10000; } else SWPainTimer -= diff; diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_selin_fireheart.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_selin_fireheart.cpp index d9fb4c5e7ce..e9223432811 100644 --- a/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_selin_fireheart.cpp +++ b/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_selin_fireheart.cpp @@ -67,11 +67,9 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI Crystals.push_back(guid); } } - Heroic = c->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; - bool Heroic; std::list<uint64> Crystals; @@ -246,7 +244,7 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI } else DrainLifeTimer -= diff; // Heroic only - if (Heroic) + if (IsHeroic()) { if (DrainManaTimer <= diff) { @@ -272,8 +270,10 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI if (DrainCrystalTimer <= diff) { SelectNearestCrystal(); - if (Heroic) DrainCrystalTimer = 10000 + rand()%5000; - else DrainCrystalTimer = 20000 + rand()%5000; + if (IsHeroic()) + DrainCrystalTimer = 10000 + rand()%5000; + else + DrainCrystalTimer = 20000 + rand()%5000; } else DrainCrystalTimer -= diff; } diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_vexallus.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_vexallus.cpp index c4159937aca..73569237e74 100644 --- a/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_vexallus.cpp +++ b/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_vexallus.cpp @@ -62,11 +62,9 @@ struct TRINITY_DLL_DECL boss_vexallusAI : public ScriptedAI boss_vexallusAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - Heroic = c->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; - bool Heroic; uint32 ChainLightningTimer; uint32 ArcaneShockTimer; @@ -136,7 +134,7 @@ struct TRINITY_DLL_DECL boss_vexallusAI : public ScriptedAI DoScriptText(SAY_ENERGY, m_creature); DoScriptText(EMOTE_DISCHARGE_ENERGY, m_creature); - if (Heroic) + if (IsHeroic()) { DoCast(m_creature, H_SPELL_SUMMON_PURE_ENERGY1, false); DoCast(m_creature, H_SPELL_SUMMON_PURE_ENERGY2, false); @@ -147,14 +145,14 @@ struct TRINITY_DLL_DECL boss_vexallusAI : public ScriptedAI //below are workaround summons, remove when summoning spells w/implicitTarget 73 implemented in Mangos m_creature->SummonCreature(NPC_PURE_ENERGY, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0); - if (Heroic) + if (IsHeroic()) m_creature->SummonCreature(NPC_PURE_ENERGY, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0); } if (ChainLightningTimer <= diff) { if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) - DoCast(pTarget, Heroic ? SPELL_H_CHAIN_LIGHTNING : SPELL_CHAIN_LIGHTNING); + DoCast(pTarget, DUNGEON_MODE(SPELL_CHAIN_LIGHTNING, SPELL_H_CHAIN_LIGHTNING)); ChainLightningTimer = 8000; } else ChainLightningTimer -= diff; @@ -163,7 +161,7 @@ struct TRINITY_DLL_DECL boss_vexallusAI : public ScriptedAI { if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) if (pTarget) - DoCast(pTarget, Heroic ? SPELL_H_ARCANE_SHOCK : SPELL_ARCANE_SHOCK); + DoCast(pTarget, DUNGEON_MODE(SPELL_ARCANE_SHOCK, SPELL_H_ARCANE_SHOCK)); ArcaneShockTimer = 8000; } else ArcaneShockTimer -= diff; diff --git a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/culling_of_stratholme/boss_epoch.cpp b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/culling_of_stratholme/boss_epoch.cpp index a8d5c40da9d..082380ac03f 100644 --- a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/culling_of_stratholme/boss_epoch.cpp +++ b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/culling_of_stratholme/boss_epoch.cpp @@ -116,7 +116,7 @@ struct TRINITY_DLL_DECL boss_epochAI : public ScriptedAI if (uiWoundingStrikeTimer < diff) { - DoCastVictim(HEROIC(SPELL_WOUNDING_STRIKE, H_SPELL_WOUNDING_STRIKE)); + DoCastVictim(DUNGEON_MODE(SPELL_WOUNDING_STRIKE, H_SPELL_WOUNDING_STRIKE)); uiWoundingStrikeTimer = 5300; } else uiWoundingStrikeTimer -= diff; diff --git a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/culling_of_stratholme/boss_mal_ganis.cpp b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/culling_of_stratholme/boss_mal_ganis.cpp index f8bc418f1fc..2ade53360dd 100644 --- a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/culling_of_stratholme/boss_mal_ganis.cpp +++ b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/culling_of_stratholme/boss_mal_ganis.cpp @@ -156,14 +156,14 @@ struct TRINITY_DLL_DECL boss_mal_ganisAI : public ScriptedAI if (uiCarrionSwarmTimer < diff) { - DoCastVictim(HEROIC(SPELL_CARRION_SWARM,H_SPELL_CARRION_SWARM)); + DoCastVictim(DUNGEON_MODE(SPELL_CARRION_SWARM,H_SPELL_CARRION_SWARM)); uiCarrionSwarmTimer = 7000; } else uiCarrionSwarmTimer -= diff; if (uiMindBlastTimer < diff) { if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(SPELL_MIND_BLAST, H_SPELL_MIND_BLAST)); + DoCast(pTarget, DUNGEON_MODE(SPELL_MIND_BLAST, H_SPELL_MIND_BLAST)); } else uiMindBlastTimer -= diff; if (uiVampiricTouchTimer < diff) @@ -175,7 +175,7 @@ struct TRINITY_DLL_DECL boss_mal_ganisAI : public ScriptedAI if (uiSleepTimer < diff) { if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(SPELL_SLEEP, H_SPELL_SLEEP)); + DoCast(pTarget, DUNGEON_MODE(SPELL_SLEEP, H_SPELL_SLEEP)); uiSleepTimer = urand(15000,20000); } else uiSleepTimer -= diff; diff --git a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/culling_of_stratholme/boss_meathook.cpp b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/culling_of_stratholme/boss_meathook.cpp index c69d29f9235..2fdc9302370 100644 --- a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/culling_of_stratholme/boss_meathook.cpp +++ b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/culling_of_stratholme/boss_meathook.cpp @@ -87,7 +87,7 @@ struct TRINITY_DLL_DECL boss_meathookAI : public ScriptedAI if (uiDiseaseTimer <= diff) { - DoCastAOE(HEROIC(SPELL_DISEASE_EXPULSION,H_SPELL_DISEASE_EXPULSION)); + DoCastAOE(DUNGEON_MODE(SPELL_DISEASE_EXPULSION,H_SPELL_DISEASE_EXPULSION)); uiDiseaseTimer = urand(1500,4000); } else uiDiseaseTimer -= diff; @@ -100,7 +100,7 @@ struct TRINITY_DLL_DECL boss_meathookAI : public ScriptedAI if (uiChainTimer <= diff) { if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(SPELL_CONSTRICTING_CHAINS, H_SPELL_CONSTRICTING_CHAINS)); //anyone but the tank + DoCast(pTarget, DUNGEON_MODE(SPELL_CONSTRICTING_CHAINS, H_SPELL_CONSTRICTING_CHAINS)); //anyone but the tank uiChainTimer = urand(2000,4000); } else uiChainTimer -= diff; diff --git a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/culling_of_stratholme/boss_salramm.cpp b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/culling_of_stratholme/boss_salramm.cpp index dfb85910fbf..b6a26118a8f 100644 --- a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/culling_of_stratholme/boss_salramm.cpp +++ b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/culling_of_stratholme/boss_salramm.cpp @@ -113,7 +113,7 @@ struct TRINITY_DLL_DECL boss_salrammAI : public ScriptedAI if (Shadow_bolt_Timer <= diff) { if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) - DoCast(pTarget, HEROIC(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT)); + DoCast(pTarget, DUNGEON_MODE(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT)); Shadow_bolt_Timer = urand(8000,12000); } else Shadow_bolt_Timer -= diff; diff --git a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/boss_aeonus.cpp b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/boss_aeonus.cpp index d8afba8ce5a..82b1d92ac28 100644 --- a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/boss_aeonus.cpp +++ b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/boss_aeonus.cpp @@ -46,11 +46,9 @@ struct TRINITY_DLL_DECL boss_aeonusAI : public ScriptedAI boss_aeonusAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = m_creature->GetMap()->IsHeroic(); } ScriptedInstance *pInstance; - bool HeroicMode; uint32 SandBreath_Timer; uint32 TimeStop_Timer; @@ -108,7 +106,7 @@ struct TRINITY_DLL_DECL boss_aeonusAI : public ScriptedAI //Sand Breath if (SandBreath_Timer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_SAND_BREATH, H_SPELL_SAND_BREATH)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SAND_BREATH, H_SPELL_SAND_BREATH)); SandBreath_Timer = 15000+rand()%10000; } else SandBreath_Timer -= diff; diff --git a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp index 43e04ef83c9..3dbbb57a7db 100644 --- a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp +++ b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp @@ -46,11 +46,9 @@ struct TRINITY_DLL_DECL boss_chrono_lord_dejaAI : public ScriptedAI boss_chrono_lord_dejaAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); } ScriptedInstance *pInstance; - bool HeroicMode; uint32 ArcaneBlast_Timer; uint32 TimeLapse_Timer; @@ -107,7 +105,7 @@ struct TRINITY_DLL_DECL boss_chrono_lord_dejaAI : public ScriptedAI //Arcane Blast if (ArcaneBlast_Timer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_ARCANE_BLAST, H_SPELL_ARCANE_BLAST)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_ARCANE_BLAST, H_SPELL_ARCANE_BLAST)); ArcaneBlast_Timer = 15000+rand()%10000; } else ArcaneBlast_Timer -= diff; @@ -115,7 +113,7 @@ struct TRINITY_DLL_DECL boss_chrono_lord_dejaAI : public ScriptedAI if (ArcaneDischarge_Timer <= diff) { Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0); - DoCast(pTarget, HEROIC(SPELL_ARCANE_DISCHARGE, H_SPELL_ARCANE_DISCHARGE)); + DoCast(pTarget, DUNGEON_MODE(SPELL_ARCANE_DISCHARGE, H_SPELL_ARCANE_DISCHARGE)); ArcaneDischarge_Timer = 20000+rand()%10000; } else ArcaneDischarge_Timer -= diff; @@ -127,7 +125,7 @@ struct TRINITY_DLL_DECL boss_chrono_lord_dejaAI : public ScriptedAI TimeLapse_Timer = 15000+rand()%10000; } else TimeLapse_Timer -= diff; - if (HeroicMode) + if (IsHeroic()) { if (Attraction_Timer <= diff) { diff --git a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/boss_temporus.cpp b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/boss_temporus.cpp index 4ce7554cde9..a92a0e076fe 100644 --- a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/boss_temporus.cpp +++ b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/boss_temporus.cpp @@ -45,11 +45,9 @@ struct TRINITY_DLL_DECL boss_temporusAI : public ScriptedAI boss_temporusAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); } ScriptedInstance *pInstance; - bool HeroicMode; uint32 Haste_Timer; uint32 SpellReflection_Timer; @@ -121,11 +119,11 @@ struct TRINITY_DLL_DECL boss_temporusAI : public ScriptedAI //Wing ruffet if (WingBuffet_Timer <= diff) { - DoCast(m_creature, HEROIC(SPELL_WING_BUFFET, H_SPELL_WING_BUFFET)); + DoCast(m_creature, DUNGEON_MODE(SPELL_WING_BUFFET, H_SPELL_WING_BUFFET)); WingBuffet_Timer = 20000+rand()%10000; } else WingBuffet_Timer -= diff; - if (HeroicMode) + if (IsHeroic()) { if (SpellReflection_Timer <= diff) { diff --git a/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_elder_nadox.cpp b/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_elder_nadox.cpp index 7059b393502..f6a25457e3d 100644 --- a/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_elder_nadox.cpp +++ b/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_elder_nadox.cpp @@ -58,10 +58,8 @@ struct TRINITY_DLL_DECL boss_elder_nadoxAI : public ScriptedAI boss_elder_nadoxAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); } - bool HeroicMode; uint32 plague_Timer; uint32 rage_Timer; @@ -106,7 +104,7 @@ struct TRINITY_DLL_DECL boss_elder_nadoxAI : public ScriptedAI { DoScriptText(SAY_SLAY_3,m_creature); //SAY_SLAY_3 on death? - if (HeroicMode && !DeadAhnkaharGuardian) + if (IsHeroic() && !DeadAhnkaharGuardian) { AchievementEntry const *AchievRespectYourElders = GetAchievementStore()->LookupEntry(ACHIEVEMENT_RESPECT_YOUR_ELDERS); if (AchievRespectYourElders) @@ -132,11 +130,11 @@ struct TRINITY_DLL_DECL boss_elder_nadoxAI : public ScriptedAI if (plague_Timer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_BROOD_PLAGUE, H_SPELL_BROOD_PLAGUE)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_BROOD_PLAGUE, H_SPELL_BROOD_PLAGUE)); plague_Timer = 15000; } else plague_Timer -= diff; - if (HeroicMode) + if (IsHeroic()) if (rage_Timer <= diff) { Unit* Swarmer = m_creature->FindNearestCreature(MOB_AHNKAHAR_SWARMER, 35); diff --git a/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp b/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp index f236c472c68..fd568507160 100644 --- a/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp +++ b/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp @@ -97,20 +97,20 @@ struct TRINITY_DLL_DECL boss_volazjAI : public ScriptedAI if (uiMindFlayTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_MIND_FLAY, H_SPELL_MIND_FLAY)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_MIND_FLAY, H_SPELL_MIND_FLAY)); uiMindFlayTimer = 20000; } else uiMindFlayTimer -= diff; if (uiShadowBoltVolleyTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_SHADOW_BOLT_VOLLEY, H_SPELL_SHADOW_BOLT_VOLLEY)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SHADOW_BOLT_VOLLEY, H_SPELL_SHADOW_BOLT_VOLLEY)); uiShadowBoltVolleyTimer = 5000; } else uiShadowBoltVolleyTimer -= diff; if (uiShiverTimer <= diff) { if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) - DoCast(pTarget, HEROIC(SPELL_SHIVER, H_SPELL_SHIVER)); + DoCast(pTarget, DUNGEON_MODE(SPELL_SHIVER, H_SPELL_SHIVER)); uiShiverTimer = 15000; } else uiShiverTimer -= diff; @@ -128,7 +128,7 @@ struct TRINITY_DLL_DECL boss_volazjAI : public ScriptedAI AchievementEntry const *AchievQuickDemise = GetAchievementStore()->LookupEntry(ACHIEVEMENT_QUICK_DEMISE); Map* pMap = m_creature->GetMap(); - if (HeroicMode && uiEncounterTimer < 120000 && pMap && pMap->IsDungeon() && AchievQuickDemise) + if (IsHeroic() && uiEncounterTimer < 120000 && pMap && pMap->IsDungeon() && AchievQuickDemise) { Map::PlayerList const &players = pMap->GetPlayers(); for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) diff --git a/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_jedoga_shadowseeker.cpp b/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_jedoga_shadowseeker.cpp index f3c71ab2605..f8dc9ae93e6 100644 --- a/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_jedoga_shadowseeker.cpp +++ b/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_jedoga_shadowseeker.cpp @@ -303,14 +303,14 @@ struct TRINITY_DLL_DECL boss_jedoga_shadowseekerAI : public ScriptedAI if (uiCycloneTimer <= diff) { - DoCast(m_creature, HEROIC(SPELL_CYCLONE_STRIKE, SPELL_CYCLONE_STRIKE_H), false); + DoCast(m_creature, DUNGEON_MODE(SPELL_CYCLONE_STRIKE, SPELL_CYCLONE_STRIKE_H), false); uiCycloneTimer = urand(15000,30000); } else uiCycloneTimer -= diff; if (uiBoltTimer <= diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - m_creature->CastSpell(pTarget, HEROIC(SPELL_LIGHTNING_BOLT, SPELL_LIGHTNING_BOLT_H), false); + m_creature->CastSpell(pTarget, DUNGEON_MODE(SPELL_LIGHTNING_BOLT, SPELL_LIGHTNING_BOLT_H), false); uiBoltTimer = urand(15000,30000); } else uiBoltTimer -= diff; @@ -318,7 +318,7 @@ struct TRINITY_DLL_DECL boss_jedoga_shadowseekerAI : public ScriptedAI if (uiThunderTimer <= diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - m_creature->CastSpell(pTarget, HEROIC(SPELL_THUNDERSHOCK, SPELL_THUNDERSHOCK_H), false); + m_creature->CastSpell(pTarget, DUNGEON_MODE(SPELL_THUNDERSHOCK, SPELL_THUNDERSHOCK_H), false); uiThunderTimer = urand(15000,30000); } else uiThunderTimer -= diff; diff --git a/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_prince_taldaram.cpp b/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_prince_taldaram.cpp index 7e2234e6672..e4e6b90d555 100644 --- a/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_prince_taldaram.cpp +++ b/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_prince_taldaram.cpp @@ -148,7 +148,7 @@ struct TRINITY_DLL_DECL boss_taldaramAI : public ScriptedAI y = pSpheres[0]->GetPositionY() + DATA_SPHERE_DISTANCE * sin(angle); pSpheres[0]->GetMotionMaster()->MovePoint(0, x, y, pSpheres[0]->GetPositionZ()); } - if (HeroicMode) + 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); @@ -183,7 +183,7 @@ struct TRINITY_DLL_DECL boss_taldaramAI : public ScriptedAI break; case VANISHED: if(pEmbraceTarget) - DoCast(pEmbraceTarget, HEROIC(SPELL_EMBRACE_OF_THE_VAMPYR, H_SPELL_EMBRACE_OF_THE_VAMPYR)); + DoCast(pEmbraceTarget, DUNGEON_MODE(SPELL_EMBRACE_OF_THE_VAMPYR, H_SPELL_EMBRACE_OF_THE_VAMPYR)); m_creature->GetMotionMaster()->Clear(); m_creature->SetSpeed(MOVE_WALK, 1.0f, true); m_creature->GetMotionMaster()->MoveChase(m_creature->getVictim()); @@ -247,7 +247,7 @@ struct TRINITY_DLL_DECL boss_taldaramAI : public ScriptedAI if (Phase == FEEDING && pEmbraceTarget && pEmbraceTarget->isAlive()) { uiEmbraceTakenDamage += damage; - if (uiEmbraceTakenDamage > (HeroicMode ? H_DATA_EMBRACE_DMG : DATA_EMBRACE_DMG)) + if (uiEmbraceTakenDamage > DUNGEON_MODE(DATA_EMBRACE_DMG, H_DATA_EMBRACE_DMG)) { Phase = NORMAL; uiPhaseTimer = 0; @@ -268,7 +268,7 @@ struct TRINITY_DLL_DECL boss_taldaramAI : public ScriptedAI //The Party's Over achievement: AchievementEntry const *AchievThePartyIsOver = GetAchievementStore()->LookupEntry(ACHIEVEMENT_THE_PARTY_IS_OVER); Map* pMap = m_creature->GetMap(); - if (pMap && pMap->IsDungeon() && HeroicMode && AchievThePartyIsOver) + if (pMap && pMap->IsDungeon() && IsHeroic() && AchievThePartyIsOver) { Map::PlayerList const &players = pMap->GetPlayers(); if (players.getSize() < 5) @@ -343,7 +343,7 @@ struct TRINITY_DLL_DECL mob_taldaram_flamesphereAI : public ScriptedAI m_creature->SetFloatValue(OBJECT_FIELD_SCALE_X, 1.0f); DoCast(m_creature, SPELL_FLAME_SPHERE_VISUAL); DoCast(m_creature, SPELL_FLAME_SPHERE_SPAWN_EFFECT); - DoCast(m_creature, HEROIC(SPELL_FLAME_SPHERE_PERIODIC, H_SPELL_FLAME_SPHERE_PERIODIC)); + DoCast(m_creature, DUNGEON_MODE(SPELL_FLAME_SPHERE_PERIODIC, H_SPELL_FLAME_SPHERE_PERIODIC)); uiDespawnTimer = 10000; } diff --git a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_anubarak.cpp b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_anubarak.cpp index f4a6b7a7ead..290228a4b57 100644 --- a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_anubarak.cpp +++ b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_anubarak.cpp @@ -145,7 +145,7 @@ struct TRINITY_DLL_DECL boss_anub_arakAI : public ScriptedAI if (SPELL_IMPALE_Timer <= diff) { if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - m_creature->CastSpell(pTarget, HEROIC(SPELL_IMPALE,H_SPELL_IMPALE), true); + m_creature->CastSpell(pTarget, DUNGEON_MODE(SPELL_IMPALE,H_SPELL_IMPALE), true); SPELL_IMPALE_Timer = 9000; } else SPELL_IMPALE_Timer -= diff; @@ -226,7 +226,7 @@ struct TRINITY_DLL_DECL boss_anub_arakAI : public ScriptedAI if (SPELL_POUND_Timer <= diff) { - DoCastVictim(HEROIC(SPELL_POUND, H_SPELL_POUND)); + DoCastVictim(DUNGEON_MODE(SPELL_POUND, H_SPELL_POUND)); SPELL_POUND_Timer = 16500; } else SPELL_POUND_Timer -= diff; } diff --git a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_hadronox.cpp b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_hadronox.cpp index 72269f5b440..0c918cd52c5 100644 --- a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_hadronox.cpp +++ b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_hadronox.cpp @@ -95,7 +95,7 @@ struct TRINITY_DLL_DECL boss_hadronoxAI : public ScriptedAI void KilledUnit(Unit* Victim) { // not sure if this aura check is correct, I think it is though - if (!Victim || !Victim->HasAura(HEROIC(SPELL_LEECH_POISON, SPELL_LEECH_POISON_H)) || !m_creature->isAlive()) + if (!Victim || !Victim->HasAura(DUNGEON_MODE(SPELL_LEECH_POISON, SPELL_LEECH_POISON_H)) || !m_creature->isAlive()) return; uint32 health = (m_creature->GetMaxHealth()/100)*10; @@ -165,7 +165,7 @@ struct TRINITY_DLL_DECL boss_hadronoxAI : public ScriptedAI if (acidtimer <= diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(SPELL_ACID_CLOUD, SPELL_ACID_CLOUD_H)); + DoCast(pTarget, DUNGEON_MODE(SPELL_ACID_CLOUD, SPELL_ACID_CLOUD_H)); acidtimer = urand(20000,30000); } else acidtimer -= diff; @@ -173,7 +173,7 @@ struct TRINITY_DLL_DECL boss_hadronoxAI : public ScriptedAI if (leechtimer <= diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(SPELL_LEECH_POISON, SPELL_LEECH_POISON_H)); + DoCast(pTarget, DUNGEON_MODE(SPELL_LEECH_POISON, SPELL_LEECH_POISON_H)); leechtimer = urand(11000,14000); } else leechtimer -= diff; @@ -181,7 +181,7 @@ struct TRINITY_DLL_DECL boss_hadronoxAI : public ScriptedAI if (grabtimer <= diff) { if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) // Draws all players (and attacking Mobs) to itself. - DoCast(pTarget, HEROIC(SPELL_WEB_GRAB, SPELL_WEB_GRAB_H)); + DoCast(pTarget, DUNGEON_MODE(SPELL_WEB_GRAB, SPELL_WEB_GRAB_H)); grabtimer = urand(15000,30000); } else grabtimer -= diff; diff --git a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp index ded84a23aae..5f828f2c9c0 100644 --- a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp +++ b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp @@ -100,11 +100,9 @@ struct TRINITY_DLL_DECL boss_krik_thirAI : public ScriptedAI boss_krik_thirAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; - bool HeroicMode; uint32 MindFlayTimer; uint32 CurseFatigueTimer; @@ -162,7 +160,7 @@ struct TRINITY_DLL_DECL boss_krik_thirAI : public ScriptedAI if (MindFlayTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_MIND_FLAY, H_SPELL_MIND_FLAY)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_MIND_FLAY, H_SPELL_MIND_FLAY)); MindFlayTimer = 15000; } else MindFlayTimer -= diff; @@ -172,8 +170,8 @@ struct TRINITY_DLL_DECL boss_krik_thirAI : public ScriptedAI Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true); Unit *pTarget_1 = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true); - DoCast(pTarget, HEROIC(SPELL_CURSE_OF_FATIGUE, H_SPELL_CURSE_OF_FATIGUE)); - DoCast(pTarget_1, HEROIC(SPELL_CURSE_OF_FATIGUE, H_SPELL_CURSE_OF_FATIGUE)); + 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; @@ -197,7 +195,7 @@ struct TRINITY_DLL_DECL boss_krik_thirAI : public ScriptedAI 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() && - HeroicMode && pMap && pMap->IsDungeon() && AchievWatchHimDie) + IsHeroic() && pMap && pMap->IsDungeon() && AchievWatchHimDie) { Map::PlayerList const &players = pMap->GetPlayers(); for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) @@ -227,7 +225,7 @@ struct TRINITY_DLL_DECL npc_skittering_infectorAI : public ScriptedAI void JustDied(Unit* killer) { //The spell is not working propperly - DoCast(m_creature->getVictim(),HEROIC(SPELL_ACID_SPLASH, H_SPELL_ACID_SPLASH), true); + DoCast(m_creature->getVictim(),DUNGEON_MODE(SPELL_ACID_SPLASH, H_SPELL_ACID_SPLASH), true); } }; @@ -294,13 +292,13 @@ struct TRINITY_DLL_DECL npc_anub_ar_shadowcasterAI : public ScriptedAI if (ShadowBoltTimer <= diff) { if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT), true); + DoCast(pTarget, DUNGEON_MODE(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT), true); ShadowBoltTimer = 15000; } else ShadowBoltTimer -= diff; if (ShadowNovaTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_SHADOW_NOVA, H_SPELL_SHADOW_NOVA), true); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SHADOW_NOVA, H_SPELL_SHADOW_NOVA), true); ShadowNovaTimer = 17000; } else ShadowNovaTimer -= diff; @@ -376,7 +374,7 @@ struct TRINITY_DLL_DECL npc_watcher_gashraAI : public ScriptedAI if (InfectedBiteTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_INFECTED_BITE, H_SPELL_INFECTED_BITE), true); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_INFECTED_BITE, H_SPELL_INFECTED_BITE), true); InfectedBiteTimer = 15000; } else InfectedBiteTimer -= diff; @@ -413,13 +411,13 @@ struct TRINITY_DLL_DECL npc_watcher_narjilAI : public ScriptedAI if (InfectedBiteTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_INFECTED_BITE, H_SPELL_INFECTED_BITE), true); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_INFECTED_BITE, H_SPELL_INFECTED_BITE), true); InfectedBiteTimer = 11000; } else InfectedBiteTimer -= diff; if (BlindingWebsTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_BLINDING_WEBS, H_SPELL_BLINDING_WEBS), true); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_BLINDING_WEBS, H_SPELL_BLINDING_WEBS), true); BlindingWebsTimer = 17000; } else BlindingWebsTimer -= diff; @@ -457,13 +455,13 @@ struct TRINITY_DLL_DECL npc_watcher_silthikAI : public ScriptedAI if (InfectedBiteTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_INFECTED_BITE, H_SPELL_INFECTED_BITE), true); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_INFECTED_BITE, H_SPELL_INFECTED_BITE), true); InfectedBiteTimer = 15000; } else InfectedBiteTimer -= diff; if (PosionSprayTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_POSION_SPRAY, H_SPELL_POSION_SPRAY), true); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_POSION_SPRAY, H_SPELL_POSION_SPRAY), true); PosionSprayTimer = 17000; } else PosionSprayTimer -= diff; diff --git a/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_argent_challenge.cpp b/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_argent_challenge.cpp index abffa3914c1..9c82b7de011 100644 --- a/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_argent_challenge.cpp +++ b/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_argent_challenge.cpp @@ -164,7 +164,7 @@ struct TRINITY_DLL_DECL boss_paletressAI : public ScriptedAI if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 250, true)) { if (pTarget && pTarget->isAlive()) - DoCast(pTarget,HEROIC(SPELL_HOLY_FIRE,SPELL_HOLY_FIRE_H)); + DoCast(pTarget,DUNGEON_MODE(SPELL_HOLY_FIRE,SPELL_HOLY_FIRE_H)); } if (m_creature->HasAura(SPELL_SHIELD)) uiHolyFireTimer = 13000; @@ -177,7 +177,7 @@ struct TRINITY_DLL_DECL boss_paletressAI : public ScriptedAI if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 250, true)) { if (pTarget && pTarget->isAlive()) - DoCast(pTarget,HEROIC(SPELL_SMITE,SPELL_SMITE_H)); + DoCast(pTarget,DUNGEON_MODE(SPELL_SMITE,SPELL_SMITE_H)); } if (m_creature->HasAura(SPELL_SHIELD)) uiHolySmiteTimer = 9000; @@ -193,11 +193,11 @@ struct TRINITY_DLL_DECL boss_paletressAI : public ScriptedAI switch(uiTarget) { case 0: - DoCast(m_creature,HEROIC(SPELL_RENEW,SPELL_RENEW_H)); + DoCast(m_creature,DUNGEON_MODE(SPELL_RENEW,SPELL_RENEW_H)); break; case 1: if (pMemory && pMemory->isAlive()) - DoCast(pMemory,HEROIC(SPELL_RENEW,SPELL_RENEW_H)); + DoCast(pMemory,DUNGEON_MODE(SPELL_RENEW,SPELL_RENEW_H)); break; } uiRenewTimer = urand(15000,17000); @@ -255,14 +255,14 @@ struct TRINITY_DLL_DECL npc_memoryAI : public ScriptedAI if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM,0)) { if (pTarget && pTarget->isAlive()) - DoCast(pTarget, HEROIC(SPELL_OLD_WOUNDS,SPELL_OLD_WOUNDS_H)); + DoCast(pTarget, DUNGEON_MODE(SPELL_OLD_WOUNDS,SPELL_OLD_WOUNDS_H)); } uiOldWoundsTimer = 12000; }else uiOldWoundsTimer -= uiDiff; if (uiWakingNightmare <= uiDiff) { - DoCast(m_creature, HEROIC(SPELL_WAKING_NIGHTMARE,SPELL_WAKING_NIGHTMARE_H)); + DoCast(m_creature, DUNGEON_MODE(SPELL_WAKING_NIGHTMARE,SPELL_WAKING_NIGHTMARE_H)); uiWakingNightmare = 7000; }else uiWakingNightmare -= uiDiff; @@ -271,7 +271,7 @@ struct TRINITY_DLL_DECL npc_memoryAI : public ScriptedAI if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM,1)) { if (pTarget && pTarget->isAlive()) - DoCast(pTarget,HEROIC(SPELL_SHADOWS_PAST,SPELL_SHADOWS_PAST_H)); + DoCast(pTarget,DUNGEON_MODE(SPELL_SHADOWS_PAST,SPELL_SHADOWS_PAST_H)); } uiShadowPastTimer = 5000; }else uiShadowPastTimer -= uiDiff; diff --git a/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_black_knight.cpp b/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_black_knight.cpp index 0a1f97f6489..4e2d4a6852c 100644 --- a/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_black_knight.cpp +++ b/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_black_knight.cpp @@ -169,17 +169,17 @@ struct TRINITY_DLL_DECL boss_black_knightAI : public ScriptedAI { if (uiIcyTouchTimer <= uiDiff) { - DoCastVictim(HEROIC(SPELL_ICY_TOUCH,SPELL_ICY_TOUCH_H)); + DoCastVictim(DUNGEON_MODE(SPELL_ICY_TOUCH,SPELL_ICY_TOUCH_H)); uiIcyTouchTimer = urand(5000,7000); } else uiIcyTouchTimer -= uiDiff; if (uiPlagueStrikeTimer <= uiDiff) { - DoCastVictim(HEROIC(SPELL_ICY_TOUCH,SPELL_ICY_TOUCH_H)); + DoCastVictim(DUNGEON_MODE(SPELL_ICY_TOUCH,SPELL_ICY_TOUCH_H)); uiPlagueStrikeTimer = urand(12000,15000); } else uiPlagueStrikeTimer -= uiDiff; if (uiObliterateTimer <= uiDiff) { - DoCastVictim(HEROIC(SPELL_OBLITERATE,SPELL_OBLITERATE_H)); + DoCastVictim(DUNGEON_MODE(SPELL_OBLITERATE,SPELL_OBLITERATE_H)); uiObliterateTimer = urand(17000,19000); } else uiObliterateTimer -= uiDiff; switch(uiPhase) @@ -236,7 +236,7 @@ struct TRINITY_DLL_DECL boss_black_knightAI : public ScriptedAI { if (uiDeathBiteTimer <= uiDiff) { - DoCastAOE(HEROIC(SPELL_DEATH_BITE_H,SPELL_DEATH_BITE)); + DoCastAOE(DUNGEON_MODE(SPELL_DEATH_BITE,SPELL_DEATH_BITE_H)); uiDeathBiteTimer = urand (2000, 4000); } else uiDeathBiteTimer -= uiDiff; if (uiMarkedDeathTimer <= uiDiff) @@ -304,7 +304,7 @@ struct TRINITY_DLL_DECL npc_risen_ghoulAI : public ScriptedAI if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true)) { if (pTarget && pTarget->isAlive()) - DoCast(pTarget, (HEROIC(SPELL_LEAP_H,SPELL_LEAP))); + DoCast(pTarget, (DUNGEON_MODE(SPELL_LEAP,SPELL_LEAP_H))); } uiAttackTimer = 3500; } else uiAttackTimer -= uiDiff; diff --git a/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_grand_champions.cpp b/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_grand_champions.cpp index f711073ab4e..e111c6fe353 100644 --- a/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_grand_champions.cpp +++ b/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_grand_champions.cpp @@ -71,7 +71,6 @@ struct TRINITY_DLL_DECL mob_toc5_warriorAI : public ScriptedAI } ScriptedInstance* m_pInstance; - bool m_bIsRegularMode; uint32 Mortal_Strike_Timer; uint32 Bladestorm_Timer; @@ -122,7 +121,7 @@ struct TRINITY_DLL_DECL mob_toc5_warriorAI : public ScriptedAI if (Mortal_Strike_Timer < diff) { - DoCast(m_creature->getVictim(), m_bIsRegularMode ? SPELL_MORTAL_STRIKE : SPELL_MORTAL_STRIKE_H); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_MORTAL_STRIKE, SPELL_MORTAL_STRIKE_H)); Mortal_Strike_Timer = 6000; }else Mortal_Strike_Timer -= diff; @@ -172,7 +171,6 @@ struct TRINITY_DLL_DECL mob_toc5_mageAI : public ScriptedAI } ScriptedInstance* m_pInstance; - bool m_bIsRegularMode; uint32 Fireball_Timer; uint32 Blast_Wave_Timer; @@ -221,13 +219,13 @@ struct TRINITY_DLL_DECL mob_toc5_mageAI : public ScriptedAI if (Fireball_Timer < diff) { - DoCast(m_creature->getVictim(), m_bIsRegularMode ? SPELL_FIREBALL : SPELL_FIREBALL_H); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_FIREBALL, SPELL_FIREBALL_H)); Fireball_Timer = 3000; }else Fireball_Timer -= diff; if (Blast_Wave_Timer < diff) { - DoCast(m_creature, m_bIsRegularMode ? SPELL_BLAST_WAVE : SPELL_BLAST_WAVE_H); + DoCast(m_creature, DUNGEON_MODE(SPELL_BLAST_WAVE, SPELL_BLAST_WAVE_H)); Blast_Wave_Timer = 20000; }else Blast_Wave_Timer -= diff; @@ -240,7 +238,7 @@ struct TRINITY_DLL_DECL mob_toc5_mageAI : public ScriptedAI if (Polymorph_Timer < diff) { if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,1)) - DoCast(target, m_bIsRegularMode ? SPELL_POLYMORPH : SPELL_POLYMORPH_H); + DoCast(target, DUNGEON_MODE(SPELL_POLYMORPH, SPELL_POLYMORPH_H)); Polymorph_Timer = 15000; }else Polymorph_Timer -= diff; @@ -263,7 +261,6 @@ struct TRINITY_DLL_DECL mob_toc5_shamanAI : public ScriptedAI } ScriptedInstance* m_pInstance; - bool m_bIsRegularMode; uint32 Chain_Lightning_Timer; uint32 Earth_Shield_Timer; @@ -316,7 +313,7 @@ struct TRINITY_DLL_DECL mob_toc5_shamanAI : public ScriptedAI if (Chain_Lightning_Timer < diff) { - DoCast(m_creature->getVictim(), m_bIsRegularMode ? SPELL_CHAIN_LIGHTNING : SPELL_CHAIN_LIGHTNING_H); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_CHAIN_LIGHTNING, SPELL_CHAIN_LIGHTNING_H)); Chain_Lightning_Timer = 10000; }else Chain_Lightning_Timer -= diff; @@ -331,7 +328,7 @@ struct TRINITY_DLL_DECL mob_toc5_shamanAI : public ScriptedAI if(Unit* target = m_creature->SelectNearestTarget(40)) if(target->GetHealth() == target->GetHealth() * 100 / target->GetMaxHealth() && target->IsFriendlyTo(m_creature)) { - DoCast(target, HEROIC(SPELL_HEALING_WAVE, SPELL_HEALING_WAVE_H)); + DoCast(target, DUNGEON_MODE(SPELL_HEALING_WAVE, SPELL_HEALING_WAVE_H)); Healing_Wave_Timer = 8000; } }else Healing_Wave_Timer -= diff; @@ -365,9 +362,8 @@ struct TRINITY_DLL_DECL mob_toc5_hunterAI : public ScriptedAI } ScriptedInstance* m_pInstance; - bool m_bIsRegularMode; - uint32 Shoot_Timer; + uint32 Shoot_Timer; uint32 Lightning_Arrows_Timer; uint32 Multi_Shot_Timer; uint32 Disengage_Cooldown; @@ -481,7 +477,6 @@ struct TRINITY_DLL_DECL mob_toc5_rogueAI : public ScriptedAI } ScriptedInstance* m_pInstance; - bool m_bIsRegularMode; uint32 Eviscerate_Timer; uint32 FoK_Timer; @@ -528,7 +523,7 @@ struct TRINITY_DLL_DECL mob_toc5_rogueAI : public ScriptedAI if (Eviscerate_Timer < diff) { - DoCast(m_creature->getVictim(), m_bIsRegularMode ? SPELL_EVISCERATE : SPELL_EVISCERATE_H); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_EVISCERATE, SPELL_EVISCERATE_H)); Eviscerate_Timer = 10000; }else Eviscerate_Timer -= diff; diff --git a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp index a29503299ac..5c20653f55c 100644 --- a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp +++ b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp @@ -115,7 +115,7 @@ struct TRINITY_DLL_DECL boss_dredAI : public ScriptedAI if (FearsomeRoarTimer < diff) { - DoCastAOE(HEROIC(SPELL_FEARSOME_ROAR, H_SPELL_FEARSOME_ROAR),false); + DoCastAOE(DUNGEON_MODE(SPELL_FEARSOME_ROAR, H_SPELL_FEARSOME_ROAR),false); FearsomeRoarTimer = urand(16,18)*1000; } else FearsomeRoarTimer -=diff; @@ -146,7 +146,7 @@ struct TRINITY_DLL_DECL boss_dredAI : public ScriptedAI { pInstance->SetData(DATA_DRED_EVENT,DONE); - if (HeroicMode && pInstance->GetData(DATA_KING_DRED_ACHIEV) == 6) + if (IsHeroic() && pInstance->GetData(DATA_KING_DRED_ACHIEV) == 6) pInstance->DoCompleteAchievement(ACHIEV_BETTER_OFF_DRED); } } @@ -192,7 +192,7 @@ struct TRINITY_DLL_DECL npc_drakkari_gutripperAI : public ScriptedAI { if (pInstance) { - if (m_creature->GetMap()->IsHeroic() && pInstance->GetData(DATA_DRED_EVENT) == IN_PROGRESS && pInstance->GetData(DATA_KING_DRED_ACHIEV) < 6) + if (IsHeroic() && pInstance->GetData(DATA_DRED_EVENT) == IN_PROGRESS && pInstance->GetData(DATA_KING_DRED_ACHIEV) < 6) { pInstance->SetData(DATA_KING_DRED_ACHIEV, pInstance->GetData(DATA_KING_DRED_ACHIEV) + 1); } @@ -240,7 +240,7 @@ struct TRINITY_DLL_DECL npc_drakkari_scytheclawAI : public ScriptedAI { if (pInstance) { - if (m_creature->GetMap()->IsHeroic() && pInstance->GetData(DATA_DRED_EVENT) == IN_PROGRESS && pInstance->GetData(DATA_KING_DRED_ACHIEV) < 6) + if (IsHeroic() && pInstance->GetData(DATA_DRED_EVENT) == IN_PROGRESS && pInstance->GetData(DATA_KING_DRED_ACHIEV) < 6) { pInstance->SetData(DATA_KING_DRED_ACHIEV, pInstance->GetData(DATA_KING_DRED_ACHIEV) + 1); } diff --git a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp index 480694ae3b2..c3deace83f2 100644 --- a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp +++ b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp @@ -169,8 +169,8 @@ struct TRINITY_DLL_DECL boss_novosAI : public Scripted_NoMovementAI if (uiTimer <= diff) { if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(RAND(SPELL_ARCANE_BLAST,SPELL_BLIZZARD,SPELL_FROSTBOLT,SPELL_WRATH_OF_MISERY), - RAND(H_SPELL_ARCANE_BLAST,H_SPELL_BLIZZARD,H_SPELL_FROSTBOLT,H_SPELL_WRATH_OF_MISERY))); + DoCast(pTarget, DUNGEON_MODE(RAND(SPELL_ARCANE_BLAST,SPELL_BLIZZARD,SPELL_FROSTBOLT,SPELL_WRATH_OF_MISERY), + RAND(H_SPELL_ARCANE_BLAST,H_SPELL_BLIZZARD,H_SPELL_FROSTBOLT,H_SPELL_WRATH_OF_MISERY))); uiTimer = urand(1000,3000); } else uiTimer -= diff; break; @@ -182,7 +182,7 @@ struct TRINITY_DLL_DECL boss_novosAI : public Scripted_NoMovementAI { pInstance->SetData(DATA_NOVOS_EVENT, DONE); - if (HeroicMode && bAchiev) + if (IsHeroic() && bAchiev) pInstance->DoCompleteAchievement(ACHIEV_OH_NOVOS); } lSummons.DespawnAll(); diff --git a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp index b7a370639a8..15a092a7e8d 100644 --- a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp +++ b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp @@ -136,19 +136,19 @@ struct TRINITY_DLL_DECL boss_tharon_jaAI : public ScriptedAI if (uiCurseOfLifeTimer < diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(SPELL_CURSE_OF_LIFE, H_SPELL_CURSE_OF_LIFE)); + DoCast(pTarget, DUNGEON_MODE(SPELL_CURSE_OF_LIFE, H_SPELL_CURSE_OF_LIFE)); uiCurseOfLifeTimer = urand(10000,15000); } else uiCurseOfLifeTimer -= diff; if (uiShadowVolleyTimer < diff) { - DoCastVictim(HEROIC(SPELL_SHADOW_VOLLEY,H_SPELL_SHADOW_VOLLEY)); + DoCastVictim(DUNGEON_MODE(SPELL_SHADOW_VOLLEY,H_SPELL_SHADOW_VOLLEY)); uiShadowVolleyTimer = urand(8000,10000); } else uiShadowVolleyTimer -= diff; if (uiRainOfFireTimer < diff) { - DoCastAOE(HEROIC(SPELL_RAIN_OF_FIRE,H_SPELL_RAIN_OF_FIRE)); + DoCastAOE(DUNGEON_MODE(SPELL_RAIN_OF_FIRE,H_SPELL_RAIN_OF_FIRE)); uiRainOfFireTimer = urand(14000,18000); } else uiRainOfFireTimer -= diff; @@ -187,20 +187,20 @@ struct TRINITY_DLL_DECL boss_tharon_jaAI : public ScriptedAI if (uiLightningBreathTimer < diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(SPELL_LIGHTNING_BREATH, H_SPELL_LIGHTNING_BREATH)); + DoCast(pTarget, DUNGEON_MODE(SPELL_LIGHTNING_BREATH, H_SPELL_LIGHTNING_BREATH)); uiLightningBreathTimer = urand(6000,7000); } else uiLightningBreathTimer -= diff; if (uiEyeBeamTimer < diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(SPELL_EYE_BEAM, H_SPELL_EYE_BEAM)); + DoCast(pTarget, DUNGEON_MODE(SPELL_EYE_BEAM, H_SPELL_EYE_BEAM)); uiEyeBeamTimer = urand(4000,6000); } else uiEyeBeamTimer -= diff; if (uiPoisonCloudTimer < diff) { - DoCastAOE(HEROIC(SPELL_POISON_CLOUD,H_SPELL_POISON_CLOUD)); + DoCastAOE(DUNGEON_MODE(SPELL_POISON_CLOUD, H_SPELL_POISON_CLOUD)); uiPoisonCloudTimer = urand(10000,12000); } else uiPoisonCloudTimer -= diff; diff --git a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp index ed54bd05eb8..f4809b999a0 100644 --- a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp +++ b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp @@ -90,12 +90,12 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI uiExplodeCorpseTimer = 3000; uiSpawnTimer = urand(30000,40000); - bAchiev = HeroicMode; + bAchiev = IsHeroic(); lSummons.DespawnAll(); - if (m_creature->HasAura(HEROIC(SPELL_CONSUME,H_SPELL_CONSUME))) - m_creature->RemoveAura(HEROIC(SPELL_CONSUME,H_SPELL_CONSUME)); + if (m_creature->HasAura(DUNGEON_MODE(SPELL_CONSUME,H_SPELL_CONSUME))) + m_creature->RemoveAura(DUNGEON_MODE(SPELL_CONSUME,H_SPELL_CONSUME)); if (pInstance) pInstance->SetData(DATA_TROLLGORE_EVENT, NOT_STARTED); @@ -117,7 +117,8 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI if (uiSpawnTimer <= diff) { - for (uint8 i = 0; i < urand(2,HEROIC(3,5)); ++i) + uint32 spawnNumber = urand(2,DUNGEON_MODE(3,5)); + for (uint8 i = 0; i < spawnNumber; ++i) DoSpawnCreature(RAND(NPC_DRAKKARI_INVADER_1,NPC_DRAKKARI_INVADER_2), AddSpawnPoint.GetPositionX(), AddSpawnPoint.GetPositionY(), AddSpawnPoint.GetPositionZ(), AddSpawnPoint.GetOrientation(), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 90000); uiSpawnTimer = urand(30000,40000); } else uiSpawnTimer -= diff; @@ -125,7 +126,7 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI if (uiConsumeTimer <= diff) { DoScriptText(SAY_CONSUME, m_creature); - DoCast(HEROIC(SPELL_CONSUME, H_SPELL_CONSUME)); + DoCast(DUNGEON_MODE(SPELL_CONSUME, H_SPELL_CONSUME)); uiConsumeTimer = 15000; } else uiConsumeTimer -= diff; @@ -133,7 +134,7 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI { if (uiAuraCountTimer <= diff) { - if (Aura *pConsumeAura = m_creature->GetAura(HEROIC(SPELL_CONSUME,H_SPELL_CONSUME))) + if (Aura *pConsumeAura = m_creature->GetAura(DUNGEON_MODE(SPELL_CONSUME,H_SPELL_CONSUME))) { if (pConsumeAura && pConsumeAura->GetStackAmount() > 9) bAchiev = false; @@ -156,7 +157,7 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI if (uiExplodeCorpseTimer <= diff) { - DoCast(HEROIC(SPELL_CORPSE_EXPLODE, H_SPELL_CORPSE_EXPLODE)); + DoCast(DUNGEON_MODE(SPELL_CORPSE_EXPLODE, H_SPELL_CORPSE_EXPLODE)); DoScriptText(SAY_EXPLODE, m_creature); uiExplodeCorpseTimer = urand(15000,19000); } else uiExplodeCorpseTimer -= diff; diff --git a/src/bindings/scripts/scripts/northrend/gundrak/boss_drakkari_colossus.cpp b/src/bindings/scripts/scripts/northrend/gundrak/boss_drakkari_colossus.cpp index e8e284986f4..ef735146cfa 100644 --- a/src/bindings/scripts/scripts/northrend/gundrak/boss_drakkari_colossus.cpp +++ b/src/bindings/scripts/scripts/northrend/gundrak/boss_drakkari_colossus.cpp @@ -222,7 +222,6 @@ struct TRINITY_DLL_DECL npc_living_mojoAI : public ScriptedAI { npc_living_mojoAI(Creature* pCreature) : ScriptedAI(pCreature) { - HeroicMode = pCreature->GetMap()->IsHeroic(); pInstance = pCreature->GetInstanceData(); } @@ -230,8 +229,6 @@ struct TRINITY_DLL_DECL npc_living_mojoAI : public ScriptedAI ScriptedInstance* pInstance; - bool HeroicMode; - uint32 uiMojoWaveTimer; uint32 uiMojoPuddleTimer; @@ -277,13 +274,13 @@ struct TRINITY_DLL_DECL npc_living_mojoAI : public ScriptedAI if (uiMojoWaveTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_MOJO_WAVE, H_SPELL_MOJO_WAVE)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_MOJO_WAVE, H_SPELL_MOJO_WAVE)); uiMojoWaveTimer = 15000; } else uiMojoWaveTimer -= diff; if (uiMojoPuddleTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_MOJO_PUDDLE, H_SPELL_MOJO_PUDDLE)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_MOJO_PUDDLE, H_SPELL_MOJO_PUDDLE)); uiMojoPuddleTimer = 18000; } else uiMojoPuddleTimer -= diff; diff --git a/src/bindings/scripts/scripts/northrend/gundrak/boss_gal_darah.cpp b/src/bindings/scripts/scripts/northrend/gundrak/boss_gal_darah.cpp index 4831004fd38..bf899a95ae3 100644 --- a/src/bindings/scripts/scripts/northrend/gundrak/boss_gal_darah.cpp +++ b/src/bindings/scripts/scripts/northrend/gundrak/boss_gal_darah.cpp @@ -119,7 +119,7 @@ struct TRINITY_DLL_DECL boss_gal_darahAI : public ScriptedAI if (uiWhirlingSlashTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_WHIRLING_SLASH, H_SPELL_WHIRLING_SLASH)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_WHIRLING_SLASH, H_SPELL_WHIRLING_SLASH)); uiWhirlingSlashTimer = 20000; ++uiPhaseCounter; } else uiWhirlingSlashTimer -= diff; @@ -137,26 +137,26 @@ struct TRINITY_DLL_DECL boss_gal_darahAI : public ScriptedAI { if (uiPunctureTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_PUNCTURE, H_SPELL_PUNCTURE)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_PUNCTURE, H_SPELL_PUNCTURE)); uiPunctureTimer = 8000; } else uiPunctureTimer -= diff; if (uiEnrageTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_ENRAGE, H_SPELL_ENRAGE)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_ENRAGE, H_SPELL_ENRAGE)); uiEnrageTimer = 20000; } else uiEnrageTimer -= diff; if (uiStompTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_STOMP, H_SPELL_STOMP)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_STOMP, H_SPELL_STOMP)); uiStompTimer = 20000; } else uiStompTimer -= diff; if (uiImpalingChargeTimer <= diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(SPELL_IMPALING_CHARGE, H_SPELL_IMPALING_CHARGE)); + DoCast(pTarget, DUNGEON_MODE(SPELL_IMPALING_CHARGE, H_SPELL_IMPALING_CHARGE)); uiImpalingChargeTimer = 30000; ++uiPhaseCounter; } else uiImpalingChargeTimer -= diff; diff --git a/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp b/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp index 7129e61833e..d4ebb46314b 100644 --- a/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp +++ b/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp @@ -112,7 +112,7 @@ struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI if (uiDeterminedStabTimer <= uiDiff) { if (bPhase) - DoCast(m_creature->getVictim(), HEROIC(SPELL_DETERMINED_GORE, SPELL_DETERMINED_GORE_1)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_DETERMINED_GORE, SPELL_DETERMINED_GORE_1)); else DoCast(m_creature->getVictim(), SPELL_DETERMINED_STAB, true); uiDeterminedStabTimer = 8000; @@ -133,7 +133,7 @@ struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI { DoScriptText(SAY_DEATH, m_creature); - if (HeroicMode && !bPhase) + if (IsHeroic() && !bPhase) { AchievementEntry const *AchievLessRabi = GetAchievementStore()->LookupEntry(ACHIEVEMENT_LESS_RABI); if (AchievLessRabi) diff --git a/src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp b/src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp index 9d12b20feda..798f9f4ff72 100644 --- a/src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp +++ b/src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp @@ -109,19 +109,19 @@ struct TRINITY_DLL_DECL boss_slad_ranAI : public ScriptedAI if (uiPoisonNovaTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_POISON_NOVA, H_SPELL_POISON_NOVA)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_POISON_NOVA, H_SPELL_POISON_NOVA)); uiPoisonNovaTimer = 15000; } else uiPoisonNovaTimer -= diff; if (uiPowerfullBiteTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_POWERFULL_BITE, H_SPELL_POWERFULL_BITE)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_POWERFULL_BITE, H_SPELL_POWERFULL_BITE)); uiPowerfullBiteTimer = 10000; } else uiPowerfullBiteTimer -= diff; if (uiVenomBoltTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_VENOM_BOLT, H_SPELL_VENOM_BOLT)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_VENOM_BOLT, H_SPELL_VENOM_BOLT)); uiVenomBoltTimer = 10000; } else uiVenomBoltTimer -= diff; @@ -130,10 +130,10 @@ struct TRINITY_DLL_DECL boss_slad_ranAI : public ScriptedAI if (uiSpawnTimer <= diff) { if (uiPhase == 1) - for (uint8 i = 0; i < (HeroicMode ? 5 : 3); ++i) + for (uint8 i = 0; i < DUNGEON_MODE(3, 5); ++i) m_creature->SummonCreature(CREATURE_SNAKE, SpawnLoc[i].x, SpawnLoc[i].y, SpawnLoc[i].z, SpawnLoc[i].orientation, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000); if (uiPhase == 2) - for (uint8 i = 0; i < (HeroicMode ? 5 : 3); ++i) + for (uint8 i = 0; i < DUNGEON_MODE(3, 5); ++i) m_creature->SummonCreature(CREATURE_CONSTRICTORS, SpawnLoc[i].x, SpawnLoc[i].y, SpawnLoc[i].z, SpawnLoc[i].orientation, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000); uiSpawnTimer = 5000; } else uiSpawnTimer -= diff; @@ -218,7 +218,7 @@ struct TRINITY_DLL_DECL mob_slad_ran_viperAI : public ScriptedAI if (uiVenomousBiteTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_VENOMOUS_BITE, H_SPELL_VENOMOUS_BITE)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_VENOMOUS_BITE, H_SPELL_VENOMOUS_BITE)); uiVenomousBiteTimer = 10000; } else uiVenomousBiteTimer -= diff; } diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_anubrekhan.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_anubrekhan.cpp index 5376c5f7d82..d1c89a3218f 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_anubrekhan.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_anubrekhan.cpp @@ -21,8 +21,8 @@ #define SAY_AGGRO RAND(-1533001,-1533002,-1533003) #define SAY_SLAY -1533008 -#define SPELL_IMPALE HEROIC(28783,56090) -#define SPELL_LOCUSTSWARM HEROIC(28785,54021) +#define SPELL_IMPALE RAID_MODE(28783,56090) +#define SPELL_LOCUSTSWARM RAID_MODE(28785,54021) #define SPELL_SELF_SPAWN_5 29105 //This spawns 5 corpse scarabs ontop of us (most likely the player casts this on death) @@ -41,7 +41,7 @@ struct TRINITY_DLL_DECL boss_anubrekhanAI : public BossAI { HasTaunted = false; - if (HeroicMode) + if (IsHeroic()) { DoSpawnCreature(MOB_CRYPT_GUARD, 0, -10, 0, me->GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000); DoSpawnCreature(MOB_CRYPT_GUARD, 0, 10, 0, me->GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000); diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_faerlina.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_faerlina.cpp index dd8034d6d6e..994fa6ad991 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_faerlina.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_faerlina.cpp @@ -115,16 +115,16 @@ struct TRINITY_DLL_DECL boss_faerlinaAI : public BossAI { case EVENT_POISON: if (!me->HasAura(SPELL_WIDOWS_EMBRACE)) - DoCastAOE(HEROIC(SPELL_POISON_BOLT_VOLLEY,H_SPELL_POISON_BOLT_VOLLEY)); + DoCastAOE(RAID_MODE(SPELL_POISON_BOLT_VOLLEY,H_SPELL_POISON_BOLT_VOLLEY)); events.ScheduleEvent(EVENT_POISON, urand(12000,15000)); return; case EVENT_FIRE: if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) - DoCast(pTarget, HEROIC(SPELL_RAIN_OF_FIRE, H_SPELL_RAIN_OF_FIRE)); + DoCast(pTarget, RAID_MODE(SPELL_RAIN_OF_FIRE, H_SPELL_RAIN_OF_FIRE)); events.ScheduleEvent(EVENT_FIRE, urand(6000,18000)); return; case EVENT_FRENZY: - DoCast(me, HEROIC(SPELL_FRENZY, H_SPELL_FRENZY)); + DoCast(me, RAID_MODE(SPELL_FRENZY, H_SPELL_FRENZY)); delayFrenzy = false; return; case EVENT_AFTERENRAGE: @@ -139,7 +139,7 @@ struct TRINITY_DLL_DECL boss_faerlinaAI : public BossAI { if (spell->Id == SPELL_WIDOWS_EMBRACE || spell->Id == H_SPELL_WIDOWS_EMBRACE) { - if (m_creature->HasAura(HEROIC(SPELL_FRENZY,H_SPELL_FRENZY))) + if (m_creature->HasAura(RAID_MODE(SPELL_FRENZY,H_SPELL_FRENZY))) { if (!delayFrenzy) { @@ -169,7 +169,7 @@ struct TRINITY_DLL_DECL mob_faerlina_addAI : public ScriptedAI void Reset() { - if (!HeroicMode) + if (getDifficulty() == RAID_DIFFICULTY_10MAN_NORMAL) m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, SPELL_EFFECT_BIND, true); } @@ -178,7 +178,7 @@ struct TRINITY_DLL_DECL mob_faerlina_addAI : public ScriptedAI if (pInstance) { if (Creature *pFaerlina = pInstance->instance->GetCreature(pInstance->GetData64(DATA_FAERLINA))) - DoCast(pFaerlina, HEROIC(SPELL_WIDOWS_EMBRACE, H_SPELL_WIDOWS_EMBRACE)); + DoCast(pFaerlina, RAID_MODE(SPELL_WIDOWS_EMBRACE, H_SPELL_WIDOWS_EMBRACE)); } } diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_four_horsemen.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_four_horsemen.cpp index 9ad9551adc0..170b48edee1 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_four_horsemen.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_four_horsemen.cpp @@ -55,10 +55,10 @@ const Position WaypointPositions[12] = const uint32 MOB_HORSEMEN[] = {16064, 16065, 30549, 16063}; const uint32 SPELL_MARK[] = {28832, 28833, 28834, 28835}; -#define SPELL_PRIMARY(i) HEROIC(SPELL_PRIMARY_N[i],SPELL_PRIMARY_H[i]) +#define SPELL_PRIMARY(i) RAID_MODE(SPELL_PRIMARY_N[i],SPELL_PRIMARY_H[i]) const uint32 SPELL_PRIMARY_N[] = {28884, 28863, 28882, 28883}; const uint32 SPELL_PRIMARY_H[] = {57467, 57463, 57369, 57466}; -#define SPELL_SECONDARY(i) HEROIC(SPELL_SECONDARY_N[i],SPELL_SECONDARY_H[i]) +#define SPELL_SECONDARY(i) RAID_MODE(SPELL_SECONDARY_N[i],SPELL_SECONDARY_H[i]) const uint32 SPELL_SECONDARY_N[]= {0, 57374, 0, 57376}; const uint32 SPELL_SECONDARY_H[]= {0, 57464, 0, 57465}; const uint32 SPELL_PUNISH[] = {0, 57381, 0, 57377}; diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_gluth.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_gluth.cpp index 94d9843df30..b78a1dfdf6f 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_gluth.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_gluth.cpp @@ -18,8 +18,8 @@ #include "naxxramas.h" #define SPELL_MORTAL_WOUND 25646 -#define SPELL_ENRAGE HEROIC(28371,54427) -#define SPELL_DECIMATE HEROIC(28374,54426) +#define SPELL_ENRAGE RAID_MODE(28371,54427) +#define SPELL_DECIMATE RAID_MODE(28374,54426) #define SPELL_BERSERK 26662 #define SPELL_INFECTED_WOUND 29306 @@ -131,7 +131,7 @@ struct TRINITY_DLL_DECL boss_gluthAI : public BossAI events.ScheduleEvent(EVENT_BERSERK, 5*60000); break; case EVENT_SUMMON: - for (uint32 i = 0; i < HEROIC(1,2); ++i) + for (uint32 i = 0; i < RAID_MODE(1,2); ++i) DoSummon(MOB_ZOMBIE, triggers[rand()%3]); events.ScheduleEvent(EVENT_SUMMON, 10000); break; diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp index 83b6bff7b95..4cde7236b55 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp @@ -290,7 +290,7 @@ struct TRINITY_DLL_DECL boss_gothikAI : public BossAI } break; case EVENT_BOLT: - DoCast(me->getVictim(), HEROIC(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT)); + DoCast(me->getVictim(), RAID_MODE(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT)); events.ScheduleEvent(EVENT_BOLT, 1000); return; case EVENT_HARVEST: diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_grobbulus.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_grobbulus.cpp index 0b47f90374a..e43aae5ae54 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_grobbulus.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_grobbulus.cpp @@ -21,7 +21,7 @@ #define SPELL_POISON_CLOUD 28240 #define SPELL_MUTATING_INJECTION 28169 -#define SPELL_SLIME_SPRAY HEROIC(28157,54364) +#define SPELL_SLIME_SPRAY RAID_MODE(28157,54364) #define SPELL_BERSERK 26662 #define SPELL_POISON_CLOUD_ADD 59116 diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_heigan.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_heigan.cpp index 4b4ed343dcb..15768e4d18a 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_heigan.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_heigan.cpp @@ -23,7 +23,7 @@ #define SAY_DEATH -1533118 #define SPELL_SPELL_DISRUPTION 29310 -#define SPELL_DECREPIT_FEVER HEROIC(29998,55011) +#define SPELL_DECREPIT_FEVER RAID_MODE(29998,55011) #define SPELL_PLAGUE_CLOUD 29350 enum Events diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_kelthuzad.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_kelthuzad.cpp index b0cbc6e7873..c59f9d4b9ee 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_kelthuzad.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_kelthuzad.cpp @@ -188,7 +188,7 @@ struct TRINITY_DLL_DECL boss_kelthuzadAI : public BossAI events.ScheduleEvent(EVENT_DETONATE, 20000); events.ScheduleEvent(EVENT_FISSURE, 25000); events.ScheduleEvent(EVENT_BLAST, urand(30000,60000)); - if (HeroicMode) + if (getDifficulty() == RAID_DIFFICULTY_25MAN_NORMAL) events.ScheduleEvent(EVENT_CHAIN, urand(30000,60000)); Phase = 2; return; @@ -212,7 +212,7 @@ struct TRINITY_DLL_DECL boss_kelthuzadAI : public BossAI DoScriptText(SAY_ANSWER_REQUEST, m_creature); } } - else if (GuardiansOfIcecrown_Count < HEROIC(2,5)) + else if (GuardiansOfIcecrown_Count < RAID_MODE(2,5)) { if (GuardiansOfIcecrown_Timer <= diff) { @@ -231,11 +231,11 @@ struct TRINITY_DLL_DECL boss_kelthuzadAI : public BossAI switch(eventId) { case EVENT_BOLT: - DoCastVictim(HEROIC(SPELL_FROST_BOLT,H_SPELL_FROST_BOLT)); + DoCastVictim(RAID_MODE(SPELL_FROST_BOLT,H_SPELL_FROST_BOLT)); events.RepeatEvent(urand(1000,10000)); return; case EVENT_NOVA: - DoCastAOE(HEROIC(SPELL_FROST_BOLT_AOE,H_SPELL_FROST_BOLT_AOE)); + DoCastAOE(RAID_MODE(SPELL_FROST_BOLT_AOE,H_SPELL_FROST_BOLT_AOE)); events.RepeatEvent(urand(10000,20000)); return; case EVENT_CHAIN: diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_loatheb.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_loatheb.cpp index ea3edb5e2a7..3d3e2051dd7 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_loatheb.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_loatheb.cpp @@ -66,11 +66,11 @@ struct TRINITY_DLL_DECL boss_loathebAI : public BossAI return; case EVENT_BLOOM: DoCastAOE(SPELL_SUMMON_SPORE, true); - DoCastAOE(HEROIC(SPELL_DEATHBLOOM,H_SPELL_DEATHBLOOM)); + DoCastAOE(RAID_MODE(SPELL_DEATHBLOOM,H_SPELL_DEATHBLOOM)); events.ScheduleEvent(EVENT_BLOOM, 30000); return; case EVENT_DOOM: - DoCastAOE(HEROIC(SPELL_INEVITABLE_DOOM,H_SPELL_INEVITABLE_DOOM)); + DoCastAOE(RAID_MODE(SPELL_INEVITABLE_DOOM,H_SPELL_INEVITABLE_DOOM)); events.ScheduleEvent(EVENT_DOOM, events.GetTimer() < 5*60000 ? 30000 : 15000); return; } diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_maexxna.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_maexxna.cpp index cd337fd3b27..1923af6713b 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_maexxna.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_maexxna.cpp @@ -20,10 +20,10 @@ #include "naxxramas.h" #define SPELL_WEB_WRAP 28622 -#define SPELL_WEB_SPRAY HEROIC(29484,54125) -#define SPELL_POISON_SHOCK HEROIC(28741,54122) -#define SPELL_NECROTIC_POISON HEROIC(54121,28776) -#define SPELL_FRENZY HEROIC(54123,54124) +#define SPELL_WEB_SPRAY RAID_MODE(29484,54125) +#define SPELL_POISON_SHOCK RAID_MODE(28741,54122) +#define SPELL_NECROTIC_POISON RAID_MODE(54121,28776) +#define SPELL_FRENZY RAID_MODE(54123,54124) #define MOB_WEB_WRAP 16486 #define MOB_SPIDERLING 17055 @@ -75,7 +75,7 @@ struct TRINITY_DLL_DECL boss_maexxnaAI : public BossAI switch(eventId) { case EVENT_WRAP: - for (uint8 i = 0; i < HEROIC(1,2); ++i) + for (uint8 i = 0; i < RAID_MODE(1,2); ++i) { if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 1, 0, true, -SPELL_WEB_WRAP)) { diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_noth.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_noth.cpp index 707c3049820..4e91b5516e1 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_noth.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_noth.cpp @@ -24,9 +24,9 @@ #define SOUND_DEATH 8848 -#define SPELL_CURSE_PLAGUEBRINGER HEROIC(29213,54835) +#define SPELL_CURSE_PLAGUEBRINGER RAID_MODE(29213,54835) #define SPELL_BLINK RAND(29208,29209,29210,29211) -#define SPELL_CRIPPLE HEROIC(29212,54814) +#define SPELL_CRIPPLE RAID_MODE(29212,54814) #define SPELL_TELEPORT 29216 #define MOB_WARRIOR 16984 @@ -95,7 +95,7 @@ struct TRINITY_DLL_DECL boss_nothAI : public BossAI events.ScheduleEvent(EVENT_BALCONY, 110000); events.ScheduleEvent(EVENT_CURSE, 20000+rand()%10000); events.ScheduleEvent(EVENT_WARRIOR, 30000); - if (HeroicMode) + if (getDifficulty() == RAID_DIFFICULTY_25MAN_NORMAL) events.ScheduleEvent(EVENT_BLINK, 20000+rand()%10000); } } @@ -146,7 +146,7 @@ struct TRINITY_DLL_DECL boss_nothAI : public BossAI return; case EVENT_WARRIOR: DoScriptText(SAY_SUMMON, me); - SummonUndead(MOB_WARRIOR, HEROIC(2,3)); + SummonUndead(MOB_WARRIOR, RAID_MODE(2,3)); events.ScheduleEvent(EVENT_WARRIOR, 30000); return; case EVENT_BLINK: @@ -169,12 +169,12 @@ struct TRINITY_DLL_DECL boss_nothAI : public BossAI DoScriptText(SAY_SUMMON, me); switch(balconyCount) { - case 0: SummonUndead(MOB_CHAMPION, HEROIC(2,4)); break; - case 1: SummonUndead(MOB_CHAMPION, HEROIC(1,2)); - SummonUndead(MOB_GUARDIAN, HEROIC(1,2)); break; - case 2: SummonUndead(MOB_GUARDIAN, HEROIC(2,4)); break; - default:SummonUndead(MOB_CHAMPION, HEROIC(5,10)); - SummonUndead(MOB_GUARDIAN, HEROIC(5,10));break; + case 0: SummonUndead(MOB_CHAMPION, RAID_MODE(2,4)); break; + case 1: SummonUndead(MOB_CHAMPION, RAID_MODE(1,2)); + SummonUndead(MOB_GUARDIAN, RAID_MODE(1,2)); break; + case 2: SummonUndead(MOB_GUARDIAN, RAID_MODE(2,4)); break; + default:SummonUndead(MOB_CHAMPION, RAID_MODE(5,10)); + SummonUndead(MOB_GUARDIAN, RAID_MODE(5,10));break; } ++waveCount; events.ScheduleEvent(waveCount < 2 ? EVENT_WAVE : EVENT_GROUND, 34000); diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_patchwerk.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_patchwerk.cpp index 42130b31c82..628a2e9bb14 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_patchwerk.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_patchwerk.cpp @@ -24,7 +24,7 @@ #define EMOTE_BERSERK -1533021 #define EMOTE_ENRAGE -1533022 -#define SPELL_HATEFULSTRIKE HEROIC(41926,59192) +#define SPELL_HATEFULSTRIKE RAID_MODE(41926,59192) #define SPELL_FRENZY 28131 #define SPELL_BERSERK 26662 #define SPELL_SLIMEBOLT 32309 @@ -33,7 +33,7 @@ #define EVENT_HATEFUL 2 #define EVENT_SLIME 3 -#define ACHIEVEMENT_MAKE_QUICK_WERK_OF_HIM HEROIC(1856, 1857) +#define ACHIEVEMENT_MAKE_QUICK_WERK_OF_HIM RAID_MODE(1856, 1857) #define MAX_ENCOUNTER_TIME 3 * 60 * 1000 struct TRINITY_DLL_DECL boss_patchwerkAI : public BossAI diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_razuvious.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_razuvious.cpp index d79962ee521..69a3b61160c 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_razuvious.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_razuvious.cpp @@ -40,7 +40,7 @@ #define SOUND_AGGROMIX 8847 #define SPELL_UNBALANCING_STRIKE 26613 -#define SPELL_DISRUPTING_SHOUT HEROIC(29107,55543) +#define SPELL_DISRUPTING_SHOUT RAID_MODE(29107,55543) #define SPELL_JAGGED_KNIFE 55550 #define SPELL_HOPELESS 29125 diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_sapphiron.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_sapphiron.cpp index 6de3c89b61d..c2334e08fdb 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_sapphiron.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_sapphiron.cpp @@ -22,11 +22,11 @@ #define EMOTE_BREATH -1533082 #define EMOTE_ENRAGE -1533083 -#define SPELL_FROST_AURA HEROIC(28531,55799) +#define SPELL_FROST_AURA RAID_MODE(28531,55799) #define SPELL_CLEAVE 19983 -#define SPELL_TAIL_SWEEP HEROIC(55697,55696) +#define SPELL_TAIL_SWEEP RAID_MODE(55697,55696) #define SPELL_SUMMON_BLIZZARD 28560 -#define SPELL_LIFE_DRAIN HEROIC(28542,55665) +#define SPELL_LIFE_DRAIN RAID_MODE(28542,55665) #define SPELL_ICEBOLT 28522 #define SPELL_FROST_BREATH 29318 #define SPELL_FROST_EXPLOSION 28524 @@ -34,12 +34,12 @@ #define SPELL_BERSERK 26662 #define SPELL_DIES 29357 -#define SPELL_CHILL HEROIC(28547,55699) +#define SPELL_CHILL RAID_MODE(28547,55699) #define MOB_BLIZZARD 16474 #define GO_ICEBLOCK 181247 -#define ACHIEVEMENT_THE_HUNDRED_CLUB HEROIC(2146, 2147) +#define ACHIEVEMENT_THE_HUNDRED_CLUB RAID_MODE(2146, 2147) #define MAX_FROST_RESISTANCE 100 enum Phases @@ -258,7 +258,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public BossAI //DoCastAOE(SPELL_SUMMON_BLIZZARD); if (Creature *pSummon = DoSummon(MOB_BLIZZARD, me, 0.0f, urand(25000,30000), TEMPSUMMON_TIMED_DESPAWN)) pSummon->GetMotionMaster()->MoveRandom(40); - events.ScheduleEvent(EVENT_BLIZZARD, HEROIC(20000,7000), 0, PHASE_GROUND); + events.ScheduleEvent(EVENT_BLIZZARD, RAID_MODE(20000,7000), 0, PHASE_GROUND); break; } case EVENT_FLIGHT: @@ -286,7 +286,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public BossAI me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); me->SendMovementFlagUpdate(); events.ScheduleEvent(EVENT_ICEBOLT, 1500); - iceboltCount = HEROIC(2,3); + iceboltCount = RAID_MODE(2,3); return; case EVENT_ICEBOLT: { diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_thaddius.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_thaddius.cpp index c41e0464648..ebbce83b3e2 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_thaddius.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_thaddius.cpp @@ -139,7 +139,7 @@ struct TRINITY_DLL_DECL boss_thaddiusAI : public BossAI events.ScheduleEvent(EVENT_SHIFT, 30000); return; case EVENT_CHAIN: - DoCast(me->getVictim(), HEROIC(SPELL_CHAIN_LIGHTNING, H_SPELL_CHAIN_LIGHTNING)); + DoCast(me->getVictim(), RAID_MODE(SPELL_CHAIN_LIGHTNING, H_SPELL_CHAIN_LIGHTNING)); events.ScheduleEvent(EVENT_CHAIN, urand(10000,20000)); return; case EVENT_BERSERK: @@ -180,7 +180,7 @@ struct TRINITY_DLL_DECL mob_stalaggAI : public ScriptedAI { if (PowerSurgeTimer <= uiDiff) { - DoCast(m_creature, HEROIC(SPELL_POWERSURGE, H_SPELL_POWERSURGE)); + DoCast(m_creature, RAID_MODE(SPELL_POWERSURGE, H_SPELL_POWERSURGE)); PowerSurgeTimer = urand(15000,20000); } else PowerSurgeTimer -= uiDiff; DoMeleeAttackIfReady(); @@ -213,7 +213,7 @@ struct TRINITY_DLL_DECL mob_feugenAI : public ScriptedAI { if (StaticFieldTimer <= uiDiff) { - DoCast(m_creature, HEROIC(SPELL_STATICFIELD, H_SPELL_STATICFIELD)); + DoCast(m_creature, RAID_MODE(SPELL_STATICFIELD, H_SPELL_STATICFIELD)); StaticFieldTimer = 5000; } else StaticFieldTimer -= uiDiff; DoMeleeAttackIfReady(); diff --git a/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_anomalus.cpp b/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_anomalus.cpp index f6829eff7a0..f0e353c1863 100644 --- a/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_anomalus.cpp +++ b/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_anomalus.cpp @@ -66,11 +66,9 @@ struct TRINITY_DLL_DECL boss_anomalusAI : public ScriptedAI boss_anomalusAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; - bool HeroicMode; uint8 Phase; uint32 SPELL_SPARK_Timer; @@ -102,7 +100,7 @@ struct TRINITY_DLL_DECL boss_anomalusAI : public ScriptedAI { DoScriptText(SAY_DEATH, m_creature); - if (HeroicMode && !DeadChaoticRift) + if (IsHeroic() && !DeadChaoticRift) { AchievementEntry const *AchievChaosTheory = GetAchievementStore()->LookupEntry(ACHIEVEMENT_CHAOS_THEORY); if (AchievChaosTheory) @@ -205,7 +203,7 @@ struct TRINITY_DLL_DECL boss_anomalusAI : public ScriptedAI if (SPELL_SPARK_Timer <= diff) { if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) - DoCast(pTarget, HEROIC(SPELL_SPARK_N, SPELL_SPARK_H)); + DoCast(pTarget, DUNGEON_MODE(SPELL_SPARK_N, SPELL_SPARK_H)); SPELL_SPARK_Timer = 5000; } else SPELL_SPARK_Timer -=diff; diff --git a/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_keristrasza.cpp b/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_keristrasza.cpp index 3ca75a3f15f..46894750098 100644 --- a/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_keristrasza.cpp +++ b/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_keristrasza.cpp @@ -54,11 +54,9 @@ struct TRINITY_DLL_DECL boss_keristraszaAI : public ScriptedAI boss_keristraszaAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; - bool HeroicMode; uint32 CRYSTALFIRE_BREATH_Timer; uint32 CRYSTAL_CHAINS_CRYSTALIZE_Timer; @@ -73,7 +71,7 @@ struct TRINITY_DLL_DECL boss_keristraszaAI : public ScriptedAI void Reset() { CRYSTALFIRE_BREATH_Timer = 14000; - CRYSTAL_CHAINS_CRYSTALIZE_Timer = HEROIC(30000,11000); + CRYSTAL_CHAINS_CRYSTALIZE_Timer = DUNGEON_MODE(30000,11000); TAIL_SWEEP_Timer = 5000; Enrage = false; @@ -101,7 +99,7 @@ struct TRINITY_DLL_DECL boss_keristraszaAI : public ScriptedAI { DoScriptText(SAY_DEATH, m_creature); - if (HeroicMode && !MoreThanTwoIntenseCold) + if (IsHeroic() && !MoreThanTwoIntenseCold) { AchievementEntry const *AchievIntenseCold = GetAchievementStore()->LookupEntry(ACHIEVEMENT_INTENSE_COLD); if (AchievIntenseCold) @@ -199,7 +197,7 @@ struct TRINITY_DLL_DECL boss_keristraszaAI : public ScriptedAI if (CRYSTALFIRE_BREATH_Timer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_CRYSTALFIRE_BREATH_N, SPELL_CRYSTALFIRE_BREATH_H)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_CRYSTALFIRE_BREATH_N, SPELL_CRYSTALFIRE_BREATH_H)); CRYSTALFIRE_BREATH_Timer = 14000; } else CRYSTALFIRE_BREATH_Timer -=diff; @@ -212,11 +210,11 @@ struct TRINITY_DLL_DECL boss_keristraszaAI : public ScriptedAI if (CRYSTAL_CHAINS_CRYSTALIZE_Timer <= diff) { DoScriptText(SAY_CRYSTAL_NOVA, m_creature); - if (HeroicMode) + if (IsHeroic()) DoCast(m_creature, SPELL_CRYSTALIZE); else if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) DoCast(pTarget, SPELL_CRYSTAL_CHAINS); - CRYSTAL_CHAINS_CRYSTALIZE_Timer = HEROIC(30000,11000); + CRYSTAL_CHAINS_CRYSTALIZE_Timer = DUNGEON_MODE(30000,11000); } else CRYSTAL_CHAINS_CRYSTALIZE_Timer -= diff; DoMeleeAttackIfReady(); diff --git a/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_magus_telestra.cpp b/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_magus_telestra.cpp index 97c11f39f1f..26950badb89 100644 --- a/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_magus_telestra.cpp +++ b/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_magus_telestra.cpp @@ -66,11 +66,9 @@ struct TRINITY_DLL_DECL boss_magus_telestraAI : public ScriptedAI boss_magus_telestraAI(Creature* c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; - bool HeroicMode; uint64 FireMagusGUID; uint64 FrostMagusGUID; @@ -131,7 +129,7 @@ struct TRINITY_DLL_DECL boss_magus_telestraAI : public ScriptedAI { DoScriptText(SAY_DEATH, m_creature); - if (HeroicMode && AchievementProgress == 2) + if (IsHeroic() && AchievementProgress == 2) { AchievementEntry const *AchievSplitPersonality = GetAchievementStore()->LookupEntry(ACHIEV_SPLIT_PERSONALITY); if (AchievSplitPersonality) @@ -277,7 +275,7 @@ struct TRINITY_DLL_DECL boss_magus_telestraAI : public ScriptedAI return; } - if (HeroicMode && (Phase == 2) && (m_creature->GetHealth() <= (m_creature->GetMaxHealth() * 0.1))) + if (IsHeroic() && (Phase == 2) && (m_creature->GetHealth() <= (m_creature->GetMaxHealth() * 0.1))) { Phase = 3; m_creature->CastStop(); @@ -309,7 +307,7 @@ struct TRINITY_DLL_DECL boss_magus_telestraAI : public ScriptedAI { if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) { - DoCast(pTarget, HEROIC(SPELL_ICE_NOVA_N, SPELL_ICE_NOVA_H)); + DoCast(pTarget, DUNGEON_MODE(SPELL_ICE_NOVA_N, SPELL_ICE_NOVA_H)); Cooldown = 1500; } SPELL_ICE_NOVA_Timer = 15000; @@ -329,7 +327,7 @@ struct TRINITY_DLL_DECL boss_magus_telestraAI : public ScriptedAI { if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) { - DoCast(pTarget, HEROIC(SPELL_FIREBOMB_N, SPELL_FIREBOMB_H)); + DoCast(pTarget, DUNGEON_MODE(SPELL_FIREBOMB_N, SPELL_FIREBOMB_H)); Cooldown = 2000; } SPELL_FIREBOMB_Timer = 2000; diff --git a/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_ormorok.cpp b/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_ormorok.cpp index 0e26d011d82..982e604f352 100644 --- a/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_ormorok.cpp +++ b/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_ormorok.cpp @@ -58,11 +58,10 @@ struct TRINITY_DLL_DECL boss_ormorokAI : public ScriptedAI boss_ormorokAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; - bool HeroicMode; + bool Frenzy; bool CrystalSpikes; uint8 CrystalSpikes_Count; @@ -145,7 +144,7 @@ struct TRINITY_DLL_DECL boss_ormorokAI : public ScriptedAI if (SPELL_TRAMPLE_Timer <= diff) { - DoCast(m_creature, HEROIC(SPELL_TRAMPLE_N, SPELL_TRAMPLE_H)); + DoCast(m_creature, DUNGEON_MODE(SPELL_TRAMPLE_N, SPELL_TRAMPLE_H)); SPELL_TRAMPLE_Timer = 10000; } else SPELL_TRAMPLE_Timer -= diff; @@ -169,7 +168,7 @@ struct TRINITY_DLL_DECL boss_ormorokAI : public ScriptedAI SPELL_CRYSTAL_SPIKES_Timer = 20000; } else SPELL_CRYSTAL_SPIKES_Timer -=diff; - if (HeroicMode && (SPELL_SUMMON_CRYSTALLINE_TANGLER_Timer <= diff)) + if (IsHeroic() && (SPELL_SUMMON_CRYSTALLINE_TANGLER_Timer <= diff)) { Creature* Crystalline_Tangler = m_creature->SummonCreature(MOB_CRYSTALLINE_TANGLER, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(), m_creature->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 1000); if (Crystalline_Tangler) @@ -217,11 +216,8 @@ struct TRINITY_DLL_DECL mob_crystal_spikeAI : public Scripted_NoMovementAI { mob_crystal_spikeAI(Creature *c) : Scripted_NoMovementAI(c) { - HeroicMode = c->GetMap()->IsHeroic(); } - bool HeroicMode; - uint32 SPELL_CRYSTALL_SPIKE_DAMAGE_Timer; uint32 SPELL_CRYSTAL_SPIKE_PREVISUAL_Timer; @@ -245,7 +241,7 @@ struct TRINITY_DLL_DECL mob_crystal_spikeAI : public Scripted_NoMovementAI if (SPELL_CRYSTALL_SPIKE_DAMAGE_Timer <= diff) { - DoCast(m_creature, HEROIC(SPELL_CRYSTALL_SPIKE_DAMAGE_N, SPELL_CRYSTALL_SPIKE_DAMAGE_H)); + DoCast(m_creature, DUNGEON_MODE(SPELL_CRYSTALL_SPIKE_DAMAGE_N, SPELL_CRYSTALL_SPIKE_DAMAGE_H)); SPELL_CRYSTALL_SPIKE_DAMAGE_Timer = 10000; } else SPELL_CRYSTALL_SPIKE_DAMAGE_Timer -=diff; } diff --git a/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp b/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp index f09978dd11b..00f693ce8f7 100644 --- a/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp +++ b/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp @@ -255,11 +255,11 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI if (pInstance) { if (achievProgress == 1) - pInstance->DoCompleteAchievement(HEROIC(ACHIEV_TWILIGHT_ASSIST,H_ACHIEV_TWILIGHT_ASSIST)); + pInstance->DoCompleteAchievement(RAID_MODE(ACHIEV_TWILIGHT_ASSIST,H_ACHIEV_TWILIGHT_ASSIST)); else if (achievProgress == 2) - pInstance->DoCompleteAchievement(HEROIC(ACHIEV_TWILIGHT_DUO,H_ACHIEV_TWILIGHT_DUO)); + pInstance->DoCompleteAchievement(RAID_MODE(ACHIEV_TWILIGHT_DUO,H_ACHIEV_TWILIGHT_DUO)); else if (achievProgress == 3) - pInstance->DoCompleteAchievement(HEROIC(ACHIEV_TWILIGHT_ZONE,H_ACHIEV_TWILIGHT_ZONE)); + pInstance->DoCompleteAchievement(RAID_MODE(ACHIEV_TWILIGHT_ZONE,H_ACHIEV_TWILIGHT_ZONE)); pInstance->SetData(TYPE_SARTHARION_EVENT, DONE); } @@ -430,7 +430,7 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI if (m_uiFlameBreathTimer <= uiDiff) { DoScriptText(SAY_SARTHARION_BREATH, m_creature); - DoCast(m_creature->getVictim(), HEROIC(SPELL_FLAME_BREATH, SPELL_FLAME_BREATH_H)); + DoCast(m_creature->getVictim(), RAID_MODE(SPELL_FLAME_BREATH, SPELL_FLAME_BREATH_H)); m_uiFlameBreathTimer = urand(25000,35000); } else @@ -439,7 +439,7 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI // Tail Sweep if (m_uiTailSweepTimer <= uiDiff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_TAIL_LASH, SPELL_TAIL_LASH_H)); + DoCast(m_creature->getVictim(), RAID_MODE(SPELL_TAIL_LASH, SPELL_TAIL_LASH_H)); m_uiTailSweepTimer = urand(15000,20000); } else @@ -760,7 +760,7 @@ struct TRINITY_DLL_DECL mob_tenebronAI : public dummy_dragonAI if (m_uiShadowFissureTimer <= uiDiff) { if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) - DoCast(pTarget, HEROIC(SPELL_SHADOW_FISSURE, SPELL_SHADOW_FISSURE)); + DoCast(pTarget, RAID_MODE(SPELL_SHADOW_FISSURE, SPELL_SHADOW_FISSURE)); m_uiShadowFissureTimer = urand(15000,20000); } @@ -771,7 +771,7 @@ struct TRINITY_DLL_DECL mob_tenebronAI : public dummy_dragonAI if (m_uiShadowBreathTimer <= uiDiff) { DoScriptText(SAY_TENEBRON_BREATH, m_creature); - DoCast(m_creature->getVictim(), HEROIC(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H)); + DoCast(m_creature->getVictim(), RAID_MODE(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H)); m_uiShadowBreathTimer = urand(20000,25000); } else @@ -836,7 +836,7 @@ struct TRINITY_DLL_DECL mob_shadronAI : public dummy_dragonAI if (m_uiShadowFissureTimer <= uiDiff) { if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) - DoCast(pTarget, HEROIC(SPELL_SHADOW_FISSURE, SPELL_SHADOW_FISSURE_H)); + DoCast(pTarget, RAID_MODE(SPELL_SHADOW_FISSURE, SPELL_SHADOW_FISSURE_H)); m_uiShadowFissureTimer = urand(15000,20000); } @@ -847,7 +847,7 @@ struct TRINITY_DLL_DECL mob_shadronAI : public dummy_dragonAI if (m_uiShadowBreathTimer <= uiDiff) { DoScriptText(SAY_SHADRON_BREATH, m_creature); - DoCast(m_creature->getVictim(), HEROIC(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H)); + DoCast(m_creature->getVictim(), RAID_MODE(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H)); m_uiShadowBreathTimer = urand(20000,25000); } else @@ -906,7 +906,7 @@ struct TRINITY_DLL_DECL mob_vesperonAI : public dummy_dragonAI if (m_uiShadowFissureTimer <= uiDiff) { if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) - DoCast(pTarget, HEROIC(SPELL_SHADOW_FISSURE, SPELL_SHADOW_FISSURE_H)); + DoCast(pTarget, RAID_MODE(SPELL_SHADOW_FISSURE, SPELL_SHADOW_FISSURE_H)); m_uiShadowFissureTimer = urand(15000,20000); } @@ -917,7 +917,7 @@ struct TRINITY_DLL_DECL mob_vesperonAI : public dummy_dragonAI if (m_uiShadowBreathTimer <= uiDiff) { DoScriptText(SAY_VESPERON_BREATH, m_creature); - DoCast(m_creature->getVictim(), HEROIC(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H)); + DoCast(m_creature->getVictim(), RAID_MODE(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H)); m_uiShadowBreathTimer = urand(20000,25000); } else diff --git a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_bjarngrim.cpp b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_bjarngrim.cpp index 440ad50b5b2..47634072625 100644 --- a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_bjarngrim.cpp +++ b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_bjarngrim.cpp @@ -84,14 +84,12 @@ struct TRINITY_DLL_DECL boss_bjarngrimAI : public ScriptedAI boss_bjarngrimAI(Creature *pCreature) : ScriptedAI(pCreature) { m_pInstance = pCreature->GetInstanceData(); - m_bIsHeroic = pCreature->GetMap()->IsHeroic(); m_uiStance = STANCE_DEFENSIVE; memset(&m_auiStormforgedLieutenantGUID, 0, sizeof(m_auiStormforgedLieutenantGUID)); } ScriptedInstance* m_pInstance; - bool m_bIsHeroic; bool m_bIsChangingStance; uint8 m_uiChargingStatus; @@ -350,11 +348,9 @@ struct TRINITY_DLL_DECL mob_stormforged_lieutenantAI : public ScriptedAI mob_stormforged_lieutenantAI(Creature *pCreature) : ScriptedAI(pCreature) { m_pInstance = pCreature->GetInstanceData(); - m_bIsHeroic = pCreature->GetMap()->IsHeroic(); } ScriptedInstance* m_pInstance; - bool m_bIsHeroic; uint32 m_uiArcWeld_Timer; uint32 m_uiRenewSteel_Timer; @@ -398,7 +394,7 @@ struct TRINITY_DLL_DECL mob_stormforged_lieutenantAI : public ScriptedAI if (Creature* pBjarngrim = m_pInstance->instance->GetCreature(m_pInstance->GetData64(DATA_BJARNGRIM))) { if (pBjarngrim->isAlive()) - DoCast(pBjarngrim, m_bIsHeroic ? SPELL_RENEW_STEEL_H : SPELL_RENEW_STEEL_N); + DoCast(pBjarngrim, DUNGEON_MODE(SPELL_RENEW_STEEL_N, SPELL_RENEW_STEEL_H)); } } m_uiRenewSteel_Timer = 10000 + rand()%4000; diff --git a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp index 87b4ab64cbe..3e4494f4205 100644 --- a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp +++ b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp @@ -195,7 +195,7 @@ struct TRINITY_DLL_DECL boss_ionarAI : public ScriptedAI { if (pSummoned->GetEntry() == NPC_SPARK_OF_IONAR) { - pSummoned->CastSpell(pSummoned, HEROIC(SPELL_SPARK_VISUAL_TRIGGER_N,SPELL_SPARK_VISUAL_TRIGGER_H), true); + pSummoned->CastSpell(pSummoned, DUNGEON_MODE(SPELL_SPARK_VISUAL_TRIGGER_N,SPELL_SPARK_VISUAL_TRIGGER_H), true); Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0); @@ -259,7 +259,7 @@ struct TRINITY_DLL_DECL boss_ionarAI : public ScriptedAI if (m_uiStaticOverload_Timer <= uiDiff) { if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) - DoCast(pTarget, HEROIC(SPELL_STATIC_OVERLOAD_N, SPELL_STATIC_OVERLOAD_H)); + DoCast(pTarget, DUNGEON_MODE(SPELL_STATIC_OVERLOAD_N, SPELL_STATIC_OVERLOAD_H)); m_uiStaticOverload_Timer = 5000 + rand()%1000; } @@ -268,7 +268,7 @@ struct TRINITY_DLL_DECL boss_ionarAI : public ScriptedAI if (m_uiBallLightning_Timer <= uiDiff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_BALL_LIGHTNING_N, SPELL_BALL_LIGHTNING_H)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_BALL_LIGHTNING_N, SPELL_BALL_LIGHTNING_H)); m_uiBallLightning_Timer = 10000 + rand()%1000; } else diff --git a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_loken.cpp b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_loken.cpp index 39a889df46a..fdb40810e2c 100644 --- a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_loken.cpp +++ b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_loken.cpp @@ -63,12 +63,10 @@ struct TRINITY_DLL_DECL boss_lokenAI : public ScriptedAI boss_lokenAI(Creature* pCreature) : ScriptedAI(pCreature) { m_pInstance = pCreature->GetInstanceData(); - m_bIsHeroic = pCreature->GetMap()->IsHeroic(); } ScriptedInstance* m_pInstance; - bool m_bIsHeroic; bool m_bIsAura; uint32 m_uiArcLightning_Timer; @@ -109,7 +107,7 @@ struct TRINITY_DLL_DECL boss_lokenAI : public ScriptedAI { DoScriptText(SAY_DEATH, m_creature); - if (m_bIsHeroic && EncounterTime <= MAX_ENCOUNTER_TIME) + if (IsHeroic() && EncounterTime <= MAX_ENCOUNTER_TIME) { AchievementEntry const *AchievTimelyDeath = GetAchievementStore()->LookupEntry(ACHIEVEMENT_TIMELY_DEATH); if (AchievTimelyDeath) @@ -160,12 +158,11 @@ struct TRINITY_DLL_DECL boss_lokenAI : public ScriptedAI int32 dmg; float m_fDist = m_creature->GetExactDist(i->getSource()->GetPositionX(), i->getSource()->GetPositionY(), i->getSource()->GetPositionZ()); - if (m_fDist <= 1.0f) // Less than 1 yard - dmg = (m_bIsHeroic ? 150 : 100); // need to correct damage - else // Further from 1 yard - dmg = ((m_bIsHeroic ? 150 : 100) * m_fDist) + (m_bIsHeroic ? 150 : 100); // need to correct damage + dmg = DUNGEON_MODE(100, 150); // need to correct damage + if (m_fDist > 1.0f) // Further from 1 yard + dmg *= m_fDist; - m_creature->CastCustomSpell(i->getSource(), (m_bIsHeroic ? 59837 : 52942), &dmg, 0, 0, false); + m_creature->CastCustomSpell(i->getSource(), DUNGEON_MODE(52942, 59837), &dmg, 0, 0, false); } } m_uiPulsingShockwave_Timer = 2000; @@ -178,7 +175,7 @@ struct TRINITY_DLL_DECL boss_lokenAI : public ScriptedAI //breaks at movement, can we assume when it's time, this spell is casted and also must stop movement? DoCast(m_creature, SPELL_PULSING_SHOCKWAVE_AURA, true); - DoCast(m_creature, m_bIsHeroic ? SPELL_PULSING_SHOCKWAVE_H : SPELL_PULSING_SHOCKWAVE_N); // need core support + DoCast(m_creature, DUNGEON_MODE(SPELL_PULSING_SHOCKWAVE_N, SPELL_PULSING_SHOCKWAVE_H)); // need core support m_bIsAura = true; m_uiResumePulsingShockwave_Timer = 0; } @@ -200,10 +197,10 @@ struct TRINITY_DLL_DECL boss_lokenAI : public ScriptedAI { DoScriptText(RAND(SAY_NOVA_1,SAY_NOVA_2,SAY_NOVA_3), m_creature); DoScriptText(EMOTE_NOVA, m_creature); - DoCast(m_creature, m_bIsHeroic ? SPELL_LIGHTNING_NOVA_H : SPELL_LIGHTNING_NOVA_N); + DoCast(m_creature, DUNGEON_MODE(SPELL_LIGHTNING_NOVA_N, SPELL_LIGHTNING_NOVA_H)); m_bIsAura = false; - m_uiResumePulsingShockwave_Timer = (m_bIsHeroic ? 4000 : 5000); // Pause Pulsing Shockwave aura + m_uiResumePulsingShockwave_Timer = DUNGEON_MODE(5000, 4000); // Pause Pulsing Shockwave aura m_uiLightningNova_Timer = 20000 + rand()%1000; } else diff --git a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_volkhan.cpp b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_volkhan.cpp index e8b524e772a..def0290ba0a 100644 --- a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_volkhan.cpp +++ b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_volkhan.cpp @@ -77,14 +77,12 @@ struct TRINITY_DLL_DECL boss_volkhanAI : public ScriptedAI boss_volkhanAI(Creature *pCreature) : ScriptedAI(pCreature) { m_pInstance = pCreature->GetInstanceData(); - m_bIsHeroic = pCreature->GetMap()->IsHeroic(); } ScriptedInstance* m_pInstance; std::list<uint64> m_lGolemGUIDList; - bool m_bIsHeroic; bool m_bHasTemper; bool m_bIsStriking; bool m_bCanShatterGolem; @@ -145,7 +143,7 @@ struct TRINITY_DLL_DECL boss_volkhanAI : public ScriptedAI if (m_pInstance) m_pInstance->SetData(TYPE_VOLKHAN, DONE); - if (HeroicMode && GolemsShattered < 5) + if (IsHeroic() && GolemsShattered < 5) { AchievementEntry const *AchievShatterResistant = GetAchievementStore()->LookupEntry(ACHIEVEMENT_SHATTER_RESISTANT); if (AchievShatterResistant) @@ -195,7 +193,7 @@ struct TRINITY_DLL_DECL boss_volkhanAI : public ScriptedAI // only shatter brittle golems if (pTemp->isAlive() && pTemp->GetEntry() == NPC_BRITTLE_GOLEM) { - pTemp->CastSpell(pTemp, m_bIsHeroic ? SPELL_SHATTER_H : SPELL_SHATTER_N, false); + pTemp->CastSpell(pTemp, DUNGEON_MODE(SPELL_SHATTER_N, SPELL_SHATTER_H), false); GolemsShattered += 1; } } @@ -218,7 +216,7 @@ struct TRINITY_DLL_DECL boss_volkhanAI : public ScriptedAI pSummoned->AI()->AttackStart(pTarget); //why healing when just summoned? - pSummoned->CastSpell(pSummoned, m_bIsHeroic ? SPELL_HEAT_H : SPELL_HEAT_N, false, NULL, NULL, m_creature->GetGUID()); + pSummoned->CastSpell(pSummoned, DUNGEON_MODE(SPELL_HEAT_N, SPELL_HEAT_H), false, NULL, NULL, m_creature->GetGUID()); } } @@ -257,7 +255,7 @@ struct TRINITY_DLL_DECL boss_volkhanAI : public ScriptedAI DoScriptText(RAND(SAY_STOMP_1,SAY_STOMP_2), m_creature); - DoCast(m_creature, m_bIsHeroic ? SPELL_SHATTERING_STOMP_H : SPELL_SHATTERING_STOMP_N); + DoCast(m_creature, DUNGEON_MODE(SPELL_SHATTERING_STOMP_N, SPELL_SHATTERING_STOMP_H)); DoScriptText(EMOTE_SHATTER, m_creature); @@ -369,10 +367,8 @@ struct TRINITY_DLL_DECL mob_molten_golemAI : public ScriptedAI { mob_molten_golemAI(Creature *pCreature) : ScriptedAI(pCreature) { - m_bIsHeroic = pCreature->GetMap()->IsHeroic(); } - bool m_bIsHeroic; bool m_bIsFrozen; uint32 m_uiBlast_Timer; @@ -445,7 +441,7 @@ struct TRINITY_DLL_DECL mob_molten_golemAI : public ScriptedAI if (m_uiImmolation_Timer <= uiDiff) { - DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_IMMOLATION_STRIKE_H : SPELL_IMMOLATION_STRIKE_N); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_IMMOLATION_STRIKE_N, SPELL_IMMOLATION_STRIKE_H)); m_uiImmolation_Timer = 5000; } else diff --git a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/boss_krystallus.cpp b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/boss_krystallus.cpp index 4e914fa0f13..fad779437db 100644 --- a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/boss_krystallus.cpp +++ b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/boss_krystallus.cpp @@ -79,7 +79,7 @@ struct TRINITY_DLL_DECL boss_krystallusAI : public ScriptedAI if (uiBoulderTossTimer <= diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(SPELL_BOULDER_TOSS, H_SPELL_BOULDER_TOSS)); + DoCast(pTarget, DUNGEON_MODE(SPELL_BOULDER_TOSS, H_SPELL_BOULDER_TOSS)); uiBoulderTossTimer = 9000 + rand()%6000; } else uiBoulderTossTimer -= diff; @@ -92,7 +92,7 @@ struct TRINITY_DLL_DECL boss_krystallusAI : public ScriptedAI if (uiStompTimer <= diff) { - DoCast(m_creature, HEROIC(SPELL_STOMP, H_SPELL_STOMP)); + DoCast(m_creature, DUNGEON_MODE(SPELL_STOMP, H_SPELL_STOMP)); uiStompTimer = 20000 + rand()%9000; } else uiStompTimer -= diff; @@ -108,7 +108,7 @@ struct TRINITY_DLL_DECL boss_krystallusAI : public ScriptedAI { if (uiShatterTimer <= diff) { - DoCast(m_creature, HEROIC(SPELL_SHATTER, H_SPELL_SHATTER)); + DoCast(m_creature, DUNGEON_MODE(SPELL_SHATTER, H_SPELL_SHATTER)); bIsSlam = false; } else uiShatterTimer -= diff; } diff --git a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/boss_maiden_of_grief.cpp b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/boss_maiden_of_grief.cpp index 85b2e8fba67..50d9d71a619 100644 --- a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/boss_maiden_of_grief.cpp +++ b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/boss_maiden_of_grief.cpp @@ -44,11 +44,9 @@ struct TRINITY_DLL_DECL boss_maiden_of_griefAI : public ScriptedAI boss_maiden_of_griefAI(Creature *c) : ScriptedAI(c) { pInstance = m_creature->GetInstanceData(); - IsHeroic = m_creature->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; - bool IsHeroic; uint32 PartingSorrowTimer; uint32 StormOfGriefTimer; @@ -92,7 +90,7 @@ struct TRINITY_DLL_DECL boss_maiden_of_griefAI : public ScriptedAI if (pInstance->GetData(DATA_MAIDEN_OF_GRIEF_EVENT) == IN_PROGRESS) AchievTimer += diff; - if(IsHeroic) + if (IsHeroic()) { if (PartingSorrowTimer <= diff) { @@ -107,7 +105,7 @@ struct TRINITY_DLL_DECL boss_maiden_of_griefAI : public ScriptedAI if (StormOfGriefTimer <= diff) { - DoCast(m_creature->getVictim(), IsHeroic ? SPELL_STORM_OF_GRIEF_H : SPELL_STORM_OF_GRIEF_N, true); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_STORM_OF_GRIEF_N, SPELL_STORM_OF_GRIEF_H), true); StormOfGriefTimer = 15000 + rand()%5000; } else StormOfGriefTimer -= diff; @@ -115,7 +113,7 @@ struct TRINITY_DLL_DECL boss_maiden_of_griefAI : public ScriptedAI { DoResetThreat(); DoScriptText(SAY_STUN, m_creature); - DoCast(m_creature, IsHeroic ? SPELL_SHOCK_OF_SORROW_H : SPELL_SHOCK_OF_SORROW_N); + DoCast(m_creature, DUNGEON_MODE(SPELL_SHOCK_OF_SORROW_N, SPELL_SHOCK_OF_SORROW_H)); ShockOfSorrowTimer = 20000 + rand()%10000; } else ShockOfSorrowTimer -= diff; @@ -123,10 +121,10 @@ struct TRINITY_DLL_DECL boss_maiden_of_griefAI : public ScriptedAI { Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 1); - if(pTarget) - DoCast(pTarget, IsHeroic ? SPELL_PILLAR_OF_WOE_H : SPELL_PILLAR_OF_WOE_N); + if (pTarget) + DoCast(pTarget, DUNGEON_MODE(SPELL_PILLAR_OF_WOE_N, SPELL_PILLAR_OF_WOE_H)); else - DoCast(m_creature->getVictim(), IsHeroic ? SPELL_PILLAR_OF_WOE_H : SPELL_PILLAR_OF_WOE_N); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_PILLAR_OF_WOE_N, SPELL_PILLAR_OF_WOE_H)); PillarOfWoeTimer = 5000 + rand()%20000; } else PillarOfWoeTimer -= diff; @@ -143,7 +141,7 @@ struct TRINITY_DLL_DECL boss_maiden_of_griefAI : public ScriptedAI AchievementEntry const *AchievGoodGrief = GetAchievementStore()->LookupEntry(ACHIEVEMENT_GOOD_GRIEF); Map* pMap = m_creature->GetMap(); - if (HeroicMode && AchievTimer < 60000 && pMap && pMap->IsDungeon() && AchievGoodGrief) + if (IsHeroic() && AchievTimer < 60000 && pMap && pMap->IsDungeon() && AchievGoodGrief) { Map::PlayerList const &players = pMap->GetPlayers(); for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) diff --git a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/boss_sjonnir.cpp b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/boss_sjonnir.cpp index 0e4db427246..9424685be20 100644 --- a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/boss_sjonnir.cpp +++ b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/boss_sjonnir.cpp @@ -130,19 +130,19 @@ struct TRINITY_DLL_DECL boss_sjonnirAI : public ScriptedAI if (uiChainLightningTimer <= diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(SPELL_CHAIN_LIGHTING, H_SPELL_CHAIN_LIGHTING)); + DoCast(pTarget, DUNGEON_MODE(SPELL_CHAIN_LIGHTING, H_SPELL_CHAIN_LIGHTING)); uiChainLightningTimer = 10000 + rand()%5000; } else uiChainLightningTimer -= diff; if (uiLightningShieldTimer <= diff) { - DoCast(m_creature, HEROIC(SPELL_LIGHTING_SHIELD, H_SPELL_LIGHTING_SHIELD)); + DoCast(m_creature, DUNGEON_MODE(SPELL_LIGHTING_SHIELD, H_SPELL_LIGHTING_SHIELD)); uiLightningShieldTimer -= diff; } if (uiStaticChargeTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_STATIC_CHARGE, H_SPELL_STATIC_CHARGE)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_STATIC_CHARGE, H_SPELL_STATIC_CHARGE)); uiStaticChargeTimer = 20000 + rand()%5000; } uiStaticChargeTimer -= diff; @@ -150,7 +150,7 @@ struct TRINITY_DLL_DECL boss_sjonnirAI : public ScriptedAI { if (m_creature->IsNonMeleeSpellCasted(false)) m_creature->InterruptNonMeleeSpells(false); - DoCast(m_creature, HEROIC(SPELL_LIGHTING_RING, H_SPELL_LIGHTING_RING)); + DoCast(m_creature, DUNGEON_MODE(SPELL_LIGHTING_RING, H_SPELL_LIGHTING_RING)); uiLightningRingTimer = 30000 + rand()%5000; } else uiLightningRingTimer -= diff; @@ -195,7 +195,7 @@ struct TRINITY_DLL_DECL boss_sjonnirAI : public ScriptedAI if (pInstance) { pInstance->SetData(DATA_SJONNIR_EVENT, DONE); - if (HeroicMode && uiKilledIronSludges > 4) + if (IsHeroic() && uiKilledIronSludges > 4) pInstance->DoCompleteAchievement(ACHIEV_ABUSE_THE_OOZE); } } diff --git a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/halls_of_stone.cpp b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/halls_of_stone.cpp index a8141edb987..5a03d583b13 100644 --- a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/halls_of_stone.cpp +++ b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/halls_of_stone.cpp @@ -184,7 +184,7 @@ struct TRINITY_DLL_DECL mob_tribuna_controllerAI : public ScriptedAI if (!lKaddrakGUIDList.empty()) for (std::list<Creature*>::iterator itr = lKaddrakGUIDList.begin(); itr != lKaddrakGUIDList.end(); ++itr) if ((*itr)->isAlive()) - (*itr)->CastSpell(pTarget, HEROIC(SPELL_GLARE_OF_THE_TRIBUNAL, H_SPELL_GLARE_OF_THE_TRIBUNAL), true); + (*itr)->CastSpell(pTarget, DUNGEON_MODE(SPELL_GLARE_OF_THE_TRIBUNAL, H_SPELL_GLARE_OF_THE_TRIBUNAL), true); uiKaddrakEncounterTimer = 1500; } else uiKaddrakEncounterTimer -= diff; } @@ -198,7 +198,7 @@ struct TRINITY_DLL_DECL mob_tribuna_controllerAI : public ScriptedAI { pSummon->SetDisplayId(11686); pSummon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - pSummon->CastSpell(pTarget, HEROIC(SPELL_DARK_MATTER, H_SPELL_DARK_MATTER), true); + pSummon->CastSpell(pTarget, DUNGEON_MODE(SPELL_DARK_MATTER, H_SPELL_DARK_MATTER), true); } } uiMarnakEncounterTimer = 30000 + rand()%1000; @@ -214,7 +214,7 @@ struct TRINITY_DLL_DECL mob_tribuna_controllerAI : public ScriptedAI { pSummon->SetDisplayId(11686); pSummon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - pSummon->CastSpell(pTarget, HEROIC(SPELL_SEARING_GAZE, H_SPELL_SEARING_GAZE), true); + pSummon->CastSpell(pTarget, DUNGEON_MODE(SPELL_SEARING_GAZE, H_SPELL_SEARING_GAZE), true); } } uiAbedneumEncounterTimer = 30000 + rand()%1000; @@ -310,7 +310,7 @@ struct TRINITY_DLL_DECL npc_brann_hosAI : public npc_escortAI { case 1: { - uint32 uiSpawnNumber = (HeroicMode ? 3 : 2); + uint32 uiSpawnNumber = DUNGEON_MODE(2,3); for (uint8 i = 0; i < uiSpawnNumber; ++i) m_creature->SummonCreature(CREATURE_DARK_RUNE_PROTECTOR, SpawnLocations[0].x, SpawnLocations[0].y, SpawnLocations[0].z, 0.0f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000); m_creature->SummonCreature(CREATURE_DARK_RUNE_STORMCALLER, SpawnLocations[0].x, SpawnLocations[0].y, SpawnLocations[0].z, 0.0f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000); diff --git a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_assembly_of_iron.cpp b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_assembly_of_iron.cpp index 54f309afaa3..b3a3b5403b6 100644 --- a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_assembly_of_iron.cpp +++ b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_assembly_of_iron.cpp @@ -132,7 +132,7 @@ struct TRINITY_DLL_DECL boss_steelbreakerAI : public ScriptedAI void EnterCombat(Unit *who) { DoZoneInCombat(); - DoCast(m_creature, HEROIC(SPELL_HIGH_VOLTAGE, SPELL_HIGH_VOLTAGE_H)); + DoCast(m_creature, RAID_MODE(SPELL_HIGH_VOLTAGE, SPELL_HIGH_VOLTAGE_H)); events.ScheduleEvent(EVENT_ENRAGE, 900000); UpdatePhase(); } @@ -200,19 +200,19 @@ struct TRINITY_DLL_DECL boss_steelbreakerAI : public ScriptedAI DoCast(SPELL_BERSERK); break; case EVENT_FUSION_PUNCH: - DoCast(me->getVictim(), HEROIC(SPELL_FUSION_PUNCH_H, SPELL_FUSION_PUNCH)); + DoCast(me->getVictim(), RAID_MODE(SPELL_FUSION_PUNCH_H, SPELL_FUSION_PUNCH)); events.ScheduleEvent(EVENT_FUSION_PUNCH, 13000 + (rand()%9)*1000); break; case EVENT_STATIC_DISRUPTION: { Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM); - DoCast(pTarget, HEROIC(SPELL_STATIC_DISRUPTION_H, SPELL_STATIC_DISRUPTION)); + DoCast(pTarget, RAID_MODE(SPELL_STATIC_DISRUPTION_H, SPELL_STATIC_DISRUPTION)); events.ScheduleEvent(EVENT_STATIC_DISRUPTION, 20000 + (rand()%20)*1000); } break; case EVENT_OVERWHELMING_POWER: - DoCast(me->getVictim(), HEROIC(SPELL_OVERWHELMING_POWER, SPELL_OVERWHELMING_POWER_H)); - events.ScheduleEvent(EVENT_OVERWHELMING_POWER, (HeroicMode) ? 35000 : 60000); + DoCast(me->getVictim(), RAID_MODE(SPELL_OVERWHELMING_POWER, SPELL_OVERWHELMING_POWER_H)); + events.ScheduleEvent(EVENT_OVERWHELMING_POWER, RAID_MODE(60000, 35000)); break; } } @@ -315,7 +315,7 @@ struct TRINITY_DLL_DECL boss_runemaster_molgeimAI : public ScriptedAI } break; case EVENT_SHIELD_OF_RUNES: - DoCast(m_creature, HEROIC(SPELL_SHIELD_OF_RUNES, SPELL_SHIELD_OF_RUNES_H)); + DoCast(m_creature, RAID_MODE(SPELL_SHIELD_OF_RUNES, SPELL_SHIELD_OF_RUNES_H)); events.ScheduleEvent(EVENT_SHIELD_OF_RUNES, 27000+ (rand()%7)*1000); break; case EVENT_RUNE_OF_DEATH: @@ -362,7 +362,7 @@ struct TRINITY_DLL_DECL mob_lightning_elementalAI : public ScriptedAI if(m_creature->IsWithinMeleeRange(Target)) { - DoCast(Target, HEROIC(SPELL_LIGHTNING_BLAST, SPELL_LIGHTNING_BLAST_H)); + DoCast(Target, RAID_MODE(SPELL_LIGHTNING_BLAST, SPELL_LIGHTNING_BLAST_H)); m_creature->Kill(m_creature); // hack until spell works } @@ -479,20 +479,20 @@ struct TRINITY_DLL_DECL boss_stormcaller_brundirAI : public ScriptedAI case EVENT_CHAIN_LIGHTNING: { Unit* Target = SelectUnit(SELECT_TARGET_RANDOM,0); - DoCast(Target, HEROIC(SPELL_CHAIN_LIGHTNING_N , SPELL_CHAIN_LIGHTNING_H)); + DoCast(Target, RAID_MODE(SPELL_CHAIN_LIGHTNING_N , SPELL_CHAIN_LIGHTNING_H)); events.ScheduleEvent(EVENT_CHAIN_LIGHTNING, 9000+ (rand()%8)*1000); } break; case EVENT_OVERLOAD: - DoCast(HEROIC(SPELL_OVERLOAD , SPELL_OVERLOAD_H)); + DoCast(RAID_MODE(SPELL_OVERLOAD , SPELL_OVERLOAD_H)); events.ScheduleEvent(EVENT_OVERLOAD, 60000+ (rand()%65)*1000); break; case EVENT_LIGHTNING_WHIRL: - DoCast(HEROIC(SPELL_LIGHTNING_WHIRL , SPELL_LIGHTNING_WHIRL_H)); + DoCast(RAID_MODE(SPELL_LIGHTNING_WHIRL , SPELL_LIGHTNING_WHIRL_H)); events.ScheduleEvent(EVENT_LIGHTNING_WHIRL, 20000+ (rand()%20)*1000); break; case EVENT_LIGHTNING_TENDRILS: - DoCast(HEROIC(SPELL_LIGHTNING_TENDRILS, SPELL_LIGHTNING_TENDRILS_H)); + DoCast(RAID_MODE(SPELL_LIGHTNING_TENDRILS, SPELL_LIGHTNING_TENDRILS_H)); events.DelayEvents(15000, 5000); DoResetThreat(); break; diff --git a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_kologarn.cpp b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_kologarn.cpp index 80faac62951..7560cfa2e22 100644 --- a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_kologarn.cpp +++ b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_kologarn.cpp @@ -20,14 +20,14 @@ #include "ulduar.h" #include "Vehicle.h" -#define SPELL_ARM_DEAD_DAMAGE HEROIC(63629,63979) -#define SPELL_TWO_ARM_SMASH HEROIC(63356,64003) -#define SPELL_ONE_ARM_SMASH HEROIC(63573,64006) -#define SPELL_STONE_SHOUT HEROIC(63716,64005) -#define SPELL_PETRIFY_BREATH HEROIC(62030,63980) - -#define SPELL_STONE_GRIP HEROIC(62166,63981) -#define SPELL_ARM_SWEEP HEROIC(63766,63983) +#define SPELL_ARM_DEAD_DAMAGE RAID_MODE(63629,63979) +#define SPELL_TWO_ARM_SMASH RAID_MODE(63356,64003) +#define SPELL_ONE_ARM_SMASH RAID_MODE(63573,64006) +#define SPELL_STONE_SHOUT RAID_MODE(63716,64005) +#define SPELL_PETRIFY_BREATH RAID_MODE(62030,63980) + +#define SPELL_STONE_GRIP RAID_MODE(62166,63981) +#define SPELL_ARM_SWEEP RAID_MODE(63766,63983) enum Events { diff --git a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_razorscale.cpp b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_razorscale.cpp index 535fb275d3c..138f155a9d6 100644 --- a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_razorscale.cpp +++ b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_razorscale.cpp @@ -185,7 +185,7 @@ struct TRINITY_DLL_DECL boss_razorscaleAI : public BossAI { DoScriptText(EMOTE_BREATH, m_creature); std::list<Unit*> pTargets; - SelectTargetList(pTargets, HEROIC(3,9), SELECT_TARGET_RANDOM, 100, true); + SelectTargetList(pTargets, RAID_MODE(3,9), SELECT_TARGET_RANDOM, 100, true); uint8 i = 0; for (std::list<Unit*>::iterator itr = pTargets.begin(); itr != pTargets.end();) { @@ -194,7 +194,7 @@ struct TRINITY_DLL_DECL boss_razorscaleAI : public BossAI DoCast(*itr, SPELL_FLAMEBUFFET, true); ++i; } - if (++itr == pTargets.end() || i == HEROIC(3,9)) + if (++itr == pTargets.end() || i == RAID_MODE(3,9)) { AttackStart(*--itr); // seems to attack targets randomly during perma-ground phase.. break; diff --git a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp index 3ad97654e2e..8dbb8aff58f 100644 --- a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp +++ b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp @@ -73,12 +73,10 @@ struct TRINITY_DLL_DECL boss_ingvar_the_plundererAI : public ScriptedAI boss_ingvar_the_plundererAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; - bool HeroicMode; bool undead; bool event_inProgress; @@ -204,7 +202,7 @@ struct TRINITY_DLL_DECL boss_ingvar_the_plundererAI : public ScriptedAI if (!wait_Timer) { if (undead) - DoCast(m_creature->getVictim(), HEROIC(SPELL_WOE_STRIKE, H_SPELL_WOE_STRIKE)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_WOE_STRIKE, H_SPELL_WOE_STRIKE)); else DoCast(m_creature->getVictim(), SPELL_CLEAVE); Cleave_Timer = rand()%5000 + 2000; @@ -220,7 +218,7 @@ struct TRINITY_DLL_DECL boss_ingvar_the_plundererAI : public ScriptedAI if (undead) DoCast(m_creature->getVictim(), SPELL_DARK_SMASH); else - DoCast(m_creature->getVictim(), HEROIC(SPELL_SMASH, H_SPELL_SMASH)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SMASH, H_SPELL_SMASH)); Smash_Timer = 10000; wait_Timer = 5000; @@ -231,7 +229,7 @@ struct TRINITY_DLL_DECL boss_ingvar_the_plundererAI : public ScriptedAI { if (Enrage_Timer <= diff) { - DoCast(m_creature, HEROIC(SPELL_ENRAGE, H_SPELL_ENRAGE)); + DoCast(m_creature, DUNGEON_MODE(SPELL_ENRAGE, H_SPELL_ENRAGE)); Enrage_Timer = 10000; } else Enrage_Timer -= diff; } else // In Undead form used to summon weapon @@ -258,9 +256,9 @@ struct TRINITY_DLL_DECL boss_ingvar_the_plundererAI : public ScriptedAI if (!wait_Timer) { if (undead) - DoCast(m_creature, HEROIC(SPELL_DREADFUL_ROAR, H_SPELL_DREADFUL_ROAR)); + DoCast(m_creature, DUNGEON_MODE(SPELL_DREADFUL_ROAR, H_SPELL_DREADFUL_ROAR)); else - DoCast(m_creature, HEROIC(SPELL_STAGGERING_ROAR, H_SPELL_STAGGERING_ROAR)); + DoCast(m_creature, DUNGEON_MODE(SPELL_STAGGERING_ROAR, H_SPELL_STAGGERING_ROAR)); Roar_Timer = 10000; wait_Timer = 5000; @@ -398,10 +396,8 @@ struct TRINITY_DLL_DECL mob_ingvar_throw_dummyAI : public ScriptedAI { mob_ingvar_throw_dummyAI(Creature *c) : ScriptedAI(c) { - HeroicMode = c->GetMap()->IsHeroic(); } - bool HeroicMode; uint32 Despawn_Timer; void Reset() @@ -409,7 +405,7 @@ struct TRINITY_DLL_DECL mob_ingvar_throw_dummyAI : public ScriptedAI Unit *pTarget = m_creature->FindNearestCreature(ENTRY_THROW_TARGET,50); if (pTarget) { - DoCast(m_creature, HEROIC(SPELL_SHADOW_AXE_DAMAGE, H_SPELL_SHADOW_AXE_DAMAGE)); + DoCast(m_creature, DUNGEON_MODE(SPELL_SHADOW_AXE_DAMAGE, H_SPELL_SHADOW_AXE_DAMAGE)); float x,y,z; pTarget->GetPosition(x,y,z); m_creature->GetMotionMaster()->MovePoint(0,x,y,z); diff --git a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_keleseth.cpp b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_keleseth.cpp index 0c90f71259d..56e78ffebb6 100644 --- a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_keleseth.cpp +++ b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_keleseth.cpp @@ -106,7 +106,6 @@ struct TRINITY_DLL_DECL boss_kelesethAI : public ScriptedAI boss_kelesethAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - Heroic = c->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; @@ -117,7 +116,6 @@ struct TRINITY_DLL_DECL boss_kelesethAI : public ScriptedAI uint32 ShadowboltTimer; uint64 SkeletonGUID[5]; bool Skeletons; - bool Heroic; bool RespawnSkeletons; void Reset() @@ -145,7 +143,7 @@ struct TRINITY_DLL_DECL boss_kelesethAI : public ScriptedAI { DoScriptText(SAY_DEATH, m_creature); - if (Heroic && !ShatterFrostTomb) + if (IsHeroic() && !ShatterFrostTomb) { AchievementEntry const *AchievOnTheRocks = GetAchievementStore()->LookupEntry(ACHIEVEMENT_ON_THE_ROCKS); if (AchievOnTheRocks) @@ -188,7 +186,7 @@ struct TRINITY_DLL_DECL boss_kelesethAI : public ScriptedAI { Unit *pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO, 0); if (pTarget && pTarget->isAlive() && pTarget->GetTypeId() == TYPEID_PLAYER) - m_creature->CastSpell(pTarget, HEROIC(SPELL_SHADOWBOLT, SPELL_SHADOWBOLT_HEROIC), true); + m_creature->CastSpell(pTarget, DUNGEON_MODE(SPELL_SHADOWBOLT, SPELL_SHADOWBOLT_HEROIC), true); ShadowboltTimer = 10000; } else ShadowboltTimer -= diff; diff --git a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp index c6fee361b87..52064e0f1a9 100644 --- a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp +++ b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp @@ -63,13 +63,11 @@ struct TRINITY_DLL_DECL boss_skarvald_the_constructorAI : public ScriptedAI boss_skarvald_the_constructorAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; bool ghost; - bool HeroicMode; uint32 Charge_Timer; uint32 StoneStrike_Timer; uint32 Response_Timer; @@ -208,13 +206,11 @@ struct TRINITY_DLL_DECL boss_dalronn_the_controllerAI : public ScriptedAI boss_dalronn_the_controllerAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; bool ghost; - bool HeroicMode; uint32 ShadowBolt_Timer; uint32 Debilitate_Timer; uint32 Summon_Timer; @@ -344,7 +340,7 @@ struct TRINITY_DLL_DECL boss_dalronn_the_controllerAI : public ScriptedAI { if (!m_creature->IsNonMeleeSpellCasted(false)) { - DoCast(SelectUnit(SELECT_TARGET_RANDOM, 0),HEROIC(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT)); + DoCast(SelectUnit(SELECT_TARGET_RANDOM, 0), DUNGEON_MODE(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT)); ShadowBolt_Timer = 1000; } } else ShadowBolt_Timer -= diff; @@ -358,7 +354,7 @@ struct TRINITY_DLL_DECL boss_dalronn_the_controllerAI : public ScriptedAI } } else Debilitate_Timer -= diff; - if (HeroicMode) + if (IsHeroic()) if (Summon_Timer <= diff) { DoCast(m_creature, H_SPELL_SUMMON_SKELETONS); diff --git a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_palehoof.cpp b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_palehoof.cpp index bbebb204eaf..1bee086880f 100644 --- a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_palehoof.cpp +++ b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_palehoof.cpp @@ -164,13 +164,13 @@ struct TRINITY_DLL_DECL boss_palehoofAI : public ScriptedAI if (uiImpaleTimer <= diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(SPELL_IMPALE, H_SPELL_IMPALE)); + DoCast(pTarget, DUNGEON_MODE(SPELL_IMPALE, H_SPELL_IMPALE)); uiImpaleTimer = urand(8000,12000); } else uiImpaleTimer -= diff; if (uiWhiteringRoarTimer <= diff) { - DoCast(m_creature, HEROIC(SPELL_WITHERING_ROAR, H_SPELL_WITHERING_ROAR)); + DoCast(m_creature, DUNGEON_MODE(SPELL_WITHERING_ROAR, H_SPELL_WITHERING_ROAR)); uiWhiteringRoarTimer = urand(8000,12000); } else uiWhiteringRoarTimer -= diff; @@ -200,7 +200,7 @@ struct TRINITY_DLL_DECL boss_palehoofAI : public ScriptedAI m_creature->SummonCreature(MOB_STASIS_CONTROLLER,moveLocs[5].x,moveLocs[5].y,moveLocs[5].z,0,TEMPSUMMON_CORPSE_DESPAWN); } Phase move = PHASE_NONE; - if (AddCount >= HEROIC(2,4)) + if (AddCount >= DUNGEON_MODE(2,4)) move = PHASE_GORTOK_PALEHOOF; else { @@ -290,7 +290,7 @@ struct TRINITY_DLL_DECL mob_ravenous_furbolgAI : public ScriptedAI if (uiChainLightingTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_CHAIN_LIGHTING, H_SPELL_CHAIN_LIGHTING)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_CHAIN_LIGHTING, H_SPELL_CHAIN_LIGHTING)); uiChainLightingTimer = 5000 + rand()%5000; } else uiChainLightingTimer -= diff; @@ -396,7 +396,7 @@ struct TRINITY_DLL_DECL mob_frenzied_worgenAI : public ScriptedAI if (uiMortalWoundTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_MORTAL_WOUND, H_SPELL_MORTAL_WOUND)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_MORTAL_WOUND, H_SPELL_MORTAL_WOUND)); uiMortalWoundTimer = 3000 + rand()%4000; } else uiMortalWoundTimer -= diff; @@ -511,14 +511,14 @@ struct TRINITY_DLL_DECL mob_ferocious_rhinoAI : public ScriptedAI if (uiGoreTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_GORE, H_SPELL_GORE)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_GORE, H_SPELL_GORE)); uiGoreTimer = 13000 + rand()%4000; } else uiGoreTimer -= diff; if (uiGrievousWoundTimer <= diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(SPELL_GRIEVOUS_WOUND, H_SPELL_GRIEVOUS_WOUND)); + DoCast(pTarget, DUNGEON_MODE(SPELL_GRIEVOUS_WOUND, H_SPELL_GRIEVOUS_WOUND)); uiGrievousWoundTimer = 18000 + rand()%4000; } else uiGrievousWoundTimer -= diff; @@ -625,14 +625,14 @@ struct TRINITY_DLL_DECL mob_massive_jormungarAI : public ScriptedAI if (uiAcidSplatterTimer <= diff) { - DoCast(m_creature, HEROIC(SPELL_POISON_BREATH, H_SPELL_POISON_BREATH)); + DoCast(m_creature, DUNGEON_MODE(SPELL_POISON_BREATH, H_SPELL_POISON_BREATH)); uiAcidSplatterTimer = 10000 + rand()%4000; } else uiAcidSplatterTimer -= diff; if (uiPoisonBreathTimer <= diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(SPELL_POISON_BREATH, H_SPELL_POISON_BREATH)); + DoCast(pTarget, DUNGEON_MODE(SPELL_POISON_BREATH, H_SPELL_POISON_BREATH)); uiPoisonBreathTimer = 8000 + rand()%4000; } else uiPoisonBreathTimer -= diff; diff --git a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_skadi.cpp b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_skadi.cpp index e393e518f08..e8557fb11c3 100644 --- a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_skadi.cpp +++ b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_skadi.cpp @@ -149,21 +149,21 @@ struct TRINITY_DLL_DECL boss_skadiAI : public ScriptedAI if (uiCrushTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_CRUSH, H_SPELL_CRUSH)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_CRUSH, H_SPELL_CRUSH)); uiCrushTimer = 8000; } else uiCrushTimer -= diff; if (uiPoisonedSpearTimer <= diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(SPELL_POISONED_SPEAR, H_SPELL_POISONED_SPEAR)); + DoCast(pTarget, DUNGEON_MODE(SPELL_POISONED_SPEAR, H_SPELL_POISONED_SPEAR)); uiPoisonedSpearTimer = 10000; } else uiPoisonedSpearTimer -= diff; if (uiWhirlwindTimer <= diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - m_creature->CastSpell(pTarget, HEROIC(SPELL_WHIRLWIND, H_SPELL_WHIRLWIND), false); + m_creature->CastSpell(pTarget, DUNGEON_MODE(SPELL_WHIRLWIND, H_SPELL_WHIRLWIND), false); } else uiWhirlwindTimer = 20000; DoMeleeAttackIfReady(); @@ -189,7 +189,7 @@ struct TRINITY_DLL_DECL boss_skadiAI : public ScriptedAI if(type != POINT_MOTION_TYPE) return; - if (HeroicMode ? (uiSpawnCounter >= 4) : (uiSpawnCounter >= 5)) + if (uiSpawnCounter >= DUNGEON_MODE(4, 5)) { uiWaypointId = 200; uiMovementTimer = 3000; @@ -216,7 +216,7 @@ struct TRINITY_DLL_DECL boss_skadiAI : public ScriptedAI void SpawnMobs(uint32 spot) { - uint8 uiMaxSpawn = (HeroicMode ? 6 : 5); + uint8 uiMaxSpawn = DUNGEON_MODE(5, 6); for (uint8 i = 0; i < uiMaxSpawn; ++i) { Creature* pTemp; diff --git a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_svala.cpp b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_svala.cpp index 5cd32b112f0..abffae12e51 100644 --- a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_svala.cpp +++ b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_svala.cpp @@ -263,7 +263,7 @@ struct TRINITY_DLL_DECL boss_svala_sorrowgraveAI : public ScriptedAI if (uiSinsterStrikeTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_SINSTER_STRIKE, H_SPELL_SINSTER_STRIKE)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SINSTER_STRIKE, H_SPELL_SINSTER_STRIKE)); uiSinsterStrikeTimer = urand(5000,9000); } else uiSinsterStrikeTimer -= diff; diff --git a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_ymiron.cpp b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_ymiron.cpp index 58dbf5ab07b..2541f8ee04c 100644 --- a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_ymiron.cpp +++ b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_ymiron.cpp @@ -137,7 +137,7 @@ struct TRINITY_DLL_DECL boss_ymironAI : public ScriptedAI m_uiFetidRot_Timer = urand(8000,13000); m_uiBane_Timer = urand(18000,23000); m_uiDarkSlash_Timer = urand(28000,33000); - m_uiAncestors_Vengeance_Timer = HEROIC(60000,45000); + m_uiAncestors_Vengeance_Timer = DUNGEON_MODE(60000,45000); m_uiPause_Timer = 0; m_uiAbility_BJORN_Timer = 0; @@ -147,7 +147,7 @@ struct TRINITY_DLL_DECL boss_ymironAI : public ScriptedAI m_uiActivedNumber = 0; m_uiHealthAmountModifier = 1; - m_uiHealthAmountMultipler = HEROIC(20,25); + m_uiHealthAmountMultipler = DUNGEON_MODE(20,25); DespawnBoatGhosts(m_uiActivedCreatureGUID); DespawnBoatGhosts(m_uiOrbGUID); @@ -218,13 +218,13 @@ struct TRINITY_DLL_DECL boss_ymironAI : public ScriptedAI // Normal spells ------------------------------------------------------------------------ if (m_uiBane_Timer <= diff) { - DoCast(m_creature, HEROIC(SPELL_BANE, H_SPELL_BANE)); + DoCast(m_creature, DUNGEON_MODE(SPELL_BANE, H_SPELL_BANE)); m_uiBane_Timer = urand(20000,25000); } else m_uiBane_Timer -= diff; if (m_uiFetidRot_Timer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_FETID_ROT, H_SPELL_FETID_ROT)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_FETID_ROT, H_SPELL_FETID_ROT)); m_uiFetidRot_Timer = urand(10000,15000); } else m_uiFetidRot_Timer -= diff; @@ -237,7 +237,7 @@ struct TRINITY_DLL_DECL boss_ymironAI : public ScriptedAI if (m_uiAncestors_Vengeance_Timer <= diff) { DoCast(m_creature, SPELL_ANCESTORS_VENGEANCE); - m_uiAncestors_Vengeance_Timer = HEROIC(urand(60000,65000),urand(45000,50000)); + m_uiAncestors_Vengeance_Timer = DUNGEON_MODE(urand(60000,65000),urand(45000,50000)); } else m_uiAncestors_Vengeance_Timer -= diff; // Abilities ------------------------------------------------------------------------------ @@ -247,7 +247,7 @@ struct TRINITY_DLL_DECL boss_ymironAI : public ScriptedAI if (Creature* pTemp = m_creature->SummonCreature(CREATURE_SPIRIT_FOUNT, 385+rand()%10, -330+rand()%10, 104.756, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 180000)) { pTemp->SetSpeed(MOVE_RUN, 0.4f); - pTemp->CastSpell(pTemp, HEROIC(SPELL_SPIRIT_FOUNT, H_SPELL_SPIRIT_FOUNT), true); + pTemp->CastSpell(pTemp, DUNGEON_MODE(SPELL_SPIRIT_FOUNT, H_SPELL_SPIRIT_FOUNT), true); pTemp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); pTemp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); pTemp->SetDisplayId(11686); @@ -259,13 +259,13 @@ struct TRINITY_DLL_DECL boss_ymironAI : public ScriptedAI if (m_bIsActiveWithHALDOR && m_uiAbility_HALDOR_Timer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_SPIRIT_STRIKE, H_SPELL_SPIRIT_STRIKE)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SPIRIT_STRIKE, H_SPELL_SPIRIT_STRIKE)); m_uiAbility_HALDOR_Timer = 5000; // overtime } else m_uiAbility_HALDOR_Timer -= diff; if (m_bIsActiveWithRANULF && m_uiAbility_RANULF_Timer <= diff) { - DoCast(m_creature, HEROIC(SPELL_SPIRIT_BURST, H_SPELL_SPIRIT_BURST)); + DoCast(m_creature, DUNGEON_MODE(SPELL_SPIRIT_BURST, H_SPELL_SPIRIT_BURST)); m_uiAbility_RANULF_Timer = 10000; // overtime } else m_uiAbility_RANULF_Timer -= diff; diff --git a/src/bindings/scripts/scripts/northrend/vault_of_archavon/boss_archavon.cpp b/src/bindings/scripts/scripts/northrend/vault_of_archavon/boss_archavon.cpp index b389a6d426e..b85a12ba4d4 100644 --- a/src/bindings/scripts/scripts/northrend/vault_of_archavon/boss_archavon.cpp +++ b/src/bindings/scripts/scripts/northrend/vault_of_archavon/boss_archavon.cpp @@ -9,14 +9,14 @@ UPDATE `creature_template` SET `ScriptName`='mob_archavon_warder' WHERE `entry`= //Spells Archavon #define SPELL_ROCK_SHARDS 58678 -#define SPELL_CRUSHING_LEAP HEROIC(58960,60894)//Instant (10-80yr range) -- Leaps at an enemy, inflicting 8000 Physical damage, knocking all nearby enemies away, and creating a cloud of choking debris. -#define SPELL_STOMP HEROIC(58663,60880) -#define SPELL_IMPALE HEROIC(58666,60882) //Lifts an enemy off the ground with a spiked fist, inflicting 47125 to 52875 Physical damage and 9425 to 10575 additional damage each second for 8 sec. +#define SPELL_CRUSHING_LEAP RAID_MODE(58960,60894)//Instant (10-80yr range) -- Leaps at an enemy, inflicting 8000 Physical damage, knocking all nearby enemies away, and creating a cloud of choking debris. +#define SPELL_STOMP RAID_MODE(58663,60880) +#define SPELL_IMPALE RAID_MODE(58666,60882) //Lifts an enemy off the ground with a spiked fist, inflicting 47125 to 52875 Physical damage and 9425 to 10575 additional damage each second for 8 sec. #define SPELL_BERSERK 47008 //Spells Archavon Warders -#define SPELL_ROCK_SHOWER HEROIC(60919,60923) -#define SPELL_SHIELD_CRUSH HEROIC(60897,60899) -#define SPELL_WHIRL HEROIC(60902,60916) +#define SPELL_ROCK_SHOWER RAID_MODE(60919,60923) +#define SPELL_SHIELD_CRUSH RAID_MODE(60897,60899) +#define SPELL_WHIRL RAID_MODE(60902,60916) //4 Warders spawned #define ARCHAVON_WARDER 32353 //npc 32353 diff --git a/src/bindings/scripts/scripts/northrend/vault_of_archavon/boss_emalon.cpp b/src/bindings/scripts/scripts/northrend/vault_of_archavon/boss_emalon.cpp index 412920961a6..de9bf7d7fcf 100644 --- a/src/bindings/scripts/scripts/northrend/vault_of_archavon/boss_emalon.cpp +++ b/src/bindings/scripts/scripts/northrend/vault_of_archavon/boss_emalon.cpp @@ -2,8 +2,8 @@ #include "vault_of_archavon.h" //Emalon spells -#define SPELL_CHAIN_LIGHTNING HEROIC(64213, 64215) -#define SPELL_LIGHTNING_NOVA HEROIC(64216, 65279) +#define SPELL_CHAIN_LIGHTNING RAID_MODE(64213, 64215) +#define SPELL_LIGHTNING_NOVA RAID_MODE(64216, 65279) #define SPELL_OVERCHARGE 64218 //Casted every 45 sec on a random Tempest Minion #define SPELL_BERSERK 26662 diff --git a/src/bindings/scripts/scripts/northrend/violet_hold/boss_cyanigosa.cpp b/src/bindings/scripts/scripts/northrend/violet_hold/boss_cyanigosa.cpp index 8ac30af4e59..45d7f047b55 100644 --- a/src/bindings/scripts/scripts/northrend/violet_hold/boss_cyanigosa.cpp +++ b/src/bindings/scripts/scripts/northrend/violet_hold/boss_cyanigosa.cpp @@ -97,23 +97,23 @@ struct TRINITY_DLL_DECL boss_cyanigosaAI : public ScriptedAI if (uiBlizzardTimer <= diff) { if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, HEROIC(SPELL_BLIZZARD, H_SPELL_BLIZZARD)); + DoCast(pTarget, DUNGEON_MODE(SPELL_BLIZZARD, H_SPELL_BLIZZARD)); uiBlizzardTimer = 15000; } else uiBlizzardTimer -= diff; if (uiTailSweepTimer <= diff) { - DoCast(HEROIC(SPELL_TAIL_SWEEP, H_SPELL_TAIL_SWEEP)); + DoCast(DUNGEON_MODE(SPELL_TAIL_SWEEP, H_SPELL_TAIL_SWEEP)); uiTailSweepTimer = 20000; } else uiTailSweepTimer -= diff; if (uiUncontrollableEnergyTimer <= diff) { - DoCastVictim(HEROIC(SPELL_UNCONTROLLABLE_ENERGY,H_SPELL_UNCONTROLLABLE_ENERGY)); + DoCastVictim(DUNGEON_MODE(SPELL_UNCONTROLLABLE_ENERGY,H_SPELL_UNCONTROLLABLE_ENERGY)); uiUncontrollableEnergyTimer = 25000; } else uiUncontrollableEnergyTimer -= diff; - if (HeroicMode) + if (IsHeroic()) if (uiManaDestructionTimer <= diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) diff --git a/src/bindings/scripts/scripts/northrend/violet_hold/boss_erekem.cpp b/src/bindings/scripts/scripts/northrend/violet_hold/boss_erekem.cpp index 659c400c13f..c2afc38000f 100644 --- a/src/bindings/scripts/scripts/northrend/violet_hold/boss_erekem.cpp +++ b/src/bindings/scripts/scripts/northrend/violet_hold/boss_erekem.cpp @@ -91,7 +91,7 @@ struct TRINITY_DLL_DECL boss_erekemAI : public ScriptedAI void EnterCombat(Unit* who) { DoScriptText(SAY_AGGRO, m_creature); - DoCast(m_creature, HEROIC(SPELL_EARTH_SHIELD, H_SPELL_EARTH_SHIELD)); + DoCast(m_creature, DUNGEON_MODE(SPELL_EARTH_SHIELD, H_SPELL_EARTH_SHIELD)); if (pInstance) { @@ -111,7 +111,7 @@ struct TRINITY_DLL_DECL boss_erekemAI : public ScriptedAI return; //spam stormstrike in hc mode if spawns are dead - if (HeroicMode) + if (IsHeroic()) { if (pGuard1 && !pGuard1->isAlive() && pGuard2 && !pGuard2->isAlive()) { @@ -121,7 +121,7 @@ struct TRINITY_DLL_DECL boss_erekemAI : public ScriptedAI if (uiEarthShieldTimer <= diff) { - DoCast(m_creature, HEROIC(SPELL_EARTH_SHIELD, H_SPELL_EARTH_SHIELD)); + DoCast(m_creature, DUNGEON_MODE(SPELL_EARTH_SHIELD, H_SPELL_EARTH_SHIELD)); uiEarthShieldTimer = 20000; } else uiEarthShieldTimer -= diff; @@ -129,7 +129,7 @@ struct TRINITY_DLL_DECL boss_erekemAI : public ScriptedAI { if (Creature *pTarget = GetChainHealTarget()) { - DoCast(pTarget, HEROIC(SPELL_CHAIN_HEAL, H_SPELL_CHAIN_HEAL)); + DoCast(pTarget, DUNGEON_MODE(SPELL_CHAIN_HEAL, H_SPELL_CHAIN_HEAL)); //If one of the adds is dead spawn heals faster uiChainHealTimer = ((pGuard1 && !pGuard1->isAlive()) || (pGuard2 && !pGuard2->isAlive()) ? 3000 : 8000) + rand()%3000; } diff --git a/src/bindings/scripts/scripts/northrend/violet_hold/boss_ichoron.cpp b/src/bindings/scripts/scripts/northrend/violet_hold/boss_ichoron.cpp index 0e885e6c145..be82830458f 100644 --- a/src/bindings/scripts/scripts/northrend/violet_hold/boss_ichoron.cpp +++ b/src/bindings/scripts/scripts/northrend/violet_hold/boss_ichoron.cpp @@ -78,10 +78,8 @@ struct TRINITY_DLL_DECL boss_ichoronAI : public ScriptedAI boss_ichoronAI(Creature* pCreature) : ScriptedAI(pCreature) { pInstance = pCreature->GetInstanceData(); - HeroicMode = pCreature->GetMap()->IsHeroic(); } - bool HeroicMode; bool bIsExploded; bool bIsFrenzy; @@ -186,7 +184,7 @@ struct TRINITY_DLL_DECL boss_ichoronAI : public ScriptedAI { if (!m_creature->HasAura(SPELL_PROTECTIVE_BUBBLE, 0)) { - DoCast(m_creature, HEROIC(SPELL_WATER_BLAST, SPELL_WATER_BLAST_H)); + DoCast(m_creature, DUNGEON_MODE(SPELL_WATER_BLAST, SPELL_WATER_BLAST_H)); //DoCast(m_creature, SPELL_DRAINED); bIsExploded = true; uiShowup_Counter = 0; @@ -230,14 +228,14 @@ struct TRINITY_DLL_DECL boss_ichoronAI : public ScriptedAI { if (uiWaterBoltVolley_Timer < uiDiff) { - DoCast(m_creature, HEROIC(SPELL_WATER_BOLT_VOLLEY, SPELL_WATER_BOLT_VOLLEY_H)); + DoCast(m_creature, DUNGEON_MODE(SPELL_WATER_BOLT_VOLLEY, SPELL_WATER_BOLT_VOLLEY_H)); uiWaterBoltVolley_Timer = urand(10000, 15000); } else uiWaterBoltVolley_Timer -= uiDiff; if (!bIsFrenzy && (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 25) { - DoCast(m_creature, HEROIC(SPELL_FRENZY, SPELL_FRENZY_H)); + DoCast(m_creature, DUNGEON_MODE(SPELL_FRENZY, SPELL_FRENZY_H)); bIsFrenzy = true; } diff --git a/src/bindings/scripts/scripts/northrend/violet_hold/boss_lavanthor.cpp b/src/bindings/scripts/scripts/northrend/violet_hold/boss_lavanthor.cpp index 3b4661d6b74..f2c4057a095 100644 --- a/src/bindings/scripts/scripts/northrend/violet_hold/boss_lavanthor.cpp +++ b/src/bindings/scripts/scripts/northrend/violet_hold/boss_lavanthor.cpp @@ -87,23 +87,23 @@ struct TRINITY_DLL_DECL boss_lavanthorAI : public ScriptedAI if (uiFireboltTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_FIREBOLT, H_SPELL_FIREBOLT)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_FIREBOLT, H_SPELL_FIREBOLT)); uiFireboltTimer = urand(5000,13000); } else uiFireboltTimer -= diff; if (uiFlameBreathTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_FLAME_BREATH, H_SPELL_FLAME_BREATH)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_FLAME_BREATH, H_SPELL_FLAME_BREATH)); uiFlameBreathTimer = urand(10000,15000); } else uiFlameBreathTimer -= diff; if (uiLavaBurnTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_LAVA_BURN, H_SPELL_LAVA_BURN)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_LAVA_BURN, H_SPELL_LAVA_BURN)); uiLavaBurnTimer = urand(15000,23000); } - if (HeroicMode) + if (IsHeroic()) { if (uiCauterizingFlamesTimer <= diff) { diff --git a/src/bindings/scripts/scripts/northrend/violet_hold/boss_xevozz.cpp b/src/bindings/scripts/scripts/northrend/violet_hold/boss_xevozz.cpp index 10298c039bd..2d013a7e56f 100644 --- a/src/bindings/scripts/scripts/northrend/violet_hold/boss_xevozz.cpp +++ b/src/bindings/scripts/scripts/northrend/violet_hold/boss_xevozz.cpp @@ -69,13 +69,10 @@ struct TRINITY_DLL_DECL boss_xevozzAI : public ScriptedAI boss_xevozzAI(Creature* pCreature) : ScriptedAI(pCreature) { pInstance = pCreature->GetInstanceData(); - HeroicMode = pCreature->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; - bool HeroicMode; - uint32 uiSummonEtherealSphere_Timer; uint32 uiArcaneBarrageVolley_Timer; uint32 uiArcaneBuffet_Timer; @@ -157,7 +154,7 @@ struct TRINITY_DLL_DECL boss_xevozzAI : public ScriptedAI if (uiArcaneBarrageVolley_Timer < uiDiff) { - DoCast(m_creature, HEROIC(SPELL_ARCANE_BARRAGE_VOLLEY, SPELL_ARCANE_BARRAGE_VOLLEY_H)); + DoCast(m_creature, DUNGEON_MODE(SPELL_ARCANE_BARRAGE_VOLLEY, SPELL_ARCANE_BARRAGE_VOLLEY_H)); uiArcaneBarrageVolley_Timer = urand(20000, 22000); } else uiArcaneBarrageVolley_Timer -= uiDiff; @@ -165,7 +162,7 @@ struct TRINITY_DLL_DECL boss_xevozzAI : public ScriptedAI if (uiArcaneBuffet_Timer) if (uiArcaneBuffet_Timer < uiDiff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_ARCANE_BUFFET, SPELL_ARCANE_BUFFET_H)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_ARCANE_BUFFET, SPELL_ARCANE_BUFFET_H)); uiArcaneBuffet_Timer = 0; } else uiArcaneBuffet_Timer -= uiDiff; @@ -174,7 +171,7 @@ struct TRINITY_DLL_DECL boss_xevozzAI : public ScriptedAI { DoScriptText(SAY_SPAWN, m_creature); DoCast(m_creature, SPELL_SUMMON_ETHEREAL_SPHERE_1); - if (HeroicMode) // extra one for heroic + if (IsHeroic()) // extra one for heroic m_creature->SummonCreature(NPC_ETHEREAL_SPHERE, m_creature->GetPositionX()-5+rand()%10, m_creature->GetPositionY()-5+rand()%10, m_creature->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 40000); uiSummonEtherealSphere_Timer = urand(45000, 47000); @@ -224,11 +221,9 @@ struct TRINITY_DLL_DECL mob_ethereal_sphereAI : public ScriptedAI mob_ethereal_sphereAI(Creature* pCreature) : ScriptedAI(pCreature) { pInstance = pCreature->GetInstanceData(); - HeroicMode = pCreature->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; - bool HeroicMode; uint32 uiSummonPlayers_Timer; uint32 uiRangeCheck_Timer; @@ -256,7 +251,7 @@ struct TRINITY_DLL_DECL mob_ethereal_sphereAI : public ScriptedAI { float fDistance = m_creature->GetDistance2d(pXevozz); if (fDistance <= 3) - DoCast(pXevozz, HEROIC(SPELL_ARCANE_POWER, H_SPELL_ARCANE_POWER)); + DoCast(pXevozz, DUNGEON_MODE(SPELL_ARCANE_POWER, H_SPELL_ARCANE_POWER)); else DoCast(m_creature, 35845); //Is it blizzlike? } diff --git a/src/bindings/scripts/scripts/northrend/violet_hold/boss_zuramat.cpp b/src/bindings/scripts/scripts/northrend/violet_hold/boss_zuramat.cpp index b65b81a2d59..b02c9b6c4f5 100644 --- a/src/bindings/scripts/scripts/northrend/violet_hold/boss_zuramat.cpp +++ b/src/bindings/scripts/scripts/northrend/violet_hold/boss_zuramat.cpp @@ -109,13 +109,13 @@ struct TRINITY_DLL_DECL boss_zuramatAI : public ScriptedAI if (SpellVoidShiftTimer <= diff) { if (Unit* pUnit = SelectUnit(SELECT_TARGET_RANDOM, 0)) - DoCast(pUnit, HEROIC(SPELL_VOID_SHIFT, H_SPELL_VOID_SHIFT)); + DoCast(pUnit, DUNGEON_MODE(SPELL_VOID_SHIFT, H_SPELL_VOID_SHIFT)); SpellVoidShiftTimer = 20000; } else SpellVoidShiftTimer -=diff; if (SpellShroudOfDarknessTimer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_SHROUD_OF_DARKNESS, H_SPELL_SHROUD_OF_DARKNESS)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SHROUD_OF_DARKNESS, H_SPELL_SHROUD_OF_DARKNESS)); SpellShroudOfDarknessTimer = 20000; } else SpellShroudOfDarknessTimer -=diff; @@ -152,7 +152,7 @@ struct TRINITY_DLL_DECL boss_zuramatAI : public ScriptedAI void JustSummoned(Creature* summon) { summon->AI()->AttackStart(m_creature->getVictim()); - summon->AI()->DoCastAOE(HEROIC(SPELL_ZUMARAT_ADD_2, H_SPELL_ZUMARAT_ADD_2)); + summon->AI()->DoCastAOE(DUNGEON_MODE(SPELL_ZUMARAT_ADD_2, H_SPELL_ZUMARAT_ADD_2)); summon->SetPhaseMask(17,true); } }; diff --git a/src/bindings/scripts/scripts/outland/auchindoun/auchenai_crypts/boss_shirrak_the_dead_watcher.cpp b/src/bindings/scripts/scripts/outland/auchindoun/auchenai_crypts/boss_shirrak_the_dead_watcher.cpp index b702667399b..5f09c8a4f1c 100644 --- a/src/bindings/scripts/scripts/outland/auchindoun/auchenai_crypts/boss_shirrak_the_dead_watcher.cpp +++ b/src/bindings/scripts/scripts/outland/auchindoun/auchenai_crypts/boss_shirrak_the_dead_watcher.cpp @@ -27,13 +27,13 @@ EndScriptData */ #define SPELL_ATTRACTMAGIC 32265 #define N_SPELL_CARNIVOROUSBITE 36383 #define H_SPELL_CARNIVOROUSBITE 39382 -#define SPELL_CARNIVOROUSBITE (HeroicMode?H_SPELL_CARNIVOROUSBITE:N_SPELL_CARNIVOROUSBITE) +#define SPELL_CARNIVOROUSBITE DUNGEON_MODE(N_SPELL_CARNIVOROUSBITE, H_SPELL_CARNIVOROUSBITE) #define ENTRY_FOCUS_FIRE 18374 #define N_SPELL_FIERY_BLAST 32302 #define H_SPELL_FIERY_BLAST 38382 -#define SPELL_FIERY_BLAST (HeroicMode?H_SPELL_FIERY_BLAST:N_SPELL_FIERY_BLAST) +#define SPELL_FIERY_BLAST DUNGEON_MODE(N_SPELL_FIERY_BLAST, H_SPELL_FIERY_BLAST) #define SPELL_FOCUS_FIRE_VISUAL 42075 //need to find better visual #define EMOTE_FOCUSES_ON "focuses on " @@ -42,14 +42,13 @@ struct TRINITY_DLL_DECL boss_shirrak_the_dead_watcherAI : public ScriptedAI { boss_shirrak_the_dead_watcherAI(Creature *c) : ScriptedAI(c) { - HeroicMode = m_creature->GetMap()->IsHeroic(); } uint32 Inhibitmagic_Timer; uint32 Attractmagic_Timer; uint32 Carnivorousbite_Timer; uint32 FocusFire_Timer; - bool HeroicMode; + Unit *focusedTarget; void Reset() @@ -156,10 +155,8 @@ struct TRINITY_DLL_DECL mob_focus_fireAI : public ScriptedAI { mob_focus_fireAI(Creature *c) : ScriptedAI(c) { - HeroicMode = m_creature->GetMap()->IsHeroic(); } - bool HeroicMode; uint32 FieryBlast_Timer; bool fiery1, fiery2; diff --git a/src/bindings/scripts/scripts/outland/auchindoun/mana_tombs/boss_nexusprince_shaffar.cpp b/src/bindings/scripts/scripts/outland/auchindoun/mana_tombs/boss_nexusprince_shaffar.cpp index 03576794008..dca6540e3c3 100644 --- a/src/bindings/scripts/scripts/outland/auchindoun/mana_tombs/boss_nexusprince_shaffar.cpp +++ b/src/bindings/scripts/scripts/outland/auchindoun/mana_tombs/boss_nexusprince_shaffar.cpp @@ -216,10 +216,8 @@ struct TRINITY_DLL_DECL mob_ethereal_beaconAI : public ScriptedAI { mob_ethereal_beaconAI(Creature *c) : ScriptedAI(c) { - HeroicMode = m_creature->GetMap()->IsHeroic(); } - bool HeroicMode; uint32 Apprentice_Timer; uint32 ArcaneBolt_Timer; uint32 Check_Timer; @@ -231,7 +229,7 @@ struct TRINITY_DLL_DECL mob_ethereal_beaconAI : public ScriptedAI void Reset() { - Apprentice_Timer = (HeroicMode ? 10000 : 20000); + Apprentice_Timer = DUNGEON_MODE(20000, 10000); ArcaneBolt_Timer = 1000; Check_Timer = 1000; } diff --git a/src/bindings/scripts/scripts/outland/auchindoun/mana_tombs/boss_pandemonius.cpp b/src/bindings/scripts/scripts/outland/auchindoun/mana_tombs/boss_pandemonius.cpp index a4dd539e5c9..6a0173a26a2 100644 --- a/src/bindings/scripts/scripts/outland/auchindoun/mana_tombs/boss_pandemonius.cpp +++ b/src/bindings/scripts/scripts/outland/auchindoun/mana_tombs/boss_pandemonius.cpp @@ -43,10 +43,8 @@ struct TRINITY_DLL_DECL boss_pandemoniusAI : public ScriptedAI { boss_pandemoniusAI(Creature *c) : ScriptedAI(c) { - HeroicMode = m_creature->GetMap()->IsHeroic(); } - bool HeroicMode; uint32 VoidBlast_Timer; uint32 DarkShell_Timer; uint32 VoidBlast_Counter; @@ -82,7 +80,7 @@ struct TRINITY_DLL_DECL boss_pandemoniusAI : public ScriptedAI { if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) { - DoCast(pTarget, HEROIC(SPELL_VOID_BLAST, H_SPELL_VOID_BLAST)); + DoCast(pTarget, DUNGEON_MODE(SPELL_VOID_BLAST, H_SPELL_VOID_BLAST)); VoidBlast_Timer = 500; ++VoidBlast_Counter; } @@ -103,7 +101,7 @@ struct TRINITY_DLL_DECL boss_pandemoniusAI : public ScriptedAI DoScriptText(EMOTE_DARK_SHELL, m_creature); - DoCast(m_creature, HEROIC(SPELL_DARK_SHELL, H_SPELL_DARK_SHELL)); + DoCast(m_creature, DUNGEON_MODE(SPELL_DARK_SHELL, H_SPELL_DARK_SHELL)); DarkShell_Timer = 20000; } else DarkShell_Timer -= diff; } diff --git a/src/bindings/scripts/scripts/outland/auchindoun/sethekk_halls/boss_darkweaver_syth.cpp b/src/bindings/scripts/scripts/outland/auchindoun/sethekk_halls/boss_darkweaver_syth.cpp index 8c8bfacd7bc..9a6dd62020c 100644 --- a/src/bindings/scripts/scripts/outland/auchindoun/sethekk_halls/boss_darkweaver_syth.cpp +++ b/src/bindings/scripts/scripts/outland/auchindoun/sethekk_halls/boss_darkweaver_syth.cpp @@ -46,17 +46,15 @@ EndScriptData */ #define SPELL_SUMMON_SYTH_FROST 33539 // Spawns 19204 #define SPELL_SUMMON_SYTH_SHADOW 33540 // Spawns 19206 -#define SPELL_FLAME_BUFFET (HeroicMode?38141:33526) -#define SPELL_ARCANE_BUFFET (HeroicMode?38138:33527) -#define SPELL_FROST_BUFFET (HeroicMode?38142:33528) -#define SPELL_SHADOW_BUFFET (HeroicMode?38143:33529) +#define SPELL_FLAME_BUFFET DUNGEON_MODE(33526, 38141) +#define SPELL_ARCANE_BUFFET DUNGEON_MODE(33527, 38138) +#define SPELL_FROST_BUFFET DUNGEON_MODE(33528, 38142) +#define SPELL_SHADOW_BUFFET DUNGEON_MODE(33529, 38143) struct TRINITY_DLL_DECL boss_darkweaver_sythAI : public ScriptedAI { boss_darkweaver_sythAI(Creature *c) : ScriptedAI(c) - { - HeroicMode = m_creature->GetMap()->IsHeroic(); } uint32 flameshock_timer; @@ -68,7 +66,6 @@ struct TRINITY_DLL_DECL boss_darkweaver_sythAI : public ScriptedAI bool summon90; bool summon50; bool summon10; - bool HeroicMode; void Reset() { @@ -197,14 +194,11 @@ CreatureAI* GetAI_boss_darkweaver_syth(Creature* pCreature) struct TRINITY_DLL_DECL mob_syth_fireAI : public ScriptedAI { mob_syth_fireAI(Creature *c) : ScriptedAI(c) - { - HeroicMode = m_creature->GetMap()->IsHeroic(); } uint32 flameshock_timer; uint32 flamebuffet_timer; - bool HeroicMode; void Reset() { @@ -248,14 +242,11 @@ CreatureAI* GetAI_mob_syth_fire(Creature* pCreature) struct TRINITY_DLL_DECL mob_syth_arcaneAI : public ScriptedAI { mob_syth_arcaneAI(Creature *c) : ScriptedAI(c) - { - HeroicMode = m_creature->GetMap()->IsHeroic(); } uint32 arcaneshock_timer; uint32 arcanebuffet_timer; - bool HeroicMode; void Reset() { @@ -299,14 +290,11 @@ CreatureAI* GetAI_mob_syth_arcane(Creature* pCreature) struct TRINITY_DLL_DECL mob_syth_frostAI : public ScriptedAI { mob_syth_frostAI(Creature *c) : ScriptedAI(c) - { - HeroicMode = m_creature->GetMap()->IsHeroic(); } uint32 frostshock_timer; uint32 frostbuffet_timer; - bool HeroicMode; void Reset() { @@ -350,14 +338,11 @@ CreatureAI* GetAI_mob_syth_frost(Creature* pCreature) struct TRINITY_DLL_DECL mob_syth_shadowAI : public ScriptedAI { mob_syth_shadowAI(Creature *c) : ScriptedAI(c) - { - HeroicMode = m_creature->GetMap()->IsHeroic(); } uint32 shadowshock_timer; uint32 shadowbuffet_timer; - bool HeroicMode; void Reset() { diff --git a/src/bindings/scripts/scripts/outland/auchindoun/sethekk_halls/boss_tailonking_ikiss.cpp b/src/bindings/scripts/scripts/outland/auchindoun/sethekk_halls/boss_tailonking_ikiss.cpp index 4af8b26b88d..fb510082c2a 100644 --- a/src/bindings/scripts/scripts/outland/auchindoun/sethekk_halls/boss_tailonking_ikiss.cpp +++ b/src/bindings/scripts/scripts/outland/auchindoun/sethekk_halls/boss_tailonking_ikiss.cpp @@ -59,8 +59,6 @@ struct TRINITY_DLL_DECL boss_talon_king_ikissAI : public ScriptedAI ScriptedInstance* pInstance; - bool HeroicMode; - uint32 ArcaneVolley_Timer; uint32 Sheep_Timer; uint32 Blink_Timer; @@ -72,8 +70,6 @@ struct TRINITY_DLL_DECL boss_talon_king_ikissAI : public ScriptedAI void Reset() { - HeroicMode = m_creature->GetMap()->IsHeroic(); - ArcaneVolley_Timer = 5000; Sheep_Timer = 8000; Blink_Timer = 35000; @@ -130,24 +126,29 @@ struct TRINITY_DLL_DECL boss_talon_king_ikissAI : public ScriptedAI if (Blink) { - DoCast(m_creature, HEROIC(SPELL_ARCANE_EXPLOSION, H_SPELL_ARCANE_EXPLOSION)); + DoCast(m_creature, DUNGEON_MODE(SPELL_ARCANE_EXPLOSION, H_SPELL_ARCANE_EXPLOSION)); DoCast(m_creature, SPELL_ARCANE_BUBBLE, true); Blink = false; } if (ArcaneVolley_Timer <= diff) { - DoCast(m_creature, HEROIC(SPELL_ARCANE_VOLLEY, H_SPELL_ARCANE_VOLLEY)); + DoCast(m_creature, DUNGEON_MODE(SPELL_ARCANE_VOLLEY, H_SPELL_ARCANE_VOLLEY)); ArcaneVolley_Timer = 7000+rand()%5000; } else ArcaneVolley_Timer -= diff; if (Sheep_Timer <= diff) { + Unit *pTarget; + //second top aggro target in normal, random target in heroic correct? - Unit *pTarget = NULL; - pTarget = HeroicMode ? SelectUnit(SELECT_TARGET_RANDOM,0) : SelectUnit(SELECT_TARGET_TOPAGGRO,1); + if (IsHeroic()) + pTarget = SelectUnit(SELECT_TARGET_RANDOM,0); + else + pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO,1); + if (pTarget) - DoCast(pTarget, HEROIC(SPELL_POLYMORPH, H_SPELL_POLYMORPH)); + DoCast(pTarget, DUNGEON_MODE(SPELL_POLYMORPH, H_SPELL_POLYMORPH)); Sheep_Timer = 15000+rand()%2500; } else Sheep_Timer -= diff; @@ -158,7 +159,7 @@ struct TRINITY_DLL_DECL boss_talon_king_ikissAI : public ScriptedAI ManaShield = true; } - if (HeroicMode) + if (IsHeroic()) { if (Slow_Timer <= diff) { diff --git a/src/bindings/scripts/scripts/outland/auchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp b/src/bindings/scripts/scripts/outland/auchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp index 7a0c82f0926..ac00c31fbd3 100644 --- a/src/bindings/scripts/scripts/outland/auchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp +++ b/src/bindings/scripts/scripts/outland/auchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp @@ -47,11 +47,9 @@ struct TRINITY_DLL_DECL boss_ambassador_hellmawAI : public npc_escortAI boss_ambassador_hellmawAI(Creature* pCreature) : npc_escortAI(pCreature) { m_pInstance = pCreature->GetInstanceData(); - HeroicMode = pCreature->GetMap()->IsHeroic(); } ScriptedInstance* m_pInstance; - bool HeroicMode; uint32 EventCheck_Timer; uint32 CorrosiveAcid_Timer; @@ -181,7 +179,7 @@ struct TRINITY_DLL_DECL boss_ambassador_hellmawAI : public npc_escortAI Fear_Timer = 20000 + rand()%15000; } else Fear_Timer -= diff; - if (HeroicMode) + if (IsHeroic()) { if (!Enraged && Enrage_Timer <= diff) { diff --git a/src/bindings/scripts/scripts/outland/auchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp b/src/bindings/scripts/scripts/outland/auchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp index 0a4fe3e8cd1..d8205e4e76b 100644 --- a/src/bindings/scripts/scripts/outland/auchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp +++ b/src/bindings/scripts/scripts/outland/auchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp @@ -64,10 +64,8 @@ struct TRINITY_DLL_DECL mob_voidtravelerAI : public ScriptedAI { mob_voidtravelerAI(Creature *c) : ScriptedAI(c) { - HeroicMode = m_creature->GetMap()->IsHeroic(); } - bool HeroicMode; Unit *Vorpil; uint32 move; bool sacrificed; @@ -92,7 +90,7 @@ struct TRINITY_DLL_DECL mob_voidtravelerAI : public ScriptedAI { if (sacrificed) { - m_creature->AddAura(HEROIC(H_SPELL_EMPOWERING_SHADOWS, SPELL_EMPOWERING_SHADOWS), Vorpil); + m_creature->AddAura(DUNGEON_MODE(SPELL_EMPOWERING_SHADOWS, H_SPELL_EMPOWERING_SHADOWS), Vorpil); Vorpil->SetHealth(Vorpil->GetHealth() + Vorpil->GetMaxHealth()/25); DoCast(m_creature, SPELL_SHADOW_NOVA, true); m_creature->Kill(m_creature); @@ -125,14 +123,12 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI boss_grandmaster_vorpilAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); Intro = false; } ScriptedInstance *pInstance; bool Intro, HelpYell; bool sumportals; - bool HeroicMode; uint32 ShadowBoltVolley_Timer; uint32 DrawShadows_Timer; @@ -249,7 +245,7 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI ShadowBoltVolley_Timer = 15000 + rand()%15000; } else ShadowBoltVolley_Timer -= diff; - if (HeroicMode && banish_Timer <= diff) + if (IsHeroic() && banish_Timer <= diff) { Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM,0,30,false); if (pTarget) @@ -271,7 +267,7 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI m_creature->GetMap()->CreatureRelocation(m_creature, VorpilPosition[0],VorpilPosition[1],VorpilPosition[2],0.0f); DoCast(m_creature, SPELL_DRAW_SHADOWS, true); - DoCast(m_creature, HeroicMode?H_SPELL_RAIN_OF_FIRE:SPELL_RAIN_OF_FIRE); + DoCast(m_creature, DUNGEON_MODE(SPELL_RAIN_OF_FIRE, H_SPELL_RAIN_OF_FIRE)); ShadowBoltVolley_Timer = 6000; DrawShadows_Timer = 30000; diff --git a/src/bindings/scripts/scripts/outland/auchindoun/shadow_labyrinth/boss_murmur.cpp b/src/bindings/scripts/scripts/outland/auchindoun/shadow_labyrinth/boss_murmur.cpp index 02955b630f0..7ed766268bb 100644 --- a/src/bindings/scripts/scripts/outland/auchindoun/shadow_labyrinth/boss_murmur.cpp +++ b/src/bindings/scripts/scripts/outland/auchindoun/shadow_labyrinth/boss_murmur.cpp @@ -26,10 +26,10 @@ EndScriptData */ #define EMOTE_SONIC_BOOM -1555036 -#define SPELL_SONIC_BOOM_CAST (HeroicMode?38796:33923) -#define SPELL_SONIC_BOOM_EFFECT (HeroicMode?38795:33666) +#define SPELL_SONIC_BOOM_CAST DUNGEON_MODE(33923, 38796) +#define SPELL_SONIC_BOOM_EFFECT DUNGEON_MODE(33666, 38795) #define SPELL_RESONANCE 33657 -#define SPELL_MURMURS_TOUCH (HeroicMode?38794:33711) +#define SPELL_MURMURS_TOUCH DUNGEON_MODE(33711, 38794) #define SPELL_MAGNETIC_PULL 33689 #define SPELL_SONIC_SHOCK 38797 #define SPELL_THUNDERING_STORM 39365 @@ -39,7 +39,6 @@ struct TRINITY_DLL_DECL boss_murmurAI : public ScriptedAI boss_murmurAI(Creature *c) : ScriptedAI(c) { SetCombatMovement(false); - HeroicMode = m_creature->GetMap()->IsHeroic(); } uint32 SonicBoom_Timer; @@ -48,7 +47,6 @@ struct TRINITY_DLL_DECL boss_murmurAI : public ScriptedAI uint32 MagneticPull_Timer; uint32 SonicShock_Timer; uint32 ThunderingStorm_Timer; - bool HeroicMode; bool SonicBoom; void Reset() @@ -149,7 +147,7 @@ struct TRINITY_DLL_DECL boss_murmurAI : public ScriptedAI MagneticPull_Timer = 500; } else MagneticPull_Timer -= diff; - if (HeroicMode) + if (IsHeroic()) { // Thundering Storm if (ThunderingStorm_Timer <= diff) diff --git a/src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp b/src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp index 7ae790bb623..6b92359ae0b 100644 --- a/src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp +++ b/src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp @@ -46,11 +46,9 @@ struct TRINITY_DLL_DECL boss_thespiaAI : public ScriptedAI boss_thespiaAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = m_creature->GetMap()->IsHeroic(); } ScriptedInstance *pInstance; - bool HeroicMode; uint32 LightningCloud_Timer; uint32 LungBurst_Timer; @@ -95,12 +93,14 @@ struct TRINITY_DLL_DECL boss_thespiaAI : public ScriptedAI //LightningCloud_Timer if (LightningCloud_Timer <= diff) { - //cast twice in Heroic mode if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0)) DoCast(pTarget, SPELL_LIGHTNING_CLOUD); - if (HeroicMode) + + //cast twice in Heroic mode + if (IsHeroic()) if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0)) DoCast(pTarget, SPELL_LIGHTNING_CLOUD); + LightningCloud_Timer = 15000+rand()%10000; } else LightningCloud_Timer -=diff; @@ -115,10 +115,11 @@ struct TRINITY_DLL_DECL boss_thespiaAI : public ScriptedAI //EnvelopingWinds_Timer if (EnvelopingWinds_Timer <= diff) { - //cast twice in Heroic mode if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0)) DoCast(pTarget, SPELL_ENVELOPING_WINDS); - if (HeroicMode) + + //cast twice in Heroic mode + if (IsHeroic()) if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0)) DoCast(pTarget, SPELL_ENVELOPING_WINDS); EnvelopingWinds_Timer = 10000+rand()%5000; @@ -135,12 +136,10 @@ struct TRINITY_DLL_DECL mob_coilfang_waterelementalAI : public ScriptedAI { mob_coilfang_waterelementalAI(Creature *c) : ScriptedAI(c) {} - bool HeroicMode; uint32 WaterBoltVolley_Timer; void Reset() { - HeroicMode = m_creature->GetMap()->IsHeroic(); WaterBoltVolley_Timer = 3000+rand()%3000; } @@ -153,7 +152,7 @@ struct TRINITY_DLL_DECL mob_coilfang_waterelementalAI : public ScriptedAI if (WaterBoltVolley_Timer <= diff) { - DoCast(m_creature, HEROIC(SPELL_WATER_BOLT_VOLLEY, H_SPELL_WATER_BOLT_VOLLEY)); + DoCast(m_creature, DUNGEON_MODE(SPELL_WATER_BOLT_VOLLEY, H_SPELL_WATER_BOLT_VOLLEY)); WaterBoltVolley_Timer = 7000+rand()%5000; } else WaterBoltVolley_Timer -= diff; diff --git a/src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp b/src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp index 5d48d5ecf44..bd134d6dae8 100644 --- a/src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp +++ b/src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp @@ -51,11 +51,9 @@ struct TRINITY_DLL_DECL boss_mekgineer_steamriggerAI : public ScriptedAI boss_mekgineer_steamriggerAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); } ScriptedInstance *pInstance; - bool HeroicMode; uint32 Shrink_Timer; uint32 Saw_Blade_Timer; @@ -190,11 +188,9 @@ struct TRINITY_DLL_DECL mob_steamrigger_mechanicAI : public ScriptedAI mob_steamrigger_mechanicAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; - bool HeroicMode; uint32 Repair_Timer; @@ -227,7 +223,7 @@ struct TRINITY_DLL_DECL mob_steamrigger_mechanicAI : public ScriptedAI //m_creature->GetMotionMaster()->MovementExpired(); //m_creature->GetMotionMaster()->MoveIdle(); - DoCast(m_creature,HEROIC(SPELL_REPAIR, H_SPELL_REPAIR), true); + DoCast(m_creature, DUNGEON_MODE(SPELL_REPAIR, H_SPELL_REPAIR), true); } Repair_Timer = 5000; } diff --git a/src/bindings/scripts/scripts/outland/coilfang_resevoir/underbog/boss_hungarfen.cpp b/src/bindings/scripts/scripts/outland/coilfang_resevoir/underbog/boss_hungarfen.cpp index 469e5160648..51e963b2298 100644 --- a/src/bindings/scripts/scripts/outland/coilfang_resevoir/underbog/boss_hungarfen.cpp +++ b/src/bindings/scripts/scripts/outland/coilfang_resevoir/underbog/boss_hungarfen.cpp @@ -30,10 +30,8 @@ struct TRINITY_DLL_DECL boss_hungarfenAI : public ScriptedAI { boss_hungarfenAI(Creature *c) : ScriptedAI(c) { - HeroicMode = m_creature->GetMap()->IsHeroic(); } - bool HeroicMode; bool Root; uint32 Mushroom_Timer; uint32 AcidGeyser_Timer; diff --git a/src/bindings/scripts/scripts/outland/coilfang_resevoir/underbog/boss_the_black_stalker.cpp b/src/bindings/scripts/scripts/outland/coilfang_resevoir/underbog/boss_the_black_stalker.cpp index b5e868954da..222a76c75dd 100644 --- a/src/bindings/scripts/scripts/outland/coilfang_resevoir/underbog/boss_the_black_stalker.cpp +++ b/src/bindings/scripts/scripts/outland/coilfang_resevoir/underbog/boss_the_black_stalker.cpp @@ -37,10 +37,8 @@ struct TRINITY_DLL_DECL boss_the_black_stalkerAI : public ScriptedAI { boss_the_black_stalkerAI(Creature *c) : ScriptedAI(c) { - HeroicMode = m_creature->GetMap()->IsHeroic(); } - bool HeroicMode; uint32 SporeStriders_Timer; uint32 Levitate_Timer; uint32 ChainLightning_Timer; @@ -104,7 +102,7 @@ struct TRINITY_DLL_DECL boss_the_black_stalkerAI : public ScriptedAI } else check_Timer -= diff; // Spore Striders - if (HeroicMode && SporeStriders_Timer <= diff) + if (IsHeroic() && SporeStriders_Timer <= diff) { DoCast(m_creature, SPELL_SUMMON_SPORE_STRIDER); SporeStriders_Timer = 10000+rand()%5000; diff --git a/src/bindings/scripts/scripts/outland/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp b/src/bindings/scripts/scripts/outland/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp index 49b167422af..c07c3da07be 100644 --- a/src/bindings/scripts/scripts/outland/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp +++ b/src/bindings/scripts/scripts/outland/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp @@ -70,13 +70,11 @@ struct TRINITY_DLL_DECL boss_kelidan_the_breakerAI : public ScriptedAI boss_kelidan_the_breakerAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); for (uint8 i=0; i<5; ++i) Channelers[i] = 0; } ScriptedInstance* pInstance; - bool HeroicMode; uint32 ShadowVolley_Timer; uint32 BurningNova_Timer; @@ -203,7 +201,7 @@ struct TRINITY_DLL_DECL boss_kelidan_the_breakerAI : public ScriptedAI { if (Firenova_Timer <= diff) { - DoCast(m_creature, HEROIC(SPELL_FIRE_NOVA, H_SPELL_FIRE_NOVA), true); + DoCast(m_creature, DUNGEON_MODE(SPELL_FIRE_NOVA, H_SPELL_FIRE_NOVA), true); Firenova = false; ShadowVolley_Timer = 2000; } else Firenova_Timer -=diff; @@ -213,7 +211,7 @@ struct TRINITY_DLL_DECL boss_kelidan_the_breakerAI : public ScriptedAI if (ShadowVolley_Timer <= diff) { - DoCast(m_creature, HEROIC(SPELL_SHADOW_BOLT_VOLLEY, H_SPELL_SHADOW_BOLT_VOLLEY)); + DoCast(m_creature, DUNGEON_MODE(SPELL_SHADOW_BOLT_VOLLEY, H_SPELL_SHADOW_BOLT_VOLLEY)); ShadowVolley_Timer = 5000+rand()%8000; } else ShadowVolley_Timer -=diff; @@ -236,7 +234,7 @@ struct TRINITY_DLL_DECL boss_kelidan_the_breakerAI : public ScriptedAI aura->ApplyForTargets(); } - if (HeroicMode) + if (IsHeroic()) DoTeleportAll(m_creature->GetPositionX(),m_creature->GetPositionY(),m_creature->GetPositionZ(),m_creature->GetOrientation()); BurningNova_Timer = 20000+rand()%8000; @@ -271,11 +269,8 @@ struct TRINITY_DLL_DECL mob_shadowmoon_channelerAI : public ScriptedAI { mob_shadowmoon_channelerAI(Creature *c) : ScriptedAI(c) { - HeroicMode = c->GetMap()->IsHeroic(); } - bool HeroicMode; - uint32 ShadowBolt_Timer; uint32 MarkOfShadow_Timer; uint32 check_Timer; @@ -331,7 +326,7 @@ struct TRINITY_DLL_DECL mob_shadowmoon_channelerAI : public ScriptedAI if (ShadowBolt_Timer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT)); ShadowBolt_Timer = 5000+rand()%1000; } else ShadowBolt_Timer -=diff; diff --git a/src/bindings/scripts/scripts/outland/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp b/src/bindings/scripts/scripts/outland/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp index e48f06ae5b9..d6e2aed5d7a 100644 --- a/src/bindings/scripts/scripts/outland/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp +++ b/src/bindings/scripts/scripts/outland/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp @@ -46,11 +46,8 @@ struct TRINITY_DLL_DECL boss_omor_the_unscarredAI : public ScriptedAI boss_omor_the_unscarredAI(Creature *c) : ScriptedAI(c) { SetCombatMovement(false); - HeroicMode = m_creature->GetMap()->IsHeroic(); } - bool HeroicMode; - uint32 OrbitalStrike_Timer; uint32 ShadowWhip_Timer; uint32 Aura_Timer; @@ -171,7 +168,7 @@ struct TRINITY_DLL_DECL boss_omor_the_unscarredAI : public ScriptedAI if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0)) { - DoCast(pTarget, HEROIC(SPELL_TREACHEROUS_AURA, H_SPELL_BANE_OF_TREACHERY)); + DoCast(pTarget, DUNGEON_MODE(SPELL_TREACHEROUS_AURA, H_SPELL_BANE_OF_TREACHERY)); Aura_Timer = 8000+rand()%8000; } } else Aura_Timer -= diff; @@ -183,7 +180,7 @@ struct TRINITY_DLL_DECL boss_omor_the_unscarredAI : public ScriptedAI if (pTarget) pTarget = m_creature->getVictim(); - DoCast(pTarget, HEROIC(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT)); + DoCast(pTarget, DUNGEON_MODE(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT)); Shadowbolt_Timer = 4000+rand()%2500; } } else Shadowbolt_Timer -= diff; diff --git a/src/bindings/scripts/scripts/outland/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp b/src/bindings/scripts/scripts/outland/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp index 7fb673bcaba..88c453ee0c8 100644 --- a/src/bindings/scripts/scripts/outland/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp +++ b/src/bindings/scripts/scripts/outland/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp @@ -23,11 +23,11 @@ EndScriptData */ #include "precompiled.h" -#define SPELL_FIREBALL (HeroicMode?36920:34653) -#define SPELL_CONE_OF_FIRE (HeroicMode?36921:30926) -#define SPELL_SUMMON_LIQUID_FIRE (HeroicMode?30928:23971) +#define SPELL_FIREBALL DUNGEON_MODE(34653, 36920) +#define SPELL_CONE_OF_FIRE DUNGEON_MODE(30926, 36921) +#define SPELL_SUMMON_LIQUID_FIRE DUNGEON_MODE(23971, 30928) #define SPELL_BELLOWING_ROAR 39427 -#define SPELL_REVENGE (HeroicMode?40392:19130) +#define SPELL_REVENGE DUNGEON_MODE(19130, 40392) #define SPELL_KIDNEY_SHOT 30621 #define SPELL_FIRE_NOVA_VISUAL 19823 @@ -36,7 +36,7 @@ EndScriptData */ #define ENTRY_VAZRUDEN 17537 #define ENTRY_NAZAN 17536 #define ENTRY_LIQUID_FIRE 22515 -#define ENTRY_REINFORCED_FEL_IRON_CHEST (HeroicMode?185169:185168) +#define ENTRY_REINFORCED_FEL_IRON_CHEST DUNGEON_MODE(185168, 185169) #define SAY_INTRO -1543017 #define SAY_WIPE -1543018 @@ -61,7 +61,6 @@ struct TRINITY_DLL_DECL boss_nazanAI : public ScriptedAI { boss_nazanAI(Creature *c) : ScriptedAI(c) { - HeroicMode = m_creature->GetMap()->IsHeroic(); VazrudenGUID = 0; flight = true; } @@ -74,7 +73,6 @@ struct TRINITY_DLL_DECL boss_nazanAI : public ScriptedAI uint32 UnsummonCheck; bool flight; uint64 VazrudenGUID; - bool HeroicMode; SpellEntry *liquid_fire; void Reset() @@ -157,11 +155,12 @@ struct TRINITY_DLL_DECL boss_nazanAI : public ScriptedAI Fireball_Timer = 4000; } else ConeOfFire_Timer -= diff; - if (HeroicMode && BellowingRoar_Timer <= diff) - { - DoCast(m_creature, SPELL_BELLOWING_ROAR); - BellowingRoar_Timer = 45000; - } else BellowingRoar_Timer -= diff; + if (IsHeroic()) + if (BellowingRoar_Timer <= diff) + { + DoCast(m_creature, SPELL_BELLOWING_ROAR); + BellowingRoar_Timer = 45000; + } else BellowingRoar_Timer -= diff; DoMeleeAttackIfReady(); } @@ -172,11 +171,9 @@ struct TRINITY_DLL_DECL boss_vazrudenAI : public ScriptedAI { boss_vazrudenAI(Creature *c) : ScriptedAI(c) { - HeroicMode = m_creature->GetMap()->IsHeroic(); } uint32 Revenge_Timer; - bool HeroicMode; bool WipeSaid; uint32 UnsummonCheck; @@ -239,7 +236,6 @@ struct TRINITY_DLL_DECL boss_vazruden_the_heraldAI : public ScriptedAI sentryDown = false; NazanGUID = 0; VazrudenGUID = 0; - HeroicMode = m_creature->GetMap()->IsHeroic(); } uint32 phase; @@ -249,7 +245,6 @@ struct TRINITY_DLL_DECL boss_vazruden_the_heraldAI : public ScriptedAI uint64 NazanGUID; uint64 VazrudenGUID; bool summoned; - bool HeroicMode; void Reset() { diff --git a/src/bindings/scripts/scripts/outland/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp b/src/bindings/scripts/scripts/outland/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp index 900c3dea267..80c1e85bf15 100644 --- a/src/bindings/scripts/scripts/outland/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp +++ b/src/bindings/scripts/scripts/outland/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp @@ -42,11 +42,8 @@ struct TRINITY_DLL_DECL boss_watchkeeper_gargolmarAI : public ScriptedAI { boss_watchkeeper_gargolmarAI(Creature *c) : ScriptedAI(c) { - HeroicMode = m_creature->GetMap()->IsHeroic(); } - bool HeroicMode; - uint32 Surge_Timer; uint32 MortalWound_Timer; uint32 Retaliation_Timer; @@ -107,7 +104,7 @@ struct TRINITY_DLL_DECL boss_watchkeeper_gargolmarAI : public ScriptedAI if (MortalWound_Timer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_MORTAL_WOUND, H_SPELL_MORTAL_WOUND)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_MORTAL_WOUND, H_SPELL_MORTAL_WOUND)); MortalWound_Timer = 5000+rand()%8000; } else MortalWound_Timer -= diff; diff --git a/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_nethekurse.cpp b/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_nethekurse.cpp index 8b479522ff3..75a41fa0c7c 100644 --- a/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_nethekurse.cpp +++ b/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_nethekurse.cpp @@ -78,11 +78,9 @@ struct TRINITY_DLL_DECL boss_grand_warlock_nethekurseAI : public ScriptedAI boss_grand_warlock_nethekurseAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; - bool HeroicMode; bool IntroOnce; bool IsIntroEvent; @@ -255,7 +253,7 @@ struct TRINITY_DLL_DECL boss_grand_warlock_nethekurseAI : public ScriptedAI if (Cleave_Timer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_SHADOW_CLEAVE, H_SPELL_SHADOW_SLAM)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SHADOW_CLEAVE, H_SPELL_SHADOW_SLAM)); Cleave_Timer = 6000+rand()%2500; } else Cleave_Timer -= diff; } diff --git a/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp b/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp index 64c2c84890a..e0108ec7f04 100644 --- a/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp +++ b/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp @@ -138,11 +138,9 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI LeftHeadGUID = 0; RightHeadGUID = 0; pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; - bool HeroicMode; uint64 LeftHeadGUID; uint64 RightHeadGUID; @@ -346,7 +344,7 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI if (BurningMaul_Timer <= diff) { DoScriptText(EMOTE_ENRAGE, m_creature); - DoCast(m_creature, HEROIC(SPELL_BURNING_MAUL, H_SPELL_BURNING_MAUL)); + DoCast(m_creature, DUNGEON_MODE(SPELL_BURNING_MAUL, H_SPELL_BURNING_MAUL)); BurningMaul_Timer = 40000; BlastWave_Timer = 16000; BlastCount = 1; diff --git a/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp b/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp index 78e7d7a22e5..bbe771b03a9 100644 --- a/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp +++ b/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp @@ -52,11 +52,8 @@ struct TRINITY_DLL_DECL boss_warchief_kargath_bladefistAI : public ScriptedAI { boss_warchief_kargath_bladefistAI(Creature *c) : ScriptedAI(c) { - HeroicMode = c->GetMap()->IsHeroic(); } - bool HeroicMode; - std::vector<uint64> adds; std::vector<uint64> assassins; @@ -202,10 +199,10 @@ struct TRINITY_DLL_DECL boss_warchief_kargath_bladefistAI : public ScriptedAI // stop bladedance InBlade = false; m_creature->SetSpeed(MOVE_RUN,2); - (*m_creature).GetMotionMaster()->MoveChase(m_creature->getVictim()); + m_creature->GetMotionMaster()->MoveChase(m_creature->getVictim()); Blade_Dance_Timer = 30000; Wait_Timer = 0; - if (HeroicMode) + if (IsHeroic()) Charge_timer = 5000; } else @@ -216,7 +213,7 @@ struct TRINITY_DLL_DECL boss_warchief_kargath_bladefistAI : public ScriptedAI randy = (rand()%40); x = 210+ randx ; y = -60- randy ; - (*m_creature).GetMotionMaster()->MovePoint(1,x,y,m_creature->GetPositionZ()); + m_creature->GetMotionMaster()->MovePoint(1,x,y,m_creature->GetPositionZ()); Wait_Timer = 0; } } else Wait_Timer -= diff; diff --git a/src/bindings/scripts/scripts/outland/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp b/src/bindings/scripts/scripts/outland/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp index 3b768f95c0d..e2eaace900d 100644 --- a/src/bindings/scripts/scripts/outland/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp +++ b/src/bindings/scripts/scripts/outland/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp @@ -58,12 +58,10 @@ struct TRINITY_DLL_DECL boss_harbinger_skyrissAI : public ScriptedAI boss_harbinger_skyrissAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); Intro = false; } ScriptedInstance *pInstance; - bool HeroicMode; bool Intro; bool IsImage33; @@ -199,9 +197,9 @@ struct TRINITY_DLL_DECL boss_harbinger_skyrissAI : public ScriptedAI if (MindRend_Timer <= diff) { if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,1)) - DoCast(pTarget, HEROIC(SPELL_MIND_REND, H_SPELL_MIND_REND)); + DoCast(pTarget, DUNGEON_MODE(SPELL_MIND_REND, H_SPELL_MIND_REND)); else - DoCast(m_creature->getVictim(), HEROIC(SPELL_MIND_REND, H_SPELL_MIND_REND)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_MIND_REND, H_SPELL_MIND_REND)); MindRend_Timer = 8000; } else MindRend_Timer -=diff; @@ -229,14 +227,14 @@ struct TRINITY_DLL_DECL boss_harbinger_skyrissAI : public ScriptedAI DoScriptText(RAND(SAY_MIND_1,SAY_MIND_2), m_creature); if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,1)) - DoCast(pTarget, HEROIC(SPELL_DOMINATION, H_SPELL_DOMINATION)); + DoCast(pTarget, DUNGEON_MODE(SPELL_DOMINATION, H_SPELL_DOMINATION)); else - DoCast(m_creature->getVictim(), HEROIC(SPELL_DOMINATION, H_SPELL_DOMINATION)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_DOMINATION, H_SPELL_DOMINATION)); Domination_Timer = 16000+rand()%16000; } else Domination_Timer -=diff; - if (HeroicMode) + if (IsHeroic()) { if (ManaBurn_Timer <= diff) { @@ -266,11 +264,8 @@ struct TRINITY_DLL_DECL boss_harbinger_skyriss_illusionAI : public ScriptedAI { boss_harbinger_skyriss_illusionAI(Creature *c) : ScriptedAI(c) { - HeroicMode = c->GetMap()->IsHeroic(); } - bool HeroicMode; - void Reset() { } void EnterCombat(Unit *who) { } diff --git a/src/bindings/scripts/scripts/outland/tempest_keep/botanica/boss_warp_splinter.cpp b/src/bindings/scripts/scripts/outland/tempest_keep/botanica/boss_warp_splinter.cpp index c3d72f02835..794668d8dda 100644 --- a/src/bindings/scripts/scripts/outland/tempest_keep/botanica/boss_warp_splinter.cpp +++ b/src/bindings/scripts/scripts/outland/tempest_keep/botanica/boss_warp_splinter.cpp @@ -88,7 +88,7 @@ struct TRINITY_DLL_DECL mob_treantAI : public ScriptedAI #define WAR_STOMP 34716 #define SUMMON_TREANTS 34727 // DBC: 34727, 34731, 34733, 34734, 34736, 34739, 34741 (with Ancestral Life spell 34742) // won't work (guardian summon) -#define ARCANE_VOLLEY (HeroicMode?39133:36705) +#define ARCANE_VOLLEY DUNGEON_MODE(36705, 39133) #define CREATURE_TREANT 19949 @@ -108,7 +108,6 @@ struct TRINITY_DLL_DECL boss_warp_splinterAI : public ScriptedAI { boss_warp_splinterAI(Creature *c) : ScriptedAI(c) { - HeroicMode = c->GetMap()->IsHeroic(); Treant_Spawn_Pos_X = c->GetPositionX(); Treant_Spawn_Pos_Y = c->GetPositionY(); } @@ -116,7 +115,6 @@ struct TRINITY_DLL_DECL boss_warp_splinterAI : public ScriptedAI uint32 War_Stomp_Timer; uint32 Summon_Treants_Timer; uint32 Arcane_Volley_Timer; - bool HeroicMode; float Treant_Spawn_Pos_X; float Treant_Spawn_Pos_Y; diff --git a/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp b/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp index 2f8dd1a64b9..5cfb0f9de5e 100644 --- a/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp +++ b/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp @@ -44,11 +44,8 @@ struct TRINITY_DLL_DECL boss_gatewatcher_iron_handAI : public ScriptedAI { boss_gatewatcher_iron_handAI(Creature *c) : ScriptedAI(c) { - HeroicMode = c->GetMap()->IsHeroic(); } - bool HeroicMode; - uint32 Shadow_Power_Timer; uint32 Jackhammer_Timer; uint32 Stream_of_Machine_Fluid_Timer; @@ -88,7 +85,7 @@ struct TRINITY_DLL_DECL boss_gatewatcher_iron_handAI : public ScriptedAI //Shadow Power if (Shadow_Power_Timer <= diff) { - DoCast(m_creature, HEROIC(SPELL_SHADOW_POWER, H_SPELL_SHADOW_POWER)); + DoCast(m_creature, DUNGEON_MODE(SPELL_SHADOW_POWER, H_SPELL_SHADOW_POWER)); Shadow_Power_Timer = 20000 + rand()%8000; } else Shadow_Power_Timer -= diff; @@ -97,7 +94,7 @@ struct TRINITY_DLL_DECL boss_gatewatcher_iron_handAI : public ScriptedAI { //TODO: expect cast this about 5 times in a row (?), announce it by emote only once DoScriptText(EMOTE_HAMMER, m_creature); - DoCast(m_creature->getVictim(), HEROIC(SPELL_JACKHAMMER, H_SPELL_JACKHAMMER)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_JACKHAMMER, H_SPELL_JACKHAMMER)); //chance to yell, but not same time as emote (after spell in fact casted) if (rand()%2) diff --git a/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp b/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp index 3a5b95f706d..96cbbb293cf 100644 --- a/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp +++ b/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp @@ -46,13 +46,10 @@ struct TRINITY_DLL_DECL boss_nethermancer_sepethreaAI : public ScriptedAI boss_nethermancer_sepethreaAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - HeroicMode = c->GetMap()->IsHeroic(); } ScriptedInstance *pInstance; - bool HeroicMode; - uint32 frost_attack_Timer; uint32 arcane_blast_Timer; uint32 dragons_breath_Timer; @@ -77,7 +74,7 @@ struct TRINITY_DLL_DECL boss_nethermancer_sepethreaAI : public ScriptedAI pInstance->SetData(DATA_NETHERMANCER_EVENT, IN_PROGRESS); DoScriptText(SAY_AGGRO, m_creature); - DoCast(who, HEROIC(SPELL_SUMMON_RAGIN_FLAMES, H_SPELL_SUMMON_RAGIN_FLAMES)); + DoCast(who, DUNGEON_MODE(SPELL_SUMMON_RAGIN_FLAMES, H_SPELL_SUMMON_RAGIN_FLAMES)); DoScriptText(SAY_SUMMON, m_creature); } @@ -158,13 +155,11 @@ struct TRINITY_DLL_DECL mob_ragin_flamesAI : public ScriptedAI { mob_ragin_flamesAI(Creature *c) : ScriptedAI(c) { - pInstance = c->GetInstanceData(); HeroicMode = m_creature->GetMap()->IsHeroic(); + pInstance = c->GetInstanceData(); } ScriptedInstance *pInstance; - bool HeroicMode; - uint32 inferno_Timer; uint32 flame_timer; uint32 Check_Timer; @@ -179,7 +174,7 @@ struct TRINITY_DLL_DECL mob_ragin_flamesAI : public ScriptedAI onlyonce = false; m_creature->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_MAGIC, true); m_creature->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, true); - m_creature->SetSpeed(MOVE_RUN, HeroicMode ? 0.7f : 0.5f); + m_creature->SetSpeed(MOVE_RUN, DUNGEON_MODE(0.5f, 0.7f)); } void EnterCombat(Unit* who) @@ -215,7 +210,7 @@ struct TRINITY_DLL_DECL mob_ragin_flamesAI : public ScriptedAI if (inferno_Timer <= diff) { - DoCast(m_creature->getVictim(), HEROIC(SPELL_INFERNO, H_SPELL_INFERNO)); + DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_INFERNO, H_SPELL_INFERNO)); m_creature->TauntApply(m_creature->getVictim()); inferno_Timer = 10000; } else inferno_Timer -= diff; diff --git a/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp b/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp index 9264edc6644..7848173329b 100644 --- a/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp +++ b/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp @@ -52,7 +52,6 @@ struct TRINITY_DLL_DECL boss_pathaleon_the_calculatorAI : public ScriptedAI { boss_pathaleon_the_calculatorAI(Creature *c) : ScriptedAI(c), summons(m_creature) { - HeroicMode = c->GetMap()->IsHeroic(); } uint32 Summon_Timer; @@ -61,7 +60,7 @@ struct TRINITY_DLL_DECL boss_pathaleon_the_calculatorAI : public ScriptedAI uint32 ArcaneTorrent_Timer; uint32 Domination_Timer; uint32 ArcaneExplosion_Timer; - bool HeroicMode; + bool Enraged; uint32 Counter; @@ -142,7 +141,7 @@ struct TRINITY_DLL_DECL boss_pathaleon_the_calculatorAI : public ScriptedAI } else Domination_Timer -= diff; //Only casting if Heroic Mode is used - if (HeroicMode) + if (IsHeroic()) { if (ArcaneExplosion_Timer <= diff) { diff --git a/src/game/CreatureAIImpl.h b/src/game/CreatureAIImpl.h index 9f61216e489..8312499dc1c 100644 --- a/src/game/CreatureAIImpl.h +++ b/src/game/CreatureAIImpl.h @@ -23,8 +23,6 @@ #include "TemporarySummon.h" #include "CreatureAI.h" -#define HEROIC(n,h) (HeroicMode ? h : n) - template<class T> inline const T& RAND(const T& v1, const T& v2) diff --git a/src/game/UnitAI.h b/src/game/UnitAI.h index e56ae6a8e0a..c3167101ba6 100644 --- a/src/game/UnitAI.h +++ b/src/game/UnitAI.h @@ -45,6 +45,8 @@ class TRINITY_DLL_SPEC UnitAI Unit * const me; public: explicit UnitAI(Unit *u) : me(u) {} + virtual ~UnitAI() {} + virtual bool CanAIAttack(const Unit *who) const { return true; } virtual void AttackStart(Unit *); virtual void UpdateAI(const uint32 diff) = 0; |