Fix normal10/normal25 raid detection in scripts.
Replace HEROIC(n,h) macro by DUNGEON_MODE(n,h), RAID_MODE(n10,n25) and RAID_MODE(n10,n25,h10,h25) functions Cleanup all HeroicMode like flags in ScriptedAI sub-class Fix some missing virtual destructors --HG-- branch : trunk
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
+3
-7
@@ -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;
|
||||
}
|
||||
|
||||
+2
-4
@@ -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;
|
||||
|
||||
+5
-5
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
|
||||
+3
-3
@@ -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;
|
||||
|
||||
|
||||
+2
-2
@@ -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;
|
||||
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
+3
-5
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
+3
-3
@@ -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;
|
||||
|
||||
+5
-5
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
+12
-14
@@ -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;
|
||||
|
||||
|
||||
+7
-7
@@ -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;
|
||||
|
||||
+5
-5
@@ -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;
|
||||
|
||||
+8
-13
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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};
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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:
|
||||
{
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
+7
-9
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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_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 HEROIC(62166,63981)
|
||||
#define SPELL_ARM_SWEEP HEROIC(63766,63983)
|
||||
#define SPELL_STONE_GRIP RAID_MODE(62166,63981)
|
||||
#define SPELL_ARM_SWEEP RAID_MODE(63766,63983)
|
||||
|
||||
enum Events
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
+6
-10
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
+2
-6
@@ -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);
|
||||
|
||||
+9
-9
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
+8
-8
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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?
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
+3
-6
@@ -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;
|
||||
|
||||
|
||||
+1
-3
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
+4
-19
@@ -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()
|
||||
{
|
||||
|
||||
+11
-10
@@ -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)
|
||||
{
|
||||
|
||||
+1
-3
@@ -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)
|
||||
{
|
||||
|
||||
+3
-7
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
+8
-9
@@ -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;
|
||||
|
||||
|
||||
+1
-5
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
+1
-3
@@ -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;
|
||||
|
||||
+4
-9
@@ -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;
|
||||
|
||||
|
||||
+2
-5
@@ -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;
|
||||
|
||||
+11
-16
@@ -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()
|
||||
{
|
||||
|
||||
+1
-4
@@ -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;
|
||||
|
||||
|
||||
+1
-3
@@ -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;
|
||||
}
|
||||
|
||||
+1
-3
@@ -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;
|
||||
|
||||
+3
-6
@@ -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;
|
||||
|
||||
+5
-10
@@ -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) { }
|
||||
|
||||
@@ -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;
|
||||
|
||||
+2
-5
@@ -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)
|
||||
|
||||
+4
-9
@@ -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;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user