*More of that cleanup you all know and love ;)

--HG--
branch : trunk
This commit is contained in:
maximius
2009-11-11 13:47:21 -08:00
parent 718fe5008e
commit 2874864bc0
266 changed files with 1092 additions and 1103 deletions
@@ -376,7 +376,7 @@ struct TRINITY_DLL_DECL mob_phalanxAI : public ScriptedAI
//ThunderClap_Timer //ThunderClap_Timer
if (ThunderClap_Timer <= diff) if (ThunderClap_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_THUNDERCLAP); DoCast(m_creature->getVictim(), SPELL_THUNDERCLAP);
ThunderClap_Timer = 10000; ThunderClap_Timer = 10000;
} else ThunderClap_Timer -= diff; } else ThunderClap_Timer -= diff;
@@ -385,7 +385,7 @@ struct TRINITY_DLL_DECL mob_phalanxAI : public ScriptedAI
{ {
if (FireballVolley_Timer <= diff) if (FireballVolley_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FIREBALLVOLLEY); DoCast(m_creature->getVictim(), SPELL_FIREBALLVOLLEY);
FireballVolley_Timer = 15000; FireballVolley_Timer = 15000;
} else FireballVolley_Timer -= diff; } else FireballVolley_Timer -= diff;
} }
@@ -393,7 +393,7 @@ struct TRINITY_DLL_DECL mob_phalanxAI : public ScriptedAI
//MightyBlow_Timer //MightyBlow_Timer
if (MightyBlow_Timer <= diff) if (MightyBlow_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_MIGHTYBLOW); DoCast(m_creature->getVictim(), SPELL_MIGHTYBLOW);
MightyBlow_Timer = 10000; MightyBlow_Timer = 10000;
} else MightyBlow_Timer -= diff; } else MightyBlow_Timer -= diff;
@@ -58,7 +58,7 @@ struct TRINITY_DLL_DECL boss_ambassador_flamelashAI : public ScriptedAI
//FireBlast_Timer //FireBlast_Timer
if (FireBlast_Timer <= diff) if (FireBlast_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FIREBLAST); DoCast(m_creature->getVictim(), SPELL_FIREBLAST);
FireBlast_Timer = 7000; FireBlast_Timer = 7000;
} else FireBlast_Timer -= diff; } else FireBlast_Timer -= diff;
@@ -64,7 +64,7 @@ struct TRINITY_DLL_DECL boss_anubshiahAI : public ScriptedAI
//ShadowBolt_Timer //ShadowBolt_Timer
if (ShadowBolt_Timer <= diff) if (ShadowBolt_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SHADOWBOLT); DoCast(m_creature->getVictim(), SPELL_SHADOWBOLT);
ShadowBolt_Timer = 7000; ShadowBolt_Timer = 7000;
} else ShadowBolt_Timer -= diff; } else ShadowBolt_Timer -= diff;
@@ -72,21 +72,21 @@ struct TRINITY_DLL_DECL boss_anubshiahAI : public ScriptedAI
if (CurseOfTongues_Timer <= diff) if (CurseOfTongues_Timer <= diff)
{ {
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_CURSEOFTONGUES); DoCast(pTarget, SPELL_CURSEOFTONGUES);
CurseOfTongues_Timer = 18000; CurseOfTongues_Timer = 18000;
} else CurseOfTongues_Timer -= diff; } else CurseOfTongues_Timer -= diff;
//CurseOfWeakness_Timer //CurseOfWeakness_Timer
if (CurseOfWeakness_Timer <= diff) if (CurseOfWeakness_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CURSEOFWEAKNESS); DoCast(m_creature->getVictim(), SPELL_CURSEOFWEAKNESS);
CurseOfWeakness_Timer = 45000; CurseOfWeakness_Timer = 45000;
} else CurseOfWeakness_Timer -= diff; } else CurseOfWeakness_Timer -= diff;
//DemonArmor_Timer //DemonArmor_Timer
if (DemonArmor_Timer <= diff) if (DemonArmor_Timer <= diff)
{ {
DoCast(m_creature,SPELL_DEMONARMOR); DoCast(m_creature, SPELL_DEMONARMOR);
DemonArmor_Timer = 300000; DemonArmor_Timer = 300000;
} else DemonArmor_Timer -= diff; } else DemonArmor_Timer -= diff;
@@ -94,7 +94,7 @@ struct TRINITY_DLL_DECL boss_anubshiahAI : public ScriptedAI
if (EnvelopingWeb_Timer <= diff) if (EnvelopingWeb_Timer <= diff)
{ {
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_ENVELOPINGWEB); DoCast(pTarget, SPELL_ENVELOPINGWEB);
EnvelopingWeb_Timer = 12000; EnvelopingWeb_Timer = 12000;
} else EnvelopingWeb_Timer -= diff; } else EnvelopingWeb_Timer -= diff;
@@ -70,7 +70,7 @@ struct TRINITY_DLL_DECL boss_draganthaurissanAI : public ScriptedAI
if (HandOfThaurissan_Timer <= diff) if (HandOfThaurissan_Timer <= diff)
{ {
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0)) if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(pTarget,SPELL_HANDOFTHAURISSAN); DoCast(pTarget, SPELL_HANDOFTHAURISSAN);
//3 Hands of Thaurissan will be casted //3 Hands of Thaurissan will be casted
//if (Counter < 3) //if (Counter < 3)
@@ -88,7 +88,7 @@ struct TRINITY_DLL_DECL boss_draganthaurissanAI : public ScriptedAI
//AvatarOfFlame_Timer //AvatarOfFlame_Timer
if (AvatarOfFlame_Timer <= diff) if (AvatarOfFlame_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_AVATAROFFLAME); DoCast(m_creature->getVictim(), SPELL_AVATAROFFLAME);
AvatarOfFlame_Timer = 18000; AvatarOfFlame_Timer = 18000;
} else AvatarOfFlame_Timer -= diff; } else AvatarOfFlame_Timer -= diff;
@@ -74,21 +74,21 @@ struct TRINITY_DLL_DECL boss_general_angerforgeAI : public ScriptedAI
//MightyBlow_Timer //MightyBlow_Timer
if (MightyBlow_Timer <= diff) if (MightyBlow_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_MIGHTYBLOW); DoCast(m_creature->getVictim(), SPELL_MIGHTYBLOW);
MightyBlow_Timer = 18000; MightyBlow_Timer = 18000;
} else MightyBlow_Timer -= diff; } else MightyBlow_Timer -= diff;
//HamString_Timer //HamString_Timer
if (HamString_Timer <= diff) if (HamString_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_HAMSTRING); DoCast(m_creature->getVictim(), SPELL_HAMSTRING);
HamString_Timer = 15000; HamString_Timer = 15000;
} else HamString_Timer -= diff; } else HamString_Timer -= diff;
//Cleave_Timer //Cleave_Timer
if (Cleave_Timer <= diff) if (Cleave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CLEAVE); DoCast(m_creature->getVictim(), SPELL_CLEAVE);
Cleave_Timer = 9000; Cleave_Timer = 9000;
} else Cleave_Timer -= diff; } else Cleave_Timer -= diff;
@@ -55,14 +55,14 @@ struct TRINITY_DLL_DECL boss_gorosh_the_dervishAI : public ScriptedAI
//WhirlWind_Timer //WhirlWind_Timer
if (WhirlWind_Timer <= diff) if (WhirlWind_Timer <= diff)
{ {
DoCast(m_creature,SPELL_WHIRLWIND); DoCast(m_creature, SPELL_WHIRLWIND);
WhirlWind_Timer = 15000; WhirlWind_Timer = 15000;
} else WhirlWind_Timer -= diff; } else WhirlWind_Timer -= diff;
//MortalStrike_Timer //MortalStrike_Timer
if (MortalStrike_Timer <= diff) if (MortalStrike_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_MORTALSTRIKE); DoCast(m_creature->getVictim(), SPELL_MORTALSTRIKE);
MortalStrike_Timer = 15000; MortalStrike_Timer = 15000;
} else MortalStrike_Timer -= diff; } else MortalStrike_Timer -= diff;
@@ -60,7 +60,7 @@ struct TRINITY_DLL_DECL boss_grizzleAI : public ScriptedAI
//GroundTremor_Timer //GroundTremor_Timer
if (GroundTremor_Timer <= diff) if (GroundTremor_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_GROUNDTREMOR); DoCast(m_creature->getVictim(), SPELL_GROUNDTREMOR);
GroundTremor_Timer = 8000; GroundTremor_Timer = 8000;
} else GroundTremor_Timer -= diff; } else GroundTremor_Timer -= diff;
@@ -69,7 +69,7 @@ struct TRINITY_DLL_DECL boss_grizzleAI : public ScriptedAI
{ {
if (Frenzy_Timer <= diff) if (Frenzy_Timer <= diff)
{ {
DoCast(m_creature,SPELL_FRENZY); DoCast(m_creature, SPELL_FRENZY);
DoScriptText(EMOTE_GENERIC_FRENZY_KILL, m_creature); DoScriptText(EMOTE_GENERIC_FRENZY_KILL, m_creature);
Frenzy_Timer = 15000; Frenzy_Timer = 15000;
@@ -62,7 +62,7 @@ struct TRINITY_DLL_DECL boss_high_interrogator_gerstahnAI : public ScriptedAI
if (ShadowWordPain_Timer <= diff) if (ShadowWordPain_Timer <= diff)
{ {
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_SHADOWWORDPAIN); DoCast(pTarget, SPELL_SHADOWWORDPAIN);
ShadowWordPain_Timer = 7000; ShadowWordPain_Timer = 7000;
} else ShadowWordPain_Timer -= diff; } else ShadowWordPain_Timer -= diff;
@@ -70,21 +70,21 @@ struct TRINITY_DLL_DECL boss_high_interrogator_gerstahnAI : public ScriptedAI
if (ManaBurn_Timer <= diff) if (ManaBurn_Timer <= diff)
{ {
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_MANABURN); DoCast(pTarget, SPELL_MANABURN);
ManaBurn_Timer = 10000; ManaBurn_Timer = 10000;
} else ManaBurn_Timer -= diff; } else ManaBurn_Timer -= diff;
//PsychicScream_Timer //PsychicScream_Timer
if (PsychicScream_Timer <= diff) if (PsychicScream_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_PSYCHICSCREAM); DoCast(m_creature->getVictim(), SPELL_PSYCHICSCREAM);
PsychicScream_Timer = 30000; PsychicScream_Timer = 30000;
} else PsychicScream_Timer -= diff; } else PsychicScream_Timer -= diff;
//ShadowShield_Timer //ShadowShield_Timer
if (ShadowShield_Timer <= diff) if (ShadowShield_Timer <= diff)
{ {
DoCast(m_creature,SPELL_SHADOWSHIELD); DoCast(m_creature, SPELL_SHADOWSHIELD);
ShadowShield_Timer = 25000; ShadowShield_Timer = 25000;
} else ShadowShield_Timer -= diff; } else ShadowShield_Timer -= diff;
@@ -55,7 +55,7 @@ struct TRINITY_DLL_DECL boss_magmusAI : public ScriptedAI
//FieryBurst_Timer //FieryBurst_Timer
if (FieryBurst_Timer <= diff) if (FieryBurst_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FIERYBURST); DoCast(m_creature->getVictim(), SPELL_FIERYBURST);
FieryBurst_Timer = 6000; FieryBurst_Timer = 6000;
} else FieryBurst_Timer -= diff; } else FieryBurst_Timer -= diff;
@@ -64,7 +64,7 @@ struct TRINITY_DLL_DECL boss_magmusAI : public ScriptedAI
{ {
if (WarStomp_Timer <= diff) if (WarStomp_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_WARSTOMP); DoCast(m_creature->getVictim(), SPELL_WARSTOMP);
WarStomp_Timer = 8000; WarStomp_Timer = 8000;
} else WarStomp_Timer -= diff; } else WarStomp_Timer -= diff;
} }
@@ -67,21 +67,21 @@ struct TRINITY_DLL_DECL boss_moira_bronzebeardAI : public ScriptedAI
//MindBlast_Timer //MindBlast_Timer
if (MindBlast_Timer <= diff) if (MindBlast_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_MINDBLAST); DoCast(m_creature->getVictim(), SPELL_MINDBLAST);
MindBlast_Timer = 14000; MindBlast_Timer = 14000;
} else MindBlast_Timer -= diff; } else MindBlast_Timer -= diff;
//ShadowWordPain_Timer //ShadowWordPain_Timer
if (ShadowWordPain_Timer <= diff) if (ShadowWordPain_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SHADOWWORDPAIN); DoCast(m_creature->getVictim(), SPELL_SHADOWWORDPAIN);
ShadowWordPain_Timer = 18000; ShadowWordPain_Timer = 18000;
} else ShadowWordPain_Timer -= diff; } else ShadowWordPain_Timer -= diff;
//Smite_Timer //Smite_Timer
if (Smite_Timer <= diff) if (Smite_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SMITE); DoCast(m_creature->getVictim(), SPELL_SMITE);
Smite_Timer = 10000; Smite_Timer = 10000;
} else Smite_Timer -= diff; } else Smite_Timer -= diff;
@@ -163,7 +163,7 @@ struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI
//ShadowVolley_Timer //ShadowVolley_Timer
if (ShadowVolley_Timer <= diff) if (ShadowVolley_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SHADOWBOLTVOLLEY); DoCast(m_creature->getVictim(), SPELL_SHADOWBOLTVOLLEY);
ShadowVolley_Timer = 12000; ShadowVolley_Timer = 12000;
} else ShadowVolley_Timer -= diff; } else ShadowVolley_Timer -= diff;
@@ -171,7 +171,7 @@ struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI
if (Immolate_Timer <= diff) if (Immolate_Timer <= diff)
{ {
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_IMMOLATE); DoCast(pTarget, SPELL_IMMOLATE);
Immolate_Timer = 25000; Immolate_Timer = 25000;
} else Immolate_Timer -= diff; } else Immolate_Timer -= diff;
@@ -179,21 +179,21 @@ struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI
//CurseOfWeakness_Timer //CurseOfWeakness_Timer
if (CurseOfWeakness_Timer <= diff) if (CurseOfWeakness_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CURSEOFWEAKNESS); DoCast(m_creature->getVictim(), SPELL_CURSEOFWEAKNESS);
CurseOfWeakness_Timer = 45000; CurseOfWeakness_Timer = 45000;
} else CurseOfWeakness_Timer -= diff; } else CurseOfWeakness_Timer -= diff;
//DemonArmor_Timer //DemonArmor_Timer
if (DemonArmor_Timer <= diff) if (DemonArmor_Timer <= diff)
{ {
DoCast(m_creature,SPELL_DEMONARMOR); DoCast(m_creature, SPELL_DEMONARMOR);
DemonArmor_Timer = 300000; DemonArmor_Timer = 300000;
} else DemonArmor_Timer -= diff; } else DemonArmor_Timer -= diff;
//Summon Voidwalkers //Summon Voidwalkers
if (!Voidwalkers && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 51) if (!Voidwalkers && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 51)
{ {
m_creature->CastSpell(m_creature->getVictim(), SPELL_SUMMON_VOIDWALKERS, true); DoCast(m_creature->getVictim(), SPELL_SUMMON_VOIDWALKERS, true);
Voidwalkers = true; Voidwalkers = true;
} }
@@ -58,28 +58,28 @@ struct TRINITY_DLL_DECL boss_drakkisathAI : public ScriptedAI
//FireNova_Timer //FireNova_Timer
if (FireNova_Timer <= diff) if (FireNova_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FIRENOVA); DoCast(m_creature->getVictim(), SPELL_FIRENOVA);
FireNova_Timer = 10000; FireNova_Timer = 10000;
} else FireNova_Timer -= diff; } else FireNova_Timer -= diff;
//Cleave_Timer //Cleave_Timer
if (Cleave_Timer <= diff) if (Cleave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CLEAVE); DoCast(m_creature->getVictim(), SPELL_CLEAVE);
Cleave_Timer = 8000; Cleave_Timer = 8000;
} else Cleave_Timer -= diff; } else Cleave_Timer -= diff;
//Confliguration_Timer //Confliguration_Timer
if (Confliguration_Timer <= diff) if (Confliguration_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CONFLIGURATION); DoCast(m_creature->getVictim(), SPELL_CONFLIGURATION);
Confliguration_Timer = 18000; Confliguration_Timer = 18000;
} else Confliguration_Timer -= diff; } else Confliguration_Timer -= diff;
//Thunderclap_Timer //Thunderclap_Timer
if (Thunderclap_Timer <= diff) if (Thunderclap_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_THUNDERCLAP); DoCast(m_creature->getVictim(), SPELL_THUNDERCLAP);
Thunderclap_Timer = 20000; Thunderclap_Timer = 20000;
} else Thunderclap_Timer -= diff; } else Thunderclap_Timer -= diff;
@@ -168,7 +168,7 @@ struct TRINITY_DLL_DECL boss_gythAI : public ScriptedAI
// Flamebreath_Timer // Flamebreath_Timer
if (Flamebreath_Timer <= diff) if (Flamebreath_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FLAMEBREATH); DoCast(m_creature->getVictim(), SPELL_FLAMEBREATH);
Flamebreath_Timer = 10500; Flamebreath_Timer = 10500;
} else Flamebreath_Timer -= diff; } else Flamebreath_Timer -= diff;
@@ -59,14 +59,14 @@ struct TRINITY_DLL_DECL boss_halyconAI : public ScriptedAI
//CrowdPummel_Timer //CrowdPummel_Timer
if (CrowdPummel_Timer <= diff) if (CrowdPummel_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CROWDPUMMEL); DoCast(m_creature->getVictim(), SPELL_CROWDPUMMEL);
CrowdPummel_Timer = 14000; CrowdPummel_Timer = 14000;
} else CrowdPummel_Timer -= diff; } else CrowdPummel_Timer -= diff;
//MightyBlow_Timer //MightyBlow_Timer
if (MightyBlow_Timer <= diff) if (MightyBlow_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_MIGHTYBLOW); DoCast(m_creature->getVictim(), SPELL_MIGHTYBLOW);
MightyBlow_Timer = 10000; MightyBlow_Timer = 10000;
} else MightyBlow_Timer -= diff; } else MightyBlow_Timer -= diff;
@@ -67,49 +67,49 @@ struct TRINITY_DLL_DECL boss_highlordomokkAI : public ScriptedAI
//WarStomp_Timer //WarStomp_Timer
if (WarStomp_Timer <= diff) if (WarStomp_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_WARSTOMP); DoCast(m_creature->getVictim(), SPELL_WARSTOMP);
WarStomp_Timer = 14000; WarStomp_Timer = 14000;
} else WarStomp_Timer -= diff; } else WarStomp_Timer -= diff;
//Cleave_Timer //Cleave_Timer
if (Cleave_Timer <= diff) if (Cleave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CLEAVE); DoCast(m_creature->getVictim(), SPELL_CLEAVE);
Cleave_Timer = 8000; Cleave_Timer = 8000;
} else Cleave_Timer -= diff; } else Cleave_Timer -= diff;
//Strike_Timer //Strike_Timer
if (Strike_Timer <= diff) if (Strike_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_STRIKE); DoCast(m_creature->getVictim(), SPELL_STRIKE);
Strike_Timer = 10000; Strike_Timer = 10000;
} else Strike_Timer -= diff; } else Strike_Timer -= diff;
//Rend_Timer //Rend_Timer
if (Rend_Timer <= diff) if (Rend_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_REND); DoCast(m_creature->getVictim(), SPELL_REND);
Rend_Timer = 18000; Rend_Timer = 18000;
} else Rend_Timer -= diff; } else Rend_Timer -= diff;
//SunderArmor_Timer //SunderArmor_Timer
if (SunderArmor_Timer <= diff) if (SunderArmor_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SUNDERARMOR); DoCast(m_creature->getVictim(), SPELL_SUNDERARMOR);
SunderArmor_Timer = 25000; SunderArmor_Timer = 25000;
} else SunderArmor_Timer -= diff; } else SunderArmor_Timer -= diff;
//KnockAway_Timer //KnockAway_Timer
if (KnockAway_Timer <= diff) if (KnockAway_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_KNOCKAWAY); DoCast(m_creature->getVictim(), SPELL_KNOCKAWAY);
KnockAway_Timer = 12000; KnockAway_Timer = 12000;
} else KnockAway_Timer -= diff; } else KnockAway_Timer -= diff;
//Slow_Timer //Slow_Timer
if (Slow_Timer <= diff) if (Slow_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SLOW); DoCast(m_creature->getVictim(), SPELL_SLOW);
Slow_Timer = 18000; Slow_Timer = 18000;
} else Slow_Timer -= diff; } else Slow_Timer -= diff;
@@ -45,7 +45,7 @@ struct TRINITY_DLL_DECL boss_mothersmolderwebAI : public ScriptedAI
void DamageTaken(Unit *done_by, uint32 &damage) void DamageTaken(Unit *done_by, uint32 &damage)
{ {
if (m_creature->GetHealth() <= damage) if (m_creature->GetHealth() <= damage)
m_creature->CastSpell(m_creature,SPELL_SUMMON_SPIRE_SPIDERLING,true); DoCast(m_creature, SPELL_SUMMON_SPIRE_SPIDERLING, true);
} }
void UpdateAI(const uint32 diff) void UpdateAI(const uint32 diff)
@@ -57,14 +57,14 @@ struct TRINITY_DLL_DECL boss_mothersmolderwebAI : public ScriptedAI
//Crystalize_Timer //Crystalize_Timer
if (Crystalize_Timer <= diff) if (Crystalize_Timer <= diff)
{ {
DoCast(m_creature,SPELL_CRYSTALIZE); DoCast(m_creature, SPELL_CRYSTALIZE);
Crystalize_Timer = 15000; Crystalize_Timer = 15000;
} else Crystalize_Timer -= diff; } else Crystalize_Timer -= diff;
//MothersMilk_Timer //MothersMilk_Timer
if (MothersMilk_Timer <= diff) if (MothersMilk_Timer <= diff)
{ {
DoCast(m_creature,SPELL_MOTHERSMILK); DoCast(m_creature, SPELL_MOTHERSMILK);
MothersMilk_Timer = urand(5000,12500); MothersMilk_Timer = urand(5000,12500);
} else MothersMilk_Timer -= diff; } else MothersMilk_Timer -= diff;
@@ -71,28 +71,28 @@ struct TRINITY_DLL_DECL boss_overlordwyrmthalakAI : public ScriptedAI
//BlastWave_Timer //BlastWave_Timer
if (BlastWave_Timer <= diff) if (BlastWave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_BLASTWAVE); DoCast(m_creature->getVictim(), SPELL_BLASTWAVE);
BlastWave_Timer = 20000; BlastWave_Timer = 20000;
} else BlastWave_Timer -= diff; } else BlastWave_Timer -= diff;
//Shout_Timer //Shout_Timer
if (Shout_Timer <= diff) if (Shout_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SHOUT); DoCast(m_creature->getVictim(), SPELL_SHOUT);
Shout_Timer = 10000; Shout_Timer = 10000;
} else Shout_Timer -= diff; } else Shout_Timer -= diff;
//Cleave_Timer //Cleave_Timer
if (Cleave_Timer <= diff) if (Cleave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CLEAVE); DoCast(m_creature->getVictim(), SPELL_CLEAVE);
Cleave_Timer = 7000; Cleave_Timer = 7000;
} else Cleave_Timer -= diff; } else Cleave_Timer -= diff;
//Knockaway_Timer //Knockaway_Timer
if (Knockaway_Timer <= diff) if (Knockaway_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_KNOCKAWAY); DoCast(m_creature->getVictim(), SPELL_KNOCKAWAY);
Knockaway_Timer = 14000; Knockaway_Timer = 14000;
} else Knockaway_Timer -= diff; } else Knockaway_Timer -= diff;
@@ -55,14 +55,14 @@ struct TRINITY_DLL_DECL boss_pyroguard_emberseerAI : public ScriptedAI
//FireNova_Timer //FireNova_Timer
if (FireNova_Timer <= diff) if (FireNova_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FIRENOVA); DoCast(m_creature->getVictim(), SPELL_FIRENOVA);
FireNova_Timer = 6000; FireNova_Timer = 6000;
} else FireNova_Timer -= diff; } else FireNova_Timer -= diff;
//FlameBuffet_Timer //FlameBuffet_Timer
if (FlameBuffet_Timer <= diff) if (FlameBuffet_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FLAMEBUFFET); DoCast(m_creature->getVictim(), SPELL_FLAMEBUFFET);
FlameBuffet_Timer = 14000; FlameBuffet_Timer = 14000;
} else FlameBuffet_Timer -= diff; } else FlameBuffet_Timer -= diff;
@@ -70,7 +70,7 @@ struct TRINITY_DLL_DECL boss_pyroguard_emberseerAI : public ScriptedAI
if (PyroBlast_Timer <= diff) if (PyroBlast_Timer <= diff)
{ {
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_PYROBLAST); DoCast(pTarget, SPELL_PYROBLAST);
PyroBlast_Timer = 15000; PyroBlast_Timer = 15000;
} else PyroBlast_Timer -= diff; } else PyroBlast_Timer -= diff;
@@ -56,14 +56,14 @@ struct TRINITY_DLL_DECL boss_quatermasterzigrisAI : public ScriptedAI
//Shoot_Timer //Shoot_Timer
if (Shoot_Timer <= diff) if (Shoot_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SHOOT); DoCast(m_creature->getVictim(), SPELL_SHOOT);
Shoot_Timer = 500; Shoot_Timer = 500;
} else Shoot_Timer -= diff; } else Shoot_Timer -= diff;
//StunBomb_Timer //StunBomb_Timer
if (StunBomb_Timer <= diff) if (StunBomb_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_STUNBOMB); DoCast(m_creature->getVictim(), SPELL_STUNBOMB);
StunBomb_Timer = 14000; StunBomb_Timer = 14000;
} else StunBomb_Timer -= diff; } else StunBomb_Timer -= diff;
@@ -55,21 +55,21 @@ struct TRINITY_DLL_DECL boss_rend_blackhandAI : public ScriptedAI
//WhirlWind_Timer //WhirlWind_Timer
if (WhirlWind_Timer <= diff) if (WhirlWind_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_WHIRLWIND); DoCast(m_creature->getVictim(), SPELL_WHIRLWIND);
WhirlWind_Timer = 18000; WhirlWind_Timer = 18000;
} else WhirlWind_Timer -= diff; } else WhirlWind_Timer -= diff;
//Cleave_Timer //Cleave_Timer
if (Cleave_Timer <= diff) if (Cleave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CLEAVE); DoCast(m_creature->getVictim(), SPELL_CLEAVE);
Cleave_Timer = 10000; Cleave_Timer = 10000;
} else Cleave_Timer -= diff; } else Cleave_Timer -= diff;
//Thunderclap_Timer //Thunderclap_Timer
if (Thunderclap_Timer <= diff) if (Thunderclap_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_THUNDERCLAP); DoCast(m_creature->getVictim(), SPELL_THUNDERCLAP);
Thunderclap_Timer = 16000; Thunderclap_Timer = 16000;
} else Thunderclap_Timer -= diff; } else Thunderclap_Timer -= diff;
@@ -41,12 +41,10 @@ struct TRINITY_DLL_DECL boss_shadowvoshAI : public ScriptedAI
Hex_Timer = 8000; Hex_Timer = 8000;
Cleave_Timer = 14000; Cleave_Timer = 14000;
//m_creature->CastSpell(m_creature,SPELL_ICEARMOR,true); //DoCast(m_creature, SPELL_ICEARMOR, true);
} }
void EnterCombat(Unit *who) void EnterCombat(Unit *who){}
{
}
void UpdateAI(const uint32 diff) void UpdateAI(const uint32 diff)
{ {
@@ -57,7 +55,7 @@ struct TRINITY_DLL_DECL boss_shadowvoshAI : public ScriptedAI
//CurseOfBlood_Timer //CurseOfBlood_Timer
if (CurseOfBlood_Timer <= diff) if (CurseOfBlood_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CURSEOFBLOOD); DoCast(m_creature->getVictim(), SPELL_CURSEOFBLOOD);
CurseOfBlood_Timer = 45000; CurseOfBlood_Timer = 45000;
} else CurseOfBlood_Timer -= diff; } else CurseOfBlood_Timer -= diff;
@@ -65,14 +63,14 @@ struct TRINITY_DLL_DECL boss_shadowvoshAI : public ScriptedAI
if (Hex_Timer <= diff) if (Hex_Timer <= diff)
{ {
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_HEX); DoCast(pTarget, SPELL_HEX);
Hex_Timer = 15000; Hex_Timer = 15000;
} else Hex_Timer -= diff; } else Hex_Timer -= diff;
//Cleave_Timer //Cleave_Timer
if (Cleave_Timer <= diff) if (Cleave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CLEAVE); DoCast(m_creature->getVictim(), SPELL_CLEAVE);
Cleave_Timer = 7000; Cleave_Timer = 7000;
} else Cleave_Timer -= diff; } else Cleave_Timer -= diff;
@@ -55,7 +55,7 @@ struct TRINITY_DLL_DECL boss_thebeastAI : public ScriptedAI
//Flamebreak_Timer //Flamebreak_Timer
if (Flamebreak_Timer <= diff) if (Flamebreak_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FLAMEBREAK); DoCast(m_creature->getVictim(), SPELL_FLAMEBREAK);
Flamebreak_Timer = 10000; Flamebreak_Timer = 10000;
} else Flamebreak_Timer -= diff; } else Flamebreak_Timer -= diff;
@@ -63,14 +63,14 @@ struct TRINITY_DLL_DECL boss_thebeastAI : public ScriptedAI
if (Immolate_Timer <= diff) if (Immolate_Timer <= diff)
{ {
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_IMMOLATE); DoCast(pTarget, SPELL_IMMOLATE);
Immolate_Timer = 8000; Immolate_Timer = 8000;
} else Immolate_Timer -= diff; } else Immolate_Timer -= diff;
//TerrifyingRoar_Timer //TerrifyingRoar_Timer
if (TerrifyingRoar_Timer <= diff) if (TerrifyingRoar_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_TERRIFYINGROAR); DoCast(m_creature->getVictim(), SPELL_TERRIFYINGROAR);
TerrifyingRoar_Timer = 20000; TerrifyingRoar_Timer = 20000;
} else TerrifyingRoar_Timer -= diff; } else TerrifyingRoar_Timer -= diff;
@@ -64,42 +64,42 @@ struct TRINITY_DLL_DECL boss_warmastervooneAI : public ScriptedAI
//Snapkick_Timer //Snapkick_Timer
if (Snapkick_Timer <= diff) if (Snapkick_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SNAPKICK); DoCast(m_creature->getVictim(), SPELL_SNAPKICK);
Snapkick_Timer = 6000; Snapkick_Timer = 6000;
} else Snapkick_Timer -= diff; } else Snapkick_Timer -= diff;
//Cleave_Timer //Cleave_Timer
if (Cleave_Timer <= diff) if (Cleave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CLEAVE); DoCast(m_creature->getVictim(), SPELL_CLEAVE);
Cleave_Timer = 12000; Cleave_Timer = 12000;
} else Cleave_Timer -= diff; } else Cleave_Timer -= diff;
//Uppercut_Timer //Uppercut_Timer
if (Uppercut_Timer <= diff) if (Uppercut_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_UPPERCUT); DoCast(m_creature->getVictim(), SPELL_UPPERCUT);
Uppercut_Timer = 14000; Uppercut_Timer = 14000;
} else Uppercut_Timer -= diff; } else Uppercut_Timer -= diff;
//MortalStrike_Timer //MortalStrike_Timer
if (MortalStrike_Timer <= diff) if (MortalStrike_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_MORTALSTRIKE); DoCast(m_creature->getVictim(), SPELL_MORTALSTRIKE);
MortalStrike_Timer = 10000; MortalStrike_Timer = 10000;
} else MortalStrike_Timer -= diff; } else MortalStrike_Timer -= diff;
//Pummel_Timer //Pummel_Timer
if (Pummel_Timer <= diff) if (Pummel_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_PUMMEL); DoCast(m_creature->getVictim(), SPELL_PUMMEL);
Pummel_Timer = 16000; Pummel_Timer = 16000;
} else Pummel_Timer -= diff; } else Pummel_Timer -= diff;
//ThrowAxe_Timer //ThrowAxe_Timer
if (ThrowAxe_Timer <= diff) if (ThrowAxe_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_THROWAXE); DoCast(m_creature->getVictim(), SPELL_THROWAXE);
ThrowAxe_Timer = 8000; ThrowAxe_Timer = 8000;
} else ThrowAxe_Timer -= diff; } else ThrowAxe_Timer -= diff;
@@ -62,27 +62,27 @@ struct TRINITY_DLL_DECL boss_broodlordAI : public ScriptedAI
//Cleave_Timer //Cleave_Timer
if (Cleave_Timer <= diff) if (Cleave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CLEAVE); DoCast(m_creature->getVictim(), SPELL_CLEAVE);
Cleave_Timer = 7000; Cleave_Timer = 7000;
} else Cleave_Timer -= diff; } else Cleave_Timer -= diff;
// BlastWave // BlastWave
if (BlastWave_Timer <= diff) if (BlastWave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_BLASTWAVE); DoCast(m_creature->getVictim(), SPELL_BLASTWAVE);
BlastWave_Timer = urand(8000,16000); BlastWave_Timer = urand(8000,16000);
} else BlastWave_Timer -= diff; } else BlastWave_Timer -= diff;
//MortalStrike_Timer //MortalStrike_Timer
if (MortalStrike_Timer <= diff) if (MortalStrike_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_MORTALSTRIKE); DoCast(m_creature->getVictim(), SPELL_MORTALSTRIKE);
MortalStrike_Timer = urand(25000,35000); MortalStrike_Timer = urand(25000,35000);
} else MortalStrike_Timer -= diff; } else MortalStrike_Timer -= diff;
if (KnockBack_Timer <= diff) if (KnockBack_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_KNOCKBACK); DoCast(m_creature->getVictim(), SPELL_KNOCKBACK);
//Drop 50% aggro //Drop 50% aggro
if (DoGetThreat(m_creature->getVictim())) if (DoGetThreat(m_creature->getVictim()))
DoModifyThreatPercent(m_creature->getVictim(),-50); DoModifyThreatPercent(m_creature->getVictim(),-50);
@@ -205,7 +205,7 @@ struct TRINITY_DLL_DECL boss_chromaggusAI : public ScriptedAI
uint32 spell = RAND(SPELL_FIRE_VULNERABILITY, SPELL_FROST_VULNERABILITY, uint32 spell = RAND(SPELL_FIRE_VULNERABILITY, SPELL_FROST_VULNERABILITY,
SPELL_SHADOW_VULNERABILITY, SPELL_NATURE_VULNERABILITY, SPELL_ARCANE_VULNERABILITY); SPELL_SHADOW_VULNERABILITY, SPELL_NATURE_VULNERABILITY, SPELL_ARCANE_VULNERABILITY);
DoCast(m_creature,spell); DoCast(m_creature, spell);
CurrentVurln_Spell = spell; CurrentVurln_Spell = spell;
DoScriptText(EMOTE_SHIMMER, m_creature); DoScriptText(EMOTE_SHIMMER, m_creature);
@@ -215,14 +215,14 @@ struct TRINITY_DLL_DECL boss_chromaggusAI : public ScriptedAI
//Breath1_Timer //Breath1_Timer
if (Breath1_Timer <= diff) if (Breath1_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),Breath1_Spell); DoCast(m_creature->getVictim(), Breath1_Spell);
Breath1_Timer = 60000; Breath1_Timer = 60000;
} else Breath1_Timer -= diff; } else Breath1_Timer -= diff;
//Breath2_Timer //Breath2_Timer
if (Breath2_Timer <= diff) if (Breath2_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),Breath2_Spell); DoCast(m_creature->getVictim(), Breath2_Spell);
Breath2_Timer = 60000; Breath2_Timer = 60000;
} else Breath2_Timer -= diff; } else Breath2_Timer -= diff;
@@ -249,7 +249,7 @@ struct TRINITY_DLL_DECL boss_chromaggusAI : public ScriptedAI
&& pUnit->HasAura(SPELL_BROODAF_GREEN)) && pUnit->HasAura(SPELL_BROODAF_GREEN))
{ {
//pTarget->RemoveAllAuras(); //pTarget->RemoveAllAuras();
//DoCast(pTarget,SPELL_CHROMATIC_MUT_1); //DoCast(pTarget, SPELL_CHROMATIC_MUT_1);
//Chromatic mutation is causing issues //Chromatic mutation is causing issues
//Assuming it is caused by a lack of core support for Charm //Assuming it is caused by a lack of core support for Charm
@@ -269,7 +269,7 @@ struct TRINITY_DLL_DECL boss_chromaggusAI : public ScriptedAI
//Frenzy_Timer //Frenzy_Timer
if (Frenzy_Timer <= diff) if (Frenzy_Timer <= diff)
{ {
DoCast(m_creature,SPELL_FRENZY); DoCast(m_creature, SPELL_FRENZY);
DoScriptText(EMOTE_FRENZY, m_creature); DoScriptText(EMOTE_FRENZY, m_creature);
Frenzy_Timer = urand(10000,15000); Frenzy_Timer = urand(10000,15000);
} else Frenzy_Timer -= diff; } else Frenzy_Timer -= diff;
@@ -277,7 +277,7 @@ struct TRINITY_DLL_DECL boss_chromaggusAI : public ScriptedAI
//Enrage if not already enraged and below 20% //Enrage if not already enraged and below 20%
if (!Enraged && (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 20) if (!Enraged && (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 20)
{ {
DoCast(m_creature,SPELL_ENRAGE); DoCast(m_creature, SPELL_ENRAGE);
Enraged = true; Enraged = true;
} }
@@ -58,21 +58,21 @@ struct TRINITY_DLL_DECL boss_ebonrocAI : public ScriptedAI
//Shadowflame Timer //Shadowflame Timer
if (ShadowFlame_Timer <= diff) if (ShadowFlame_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SHADOWFLAME); DoCast(m_creature->getVictim(), SPELL_SHADOWFLAME);
ShadowFlame_Timer = urand(12000,15000); ShadowFlame_Timer = urand(12000,15000);
} else ShadowFlame_Timer -= diff; } else ShadowFlame_Timer -= diff;
//Wing Buffet Timer //Wing Buffet Timer
if (WingBuffet_Timer <= diff) if (WingBuffet_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_WINGBUFFET); DoCast(m_creature->getVictim(), SPELL_WINGBUFFET);
WingBuffet_Timer = 25000; WingBuffet_Timer = 25000;
} else WingBuffet_Timer -= diff; } else WingBuffet_Timer -= diff;
//Shadow of Ebonroc Timer //Shadow of Ebonroc Timer
if (ShadowOfEbonroc_Timer <= diff) if (ShadowOfEbonroc_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SHADOWOFEBONROC); DoCast(m_creature->getVictim(), SPELL_SHADOWOFEBONROC);
ShadowOfEbonroc_Timer = urand(25000,350000); ShadowOfEbonroc_Timer = urand(25000,350000);
} else ShadowOfEbonroc_Timer -= diff; } else ShadowOfEbonroc_Timer -= diff;
@@ -55,14 +55,14 @@ struct TRINITY_DLL_DECL boss_firemawAI : public ScriptedAI
//ShadowFlame_Timer //ShadowFlame_Timer
if (ShadowFlame_Timer <= diff) if (ShadowFlame_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SHADOWFLAME); DoCast(m_creature->getVictim(), SPELL_SHADOWFLAME);
ShadowFlame_Timer = urand(15000,18000); ShadowFlame_Timer = urand(15000,18000);
} else ShadowFlame_Timer -= diff; } else ShadowFlame_Timer -= diff;
//WingBuffet_Timer //WingBuffet_Timer
if (WingBuffet_Timer <= diff) if (WingBuffet_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_WINGBUFFET); DoCast(m_creature->getVictim(), SPELL_WINGBUFFET);
if (DoGetThreat(m_creature->getVictim())) if (DoGetThreat(m_creature->getVictim()))
DoModifyThreatPercent(m_creature->getVictim(),-75); DoModifyThreatPercent(m_creature->getVictim(),-75);
@@ -72,7 +72,7 @@ struct TRINITY_DLL_DECL boss_firemawAI : public ScriptedAI
//FlameBuffet_Timer //FlameBuffet_Timer
if (FlameBuffet_Timer <= diff) if (FlameBuffet_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FLAMEBUFFET); DoCast(m_creature->getVictim(), SPELL_FLAMEBUFFET);
FlameBuffet_Timer = 5000; FlameBuffet_Timer = 5000;
} else FlameBuffet_Timer -= diff; } else FlameBuffet_Timer -= diff;
@@ -57,14 +57,14 @@ struct TRINITY_DLL_DECL boss_flamegorAI : public ScriptedAI
//ShadowFlame_Timer //ShadowFlame_Timer
if (ShadowFlame_Timer <= diff) if (ShadowFlame_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SHADOWFLAME); DoCast(m_creature->getVictim(), SPELL_SHADOWFLAME);
ShadowFlame_Timer = 15000 + rand()%7000; ShadowFlame_Timer = 15000 + rand()%7000;
} else ShadowFlame_Timer -= diff; } else ShadowFlame_Timer -= diff;
//WingBuffet_Timer //WingBuffet_Timer
if (WingBuffet_Timer <= diff) if (WingBuffet_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_WINGBUFFET); DoCast(m_creature->getVictim(), SPELL_WINGBUFFET);
if (DoGetThreat(m_creature->getVictim())) if (DoGetThreat(m_creature->getVictim()))
DoModifyThreatPercent(m_creature->getVictim(),-75); DoModifyThreatPercent(m_creature->getVictim(),-75);
@@ -75,7 +75,7 @@ struct TRINITY_DLL_DECL boss_flamegorAI : public ScriptedAI
if (Frenzy_Timer <= diff) if (Frenzy_Timer <= diff)
{ {
DoScriptText(EMOTE_FRENZY, m_creature); DoScriptText(EMOTE_FRENZY, m_creature);
DoCast(m_creature,SPELL_FRENZY); DoCast(m_creature, SPELL_FRENZY);
Frenzy_Timer = urand(8000, 10000); Frenzy_Timer = urand(8000, 10000);
} else Frenzy_Timer -= diff; } else Frenzy_Timer -= diff;
@@ -102,7 +102,7 @@ struct TRINITY_DLL_DECL boss_nefarianAI : public ScriptedAI
{ {
DoScriptText(RAND(SAY_XHEALTH,SAY_AGGRO,SAY_SHADOWFLAME), m_creature); DoScriptText(RAND(SAY_XHEALTH,SAY_AGGRO,SAY_SHADOWFLAME), m_creature);
DoCast(who,SPELL_SHADOWFLAME_INITIAL); DoCast(who, SPELL_SHADOWFLAME_INITIAL);
DoZoneInCombat(); DoZoneInCombat();
} }
@@ -121,28 +121,28 @@ struct TRINITY_DLL_DECL boss_nefarianAI : public ScriptedAI
//ShadowFlame_Timer //ShadowFlame_Timer
if (ShadowFlame_Timer <= diff) if (ShadowFlame_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SHADOWFLAME); DoCast(m_creature->getVictim(), SPELL_SHADOWFLAME);
ShadowFlame_Timer = 12000; ShadowFlame_Timer = 12000;
} else ShadowFlame_Timer -= diff; } else ShadowFlame_Timer -= diff;
//BellowingRoar_Timer //BellowingRoar_Timer
if (BellowingRoar_Timer <= diff) if (BellowingRoar_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_BELLOWINGROAR); DoCast(m_creature->getVictim(), SPELL_BELLOWINGROAR);
BellowingRoar_Timer = 30000; BellowingRoar_Timer = 30000;
} else BellowingRoar_Timer -= diff; } else BellowingRoar_Timer -= diff;
//VeilOfShadow_Timer //VeilOfShadow_Timer
if (VeilOfShadow_Timer <= diff) if (VeilOfShadow_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_VEILOFSHADOW); DoCast(m_creature->getVictim(), SPELL_VEILOFSHADOW);
VeilOfShadow_Timer = 15000; VeilOfShadow_Timer = 15000;
} else VeilOfShadow_Timer -= diff; } else VeilOfShadow_Timer -= diff;
//Cleave_Timer //Cleave_Timer
if (Cleave_Timer <= diff) if (Cleave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CLEAVE); DoCast(m_creature->getVictim(), SPELL_CLEAVE);
Cleave_Timer = 7000; Cleave_Timer = 7000;
} else Cleave_Timer -= diff; } else Cleave_Timer -= diff;
@@ -150,7 +150,7 @@ struct TRINITY_DLL_DECL boss_nefarianAI : public ScriptedAI
if (TailLash_Timer <= diff) if (TailLash_Timer <= diff)
{ {
//Cast NYI since we need a better check for behind target //Cast NYI since we need a better check for behind target
//DoCast(m_creature->getVictim(),SPELL_TAILLASH); //DoCast(m_creature->getVictim(), SPELL_TAILLASH);
TailLash_Timer = 10000; TailLash_Timer = 10000;
} else TailLash_Timer -= diff; } else TailLash_Timer -= diff;
@@ -166,39 +166,39 @@ struct TRINITY_DLL_DECL boss_nefarianAI : public ScriptedAI
{ {
case 0: case 0:
DoScriptText(SAY_MAGE, m_creature); DoScriptText(SAY_MAGE, m_creature);
DoCast(m_creature,SPELL_MAGE); DoCast(m_creature, SPELL_MAGE);
break; break;
case 1: case 1:
DoScriptText(SAY_WARRIOR, m_creature); DoScriptText(SAY_WARRIOR, m_creature);
DoCast(m_creature,SPELL_WARRIOR); DoCast(m_creature, SPELL_WARRIOR);
break; break;
case 2: case 2:
DoScriptText(SAY_DRUID, m_creature); DoScriptText(SAY_DRUID, m_creature);
DoCast(m_creature,SPELL_DRUID); DoCast(m_creature, SPELL_DRUID);
break; break;
case 3: case 3:
DoScriptText(SAY_PRIEST, m_creature); DoScriptText(SAY_PRIEST, m_creature);
DoCast(m_creature,SPELL_PRIEST); DoCast(m_creature, SPELL_PRIEST);
break; break;
case 4: case 4:
DoScriptText(SAY_PALADIN, m_creature); DoScriptText(SAY_PALADIN, m_creature);
DoCast(m_creature,SPELL_PALADIN); DoCast(m_creature, SPELL_PALADIN);
break; break;
case 5: case 5:
DoScriptText(SAY_SHAMAN, m_creature); DoScriptText(SAY_SHAMAN, m_creature);
DoCast(m_creature,SPELL_SHAMAN); DoCast(m_creature, SPELL_SHAMAN);
break; break;
case 6: case 6:
DoScriptText(SAY_WARLOCK, m_creature); DoScriptText(SAY_WARLOCK, m_creature);
DoCast(m_creature,SPELL_WARLOCK); DoCast(m_creature, SPELL_WARLOCK);
break; break;
case 7: case 7:
DoScriptText(SAY_HUNTER, m_creature); DoScriptText(SAY_HUNTER, m_creature);
DoCast(m_creature,SPELL_HUNTER); DoCast(m_creature, SPELL_HUNTER);
break; break;
case 8: case 8:
DoScriptText(SAY_ROGUE, m_creature); DoScriptText(SAY_ROGUE, m_creature);
DoCast(m_creature,SPELL_ROGUE); DoCast(m_creature, SPELL_ROGUE);
break; break;
} }
@@ -70,28 +70,28 @@ struct TRINITY_DLL_DECL boss_razorgoreAI : public ScriptedAI
//Cleave_Timer //Cleave_Timer
if (Cleave_Timer <= diff) if (Cleave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CLEAVE); DoCast(m_creature->getVictim(), SPELL_CLEAVE);
Cleave_Timer = urand(7000,10000); Cleave_Timer = urand(7000,10000);
} else Cleave_Timer -= diff; } else Cleave_Timer -= diff;
//WarStomp_Timer //WarStomp_Timer
if (WarStomp_Timer <= diff) if (WarStomp_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_WARSTOMP); DoCast(m_creature->getVictim(), SPELL_WARSTOMP);
WarStomp_Timer = urand(15000,25000); WarStomp_Timer = urand(15000,25000);
} else WarStomp_Timer -= diff; } else WarStomp_Timer -= diff;
//FireballVolley_Timer //FireballVolley_Timer
if (FireballVolley_Timer <= diff) if (FireballVolley_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FIREBALLVOLLEY); DoCast(m_creature->getVictim(), SPELL_FIREBALLVOLLEY);
FireballVolley_Timer = urand(12000,15000); FireballVolley_Timer = urand(12000,15000);
} else FireballVolley_Timer -= diff; } else FireballVolley_Timer -= diff;
//Conflagration_Timer //Conflagration_Timer
if (Conflagration_Timer <= diff) if (Conflagration_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CONFLAGRATION); DoCast(m_creature->getVictim(), SPELL_CONFLAGRATION);
//We will remove this threat reduction and add an aura check. //We will remove this threat reduction and add an aura check.
//if (DoGetThreat(m_creature->getVictim())) //if (DoGetThreat(m_creature->getVictim()))
@@ -99,7 +99,7 @@ struct TRINITY_DLL_DECL boss_vaelAI : public ScriptedAI
void EnterCombat(Unit *who) void EnterCombat(Unit *who)
{ {
DoCast(m_creature,SPELL_ESSENCEOFTHERED); DoCast(m_creature, SPELL_ESSENCEOFTHERED);
DoZoneInCombat(); DoZoneInCombat();
m_creature->SetHealth(int(m_creature->GetMaxHealth()*.3)); m_creature->SetHealth(int(m_creature->GetMaxHealth()*.3));
} }
@@ -130,7 +130,7 @@ struct TRINITY_DLL_DECL boss_vaelAI : public ScriptedAI
if (PlayerGUID && Unit::GetUnit((*m_creature),PlayerGUID)) if (PlayerGUID && Unit::GetUnit((*m_creature),PlayerGUID))
{ {
AttackStart(Unit::GetUnit((*m_creature),PlayerGUID)); AttackStart(Unit::GetUnit((*m_creature),PlayerGUID));
DoCast(m_creature,SPELL_ESSENCEOFTHERED); DoCast(m_creature, SPELL_ESSENCEOFTHERED);
} }
SpeechTimer = 0; SpeechTimer = 0;
DoingSpeech = false; DoingSpeech = false;
@@ -153,14 +153,14 @@ struct TRINITY_DLL_DECL boss_vaelAI : public ScriptedAI
//Cleave_Timer //Cleave_Timer
if (Cleave_Timer <= diff) if (Cleave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CLEAVE); DoCast(m_creature->getVictim(), SPELL_CLEAVE);
Cleave_Timer = 15000; Cleave_Timer = 15000;
} else Cleave_Timer -= diff; } else Cleave_Timer -= diff;
//FlameBreath_Timer //FlameBreath_Timer
if (FlameBreath_Timer <= diff) if (FlameBreath_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FLAMEBREATH); DoCast(m_creature->getVictim(), SPELL_FLAMEBREATH);
FlameBreath_Timer = urand(4000,8000); FlameBreath_Timer = urand(4000,8000);
} else FlameBreath_Timer -= diff; } else FlameBreath_Timer -= diff;
@@ -196,7 +196,7 @@ struct TRINITY_DLL_DECL boss_vaelAI : public ScriptedAI
//FireNova_Timer //FireNova_Timer
if (FireNova_Timer <= diff) if (FireNova_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FIRENOVA); DoCast(m_creature->getVictim(), SPELL_FIRENOVA);
FireNova_Timer = 5000; FireNova_Timer = 5000;
} else FireNova_Timer -= diff; } else FireNova_Timer -= diff;
@@ -206,7 +206,7 @@ struct TRINITY_DLL_DECL boss_vaelAI : public ScriptedAI
//Only cast if we are behind //Only cast if we are behind
/*if (!m_creature->HasInArc(M_PI, m_creature->getVictim())) /*if (!m_creature->HasInArc(M_PI, m_creature->getVictim()))
{ {
DoCast(m_creature->getVictim(),SPELL_TAILSWIPE); DoCast(m_creature->getVictim(), SPELL_TAILSWIPE);
}*/ }*/
TailSwipe_Timer = 20000; TailSwipe_Timer = 20000;
@@ -294,10 +294,10 @@ struct TRINITY_DLL_DECL boss_victor_nefariusAI : public ScriptedAI
m_creature->InterruptNonMeleeSpells(false); m_creature->InterruptNonMeleeSpells(false);
//Root self //Root self
DoCast(m_creature,33356); DoCast(m_creature, 33356);
//Make super invis //Make super invis
DoCast(m_creature,8149); DoCast(m_creature, 8149);
//Teleport self to a hiding spot (this causes errors in the Trinity log but no real issues) //Teleport self to a hiding spot (this causes errors in the Trinity log but no real issues)
DoTeleportTo(HIDE_X,HIDE_Y,HIDE_Z); DoTeleportTo(HIDE_X,HIDE_Y,HIDE_Z);
@@ -61,7 +61,7 @@ struct TRINITY_DLL_DECL boss_kruulAI : public ScriptedAI
void KilledUnit() void KilledUnit()
{ {
// When a player, pet or totem gets killed, Lord Kazzak casts this spell to instantly regenerate 70,000 health. // When a player, pet or totem gets killed, Lord Kazzak casts this spell to instantly regenerate 70,000 health.
DoCast(m_creature,SPELL_CAPTURESOUL); DoCast(m_creature, SPELL_CAPTURESOUL);
} }
void SummonHounds(Unit* pVictim) void SummonHounds(Unit* pVictim)
@@ -80,7 +80,7 @@ struct TRINITY_DLL_DECL boss_kruulAI : public ScriptedAI
if (ShadowVolley_Timer <= diff) if (ShadowVolley_Timer <= diff)
{ {
if (urand(0,99) < 45) if (urand(0,99) < 45)
DoCast(m_creature->getVictim(),SPELL_SHADOWVOLLEY); DoCast(m_creature->getVictim(), SPELL_SHADOWVOLLEY);
ShadowVolley_Timer = 5000; ShadowVolley_Timer = 5000;
} else ShadowVolley_Timer -= diff; } else ShadowVolley_Timer -= diff;
@@ -89,7 +89,7 @@ struct TRINITY_DLL_DECL boss_kruulAI : public ScriptedAI
if (Cleave_Timer <= diff) if (Cleave_Timer <= diff)
{ {
if (urand(0,1)) if (urand(0,1))
DoCast(m_creature->getVictim(),SPELL_CLEAVE); DoCast(m_creature->getVictim(), SPELL_CLEAVE);
Cleave_Timer = 10000; Cleave_Timer = 10000;
} else Cleave_Timer -= diff; } else Cleave_Timer -= diff;
@@ -98,7 +98,7 @@ struct TRINITY_DLL_DECL boss_kruulAI : public ScriptedAI
if (ThunderClap_Timer <= diff) if (ThunderClap_Timer <= diff)
{ {
if (urand(0,9) < 2) if (urand(0,9) < 2)
DoCast(m_creature->getVictim(),SPELL_THUNDERCLAP); DoCast(m_creature->getVictim(), SPELL_THUNDERCLAP);
ThunderClap_Timer = 12000; ThunderClap_Timer = 12000;
} else ThunderClap_Timer -= diff; } else ThunderClap_Timer -= diff;
@@ -106,7 +106,7 @@ struct TRINITY_DLL_DECL boss_kruulAI : public ScriptedAI
//TwistedReflection_Timer //TwistedReflection_Timer
if (TwistedReflection_Timer <= diff) if (TwistedReflection_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_TWISTEDREFLECTION); DoCast(m_creature->getVictim(), SPELL_TWISTEDREFLECTION);
TwistedReflection_Timer = 30000; TwistedReflection_Timer = 30000;
} else TwistedReflection_Timer -= diff; } else TwistedReflection_Timer -= diff;
@@ -114,7 +114,7 @@ struct TRINITY_DLL_DECL boss_kruulAI : public ScriptedAI
if (VoidBolt_Timer <= diff) if (VoidBolt_Timer <= diff)
{ {
if (urand(0,9) < 4) if (urand(0,9) < 4)
DoCast(m_creature->getVictim(),SPELL_VOIDBOLT); DoCast(m_creature->getVictim(), SPELL_VOIDBOLT);
VoidBolt_Timer = 18000; VoidBolt_Timer = 18000;
} else VoidBolt_Timer -= diff; } else VoidBolt_Timer -= diff;
@@ -122,7 +122,7 @@ struct TRINITY_DLL_DECL boss_kruulAI : public ScriptedAI
//Rage_Timer //Rage_Timer
if (Rage_Timer <= diff) if (Rage_Timer <= diff)
{ {
DoCast(m_creature,SPELL_RAGE); DoCast(m_creature, SPELL_RAGE);
Rage_Timer = 70000; Rage_Timer = 70000;
} else Rage_Timer -= diff; } else Rage_Timer -= diff;
@@ -56,7 +56,7 @@ struct TRINITY_DLL_DECL npc_ragged_johnAI : public ScriptedAI
{ {
if (who->GetTypeId() == TYPEID_PLAYER && m_creature->IsWithinDistInMap(who, 15) && who->isInAccessiblePlaceFor(m_creature)) if (who->GetTypeId() == TYPEID_PLAYER && m_creature->IsWithinDistInMap(who, 15) && who->isInAccessiblePlaceFor(m_creature))
{ {
DoCast(who,16472); DoCast(who, 16472);
CAST_PLR(who)->AreaExploredOrEventHappens(4866); CAST_PLR(who)->AreaExploredOrEventHappens(4866);
} }
} }
@@ -76,7 +76,7 @@ struct TRINITY_DLL_DECL npc_narm_faulkAI : public ScriptedAI
{ {
if (Spellkind->Id == 8593 && !spellHit) if (Spellkind->Id == 8593 && !spellHit)
{ {
DoCast(m_creature,32343); DoCast(m_creature, 32343);
m_creature->SetStandState(UNIT_STAND_STATE_STAND); m_creature->SetStandState(UNIT_STAND_STATE_STAND);
m_creature->SetUInt32Value(UNIT_DYNAMIC_FLAGS, 0); m_creature->SetUInt32Value(UNIT_DYNAMIC_FLAGS, 0);
//m_creature->RemoveAllAuras(); //m_creature->RemoveAllAuras();
@@ -94,12 +94,12 @@ struct TRINITY_DLL_DECL boss_twilight_corrupterAI : public ScriptedAI
return; return;
if (SoulCorruption_Timer <= diff) if (SoulCorruption_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SOUL_CORRUPTION); DoCast(m_creature->getVictim(), SPELL_SOUL_CORRUPTION);
SoulCorruption_Timer = rand()%4000+15000; //gotta confirm Timers SoulCorruption_Timer = rand()%4000+15000; //gotta confirm Timers
} else SoulCorruption_Timer-=diff; } else SoulCorruption_Timer-=diff;
if (CreatureOfNightmare_Timer <= diff) if (CreatureOfNightmare_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SOUL_CORRUPTION); DoCast(m_creature->getVictim(), SPELL_SOUL_CORRUPTION);
CreatureOfNightmare_Timer = 45000; //gotta confirm Timers CreatureOfNightmare_Timer = 45000; //gotta confirm Timers
} else CreatureOfNightmare_Timer-=diff; } else CreatureOfNightmare_Timer-=diff;
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
@@ -89,7 +89,7 @@ struct TRINITY_DLL_DECL npc_darrowshire_spiritAI : public ScriptedAI
void Reset() void Reset()
{ {
DoCast(m_creature,SPELL_SPIRIT_SPAWNIN); DoCast(m_creature, SPELL_SPIRIT_SPAWNIN);
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
} }
@@ -75,7 +75,7 @@ struct TRINITY_DLL_DECL npc_henze_faulkAI : public ScriptedAI
{ {
if (Spellkind->Id == 8593 && !spellHit) if (Spellkind->Id == 8593 && !spellHit)
{ {
DoCast(m_creature,32343); DoCast(m_creature, 32343);
m_creature->SetStandState(UNIT_STAND_STATE_STAND); m_creature->SetStandState(UNIT_STAND_STATE_STAND);
m_creature->SetUInt32Value(UNIT_DYNAMIC_FLAGS, 0); m_creature->SetUInt32Value(UNIT_DYNAMIC_FLAGS, 0);
//m_creature->RemoveAllAuras(); //m_creature->RemoveAllAuras();
@@ -268,7 +268,7 @@ struct TRINITY_DLL_DECL npc_secondTrialAI : public ScriptedAI
if (spellJudLight) if (spellJudLight)
if (timerJudLight <= diff) if (timerJudLight <= diff)
{ {
DoCast(m_creature, SPELL_JUDGEMENT_OF_LIGHT); DoCast(m_creature, SPELL_JUDGEMENT_OF_LIGHT);
timerJudLight = TIMER_JUDGEMENT_OF_LIGHT + rand()%TIMER_JUDGEMENT_OF_LIGHT; timerJudLight = TIMER_JUDGEMENT_OF_LIGHT + rand()%TIMER_JUDGEMENT_OF_LIGHT;
} }
else else
@@ -277,7 +277,7 @@ struct TRINITY_DLL_DECL npc_secondTrialAI : public ScriptedAI
if (spellCommand) if (spellCommand)
if (timerCommand <= diff) if (timerCommand <= diff)
{ {
DoCast(m_creature, TIMER_SEAL_OF_COMMAND); DoCast(m_creature, TIMER_SEAL_OF_COMMAND);
timerCommand = TIMER_SEAL_OF_COMMAND + rand()%TIMER_SEAL_OF_COMMAND; timerCommand = TIMER_SEAL_OF_COMMAND + rand()%TIMER_SEAL_OF_COMMAND;
} }
else else
@@ -83,7 +83,7 @@ struct TRINITY_DLL_DECL boss_maiden_of_virtueAI : public ScriptedAI
if (Enrage_Timer < diff && !Enraged) if (Enrage_Timer < diff && !Enraged)
{ {
DoCast(m_creature, SPELL_BERSERK,true); DoCast(m_creature, SPELL_BERSERK, true);
Enraged = true; Enraged = true;
} else Enrage_Timer -= diff; } else Enrage_Timer -= diff;
@@ -95,7 +95,7 @@ struct TRINITY_DLL_DECL boss_maiden_of_virtueAI : public ScriptedAI
if (Repentance_Timer <= diff) if (Repentance_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_REPENTANCE); DoCast(m_creature->getVictim(), SPELL_REPENTANCE);
DoScriptText(RAND(SAY_REPENTANCE1,SAY_REPENTANCE2), m_creature); DoScriptText(RAND(SAY_REPENTANCE1,SAY_REPENTANCE2), m_creature);
Repentance_Timer = urand(25000,35000); //A little randomness on that spell Repentance_Timer = urand(25000,35000); //A little randomness on that spell
@@ -104,7 +104,7 @@ struct TRINITY_DLL_DECL boss_maiden_of_virtueAI : public ScriptedAI
if (Holyfire_Timer <= diff) if (Holyfire_Timer <= diff)
{ {
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_HOLYFIRE); DoCast(pTarget, SPELL_HOLYFIRE);
Holyfire_Timer = urand(8000,23000); //Anywhere from 8 to 23 seconds, good luck having several of those in a row! Holyfire_Timer = urand(8000,23000); //Anywhere from 8 to 23 seconds, good luck having several of those in a row!
} else Holyfire_Timer -= diff; } else Holyfire_Timer -= diff;
@@ -112,7 +112,7 @@ struct TRINITY_DLL_DECL boss_maiden_of_virtueAI : public ScriptedAI
if (Holywrath_Timer <= diff) if (Holywrath_Timer <= diff)
{ {
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_HOLYWRATH); DoCast(pTarget, SPELL_HOLYWRATH);
Holywrath_Timer = urand(20000,25000); //20-30 secs sounds nice Holywrath_Timer = urand(20000,25000); //20-30 secs sounds nice
} else Holywrath_Timer -= diff; } else Holywrath_Timer -= diff;
@@ -381,7 +381,7 @@ struct TRINITY_DLL_DECL boss_baroness_dorothea_millstipeAI : public boss_moroes_
MindFlay_Timer = 1000; MindFlay_Timer = 1000;
ShadowWordPain_Timer = 6000; ShadowWordPain_Timer = 6000;
DoCast(m_creature,SPELL_SHADOWFORM, true); DoCast(m_creature, SPELL_SHADOWFORM, true);
boss_moroes_guestAI::Reset(); boss_moroes_guestAI::Reset();
} }
@@ -395,7 +395,7 @@ struct TRINITY_DLL_DECL boss_baroness_dorothea_millstipeAI : public boss_moroes_
if (MindFlay_Timer <= diff) if (MindFlay_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_MINDFLY); DoCast(m_creature->getVictim(), SPELL_MINDFLY);
MindFlay_Timer = 12000; // 3 sec channeled MindFlay_Timer = 12000; // 3 sec channeled
} else MindFlay_Timer -= diff; } else MindFlay_Timer -= diff;
@@ -403,7 +403,7 @@ struct TRINITY_DLL_DECL boss_baroness_dorothea_millstipeAI : public boss_moroes_
{ {
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
if (pTarget->getPowerType() == POWER_MANA) if (pTarget->getPowerType() == POWER_MANA)
DoCast(pTarget,SPELL_MANABURN); DoCast(pTarget, SPELL_MANABURN);
ManaBurn_Timer = 5000; // 3 sec cast ManaBurn_Timer = 5000; // 3 sec cast
} else ManaBurn_Timer -= diff; } else ManaBurn_Timer -= diff;
@@ -411,7 +411,7 @@ struct TRINITY_DLL_DECL boss_baroness_dorothea_millstipeAI : public boss_moroes_
{ {
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
{ {
DoCast(pTarget,SPELL_SWPAIN); DoCast(pTarget, SPELL_SWPAIN);
ShadowWordPain_Timer = 7000; ShadowWordPain_Timer = 7000;
} }
} else ShadowWordPain_Timer -= diff; } else ShadowWordPain_Timer -= diff;
@@ -449,20 +449,20 @@ struct TRINITY_DLL_DECL boss_baron_rafe_dreugerAI : public boss_moroes_guestAI
if (SealOfCommand_Timer <= diff) if (SealOfCommand_Timer <= diff)
{ {
DoCast(m_creature,SPELL_SEALOFCOMMAND); DoCast(m_creature, SPELL_SEALOFCOMMAND);
SealOfCommand_Timer = 32000; SealOfCommand_Timer = 32000;
JudgementOfCommand_Timer = 29000; JudgementOfCommand_Timer = 29000;
} else SealOfCommand_Timer -= diff; } else SealOfCommand_Timer -= diff;
if (JudgementOfCommand_Timer <= diff) if (JudgementOfCommand_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_JUDGEMENTOFCOMMAND); DoCast(m_creature->getVictim(), SPELL_JUDGEMENTOFCOMMAND);
JudgementOfCommand_Timer = SealOfCommand_Timer + 29000; JudgementOfCommand_Timer = SealOfCommand_Timer + 29000;
} else JudgementOfCommand_Timer -= diff; } else JudgementOfCommand_Timer -= diff;
if (HammerOfJustice_Timer <= diff) if (HammerOfJustice_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_HAMMEROFJUSTICE); DoCast(m_creature->getVictim(), SPELL_HAMMEROFJUSTICE);
HammerOfJustice_Timer = 12000; HammerOfJustice_Timer = 12000;
} else HammerOfJustice_Timer -= diff; } else HammerOfJustice_Timer -= diff;
} }
@@ -504,7 +504,7 @@ struct TRINITY_DLL_DECL boss_lady_catriona_von_indiAI : public boss_moroes_guest
if (PowerWordShield_Timer <= diff) if (PowerWordShield_Timer <= diff)
{ {
DoCast(m_creature,SPELL_PWSHIELD); DoCast(m_creature, SPELL_PWSHIELD);
PowerWordShield_Timer = 15000; PowerWordShield_Timer = 15000;
} else PowerWordShield_Timer -= diff; } else PowerWordShield_Timer -= diff;
@@ -518,7 +518,7 @@ struct TRINITY_DLL_DECL boss_lady_catriona_von_indiAI : public boss_moroes_guest
if (HolyFire_Timer <= diff) if (HolyFire_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_HOLYFIRE); DoCast(m_creature->getVictim(), SPELL_HOLYFIRE);
HolyFire_Timer = 22000; HolyFire_Timer = 22000;
} else HolyFire_Timer -= diff; } else HolyFire_Timer -= diff;
@@ -568,7 +568,7 @@ struct TRINITY_DLL_DECL boss_lady_keira_berrybuckAI : public boss_moroes_guestAI
if (DivineShield_Timer <= diff) if (DivineShield_Timer <= diff)
{ {
DoCast(m_creature,SPELL_DIVINESHIELD); DoCast(m_creature, SPELL_DIVINESHIELD);
DivineShield_Timer = 31000; DivineShield_Timer = 31000;
} else DivineShield_Timer -= diff; } else DivineShield_Timer -= diff;
@@ -631,7 +631,7 @@ struct TRINITY_DLL_DECL boss_lord_robin_darisAI : public boss_moroes_guestAI
if (Hamstring_Timer <= diff) if (Hamstring_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_HAMSTRING); DoCast(m_creature->getVictim(), SPELL_HAMSTRING);
Hamstring_Timer = 12000; Hamstring_Timer = 12000;
} else Hamstring_Timer -= diff; } else Hamstring_Timer -= diff;
@@ -643,7 +643,7 @@ struct TRINITY_DLL_DECL boss_lord_robin_darisAI : public boss_moroes_guestAI
if (WhirlWind_Timer <= diff) if (WhirlWind_Timer <= diff)
{ {
DoCast(m_creature,SPELL_WHIRLWIND); DoCast(m_creature, SPELL_WHIRLWIND);
WhirlWind_Timer = 21000; WhirlWind_Timer = 21000;
} else WhirlWind_Timer -= diff; } else WhirlWind_Timer -= diff;
} }
@@ -683,25 +683,25 @@ struct TRINITY_DLL_DECL boss_lord_crispin_ferenceAI : public boss_moroes_guestAI
if (Disarm_Timer <= diff) if (Disarm_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_DISARM); DoCast(m_creature->getVictim(), SPELL_DISARM);
Disarm_Timer = 12000; Disarm_Timer = 12000;
} else Disarm_Timer -= diff; } else Disarm_Timer -= diff;
if (HeroicStrike_Timer <= diff) if (HeroicStrike_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_HEROICSTRIKE); DoCast(m_creature->getVictim(), SPELL_HEROICSTRIKE);
HeroicStrike_Timer = 10000; HeroicStrike_Timer = 10000;
} else HeroicStrike_Timer -= diff; } else HeroicStrike_Timer -= diff;
if (ShieldBash_Timer <= diff) if (ShieldBash_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SHIELDBASH); DoCast(m_creature->getVictim(), SPELL_SHIELDBASH);
ShieldBash_Timer = 13000; ShieldBash_Timer = 13000;
} else ShieldBash_Timer -= diff; } else ShieldBash_Timer -= diff;
if (ShieldWall_Timer <= diff) if (ShieldWall_Timer <= diff)
{ {
DoCast(m_creature,SPELL_SHIELDWALL); DoCast(m_creature, SPELL_SHIELDWALL);
ShieldWall_Timer = 21000; ShieldWall_Timer = 21000;
} else ShieldWall_Timer -= diff; } else ShieldWall_Timer -= diff;
} }
@@ -228,8 +228,8 @@ struct TRINITY_DLL_DECL boss_netherspiteAI : public ScriptedAI
{ {
m_creature->RemoveAurasDueToSpell(SPELL_EMPOWERMENT); m_creature->RemoveAurasDueToSpell(SPELL_EMPOWERMENT);
m_creature->RemoveAurasDueToSpell(SPELL_NETHERBURN_AURA); m_creature->RemoveAurasDueToSpell(SPELL_NETHERBURN_AURA);
DoCast(m_creature,SPELL_BANISH_VISUAL,true); DoCast(m_creature, SPELL_BANISH_VISUAL, true);
DoCast(m_creature,SPELL_BANISH_ROOT,true); DoCast(m_creature, SPELL_BANISH_ROOT, true);
DestroyPortals(); DestroyPortals();
PhaseTimer = 30000; PhaseTimer = 30000;
PortalPhase = false; PortalPhase = false;
@@ -309,7 +309,7 @@ struct TRINITY_DLL_DECL boss_netherspiteAI : public ScriptedAI
if (NetherbreathTimer <= diff) if (NetherbreathTimer <= diff)
{ {
if(Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM,0,40,true)) if(Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM,0,40,true))
DoCast(pTarget,SPELL_NETHERBREATH); DoCast(pTarget, SPELL_NETHERBREATH);
NetherbreathTimer = urand(5000,7000); NetherbreathTimer = urand(5000,7000);
} else NetherbreathTimer -= diff; } else NetherbreathTimer -= diff;
@@ -297,20 +297,20 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
if (BellowingRoarTimer <= diff) if (BellowingRoarTimer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_BELLOWING_ROAR); DoCast(m_creature->getVictim(), SPELL_BELLOWING_ROAR);
BellowingRoarTimer = urand(30000,40000); BellowingRoarTimer = urand(30000,40000);
} else BellowingRoarTimer -= diff; } else BellowingRoarTimer -= diff;
if (SmolderingBreathTimer <= diff) if (SmolderingBreathTimer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SMOLDERING_BREATH); DoCast(m_creature->getVictim(), SPELL_SMOLDERING_BREATH);
SmolderingBreathTimer = 20000; SmolderingBreathTimer = 20000;
} else SmolderingBreathTimer -= diff; } else SmolderingBreathTimer -= diff;
if (CharredEarthTimer <= diff) if (CharredEarthTimer <= diff)
{ {
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_CHARRED_EARTH); DoCast(pTarget, SPELL_CHARRED_EARTH);
CharredEarthTimer = 20000; CharredEarthTimer = 20000;
} else CharredEarthTimer -= diff; } else CharredEarthTimer -= diff;
@@ -318,14 +318,14 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
{ {
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
if (!m_creature->HasInArc(M_PI, pTarget)) if (!m_creature->HasInArc(M_PI, pTarget))
DoCast(pTarget,SPELL_TAIL_SWEEP); DoCast(pTarget, SPELL_TAIL_SWEEP);
TailSweepTimer = 15000; TailSweepTimer = 15000;
} else TailSweepTimer -= diff; } else TailSweepTimer -= diff;
if (SearingCindersTimer <= diff) if (SearingCindersTimer <= diff)
{ {
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_SEARING_CINDERS); DoCast(pTarget, SPELL_SEARING_CINDERS);
SearingCindersTimer = 10000; SearingCindersTimer = 10000;
} else SearingCindersTimer -= diff; } else SearingCindersTimer -= diff;
@@ -360,7 +360,7 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
if (RainofBonesTimer < diff && !RainBones) // only once at the beginning of phase 2 if (RainofBonesTimer < diff && !RainBones) // only once at the beginning of phase 2
{ {
DoCast(m_creature->getVictim(),SPELL_RAIN_OF_BONES); DoCast(m_creature->getVictim(), SPELL_RAIN_OF_BONES);
RainBones = true; RainBones = true;
SmokingBlastTimer = 20000; SmokingBlastTimer = 20000;
} else RainofBonesTimer -= diff; } else RainofBonesTimer -= diff;
@@ -368,7 +368,7 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
if (DistractingAshTimer <= diff) if (DistractingAshTimer <= diff)
{ {
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_DISTRACTING_ASH); DoCast(pTarget, SPELL_DISTRACTING_ASH);
DistractingAshTimer = 2000; //timer wrong DistractingAshTimer = 2000; //timer wrong
} else DistractingAshTimer -= diff; } else DistractingAshTimer -= diff;
} }
@@ -377,7 +377,7 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
{ {
if (SmokingBlastTimer <= diff) if (SmokingBlastTimer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SMOKING_BLAST); DoCast(m_creature->getVictim(), SPELL_SMOKING_BLAST);
SmokingBlastTimer = 1500; //timer wrong SmokingBlastTimer = 1500; //timer wrong
} else SmokingBlastTimer -= diff; } else SmokingBlastTimer -= diff;
} }
@@ -385,7 +385,7 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
if (FireballBarrageTimer <= diff) if (FireballBarrageTimer <= diff)
{ {
if (Unit *pTarget = SelectUnit(SELECT_TARGET_FARTHEST, 0)) if (Unit *pTarget = SelectUnit(SELECT_TARGET_FARTHEST, 0))
DoCast(pTarget,SPELL_FIREBALL_BARRAGE); DoCast(pTarget, SPELL_FIREBALL_BARRAGE);
FireballBarrageTimer = 20000; FireballBarrageTimer = 20000;
} else FireballBarrageTimer -= diff; } else FireballBarrageTimer -= diff;
@@ -386,7 +386,7 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI
DoScriptText(SAY_AXE_TOSS1, m_creature); DoScriptText(SAY_AXE_TOSS1, m_creature);
//passive thrash aura //passive thrash aura
m_creature->CastSpell(m_creature, SPELL_THRASH_AURA, true); DoCast(m_creature, SPELL_THRASH_AURA, true);
//models //models
SetEquipmentSlots(false, EQUIP_ID_AXE, EQUIP_ID_AXE, EQUIP_NO_CHANGE); SetEquipmentSlots(false, EQUIP_ID_AXE, EQUIP_ID_AXE, EQUIP_NO_CHANGE);
@@ -201,7 +201,7 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
FlameWreathTarget[i] = (*itr)->GetGUID(); FlameWreathTarget[i] = (*itr)->GetGUID();
FWTargPosX[i] = (*itr)->GetPositionX(); FWTargPosX[i] = (*itr)->GetPositionX();
FWTargPosY[i] = (*itr)->GetPositionY(); FWTargPosY[i] = (*itr)->GetPositionY();
m_creature->CastSpell((*itr), SPELL_FLAME_WREATH, true); DoCast((*itr), SPELL_FLAME_WREATH, true);
++i; ++i;
} }
} }
@@ -255,9 +255,9 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
if (!DrinkInturrupted) if (!DrinkInturrupted)
{ {
m_creature->CastSpell(m_creature, SPELL_MASS_POLY, true); DoCast(m_creature, SPELL_MASS_POLY, true);
m_creature->CastSpell(m_creature, SPELL_CONJURE, false); DoCast(m_creature, SPELL_CONJURE, false);
m_creature->CastSpell(m_creature, SPELL_DRINK, false); DoCast(m_creature, SPELL_DRINK, false);
m_creature->SetStandState(UNIT_STAND_STATE_SIT); m_creature->SetStandState(UNIT_STAND_STATE_SIT);
DrinkInturruptTimer = 10000; DrinkInturruptTimer = 10000;
} }
@@ -270,7 +270,7 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
m_creature->RemoveAurasDueToSpell(SPELL_DRINK); m_creature->RemoveAurasDueToSpell(SPELL_DRINK);
m_creature->SetStandState(UNIT_STAND_STATE_STAND); m_creature->SetStandState(UNIT_STAND_STATE_STAND);
m_creature->SetPower(POWER_MANA, m_creature->GetMaxPower(POWER_MANA)-32000); m_creature->SetPower(POWER_MANA, m_creature->GetMaxPower(POWER_MANA)-32000);
m_creature->CastSpell(m_creature, SPELL_POTION, false); DoCast(m_creature, SPELL_POTION, false);
} }
//Drink Inturrupt Timer //Drink Inturrupt Timer
@@ -280,8 +280,8 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
else else
{ {
m_creature->SetStandState(UNIT_STAND_STATE_STAND); m_creature->SetStandState(UNIT_STAND_STATE_STAND);
m_creature->CastSpell(m_creature, SPELL_POTION, true); DoCast(m_creature, SPELL_POTION, true);
m_creature->CastSpell(m_creature, SPELL_AOE_PYROBLAST, false); DoCast(m_creature, SPELL_AOE_PYROBLAST, false);
DrinkInturrupted = true; DrinkInturrupted = true;
Drinking = false; Drinking = false;
} }
@@ -371,10 +371,10 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
case SUPER_AE: case SUPER_AE:
DoScriptText(RAND(SAY_EXPLOSION1,SAY_EXPLOSION2), m_creature); DoScriptText(RAND(SAY_EXPLOSION1,SAY_EXPLOSION2), m_creature);
m_creature->CastSpell(m_creature, SPELL_BLINK_CENTER, true); DoCast(m_creature, SPELL_BLINK_CENTER, true);
m_creature->CastSpell(m_creature, SPELL_PLAYERPULL, true); DoCast(m_creature, SPELL_PLAYERPULL, true);
m_creature->CastSpell(m_creature, SPELL_MASSSLOW, true); DoCast(m_creature, SPELL_MASSSLOW, true);
m_creature->CastSpell(m_creature, SPELL_AEXPLOSION, false); DoCast(m_creature, SPELL_AEXPLOSION, false);
break; break;
case SUPER_FLAME: case SUPER_FLAME:
@@ -105,7 +105,7 @@ struct TRINITY_DLL_DECL mob_kilrekAI : public ScriptedAI
if (AmplifyTimer <= diff) if (AmplifyTimer <= diff)
{ {
m_creature->InterruptNonMeleeSpells(false); m_creature->InterruptNonMeleeSpells(false);
DoCast(m_creature->getVictim(),SPELL_AMPLIFY_FLAMES); DoCast(m_creature->getVictim(), SPELL_AMPLIFY_FLAMES);
AmplifyTimer = urand(10000,20000); AmplifyTimer = urand(10000,20000);
} else AmplifyTimer -= diff; } else AmplifyTimer -= diff;
@@ -159,7 +159,7 @@ struct TRINITY_DLL_DECL npc_barnesAI : public npc_escortAI
switch(i) switch(i)
{ {
case 0: case 0:
m_creature->CastSpell(m_creature, SPELL_TUXEDO, false); DoCast(m_creature, SPELL_TUXEDO, false);
pInstance->DoUseDoorOrButton(pInstance->GetData64(DATA_GO_STAGEDOORLEFT)); pInstance->DoUseDoorOrButton(pInstance->GetData64(DATA_GO_STAGEDOORLEFT));
break; break;
case 4: case 4:
@@ -546,7 +546,7 @@ struct TRINITY_DLL_DECL npc_image_of_medivhAI : public ScriptedAI
return 10000; return 10000;
case 10: case 10:
if (arca) if (arca)
m_creature->CastSpell(arca, SPELL_CONFLAGRATION_BLAST, false); DoCast(arca, SPELL_CONFLAGRATION_BLAST, false);
return 1000; return 1000;
case 11: case 11:
if (arca) if (arca)
@@ -466,7 +466,7 @@ struct TRINITY_DLL_DECL mob_felkael_phoenixAI : public ScriptedAI
{ {
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE + UNIT_FLAG_NON_ATTACKABLE); m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE + UNIT_FLAG_NON_ATTACKABLE);
m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
m_creature->CastSpell(m_creature,SPELL_PHOENIX_BURN,true); DoCast(m_creature, SPELL_PHOENIX_BURN, true);
BurnTimer = 2000; BurnTimer = 2000;
Death_Timer = 3000; Death_Timer = 3000;
Rebirth = false; Rebirth = false;
@@ -269,7 +269,7 @@ struct TRINITY_DLL_DECL boss_priestess_delrissaAI : public ScriptedAI
if (pAdd->isAlive()) if (pAdd->isAlive())
pTarget = pAdd; pTarget = pAdd;
DoCast(pTarget,Heroic ? SPELL_RENEW_HEROIC : SPELL_RENEW_NORMAL); DoCast(pTarget, Heroic ? SPELL_RENEW_HEROIC : SPELL_RENEW_NORMAL);
RenewTimer = 5000; RenewTimer = 5000;
} else RenewTimer -= diff; } else RenewTimer -= diff;
@@ -599,7 +599,7 @@ struct TRINITY_DLL_DECL boss_ellris_duskhallowAI : public boss_priestess_lackey_
void Aggro(Unit* pWho) void Aggro(Unit* pWho)
{ {
DoCast(m_creature,SPELL_SUMMON_IMP); DoCast(m_creature, SPELL_SUMMON_IMP);
} }
void UpdateAI(const uint32 diff) void UpdateAI(const uint32 diff)
@@ -611,13 +611,13 @@ struct TRINITY_DLL_DECL boss_ellris_duskhallowAI : public boss_priestess_lackey_
if (Immolate_Timer <= diff) if (Immolate_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_IMMOLATE); DoCast(m_creature->getVictim(), SPELL_IMMOLATE);
Immolate_Timer = 6000; Immolate_Timer = 6000;
} else Immolate_Timer -= diff; } else Immolate_Timer -= diff;
if (Shadow_Bolt_Timer <= diff) if (Shadow_Bolt_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SHADOW_BOLT); DoCast(m_creature->getVictim(), SPELL_SHADOW_BOLT);
Shadow_Bolt_Timer = 5000; Shadow_Bolt_Timer = 5000;
} else Shadow_Bolt_Timer -= diff; } else Shadow_Bolt_Timer -= diff;
@@ -685,13 +685,13 @@ struct TRINITY_DLL_DECL boss_eramas_brightblazeAI : public boss_priestess_lackey
if (Knockdown_Timer <= diff) if (Knockdown_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_KNOCKDOWN); DoCast(m_creature->getVictim(), SPELL_KNOCKDOWN);
Knockdown_Timer = 6000; Knockdown_Timer = 6000;
} else Knockdown_Timer -= diff; } else Knockdown_Timer -= diff;
if (Snap_Kick_Timer <= diff) if (Snap_Kick_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SNAP_KICK); DoCast(m_creature->getVictim(), SPELL_SNAP_KICK);
Snap_Kick_Timer = 4500; Snap_Kick_Timer = 4500;
} else Snap_Kick_Timer -= diff; } else Snap_Kick_Timer -= diff;
@@ -904,7 +904,7 @@ struct TRINITY_DLL_DECL boss_warlord_salarisAI : public boss_priestess_lackey_co
if (Disarm_Timer <= diff) if (Disarm_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_DISARM); DoCast(m_creature->getVictim(), SPELL_DISARM);
Disarm_Timer = 6000; Disarm_Timer = 6000;
} else Disarm_Timer -= diff; } else Disarm_Timer -= diff;
@@ -138,11 +138,11 @@ struct TRINITY_DLL_DECL boss_vexallusAI : public ScriptedAI
if (Heroic) if (Heroic)
{ {
m_creature->CastSpell(m_creature,H_SPELL_SUMMON_PURE_ENERGY1,false); DoCast(m_creature, H_SPELL_SUMMON_PURE_ENERGY1, false);
m_creature->CastSpell(m_creature,H_SPELL_SUMMON_PURE_ENERGY2,false); DoCast(m_creature, H_SPELL_SUMMON_PURE_ENERGY2, false);
} }
else else
m_creature->CastSpell(m_creature,SPELL_SUMMON_PURE_ENERGY,false); DoCast(m_creature, SPELL_SUMMON_PURE_ENERGY, false);
//below are workaround summons, remove when summoning spells w/implicitTarget 73 implemented in Mangos //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); m_creature->SummonCreature(NPC_PURE_ENERGY, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
@@ -104,11 +104,11 @@ struct TRINITY_DLL_DECL npc_kalecgosAI : public ScriptedAI
{ {
if (m_uiTransformTimer <= uiDiff) if (m_uiTransformTimer <= uiDiff)
{ {
m_creature->CastSpell(m_creature,SPELL_ORB_KILL_CREDIT,false); DoCast(m_creature, SPELL_ORB_KILL_CREDIT, false);
DoWorkaroundForQuestCredit(); DoWorkaroundForQuestCredit();
// Transform and update entry, now ready for quest/read gossip // Transform and update entry, now ready for quest/read gossip
m_creature->CastSpell(m_creature,SPELL_TRANSFORM_TO_KAEL,false); DoCast(m_creature, SPELL_TRANSFORM_TO_KAEL, false);
m_creature->UpdateEntry(NPC_KAEL); m_creature->UpdateEntry(NPC_KAEL);
m_uiTransformTimer = 0; m_uiTransformTimer = 0;
@@ -58,7 +58,7 @@ struct TRINITY_DLL_DECL boss_baron_geddonAI : public ScriptedAI
if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 2) if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 2)
{ {
m_creature->InterruptNonMeleeSpells(true); m_creature->InterruptNonMeleeSpells(true);
DoCast(m_creature,SPELL_ARMAGEDDOM); DoCast(m_creature, SPELL_ARMAGEDDOM);
DoScriptText(EMOTE_SERVICE, m_creature); DoScriptText(EMOTE_SERVICE, m_creature);
return; return;
} }
@@ -66,7 +66,7 @@ struct TRINITY_DLL_DECL boss_baron_geddonAI : public ScriptedAI
//Inferno_Timer //Inferno_Timer
if (Inferno_Timer <= diff) if (Inferno_Timer <= diff)
{ {
DoCast(m_creature,SPELL_INFERNO); DoCast(m_creature, SPELL_INFERNO);
Inferno_Timer = 45000; Inferno_Timer = 45000;
} else Inferno_Timer -= diff; } else Inferno_Timer -= diff;
@@ -74,7 +74,7 @@ struct TRINITY_DLL_DECL boss_baron_geddonAI : public ScriptedAI
if (IgniteMana_Timer <= diff) if (IgniteMana_Timer <= diff)
{ {
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0)) if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(pTarget,SPELL_IGNITEMANA); DoCast(pTarget, SPELL_IGNITEMANA);
IgniteMana_Timer = 30000; IgniteMana_Timer = 30000;
} else IgniteMana_Timer -= diff; } else IgniteMana_Timer -= diff;
@@ -83,7 +83,7 @@ struct TRINITY_DLL_DECL boss_baron_geddonAI : public ScriptedAI
if (LivingBomb_Timer <= diff) if (LivingBomb_Timer <= diff)
{ {
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0)) if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(pTarget,SPELL_LIVINGBOMB); DoCast(pTarget, SPELL_LIVINGBOMB);
LivingBomb_Timer = 35000; LivingBomb_Timer = 35000;
} else LivingBomb_Timer -= diff; } else LivingBomb_Timer -= diff;
@@ -61,14 +61,14 @@ struct TRINITY_DLL_DECL boss_garrAI : public ScriptedAI
//AntiMagicPulse_Timer //AntiMagicPulse_Timer
if (AntiMagicPulse_Timer <= diff) if (AntiMagicPulse_Timer <= diff)
{ {
DoCast(m_creature,SPELL_ANTIMAGICPULSE); DoCast(m_creature, SPELL_ANTIMAGICPULSE);
AntiMagicPulse_Timer = 10000 + rand()%5000; AntiMagicPulse_Timer = 10000 + rand()%5000;
} else AntiMagicPulse_Timer -= diff; } else AntiMagicPulse_Timer -= diff;
//MagmaShackles_Timer //MagmaShackles_Timer
if (MagmaShackles_Timer <= diff) if (MagmaShackles_Timer <= diff)
{ {
DoCast(m_creature,SPELL_MAGMASHACKLES); DoCast(m_creature, SPELL_MAGMASHACKLES);
MagmaShackles_Timer = 8000 + rand()%4000; MagmaShackles_Timer = 8000 + rand()%4000;
} else MagmaShackles_Timer -= diff; } else MagmaShackles_Timer -= diff;
@@ -100,7 +100,7 @@ struct TRINITY_DLL_DECL mob_fireswornAI : public ScriptedAI
if (Immolate_Timer <= diff) if (Immolate_Timer <= diff)
{ {
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0)) if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(pTarget,SPELL_IMMOLATE); DoCast(pTarget, SPELL_IMMOLATE);
Immolate_Timer = urand(5000,10000); Immolate_Timer = urand(5000,10000);
} else Immolate_Timer -= diff; } else Immolate_Timer -= diff;
@@ -108,7 +108,7 @@ struct TRINITY_DLL_DECL mob_fireswornAI : public ScriptedAI
//Cast Erruption and let them die //Cast Erruption and let them die
if (m_creature->GetHealth() <= m_creature->GetMaxHealth() * 0.10) if (m_creature->GetHealth() <= m_creature->GetMaxHealth() * 0.10)
{ {
DoCast(m_creature->getVictim(),SPELL_ERUPTION); DoCast(m_creature->getVictim(), SPELL_ERUPTION);
m_creature->setDeathState(JUST_DIED); m_creature->setDeathState(JUST_DIED);
m_creature->RemoveCorpse(); m_creature->RemoveCorpse();
} }
@@ -70,7 +70,7 @@ struct TRINITY_DLL_DECL boss_gehennasAI : public ScriptedAI
//GehennasCurse_Timer //GehennasCurse_Timer
if (GehennasCurse_Timer <= diff) if (GehennasCurse_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_GEHENNASCURSE); DoCast(m_creature->getVictim(), SPELL_GEHENNASCURSE);
GehennasCurse_Timer = urand(22000,30000); GehennasCurse_Timer = urand(22000,30000);
} else GehennasCurse_Timer -= diff; } else GehennasCurse_Timer -= diff;
@@ -58,7 +58,7 @@ struct TRINITY_DLL_DECL boss_golemaggAI : public ScriptedAI
m_uiBuffTimer = 2.5*IN_MILISECONDS; m_uiBuffTimer = 2.5*IN_MILISECONDS;
m_bEnraged = false; m_bEnraged = false;
m_creature->CastSpell(m_creature, SPELL_MAGMASPLASH, true); DoCast(m_creature, SPELL_MAGMASPLASH, true);
} }
void JustDied(Unit* pKiller) void JustDied(Unit* pKiller)
@@ -54,21 +54,21 @@ struct TRINITY_DLL_DECL boss_lucifronAI : public ScriptedAI
//Impending doom timer //Impending doom timer
if (ImpendingDoom_Timer <= diff) if (ImpendingDoom_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_IMPENDINGDOOM); DoCast(m_creature->getVictim(), SPELL_IMPENDINGDOOM);
ImpendingDoom_Timer = 20000; ImpendingDoom_Timer = 20000;
} else ImpendingDoom_Timer -= diff; } else ImpendingDoom_Timer -= diff;
//Lucifron's curse timer //Lucifron's curse timer
if (LucifronCurse_Timer <= diff) if (LucifronCurse_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_LUCIFRONCURSE); DoCast(m_creature->getVictim(), SPELL_LUCIFRONCURSE);
LucifronCurse_Timer = 15000; LucifronCurse_Timer = 15000;
} else LucifronCurse_Timer -= diff; } else LucifronCurse_Timer -= diff;
//Shadowshock //Shadowshock
if (ShadowShock_Timer <= diff) if (ShadowShock_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SHADOWSHOCK); DoCast(m_creature->getVictim(), SPELL_SHADOWSHOCK);
ShadowShock_Timer = 6000; ShadowShock_Timer = 6000;
} else ShadowShock_Timer -= diff; } else ShadowShock_Timer -= diff;
@@ -45,7 +45,7 @@ struct TRINITY_DLL_DECL boss_magmadarAI : public ScriptedAI
Panic_Timer = 20000; Panic_Timer = 20000;
Lavabomb_Timer = 12000; Lavabomb_Timer = 12000;
m_creature->CastSpell(m_creature,SPELL_MAGMASPIT,true); DoCast(m_creature, SPELL_MAGMASPIT, true);
} }
void EnterCombat(Unit *who) void EnterCombat(Unit *who)
@@ -61,14 +61,14 @@ struct TRINITY_DLL_DECL boss_magmadarAI : public ScriptedAI
if (Frenzy_Timer <= diff) if (Frenzy_Timer <= diff)
{ {
DoScriptText(EMOTE_FRENZY, m_creature); DoScriptText(EMOTE_FRENZY, m_creature);
DoCast(m_creature,SPELL_FRENZY); DoCast(m_creature, SPELL_FRENZY);
Frenzy_Timer = 15000; Frenzy_Timer = 15000;
} else Frenzy_Timer -= diff; } else Frenzy_Timer -= diff;
//Panic_Timer //Panic_Timer
if (Panic_Timer <= diff) if (Panic_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_PANIC); DoCast(m_creature->getVictim(), SPELL_PANIC);
Panic_Timer = 35000; Panic_Timer = 35000;
} else Panic_Timer -= diff; } else Panic_Timer -= diff;
@@ -76,7 +76,7 @@ struct TRINITY_DLL_DECL boss_magmadarAI : public ScriptedAI
if (Lavabomb_Timer <= diff) if (Lavabomb_Timer <= diff)
{ {
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0)) if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(pTarget,SPELL_LAVABOMB_ALT); DoCast(pTarget, SPELL_LAVABOMB_ALT);
Lavabomb_Timer = 12000; Lavabomb_Timer = 12000;
} else Lavabomb_Timer -= diff; } else Lavabomb_Timer -= diff;
@@ -87,7 +87,7 @@ struct TRINITY_DLL_DECL boss_majordomoAI : public ScriptedAI
//Cast Ageis if less than 50% hp //Cast Ageis if less than 50% hp
if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 50) if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 50)
{ {
DoCast(m_creature,SPELL_AEGIS); DoCast(m_creature, SPELL_AEGIS);
} }
//MagicReflection_Timer //MagicReflection_Timer
@@ -111,7 +111,7 @@ struct TRINITY_DLL_DECL boss_majordomoAI : public ScriptedAI
//Blastwave_Timer //Blastwave_Timer
if (Blastwave_Timer <= diff) if (Blastwave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_BLASTWAVE); DoCast(m_creature->getVictim(), SPELL_BLASTWAVE);
Blastwave_Timer = 10000; Blastwave_Timer = 10000;
} else Blastwave_Timer -= diff; } else Blastwave_Timer -= diff;
@@ -118,7 +118,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public ScriptedAI
HasSubmergedOnce = false; HasSubmergedOnce = false;
WasBanished = false; WasBanished = false;
m_creature->CastSpell(m_creature,SPELL_MELTWEAPON,true); DoCast(m_creature, SPELL_MELTWEAPON, true);
HasAura = true; HasAura = true;
} }
@@ -141,7 +141,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public ScriptedAI
//Become unbanished again //Become unbanished again
m_creature->setFaction(14); m_creature->setFaction(14);
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
DoCast(m_creature,SPELL_RAGEMERGE); DoCast(m_creature, SPELL_RAGEMERGE);
WasBanished = false; WasBanished = false;
} else if (WasBanished) } else if (WasBanished)
{ {
@@ -157,7 +157,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public ScriptedAI
//WrathOfRagnaros_Timer //WrathOfRagnaros_Timer
if (WrathOfRagnaros_Timer <= diff) if (WrathOfRagnaros_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_WRATHOFRAGNAROS); DoCast(m_creature->getVictim(), SPELL_WRATHOFRAGNAROS);
if (urand(0,1)) if (urand(0,1))
DoScriptText(SAY_WRATH, m_creature); DoScriptText(SAY_WRATH, m_creature);
@@ -168,7 +168,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public ScriptedAI
//HandOfRagnaros_Timer //HandOfRagnaros_Timer
if (HandOfRagnaros_Timer <= diff) if (HandOfRagnaros_Timer <= diff)
{ {
DoCast(m_creature,SPELL_HANDOFRAGNAROS); DoCast(m_creature, SPELL_HANDOFRAGNAROS);
if (urand(0,1)) if (urand(0,1))
DoScriptText(SAY_HAND, m_creature); DoScriptText(SAY_HAND, m_creature);
@@ -179,21 +179,21 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public ScriptedAI
//LavaBurst_Timer //LavaBurst_Timer
if (LavaBurst_Timer <= diff) if (LavaBurst_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_LAVABURST); DoCast(m_creature->getVictim(), SPELL_LAVABURST);
LavaBurst_Timer = 10000; LavaBurst_Timer = 10000;
} else LavaBurst_Timer -= diff; } else LavaBurst_Timer -= diff;
//Erruption_Timer //Erruption_Timer
if (LavaBurst_Timer <= diff) if (LavaBurst_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_ERRUPTION); DoCast(m_creature->getVictim(), SPELL_ERRUPTION);
Erruption_Timer = urand(20000,45000); Erruption_Timer = urand(20000,45000);
} else Erruption_Timer -= diff; } else Erruption_Timer -= diff;
//ElementalFire_Timer //ElementalFire_Timer
if (ElementalFire_Timer <= diff) if (ElementalFire_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_ELEMENTALFIRE); DoCast(m_creature->getVictim(), SPELL_ELEMENTALFIRE);
ElementalFire_Timer = urand(10000,14000); ElementalFire_Timer = urand(10000,14000);
} else ElementalFire_Timer -= diff; } else ElementalFire_Timer -= diff;
@@ -206,7 +206,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public ScriptedAI
m_creature->InterruptNonMeleeSpells(false); m_creature->InterruptNonMeleeSpells(false);
//Root self //Root self
DoCast(m_creature,23973); DoCast(m_creature, 23973);
m_creature->setFaction(35); m_creature->setFaction(35);
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
m_creature->HandleEmoteCommand(EMOTE_ONESHOT_SUBMERGE); m_creature->HandleEmoteCommand(EMOTE_ONESHOT_SUBMERGE);
@@ -227,7 +227,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public ScriptedAI
HasSubmergedOnce = true; HasSubmergedOnce = true;
WasBanished = true; WasBanished = true;
DoCast(m_creature,SPELL_RAGSUBMERGE); DoCast(m_creature, SPELL_RAGSUBMERGE);
Attack_Timer = 90000; Attack_Timer = 90000;
} }
@@ -245,7 +245,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public ScriptedAI
} }
WasBanished = true; WasBanished = true;
DoCast(m_creature,SPELL_RAGSUBMERGE); DoCast(m_creature, SPELL_RAGSUBMERGE);
Attack_Timer = 90000; Attack_Timer = 90000;
} }
@@ -267,7 +267,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public ScriptedAI
//MagmaBurst_Timer //MagmaBurst_Timer
if (MagmaBurst_Timer <= diff) if (MagmaBurst_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_MAGMABURST); DoCast(m_creature->getVictim(), SPELL_MAGMABURST);
if (!HasYelledMagmaBurst) if (!HasYelledMagmaBurst)
{ {
@@ -59,7 +59,7 @@ struct TRINITY_DLL_DECL boss_shazzrahAI : public ScriptedAI
//ArcaneExplosion_Timer //ArcaneExplosion_Timer
if (ArcaneExplosion_Timer <= diff) if (ArcaneExplosion_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_ARCANEEXPLOSION); DoCast(m_creature->getVictim(), SPELL_ARCANEEXPLOSION);
ArcaneExplosion_Timer = 5000 + rand()%4000; ArcaneExplosion_Timer = 5000 + rand()%4000;
} else ArcaneExplosion_Timer -= diff; } else ArcaneExplosion_Timer -= diff;
@@ -68,7 +68,7 @@ struct TRINITY_DLL_DECL boss_shazzrahAI : public ScriptedAI
{ {
Unit *pTarget = NULL; Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0); pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget) DoCast(pTarget,SPELL_SHAZZRAHCURSE); if (pTarget) DoCast(pTarget, SPELL_SHAZZRAHCURSE);
ShazzrahCurse_Timer = 25000 + rand()%5000; ShazzrahCurse_Timer = 25000 + rand()%5000;
} else ShazzrahCurse_Timer -= diff; } else ShazzrahCurse_Timer -= diff;
@@ -76,14 +76,14 @@ struct TRINITY_DLL_DECL boss_shazzrahAI : public ScriptedAI
//DeadenMagic_Timer //DeadenMagic_Timer
if (DeadenMagic_Timer <= diff) if (DeadenMagic_Timer <= diff)
{ {
DoCast(m_creature,SPELL_DEADENMAGIC); DoCast(m_creature, SPELL_DEADENMAGIC);
DeadenMagic_Timer = 35000; DeadenMagic_Timer = 35000;
} else DeadenMagic_Timer -= diff; } else DeadenMagic_Timer -= diff;
//Countspell_Timer //Countspell_Timer
if (Countspell_Timer <= diff) if (Countspell_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_COUNTERSPELL); DoCast(m_creature->getVictim(), SPELL_COUNTERSPELL);
Countspell_Timer = 16000 + rand()%4000; Countspell_Timer = 16000 + rand()%4000;
} else Countspell_Timer -= diff; } else Countspell_Timer -= diff;
@@ -66,7 +66,7 @@ struct TRINITY_DLL_DECL boss_sulfuronAI : public ScriptedAI
//DemoralizingShout_Timer //DemoralizingShout_Timer
if (DemoralizingShout_Timer <= diff) if (DemoralizingShout_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_DEMORALIZINGSHOUT); DoCast(m_creature->getVictim(), SPELL_DEMORALIZINGSHOUT);
DemoralizingShout_Timer = 15000 + rand()%5000; DemoralizingShout_Timer = 15000 + rand()%5000;
} else DemoralizingShout_Timer -= diff; } else DemoralizingShout_Timer -= diff;
@@ -83,9 +83,9 @@ struct TRINITY_DLL_DECL boss_sulfuronAI : public ScriptedAI
} }
if (pTarget) if (pTarget)
DoCast(pTarget,SPELL_INSPIRE); DoCast(pTarget, SPELL_INSPIRE);
DoCast(m_creature,SPELL_INSPIRE); DoCast(m_creature, SPELL_INSPIRE);
Inspire_Timer = 20000 + rand()%6000; Inspire_Timer = 20000 + rand()%6000;
} else Inspire_Timer -= diff; } else Inspire_Timer -= diff;
@@ -93,7 +93,7 @@ struct TRINITY_DLL_DECL boss_sulfuronAI : public ScriptedAI
//Knockdown_Timer //Knockdown_Timer
if (Knockdown_Timer <= diff) if (Knockdown_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_KNOCKDOWN); DoCast(m_creature->getVictim(), SPELL_KNOCKDOWN);
Knockdown_Timer = 12000 + rand()%3000; Knockdown_Timer = 12000 + rand()%3000;
} else Knockdown_Timer -= diff; } else Knockdown_Timer -= diff;
@@ -102,7 +102,7 @@ struct TRINITY_DLL_DECL boss_sulfuronAI : public ScriptedAI
{ {
Unit *pTarget = NULL; Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0); pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget) DoCast(pTarget,SPELL_FLAMESPEAR); if (pTarget) DoCast(pTarget, SPELL_FLAMESPEAR);
Flamespear_Timer = 12000 + rand()%4000; Flamespear_Timer = 12000 + rand()%4000;
} else Flamespear_Timer -= diff; } else Flamespear_Timer -= diff;
@@ -159,7 +159,7 @@ struct TRINITY_DLL_DECL mob_flamewaker_priestAI : public ScriptedAI
{ {
Unit *pTarget = NULL; Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0); pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget) DoCast(pTarget,SPELL_SHADOWWORDPAIN); if (pTarget) DoCast(pTarget, SPELL_SHADOWWORDPAIN);
ShadowWordPain_Timer = 18000+rand()%8000; ShadowWordPain_Timer = 18000+rand()%8000;
} else ShadowWordPain_Timer -= diff; } else ShadowWordPain_Timer -= diff;
@@ -169,7 +169,7 @@ struct TRINITY_DLL_DECL mob_flamewaker_priestAI : public ScriptedAI
{ {
Unit *pTarget = NULL; Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0); pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget) DoCast(pTarget,SPELL_IMMOLATE); if (pTarget) DoCast(pTarget, SPELL_IMMOLATE);
Immolate_Timer = 15000+rand()%10000; Immolate_Timer = 15000+rand()%10000;
} else Immolate_Timer -= diff; } else Immolate_Timer -= diff;
@@ -43,7 +43,7 @@ struct TRINITY_DLL_DECL instance_molten_core : public ScriptedInstance
instance_molten_core(Map* pMap) : ScriptedInstance(pMap) {Initialize();}; instance_molten_core(Map* pMap) : ScriptedInstance(pMap) {Initialize();};
uint64 Lucifron, Magmadar, Gehennas, Garr, Geddon, Shazzrah, Sulfuron, Golemagg, Domo, Ragnaros, FlamewakerPriest; uint64 Lucifron, Magmadar, Gehennas, Garr, Geddon, Shazzrah, Sulfuron, Golemagg, Domo, Ragnaros, FlamewakerPriest;
uint64 RuneKoro, RuneZeth, RuneMazj, RuneTheri, RuneBlaz, RuneKress, RuneMohn, m_uiFirelordCacheGUID;; uint64 RuneKoro, RuneZeth, RuneMazj, RuneTheri, RuneBlaz, RuneKress, RuneMohn, m_uiFirelordCacheGUID;
//If all Bosses are dead. //If all Bosses are dead.
bool IsBossDied[9]; bool IsBossDied[9];
@@ -721,7 +721,7 @@ struct TRINITY_DLL_DECL npc_scarlet_ghoulAI : public ScriptedAI
{ {
// Ghouls should display their Birth Animation // Ghouls should display their Birth Animation
// Crawling out of the ground // Crawling out of the ground
//m_creature->CastSpell(m_creature,35177,true); //DoCast(m_creature, 35177, true);
//m_creature->MonsterSay("Mommy?",LANG_UNIVERSAL,0); //m_creature->MonsterSay("Mommy?",LANG_UNIVERSAL,0);
m_creature->SetReactState(REACT_DEFENSIVE); m_creature->SetReactState(REACT_DEFENSIVE);
} }
@@ -66,7 +66,7 @@ struct TRINITY_DLL_DECL boss_arcanist_doanAI : public ScriptedAI
if (bShielded && bCanDetonate) if (bShielded && bCanDetonate)
{ {
DoCast(m_creature,SPELL_FIREAOE); DoCast(m_creature, SPELL_FIREAOE);
bCanDetonate = false; bCanDetonate = false;
} }
@@ -81,7 +81,7 @@ struct TRINITY_DLL_DECL boss_arcanist_doanAI : public ScriptedAI
return; return;
DoScriptText(SAY_SPECIALAE, m_creature); DoScriptText(SAY_SPECIALAE, m_creature);
DoCast(m_creature,SPELL_ARCANEBUBBLE); DoCast(m_creature, SPELL_ARCANEBUBBLE);
bCanDetonate = true; bCanDetonate = true;
bShielded = true; bShielded = true;
@@ -90,7 +90,7 @@ struct TRINITY_DLL_DECL boss_arcanist_doanAI : public ScriptedAI
if (Polymorph_Timer <= diff) if (Polymorph_Timer <= diff)
{ {
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,1)) if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,1))
DoCast(pTarget,SPELL_POLYMORPH); DoCast(pTarget, SPELL_POLYMORPH);
Polymorph_Timer = 20000; Polymorph_Timer = 20000;
} else Polymorph_Timer -= diff; } else Polymorph_Timer -= diff;
@@ -98,14 +98,14 @@ struct TRINITY_DLL_DECL boss_arcanist_doanAI : public ScriptedAI
//AoESilence_Timer //AoESilence_Timer
if (AoESilence_Timer <= diff) if (AoESilence_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_AOESILENCE); DoCast(m_creature->getVictim(), SPELL_AOESILENCE);
AoESilence_Timer = 15000 + rand()%5000; AoESilence_Timer = 15000 + rand()%5000;
} else AoESilence_Timer -= diff; } else AoESilence_Timer -= diff;
//ArcaneExplosion_Timer //ArcaneExplosion_Timer
if (ArcaneExplosion_Timer <= diff) if (ArcaneExplosion_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_ARCANEEXPLOSION); DoCast(m_creature->getVictim(), SPELL_ARCANEEXPLOSION);
ArcaneExplosion_Timer = 8000; ArcaneExplosion_Timer = 8000;
} else ArcaneExplosion_Timer -= diff; } else ArcaneExplosion_Timer -= diff;
@@ -57,7 +57,7 @@ struct TRINITY_DLL_DECL boss_azshir_the_sleeplessAI : public ScriptedAI
//SoulSiphon_Timer //SoulSiphon_Timer
if (SoulSiphon_Timer <= diff) if (SoulSiphon_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SOULSIPHON); DoCast(m_creature->getVictim(), SPELL_SOULSIPHON);
return; return;
SoulSiphon_Timer = 20000; SoulSiphon_Timer = 20000;
@@ -67,14 +67,14 @@ struct TRINITY_DLL_DECL boss_azshir_the_sleeplessAI : public ScriptedAI
//CallOfTheGrave_Timer //CallOfTheGrave_Timer
if (CallOftheGrave_Timer <= diff) if (CallOftheGrave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CALLOFTHEGRAVE); DoCast(m_creature->getVictim(), SPELL_CALLOFTHEGRAVE);
CallOftheGrave_Timer = 30000; CallOftheGrave_Timer = 30000;
} else CallOftheGrave_Timer -= diff; } else CallOftheGrave_Timer -= diff;
//Terrify_Timer //Terrify_Timer
if (Terrify_Timer <= diff) if (Terrify_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_TERRIFY); DoCast(m_creature->getVictim(), SPELL_TERRIFY);
Terrify_Timer = 20000; Terrify_Timer = 20000;
} else Terrify_Timer -= diff; } else Terrify_Timer -= diff;
@@ -79,28 +79,28 @@ struct TRINITY_DLL_DECL boss_bloodmage_thalnosAI : public ScriptedAI
//FlameShock_Timer //FlameShock_Timer
if (FlameShock_Timer <= diff) if (FlameShock_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FLAMESHOCK); DoCast(m_creature->getVictim(), SPELL_FLAMESHOCK);
FlameShock_Timer = 10000 + rand()%5000; FlameShock_Timer = 10000 + rand()%5000;
} else FlameShock_Timer -= diff; } else FlameShock_Timer -= diff;
//FlameSpike_Timer //FlameSpike_Timer
if (FlameSpike_Timer <= diff) if (FlameSpike_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FLAMESPIKE); DoCast(m_creature->getVictim(), SPELL_FLAMESPIKE);
FlameSpike_Timer = 30000; FlameSpike_Timer = 30000;
} else FlameSpike_Timer -= diff; } else FlameSpike_Timer -= diff;
//FireNova_Timer //FireNova_Timer
if (FireNova_Timer <= diff) if (FireNova_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FIRENOVA); DoCast(m_creature->getVictim(), SPELL_FIRENOVA);
FireNova_Timer = 40000; FireNova_Timer = 40000;
} else FireNova_Timer -= diff; } else FireNova_Timer -= diff;
//ShadowBolt_Timer //ShadowBolt_Timer
if (ShadowBolt_Timer <= diff) if (ShadowBolt_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SHADOWBOLT); DoCast(m_creature->getVictim(), SPELL_SHADOWBOLT);
ShadowBolt_Timer = 2000; ShadowBolt_Timer = 2000;
} else ShadowBolt_Timer -= diff; } else ShadowBolt_Timer -= diff;
@@ -173,7 +173,7 @@ struct TRINITY_DLL_DECL mob_wisp_invisAI : public ScriptedAI
break; break;
} }
if (spell) if (spell)
DoCast(m_creature,spell); DoCast(m_creature, spell);
} }
void SpellHit(Unit* caster, const SpellEntry *spell) void SpellHit(Unit* caster, const SpellEntry *spell)
@@ -188,7 +188,7 @@ struct TRINITY_DLL_DECL mob_wisp_invisAI : public ScriptedAI
return; return;
if (m_creature->IsWithinDist(who, 0.1, false) && !who->HasAura(SPELL_SQUASH_SOUL)) if (m_creature->IsWithinDist(who, 0.1, false) && !who->HasAura(SPELL_SQUASH_SOUL))
DoCast(who,SPELL_SQUASH_SOUL); DoCast(who, SPELL_SQUASH_SOUL);
} }
void UpdateAI(const uint32 diff) void UpdateAI(const uint32 diff)
@@ -199,7 +199,7 @@ struct TRINITY_DLL_DECL mob_wisp_invisAI : public ScriptedAI
{ {
m_creature->RemoveAurasDueToSpell(SPELL_SMOKE); m_creature->RemoveAurasDueToSpell(SPELL_SMOKE);
if (spell2) if (spell2)
DoCast(m_creature,spell2); DoCast(m_creature, spell2);
delay = 0; delay = 0;
} else delay -= diff; } else delay -= diff;
} }
@@ -233,7 +233,7 @@ struct TRINITY_DLL_DECL mob_headAI : public ScriptedAI
void SaySound(int32 textEntry, Unit *pTarget = 0) void SaySound(int32 textEntry, Unit *pTarget = 0)
{ {
DoScriptText(textEntry, m_creature, pTarget); DoScriptText(textEntry, m_creature, pTarget);
//DoCast(m_creature,SPELL_HEAD_SPEAKS,true); //DoCast(m_creature, SPELL_HEAD_SPEAKS, true);
Creature *speaker = DoSpawnCreature(HELPER,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN,1000); Creature *speaker = DoSpawnCreature(HELPER,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN,1000);
if (speaker) if (speaker)
speaker->CastSpell(speaker,SPELL_HEAD_SPEAKS,false); speaker->CastSpell(speaker,SPELL_HEAD_SPEAKS,false);
@@ -265,7 +265,7 @@ struct TRINITY_DLL_DECL mob_headAI : public ScriptedAI
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
m_creature->StopMoving(); m_creature->StopMoving();
//m_creature->GetMotionMaster()->MoveIdle(); //m_creature->GetMotionMaster()->MoveIdle();
DoCast(m_creature,SPELL_HEAD_IS_DEAD); DoCast(m_creature, SPELL_HEAD_IS_DEAD);
} }
break; break;
} }
@@ -285,8 +285,8 @@ struct TRINITY_DLL_DECL mob_headAI : public ScriptedAI
bodyGUID = caster->GetGUID(); bodyGUID = caster->GetGUID();
m_creature->RemoveAllAuras(); m_creature->RemoveAllAuras();
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
DoCast(m_creature,SPELL_HEAD_LANDS,true); DoCast(m_creature, SPELL_HEAD_LANDS, true);
DoCast(m_creature,SPELL_HEAD,false); DoCast(m_creature, SPELL_HEAD, false);
SaySound(SAY_LOST_HEAD); SaySound(SAY_LOST_HEAD);
m_creature->GetMotionMaster()->Clear(false); m_creature->GetMotionMaster()->Clear(false);
m_creature->GetMotionMaster()->MoveFleeing(caster->getVictim()); m_creature->GetMotionMaster()->MoveFleeing(caster->getVictim());
@@ -309,7 +309,7 @@ struct TRINITY_DLL_DECL mob_headAI : public ScriptedAI
{ {
laugh = urand(15000,30000); laugh = urand(15000,30000);
DoPlaySoundToSet(m_creature, RandomLaugh[urand(0,2)]); DoPlaySoundToSet(m_creature, RandomLaugh[urand(0,2)]);
//DoCast(m_creature,SPELL_HEAD_SPEAKS,true); //this spell remove buff "head" //DoCast(m_creature, SPELL_HEAD_SPEAKS, true); //this spell remove buff "head"
Creature *speaker = DoSpawnCreature(HELPER,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN,1000); Creature *speaker = DoSpawnCreature(HELPER,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN,1000);
if (speaker) if (speaker)
speaker->CastSpell(speaker,SPELL_HEAD_SPEAKS,false); speaker->CastSpell(speaker,SPELL_HEAD_SPEAKS,false);
@@ -397,7 +397,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
returned = true; returned = true;
burned = false; burned = false;
IsFlying = false; IsFlying = false;
DoCast(m_creature,SPELL_HEAD); DoCast(m_creature, SPELL_HEAD);
if (headGUID) if (headGUID)
{ {
if (Creature* Head = Unit::GetCreature((*m_creature), headGUID)) if (Creature* Head = Unit::GetCreature((*m_creature), headGUID))
@@ -439,7 +439,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
{ {
if (Creature *smoke = m_creature->SummonCreature(HELPER,Spawn[1].x,Spawn[1].y,Spawn[1].z,0,TEMPSUMMON_TIMED_DESPAWN,20000)) if (Creature *smoke = m_creature->SummonCreature(HELPER,Spawn[1].x,Spawn[1].y,Spawn[1].z,0,TEMPSUMMON_TIMED_DESPAWN,20000))
CAST_AI(mob_wisp_invisAI, smoke->AI())->SetType(3); CAST_AI(mob_wisp_invisAI, smoke->AI())->SetType(3);
DoCast(m_creature,SPELL_RHYME_BIG); DoCast(m_creature, SPELL_RHYME_BIG);
break; break;
} }
case 6: case 6:
@@ -555,7 +555,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
m_creature->SetName("Headless Horseman"); m_creature->SetName("Headless Horseman");
m_creature->SetHealth(m_creature->GetMaxHealth()); m_creature->SetHealth(m_creature->GetMaxHealth());
SaySound(SAY_REJOINED); SaySound(SAY_REJOINED);
DoCast(m_creature,SPELL_HEAD); DoCast(m_creature, SPELL_HEAD);
caster->GetMotionMaster()->Clear(false); caster->GetMotionMaster()->Clear(false);
caster->GetMotionMaster()->MoveFollow(m_creature,6,urand(0,5)); caster->GetMotionMaster()->MoveFollow(m_creature,6,urand(0,5));
//DoResetThreat();//not sure if need //DoResetThreat();//not sure if need
@@ -587,10 +587,10 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
Head->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); Head->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
//Head->CastSpell(Head,SPELL_HEAD_INVIS,false); //Head->CastSpell(Head,SPELL_HEAD_INVIS,false);
m_creature->InterruptNonMeleeSpells(false); m_creature->InterruptNonMeleeSpells(false);
DoCast(m_creature,SPELL_IMMUNE,true); DoCast(m_creature, SPELL_IMMUNE, true);
DoCast(m_creature,SPELL_BODY_REGEN,true); DoCast(m_creature, SPELL_BODY_REGEN, true);
m_creature->CastSpell(Head, SPELL_FLYING_HEAD,true); DoCast(Head, SPELL_FLYING_HEAD, true);
DoCast(m_creature,SPELL_CONFUSE,false); //test DoCast(m_creature, SPELL_CONFUSE, false); //test
done_by->ProcDamageAndSpell(m_creature,PROC_FLAG_KILL,PROC_FLAG_KILLED,PROC_EX_NONE,0); done_by->ProcDamageAndSpell(m_creature,PROC_FLAG_KILL,PROC_FLAG_KILLED,PROC_EX_NONE,0);
whirlwind = urand(4000,8000); whirlwind = urand(4000,8000);
regen = 0; regen = 0;
@@ -619,7 +619,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
} }
else else
{ {
DoCast(m_creature,SPELL_RHYME_BIG); DoCast(m_creature, SPELL_RHYME_BIG);
if (plr) if (plr)
{ {
plr->Say(Text[count].text,0); plr->Say(Text[count].text,0);
@@ -658,7 +658,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
if (conflagrate <= diff) if (conflagrate <= diff)
{ {
if (Unit *plr = SelectRandomPlayer(30.0f)) if (Unit *plr = SelectRandomPlayer(30.0f))
m_creature->CastSpell(plr,SPELL_CONFLAGRATION,false); DoCast(plr, SPELL_CONFLAGRATION, false);
conflagrate = urand(10000,16000); conflagrate = urand(10000,16000);
} else conflagrate -= diff; } else conflagrate -= diff;
break; break;
@@ -666,7 +666,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
if (summonadds <= diff) if (summonadds <= diff)
{ {
m_creature->InterruptNonMeleeSpells(false); m_creature->InterruptNonMeleeSpells(false);
DoCast(m_creature,SPELL_SUMMON_PUMPKIN); DoCast(m_creature, SPELL_SUMMON_PUMPKIN);
SaySound(SAY_SPROUTING_PUMPKINS); SaySound(SAY_SPROUTING_PUMPKINS);
summonadds = urand(25000,35000); summonadds = urand(25000,35000);
} else summonadds -= diff; } else summonadds -= diff;
@@ -685,7 +685,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
if (cleave <= diff) if (cleave <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CLEAVE); DoCast(m_creature->getVictim(), SPELL_CLEAVE);
cleave = urand(2000,6000); //1 cleave per 2.0-6.0sec cleave = urand(2000,6000); //1 cleave per 2.0-6.0sec
} else cleave -= diff; } else cleave -= diff;
} }
@@ -718,8 +718,8 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
if (urand(0,1)) if (urand(0,1))
{ {
m_creature->RemoveAurasDueToSpell(SPELL_CONFUSE); m_creature->RemoveAurasDueToSpell(SPELL_CONFUSE);
DoCast(m_creature,SPELL_WHIRLWIND,true); DoCast(m_creature, SPELL_WHIRLWIND, true);
DoCast(m_creature,SPELL_CONFUSE); DoCast(m_creature, SPELL_CONFUSE);
} else } else
m_creature->RemoveAurasDueToSpell(SPELL_WHIRLWIND); m_creature->RemoveAurasDueToSpell(SPELL_WHIRLWIND);
} else whirlwind -= diff; } else whirlwind -= diff;
@@ -739,7 +739,7 @@ void mob_headAI::Disappear()
withbody = true; withbody = true;
m_creature->RemoveAllAuras(); m_creature->RemoveAllAuras();
body->RemoveAurasDueToSpell(SPELL_IMMUNE);//hack, SpellHit doesn't calls if body has immune aura body->RemoveAurasDueToSpell(SPELL_IMMUNE);//hack, SpellHit doesn't calls if body has immune aura
DoCast(body,SPELL_FLYING_HEAD); DoCast(body, SPELL_FLYING_HEAD);
m_creature->SetHealth(m_creature->GetMaxHealth()); m_creature->SetHealth(m_creature->GetMaxHealth());
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -771,8 +771,8 @@ struct TRINITY_DLL_DECL mob_pulsing_pumpkinAI : public ScriptedAI
debuffGUID = debuff->GetGUID(); debuffGUID = debuff->GetGUID();
} }
sprouted = false; sprouted = false;
DoCast(m_creature,SPELL_PUMPKIN_AURA,true); DoCast(m_creature, SPELL_PUMPKIN_AURA, true);
DoCast(m_creature,SPELL_SPROUTING); DoCast(m_creature, SPELL_SPROUTING);
m_creature->SetFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_STUNNED); m_creature->SetFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_STUNNED);
} }
@@ -785,7 +785,7 @@ struct TRINITY_DLL_DECL mob_pulsing_pumpkinAI : public ScriptedAI
sprouted = true; sprouted = true;
m_creature->RemoveAllAuras(); m_creature->RemoveAllAuras();
m_creature->RemoveFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_STUNNED); m_creature->RemoveFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_STUNNED);
DoCast(m_creature,SPELL_SPROUT_BODY,true); DoCast(m_creature, SPELL_SPROUT_BODY, true);
m_creature->UpdateEntry(PUMPKIN_FIEND); m_creature->UpdateEntry(PUMPKIN_FIEND);
DoStartMovement(m_creature->getVictim()); DoStartMovement(m_creature->getVictim());
} }
@@ -57,7 +57,7 @@ struct TRINITY_DLL_DECL boss_herodAI : public ScriptedAI
void EnterCombat(Unit *who) void EnterCombat(Unit *who)
{ {
DoScriptText(SAY_AGGRO, m_creature); DoScriptText(SAY_AGGRO, m_creature);
DoCast(m_creature,SPELL_RUSHINGCHARGE); DoCast(m_creature, SPELL_RUSHINGCHARGE);
} }
void KilledUnit(Unit *victim) void KilledUnit(Unit *victim)
@@ -81,14 +81,14 @@ struct TRINITY_DLL_DECL boss_herodAI : public ScriptedAI
{ {
DoScriptText(EMOTE_ENRAGE, m_creature); DoScriptText(EMOTE_ENRAGE, m_creature);
DoScriptText(SAY_ENRAGE, m_creature); DoScriptText(SAY_ENRAGE, m_creature);
DoCast(m_creature,SPELL_FRENZY); DoCast(m_creature, SPELL_FRENZY);
Enrage = true; Enrage = true;
} }
//Cleave_Timer //Cleave_Timer
if (Cleave_Timer <= diff) if (Cleave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CLEAVE); DoCast(m_creature->getVictim(), SPELL_CLEAVE);
Cleave_Timer = 12000; Cleave_Timer = 12000;
} else Cleave_Timer -= diff; } else Cleave_Timer -= diff;
@@ -96,7 +96,7 @@ struct TRINITY_DLL_DECL boss_herodAI : public ScriptedAI
if (Whirlwind_Timer <= diff) if (Whirlwind_Timer <= diff)
{ {
DoScriptText(SAY_WHIRLWIND, m_creature); DoScriptText(SAY_WHIRLWIND, m_creature);
DoCast(m_creature->getVictim(),SPELL_WHIRLWIND); DoCast(m_creature->getVictim(), SPELL_WHIRLWIND);
Whirlwind_Timer = 30000; Whirlwind_Timer = 30000;
} else Whirlwind_Timer -= diff; } else Whirlwind_Timer -= diff;
@@ -68,7 +68,7 @@ struct TRINITY_DLL_DECL boss_high_inquisitor_fairbanksAI : public ScriptedAI
//If we are <25% hp cast Heal //If we are <25% hp cast Heal
if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 25 && !m_creature->IsNonMeleeSpellCasted(false) && Heal_Timer <= diff) if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 25 && !m_creature->IsNonMeleeSpellCasted(false) && Heal_Timer <= diff)
{ {
DoCast(m_creature,SPELL_HEAL); DoCast(m_creature, SPELL_HEAL);
Heal_Timer = 30000; Heal_Timer = 30000;
} else Heal_Timer -= diff; } else Heal_Timer -= diff;
@@ -76,7 +76,7 @@ struct TRINITY_DLL_DECL boss_high_inquisitor_fairbanksAI : public ScriptedAI
if (Fear_Timer <= diff) if (Fear_Timer <= diff)
{ {
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,1)) if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,1))
DoCast(pTarget,SPELL_FEAR); DoCast(pTarget, SPELL_FEAR);
Fear_Timer = 40000; Fear_Timer = 40000;
} else Fear_Timer -= diff; } else Fear_Timer -= diff;
@@ -85,7 +85,7 @@ struct TRINITY_DLL_DECL boss_high_inquisitor_fairbanksAI : public ScriptedAI
if (Sleep_Timer <= diff) if (Sleep_Timer <= diff)
{ {
if (Unit *pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO,0)) if (Unit *pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO,0))
DoCast(pTarget,SPELL_SLEEP); DoCast(pTarget, SPELL_SLEEP);
Sleep_Timer = 30000; Sleep_Timer = 30000;
} else Sleep_Timer -= diff; } else Sleep_Timer -= diff;
@@ -93,7 +93,7 @@ struct TRINITY_DLL_DECL boss_high_inquisitor_fairbanksAI : public ScriptedAI
//PowerWordShield_Timer //PowerWordShield_Timer
if (!PowerWordShield && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 25) if (!PowerWordShield && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 25)
{ {
DoCast(m_creature,SPELL_POWERWORDSHIELD); DoCast(m_creature, SPELL_POWERWORDSHIELD);
PowerWordShield = true; PowerWordShield = true;
} }
@@ -109,7 +109,7 @@ struct TRINITY_DLL_DECL boss_high_inquisitor_fairbanksAI : public ScriptedAI
//CurseOfBlood_Timer //CurseOfBlood_Timer
if (CurseOfBlood_Timer <= diff) if (CurseOfBlood_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CURSEOFBLOOD); DoCast(m_creature->getVictim(), SPELL_CURSEOFBLOOD);
CurseOfBlood_Timer = 25000; CurseOfBlood_Timer = 25000;
} else CurseOfBlood_Timer -= diff; } else CurseOfBlood_Timer -= diff;
@@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL boss_houndmaster_lokseyAI : public ScriptedAI
if (BloodLust_Timer <= diff) if (BloodLust_Timer <= diff)
{ {
DoCast(m_creature,SPELL_BLOODLUST); DoCast(m_creature, SPELL_BLOODLUST);
BloodLust_Timer = 20000; BloodLust_Timer = 20000;
} else BloodLust_Timer -= diff; } else BloodLust_Timer -= diff;
@@ -94,8 +94,8 @@ struct TRINITY_DLL_DECL boss_interrogator_vishasAI : public ScriptedAI
//ShadowWordPain_Timer //ShadowWordPain_Timer
if (ShadowWordPain_Timer <= diff) if (ShadowWordPain_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SHADOWWORDPAIN); DoCast(m_creature->getVictim(), SPELL_SHADOWWORDPAIN);
ShadowWordPain_Timer = 5000 + rand()%10000;; ShadowWordPain_Timer = 5000 + rand()%10000;
} else ShadowWordPain_Timer -= diff; } else ShadowWordPain_Timer -= diff;
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
@@ -98,7 +98,7 @@ struct TRINITY_DLL_DECL boss_scarlet_commander_mograineAI : public ScriptedAI
void EnterCombat(Unit* pWho) void EnterCombat(Unit* pWho)
{ {
DoScriptText(SAY_MO_AGGRO, m_creature); DoScriptText(SAY_MO_AGGRO, m_creature);
DoCast(m_creature,SPELL_RETRIBUTIONAURA); DoCast(m_creature, SPELL_RETRIBUTIONAURA);
m_creature->CallForHelp(VISIBLE_RANGE); m_creature->CallForHelp(VISIBLE_RANGE);
} }
@@ -189,14 +189,14 @@ struct TRINITY_DLL_DECL boss_scarlet_commander_mograineAI : public ScriptedAI
//m_uiCrusaderStrike_Timer //m_uiCrusaderStrike_Timer
if (m_uiCrusaderStrike_Timer <= uiDiff) if (m_uiCrusaderStrike_Timer <= uiDiff)
{ {
DoCast(m_creature->getVictim(),SPELL_CRUSADERSTRIKE); DoCast(m_creature->getVictim(), SPELL_CRUSADERSTRIKE);
m_uiCrusaderStrike_Timer = 10000; m_uiCrusaderStrike_Timer = 10000;
} else m_uiCrusaderStrike_Timer -= uiDiff; } else m_uiCrusaderStrike_Timer -= uiDiff;
//m_uiHammerOfJustice_Timer //m_uiHammerOfJustice_Timer
if (m_uiHammerOfJustice_Timer <= uiDiff) if (m_uiHammerOfJustice_Timer <= uiDiff)
{ {
DoCast(m_creature->getVictim(),SPELL_HAMMEROFJUSTICE); DoCast(m_creature->getVictim(), SPELL_HAMMEROFJUSTICE);
m_uiHammerOfJustice_Timer = 60000; m_uiHammerOfJustice_Timer = 60000;
} else m_uiHammerOfJustice_Timer -= uiDiff; } else m_uiHammerOfJustice_Timer -= uiDiff;
@@ -317,14 +317,14 @@ struct TRINITY_DLL_DECL boss_high_inquisitor_whitemaneAI : public ScriptedAI
//m_uiPowerWordShield_Timer //m_uiPowerWordShield_Timer
if (m_uiPowerWordShield_Timer <= uiDiff) if (m_uiPowerWordShield_Timer <= uiDiff)
{ {
DoCast(m_creature,SPELL_POWERWORDSHIELD); DoCast(m_creature, SPELL_POWERWORDSHIELD);
m_uiPowerWordShield_Timer = 15000; m_uiPowerWordShield_Timer = 15000;
} else m_uiPowerWordShield_Timer -= uiDiff; } else m_uiPowerWordShield_Timer -= uiDiff;
//m_uiHolySmite_Timer //m_uiHolySmite_Timer
if (m_uiHolySmite_Timer <= uiDiff) if (m_uiHolySmite_Timer <= uiDiff)
{ {
DoCast(m_creature->getVictim(),SPELL_HOLYSMITE); DoCast(m_creature->getVictim(), SPELL_HOLYSMITE);
m_uiHolySmite_Timer = 6000; m_uiHolySmite_Timer = 6000;
} else m_uiHolySmite_Timer -= uiDiff; } else m_uiHolySmite_Timer -= uiDiff;
@@ -57,28 +57,28 @@ struct TRINITY_DLL_DECL boss_scornAI : public ScriptedAI
//LichSlap_Timer //LichSlap_Timer
if (LichSlap_Timer <= diff) if (LichSlap_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_LICHSLAP); DoCast(m_creature->getVictim(), SPELL_LICHSLAP);
LichSlap_Timer = 45000; LichSlap_Timer = 45000;
} else LichSlap_Timer -= diff; } else LichSlap_Timer -= diff;
//FrostboltVolley_Timer //FrostboltVolley_Timer
if (FrostboltVolley_Timer <= diff) if (FrostboltVolley_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FROSTBOLTVOLLEY); DoCast(m_creature->getVictim(), SPELL_FROSTBOLTVOLLEY);
FrostboltVolley_Timer = 20000; FrostboltVolley_Timer = 20000;
} else FrostboltVolley_Timer -= diff; } else FrostboltVolley_Timer -= diff;
//MindFlay_Timer //MindFlay_Timer
if (MindFlay_Timer <= diff) if (MindFlay_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_MINDFLAY); DoCast(m_creature->getVictim(), SPELL_MINDFLAY);
MindFlay_Timer = 20000; MindFlay_Timer = 20000;
} else MindFlay_Timer -= diff; } else MindFlay_Timer -= diff;
//FrostNova_Timer //FrostNova_Timer
if (FrostNova_Timer <= diff) if (FrostNova_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FROSTNOVA); DoCast(m_creature->getVictim(), SPELL_FROSTNOVA);
FrostNova_Timer = 15000; FrostNova_Timer = 15000;
} else FrostNova_Timer -= diff; } else FrostNova_Timer -= diff;
@@ -90,21 +90,21 @@ struct TRINITY_DLL_DECL boss_darkmaster_gandlingAI : public ScriptedAI
//ArcaneMissiles_Timer //ArcaneMissiles_Timer
if (ArcaneMissiles_Timer <= diff) if (ArcaneMissiles_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_ARCANEMISSILES); DoCast(m_creature->getVictim(), SPELL_ARCANEMISSILES);
ArcaneMissiles_Timer = 8000; ArcaneMissiles_Timer = 8000;
} else ArcaneMissiles_Timer -= diff; } else ArcaneMissiles_Timer -= diff;
//ShadowShield_Timer //ShadowShield_Timer
if (ShadowShield_Timer <= diff) if (ShadowShield_Timer <= diff)
{ {
DoCast(m_creature,SPELL_SHADOWSHIELD); DoCast(m_creature, SPELL_SHADOWSHIELD);
ShadowShield_Timer = 14000 + rand()%14000; ShadowShield_Timer = 14000 + rand()%14000;
} else ShadowShield_Timer -= diff; } else ShadowShield_Timer -= diff;
//Curse_Timer //Curse_Timer
if (Curse_Timer <= diff) if (Curse_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CURSE); DoCast(m_creature->getVictim(), SPELL_CURSE);
Curse_Timer = 15000 + rand()%12000; Curse_Timer = 15000 + rand()%12000;
} else Curse_Timer -= diff; } else Curse_Timer -= diff;
@@ -34,9 +34,7 @@ struct TRINITY_DLL_DECL boss_death_knight_darkreaverAI : public ScriptedAI
void DamageTaken(Unit *done_by, uint32 &damage) void DamageTaken(Unit *done_by, uint32 &damage)
{ {
if (m_creature->GetHealth() <= damage) if (m_creature->GetHealth() <= damage)
{ DoCast(m_creature, 23261, true); //Summon Darkreaver's Fallen Charger
m_creature->CastSpell(m_creature,23261,true); //Summon Darkreaver's Fallen Charger
}
} }
void EnterCombat(Unit *who) void EnterCombat(Unit *who)
@@ -88,7 +88,7 @@ struct TRINITY_DLL_DECL boss_theolenkrastinovAI : public ScriptedAI
{ {
if (m_uiFrenzy_Timer <= uiDiff) if (m_uiFrenzy_Timer <= uiDiff)
{ {
DoCast(m_creature,SPELL_FRENZY); DoCast(m_creature, SPELL_FRENZY);
DoScriptText(EMOTE_GENERIC_FRENZY_KILL, m_creature); DoScriptText(EMOTE_GENERIC_FRENZY_KILL, m_creature);
m_uiFrenzy_Timer = 120000; m_uiFrenzy_Timer = 120000;
@@ -70,7 +70,7 @@ struct TRINITY_DLL_DECL boss_illuciabarovAI : public ScriptedAI
//CurseOfAgony_Timer //CurseOfAgony_Timer
if (CurseOfAgony_Timer <= diff) if (CurseOfAgony_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CURSEOFAGONY); DoCast(m_creature->getVictim(), SPELL_CURSEOFAGONY);
CurseOfAgony_Timer = 30000; CurseOfAgony_Timer = 30000;
} else CurseOfAgony_Timer -= diff; } else CurseOfAgony_Timer -= diff;
@@ -79,7 +79,7 @@ struct TRINITY_DLL_DECL boss_illuciabarovAI : public ScriptedAI
{ {
Unit *pTarget = NULL; Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0); pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget) DoCast(pTarget,SPELL_SHADOWSHOCK); if (pTarget) DoCast(pTarget, SPELL_SHADOWSHOCK);
ShadowShock_Timer = 12000; ShadowShock_Timer = 12000;
} else ShadowShock_Timer -= diff; } else ShadowShock_Timer -= diff;
@@ -87,14 +87,14 @@ struct TRINITY_DLL_DECL boss_illuciabarovAI : public ScriptedAI
//Silence_Timer //Silence_Timer
if (Silence_Timer <= diff) if (Silence_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SILENCE); DoCast(m_creature->getVictim(), SPELL_SILENCE);
Silence_Timer = 14000; Silence_Timer = 14000;
} else Silence_Timer -= diff; } else Silence_Timer -= diff;
//Fear_Timer //Fear_Timer
if (Fear_Timer <= diff) if (Fear_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FEAR); DoCast(m_creature->getVictim(), SPELL_FEAR);
Fear_Timer = 30000; Fear_Timer = 30000;
} else Fear_Timer -= diff; } else Fear_Timer -= diff;
@@ -77,7 +77,7 @@ struct TRINITY_DLL_DECL boss_instructormaliciaAI : public ScriptedAI
//CallOfGraves_Timer //CallOfGraves_Timer
if (CallOfGraves_Timer <= diff) if (CallOfGraves_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CALLOFGRAVES); DoCast(m_creature->getVictim(), SPELL_CALLOFGRAVES);
CallOfGraves_Timer = 65000; CallOfGraves_Timer = 65000;
} else CallOfGraves_Timer -= diff; } else CallOfGraves_Timer -= diff;
@@ -86,7 +86,7 @@ struct TRINITY_DLL_DECL boss_instructormaliciaAI : public ScriptedAI
{ {
Unit *pTarget = NULL; Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0); pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget) DoCast(pTarget,SPELL_CORRUPTION); if (pTarget) DoCast(pTarget, SPELL_CORRUPTION);
Corruption_Timer = 24000; Corruption_Timer = 24000;
} else Corruption_Timer -= diff; } else Corruption_Timer -= diff;
@@ -101,7 +101,7 @@ struct TRINITY_DLL_DECL boss_instructormaliciaAI : public ScriptedAI
//FlashHeal_Timer //FlashHeal_Timer
if (FlashHeal_Timer <= diff) if (FlashHeal_Timer <= diff)
{ {
DoCast(m_creature,SPELL_FLASHHEAL); DoCast(m_creature, SPELL_FLASHHEAL);
//5 Flashheals will be casted //5 Flashheals will be casted
if (FlashCounter < 2) if (FlashCounter < 2)
@@ -119,7 +119,7 @@ struct TRINITY_DLL_DECL boss_instructormaliciaAI : public ScriptedAI
//HealingTouch_Timer //HealingTouch_Timer
if (HealingTouch_Timer <= diff) if (HealingTouch_Timer <= diff)
{ {
DoCast(m_creature,SPELL_HEALINGTOUCH); DoCast(m_creature, SPELL_HEALINGTOUCH);
//3 Healingtouchs will be casted //3 Healingtouchs will be casted
if (HealingTouch_Timer < 2) if (HealingTouch_Timer < 2)
@@ -81,7 +81,7 @@ struct TRINITY_DLL_DECL boss_jandicebarovAI : public ScriptedAI
if (CurseOfBlood_Timer <= diff) if (CurseOfBlood_Timer <= diff)
{ {
//Cast //Cast
DoCast(m_creature->getVictim(),SPELL_CURSEOFBLOOD); DoCast(m_creature->getVictim(), SPELL_CURSEOFBLOOD);
//45 seconds //45 seconds
CurseOfBlood_Timer = 30000; CurseOfBlood_Timer = 30000;
@@ -117,7 +117,7 @@ struct TRINITY_DLL_DECL boss_jandicebarovAI : public ScriptedAI
// if (Illusion_Timer <= diff) // if (Illusion_Timer <= diff)
// { // {
// //Cast // //Cast
// DoCast(m_creature->getVictim(),SPELL_ILLUSION); // DoCast(m_creature->getVictim(), SPELL_ILLUSION);
// //
// //3 Illusion will be summoned // //3 Illusion will be summoned
// if (Illusioncounter < 3) // if (Illusioncounter < 3)
@@ -165,7 +165,7 @@ struct TRINITY_DLL_DECL mob_illusionofjandicebarovAI : public ScriptedAI
if (Cleave_Timer <= diff) if (Cleave_Timer <= diff)
{ {
//Cast //Cast
DoCast(m_creature->getVictim(),SPELL_CLEAVE); DoCast(m_creature->getVictim(), SPELL_CLEAVE);
//5-8 seconds //5-8 seconds
Cleave_Timer = 5000 + rand()%3000; Cleave_Timer = 5000 + rand()%3000;
@@ -69,14 +69,14 @@ struct TRINITY_DLL_DECL boss_kormokAI : public ScriptedAI
//ShadowVolley_Timer //ShadowVolley_Timer
if (ShadowVolley_Timer <= diff) if (ShadowVolley_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SHADOWBOLTVOLLEY); DoCast(m_creature->getVictim(), SPELL_SHADOWBOLTVOLLEY);
ShadowVolley_Timer = 15000; ShadowVolley_Timer = 15000;
} else ShadowVolley_Timer -= diff; } else ShadowVolley_Timer -= diff;
//BoneShield_Timer //BoneShield_Timer
if (BoneShield_Timer <= diff) if (BoneShield_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_BONESHIELD); DoCast(m_creature->getVictim(), SPELL_BONESHIELD);
BoneShield_Timer = 45000; BoneShield_Timer = 45000;
} else BoneShield_Timer -= diff; } else BoneShield_Timer -= diff;
@@ -68,7 +68,7 @@ struct TRINITY_DLL_DECL boss_lordalexeibarovAI : public ScriptedAI
{ {
Unit *pTarget = NULL; Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0); pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget) DoCast(pTarget,SPELL_IMMOLATE); if (pTarget) DoCast(pTarget, SPELL_IMMOLATE);
Immolate_Timer = 12000; Immolate_Timer = 12000;
} else Immolate_Timer -= diff; } else Immolate_Timer -= diff;
@@ -76,7 +76,7 @@ struct TRINITY_DLL_DECL boss_lordalexeibarovAI : public ScriptedAI
//VeilofShadow_Timer //VeilofShadow_Timer
if (VeilofShadow_Timer <= diff) if (VeilofShadow_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_VEILOFSHADOW); DoCast(m_creature->getVictim(), SPELL_VEILOFSHADOW);
VeilofShadow_Timer = 20000; VeilofShadow_Timer = 20000;
} else VeilofShadow_Timer -= diff; } else VeilofShadow_Timer -= diff;
@@ -70,28 +70,28 @@ struct TRINITY_DLL_DECL boss_lorekeeperpolkeltAI : public ScriptedAI
//VolatileInfection_Timer //VolatileInfection_Timer
if (VolatileInfection_Timer <= diff) if (VolatileInfection_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_VOLATILEINFECTION); DoCast(m_creature->getVictim(), SPELL_VOLATILEINFECTION);
VolatileInfection_Timer = 32000; VolatileInfection_Timer = 32000;
} else VolatileInfection_Timer -= diff; } else VolatileInfection_Timer -= diff;
//Darkplague_Timer //Darkplague_Timer
if (Darkplague_Timer <= diff) if (Darkplague_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_DARKPLAGUE); DoCast(m_creature->getVictim(), SPELL_DARKPLAGUE);
Darkplague_Timer = 8000; Darkplague_Timer = 8000;
} else Darkplague_Timer -= diff; } else Darkplague_Timer -= diff;
//CorrosiveAcid_Timer //CorrosiveAcid_Timer
if (CorrosiveAcid_Timer <= diff) if (CorrosiveAcid_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CORROSIVEACID); DoCast(m_creature->getVictim(), SPELL_CORROSIVEACID);
CorrosiveAcid_Timer = 25000; CorrosiveAcid_Timer = 25000;
} else CorrosiveAcid_Timer -= diff; } else CorrosiveAcid_Timer -= diff;
//NoxiousCatalyst_Timer //NoxiousCatalyst_Timer
if (NoxiousCatalyst_Timer <= diff) if (NoxiousCatalyst_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_NOXIOUSCATALYST); DoCast(m_creature->getVictim(), SPELL_NOXIOUSCATALYST);
NoxiousCatalyst_Timer = 38000; NoxiousCatalyst_Timer = 38000;
} else NoxiousCatalyst_Timer -= diff; } else NoxiousCatalyst_Timer -= diff;
@@ -50,12 +50,10 @@ struct TRINITY_DLL_DECL boss_rasfrostAI : public ScriptedAI
FrostVolley_Timer = 24000; FrostVolley_Timer = 24000;
Fear_Timer = 45000; Fear_Timer = 45000;
m_creature->CastSpell(m_creature,SPELL_ICEARMOR,true); DoCast(m_creature, SPELL_ICEARMOR, true);
} }
void EnterCombat(Unit *who) void EnterCombat(Unit *who){}
{
}
void UpdateAI(const uint32 diff) void UpdateAI(const uint32 diff)
{ {
@@ -72,9 +70,8 @@ struct TRINITY_DLL_DECL boss_rasfrostAI : public ScriptedAI
//Frostbolt_Timer //Frostbolt_Timer
if (Frostbolt_Timer <= diff) if (Frostbolt_Timer <= diff)
{ {
Unit *pTarget = NULL; if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0); DoCast(pTarget, SPELL_FROSTBOLT);
if (pTarget) DoCast(pTarget,SPELL_FROSTBOLT);
Frostbolt_Timer = 8000; Frostbolt_Timer = 8000;
} else Frostbolt_Timer -= diff; } else Frostbolt_Timer -= diff;
@@ -82,28 +79,28 @@ struct TRINITY_DLL_DECL boss_rasfrostAI : public ScriptedAI
//Freeze_Timer //Freeze_Timer
if (Freeze_Timer <= diff) if (Freeze_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FREEZE); DoCast(m_creature->getVictim(), SPELL_FREEZE);
Freeze_Timer = 24000; Freeze_Timer = 24000;
} else Freeze_Timer -= diff; } else Freeze_Timer -= diff;
//Fear_Timer //Fear_Timer
if (Fear_Timer <= diff) if (Fear_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FEAR); DoCast(m_creature->getVictim(), SPELL_FEAR);
Fear_Timer = 30000; Fear_Timer = 30000;
} else Fear_Timer -= diff; } else Fear_Timer -= diff;
//ChillNova_Timer //ChillNova_Timer
if (ChillNova_Timer <= diff) if (ChillNova_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CHILLNOVA); DoCast(m_creature->getVictim(), SPELL_CHILLNOVA);
ChillNova_Timer = 14000; ChillNova_Timer = 14000;
} else ChillNova_Timer -= diff; } else ChillNova_Timer -= diff;
//FrostVolley_Timer //FrostVolley_Timer
if (FrostVolley_Timer <= diff) if (FrostVolley_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_FROSTVOLLEY); DoCast(m_creature->getVictim(), SPELL_FROSTVOLLEY);
FrostVolley_Timer = 15000; FrostVolley_Timer = 15000;
} else FrostVolley_Timer -= diff; } else FrostVolley_Timer -= diff;
@@ -72,28 +72,28 @@ struct TRINITY_DLL_DECL boss_theravenianAI : public ScriptedAI
//Trample_Timer //Trample_Timer
if (Trample_Timer <= diff) if (Trample_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_TRAMPLE); DoCast(m_creature->getVictim(), SPELL_TRAMPLE);
Trample_Timer = 10000; Trample_Timer = 10000;
} else Trample_Timer -= diff; } else Trample_Timer -= diff;
//Cleave_Timer //Cleave_Timer
if (Cleave_Timer <= diff) if (Cleave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CLEAVE); DoCast(m_creature->getVictim(), SPELL_CLEAVE);
Cleave_Timer = 7000; Cleave_Timer = 7000;
} else Cleave_Timer -= diff; } else Cleave_Timer -= diff;
//SunderingCleave_Timer //SunderingCleave_Timer
if (SunderingCleave_Timer <= diff) if (SunderingCleave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_SUNDERINCLEAVE); DoCast(m_creature->getVictim(), SPELL_SUNDERINCLEAVE);
SunderingCleave_Timer = 20000; SunderingCleave_Timer = 20000;
} else SunderingCleave_Timer -= diff; } else SunderingCleave_Timer -= diff;
//KnockAway_Timer //KnockAway_Timer
if (KnockAway_Timer <= diff) if (KnockAway_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_KNOCKAWAY); DoCast(m_creature->getVictim(), SPELL_KNOCKAWAY);
KnockAway_Timer = 12000; KnockAway_Timer = 12000;
} else KnockAway_Timer -= diff; } else KnockAway_Timer -= diff;
@@ -78,7 +78,7 @@ struct TRINITY_DLL_DECL npc_blood_knight_stillbladeAI : public ScriptedAI
(Hitter->GetTypeId() == TYPEID_PLAYER) && (CAST_PLR(Hitter)->IsActiveQuest(QUEST_REDEEMING_THE_DEAD))) (Hitter->GetTypeId() == TYPEID_PLAYER) && (CAST_PLR(Hitter)->IsActiveQuest(QUEST_REDEEMING_THE_DEAD)))
{ {
CAST_PLR(Hitter)->AreaExploredOrEventHappens(QUEST_REDEEMING_THE_DEAD); CAST_PLR(Hitter)->AreaExploredOrEventHappens(QUEST_REDEEMING_THE_DEAD);
DoCast(m_creature,SPELL_REVIVE_SELF); DoCast(m_creature, SPELL_REVIVE_SELF);
m_creature->SetStandState(UNIT_STAND_STATE_STAND); m_creature->SetStandState(UNIT_STAND_STATE_STAND);
m_creature->SetUInt32Value(UNIT_DYNAMIC_FLAGS, 0); m_creature->SetUInt32Value(UNIT_DYNAMIC_FLAGS, 0);
//m_creature->RemoveAllAuras(); //m_creature->RemoveAllAuras();
@@ -130,7 +130,7 @@ struct TRINITY_DLL_DECL boss_baron_rivendareAI : public ScriptedAI
if (ShadowBolt_Timer <= diff) if (ShadowBolt_Timer <= diff)
{ {
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
DoCast(m_creature->getVictim(),SPELL_SHADOWBOLT); DoCast(m_creature->getVictim(), SPELL_SHADOWBOLT);
ShadowBolt_Timer = 10000; ShadowBolt_Timer = 10000;
} else ShadowBolt_Timer -= diff; } else ShadowBolt_Timer -= diff;
@@ -138,7 +138,7 @@ struct TRINITY_DLL_DECL boss_baron_rivendareAI : public ScriptedAI
//Cleave //Cleave
if (Cleave_Timer <= diff) if (Cleave_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CLEAVE); DoCast(m_creature->getVictim(), SPELL_CLEAVE);
//13 seconds until we should cast this again //13 seconds until we should cast this again
Cleave_Timer = 7000 + (rand()%10000); Cleave_Timer = 7000 + (rand()%10000);
} else Cleave_Timer -= diff; } else Cleave_Timer -= diff;
@@ -146,14 +146,14 @@ struct TRINITY_DLL_DECL boss_baron_rivendareAI : public ScriptedAI
//MortalStrike //MortalStrike
if (MortalStrike_Timer <= diff) if (MortalStrike_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_MORTALSTRIKE); DoCast(m_creature->getVictim(), SPELL_MORTALSTRIKE);
MortalStrike_Timer = 10000 + (rand()%15000); MortalStrike_Timer = 10000 + (rand()%15000);
} else MortalStrike_Timer -= diff; } else MortalStrike_Timer -= diff;
//RaiseDead //RaiseDead
// if (RaiseDead_Timer <= diff) // if (RaiseDead_Timer <= diff)
// { // {
// DoCast(m_creature,SPELL_RAISEDEAD); // DoCast(m_creature, SPELL_RAISEDEAD);
// RaiseDead_Timer = 45000; // RaiseDead_Timer = 45000;
// } else RaiseDead_Timer -= diff; // } else RaiseDead_Timer -= diff;
@@ -70,7 +70,7 @@ struct TRINITY_DLL_DECL boss_baroness_anastariAI : public ScriptedAI
if (BansheeWail_Timer <= diff) if (BansheeWail_Timer <= diff)
{ {
if (rand()%100 < 95) if (rand()%100 < 95)
DoCast(m_creature->getVictim(),SPELL_BANSHEEWAIL); DoCast(m_creature->getVictim(), SPELL_BANSHEEWAIL);
//4 seconds until we should cast this again //4 seconds until we should cast this again
BansheeWail_Timer = 4000; BansheeWail_Timer = 4000;
} else BansheeWail_Timer -= diff; } else BansheeWail_Timer -= diff;
@@ -79,7 +79,7 @@ struct TRINITY_DLL_DECL boss_baroness_anastariAI : public ScriptedAI
if (BansheeCurse_Timer <= diff) if (BansheeCurse_Timer <= diff)
{ {
if (rand()%100 < 75) if (rand()%100 < 75)
DoCast(m_creature->getVictim(),SPELL_BANSHEECURSE); DoCast(m_creature->getVictim(), SPELL_BANSHEECURSE);
//18 seconds until we should cast this again //18 seconds until we should cast this again
BansheeCurse_Timer = 18000; BansheeCurse_Timer = 18000;
} else BansheeCurse_Timer -= diff; } else BansheeCurse_Timer -= diff;
@@ -88,7 +88,7 @@ struct TRINITY_DLL_DECL boss_baroness_anastariAI : public ScriptedAI
if (Silence_Timer <= diff) if (Silence_Timer <= diff)
{ {
if (rand()%100 < 80) if (rand()%100 < 80)
DoCast(m_creature->getVictim(),SPELL_SILENCE); DoCast(m_creature->getVictim(), SPELL_SILENCE);
//13 seconds until we should cast this again //13 seconds until we should cast this again
Silence_Timer = 13000; Silence_Timer = 13000;
} else Silence_Timer -= diff; } else Silence_Timer -= diff;
@@ -101,7 +101,7 @@ struct TRINITY_DLL_DECL boss_baroness_anastariAI : public ScriptedAI
{ {
Unit *pTarget = NULL; Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0); pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget)DoCast(pTarget,SPELL_POSSESS); if (pTarget)DoCast(pTarget, SPELL_POSSESS);
} }
//50 seconds until we should cast this again //50 seconds until we should cast this again
Possess_Timer = 50000; Possess_Timer = 50000;
@@ -118,7 +118,7 @@ struct TRINITY_DLL_DECL boss_cannon_master_willeyAI : public ScriptedAI
//Cast //Cast
if (rand()%100 < 90) //90% chance to cast if (rand()%100 < 90) //90% chance to cast
{ {
DoCast(m_creature->getVictim(),SPELL_PUMMEL); DoCast(m_creature->getVictim(), SPELL_PUMMEL);
} }
//12 seconds until we should cast this again //12 seconds until we should cast this again
Pummel_Timer = 12000; Pummel_Timer = 12000;
@@ -130,7 +130,7 @@ struct TRINITY_DLL_DECL boss_cannon_master_willeyAI : public ScriptedAI
//Cast //Cast
if (rand()%100 < 80) //80% chance to cast if (rand()%100 < 80) //80% chance to cast
{ {
DoCast(m_creature->getVictim(),SPELL_KNOCKAWAY); DoCast(m_creature->getVictim(), SPELL_KNOCKAWAY);
} }
//14 seconds until we should cast this again //14 seconds until we should cast this again
KnockAway_Timer = 14000; KnockAway_Timer = 14000;
@@ -140,7 +140,7 @@ struct TRINITY_DLL_DECL boss_cannon_master_willeyAI : public ScriptedAI
if (Shoot_Timer <= diff) if (Shoot_Timer <= diff)
{ {
//Cast //Cast
DoCast(m_creature->getVictim(),SPELL_SHOOT); DoCast(m_creature->getVictim(), SPELL_SHOOT);
//1 seconds until we should cast this again //1 seconds until we should cast this again
Shoot_Timer = 1000; Shoot_Timer = 1000;
} else Shoot_Timer -= diff; } else Shoot_Timer -= diff;
@@ -118,28 +118,28 @@ struct TRINITY_DLL_DECL boss_dathrohan_balnazzarAI : public ScriptedAI
//MindBlast //MindBlast
if (m_uiMindBlast_Timer <= uiDiff) if (m_uiMindBlast_Timer <= uiDiff)
{ {
DoCast(m_creature->getVictim(),SPELL_MINDBLAST); DoCast(m_creature->getVictim(), SPELL_MINDBLAST);
m_uiMindBlast_Timer = 15000 + rand()%5000; m_uiMindBlast_Timer = 15000 + rand()%5000;
} else m_uiMindBlast_Timer -= uiDiff; } else m_uiMindBlast_Timer -= uiDiff;
//CrusadersHammer //CrusadersHammer
if (m_uiCrusadersHammer_Timer <= uiDiff) if (m_uiCrusadersHammer_Timer <= uiDiff)
{ {
DoCast(m_creature->getVictim(),SPELL_CRUSADERSHAMMER); DoCast(m_creature->getVictim(), SPELL_CRUSADERSHAMMER);
m_uiCrusadersHammer_Timer = 12000; m_uiCrusadersHammer_Timer = 12000;
} else m_uiCrusadersHammer_Timer -= uiDiff; } else m_uiCrusadersHammer_Timer -= uiDiff;
//CrusaderStrike //CrusaderStrike
if (m_uiCrusaderStrike_Timer <= uiDiff) if (m_uiCrusaderStrike_Timer <= uiDiff)
{ {
DoCast(m_creature->getVictim(),SPELL_CRUSADERSTRIKE); DoCast(m_creature->getVictim(), SPELL_CRUSADERSTRIKE);
m_uiCrusaderStrike_Timer = 15000; m_uiCrusaderStrike_Timer = 15000;
} else m_uiCrusaderStrike_Timer -= uiDiff; } else m_uiCrusaderStrike_Timer -= uiDiff;
//HolyStrike //HolyStrike
if (m_uiHolyStrike_Timer <= uiDiff) if (m_uiHolyStrike_Timer <= uiDiff)
{ {
DoCast(m_creature->getVictim(),SPELL_HOLYSTRIKE); DoCast(m_creature->getVictim(), SPELL_HOLYSTRIKE);
m_uiHolyStrike_Timer = 15000; m_uiHolyStrike_Timer = 15000;
} else m_uiHolyStrike_Timer -= uiDiff; } else m_uiHolyStrike_Timer -= uiDiff;
@@ -150,7 +150,7 @@ struct TRINITY_DLL_DECL boss_dathrohan_balnazzarAI : public ScriptedAI
m_creature->InterruptNonMeleeSpells(false); m_creature->InterruptNonMeleeSpells(false);
//restore hp, mana and stun //restore hp, mana and stun
DoCast(m_creature,SPELL_BALNAZZARTRANSFORM); DoCast(m_creature, SPELL_BALNAZZARTRANSFORM);
m_creature->UpdateEntry(NPC_BALNAZZAR); m_creature->UpdateEntry(NPC_BALNAZZAR);
m_bTransformed = true; m_bTransformed = true;
} }
@@ -160,14 +160,14 @@ struct TRINITY_DLL_DECL boss_dathrohan_balnazzarAI : public ScriptedAI
//MindBlast //MindBlast
if (m_uiMindBlast_Timer <= uiDiff) if (m_uiMindBlast_Timer <= uiDiff)
{ {
DoCast(m_creature->getVictim(),SPELL_MINDBLAST); DoCast(m_creature->getVictim(), SPELL_MINDBLAST);
m_uiMindBlast_Timer = 15000 + rand()%5000; m_uiMindBlast_Timer = 15000 + rand()%5000;
} else m_uiMindBlast_Timer -= uiDiff; } else m_uiMindBlast_Timer -= uiDiff;
//ShadowShock //ShadowShock
if (m_uiShadowShock_Timer <= uiDiff) if (m_uiShadowShock_Timer <= uiDiff)
{ {
DoCast(m_creature->getVictim(),SPELL_SHADOWSHOCK); DoCast(m_creature->getVictim(), SPELL_SHADOWSHOCK);
m_uiShadowShock_Timer = 11000; m_uiShadowShock_Timer = 11000;
} else m_uiShadowShock_Timer -= uiDiff; } else m_uiShadowShock_Timer -= uiDiff;
@@ -175,7 +175,7 @@ struct TRINITY_DLL_DECL boss_dathrohan_balnazzarAI : public ScriptedAI
if (m_uiPsychicScream_Timer <= uiDiff) if (m_uiPsychicScream_Timer <= uiDiff)
{ {
if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM,0)) if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(pTarget,SPELL_PSYCHICSCREAM); DoCast(pTarget, SPELL_PSYCHICSCREAM);
m_uiPsychicScream_Timer = 20000; m_uiPsychicScream_Timer = 20000;
} else m_uiPsychicScream_Timer -= uiDiff; } else m_uiPsychicScream_Timer -= uiDiff;
@@ -184,7 +184,7 @@ struct TRINITY_DLL_DECL boss_dathrohan_balnazzarAI : public ScriptedAI
if (m_uiDeepSleep_Timer <= uiDiff) if (m_uiDeepSleep_Timer <= uiDiff)
{ {
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0)) if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(pTarget,SPELL_SLEEP); DoCast(pTarget, SPELL_SLEEP);
m_uiDeepSleep_Timer = 15000; m_uiDeepSleep_Timer = 15000;
} else m_uiDeepSleep_Timer -= uiDiff; } else m_uiDeepSleep_Timer -= uiDiff;
@@ -192,7 +192,7 @@ struct TRINITY_DLL_DECL boss_dathrohan_balnazzarAI : public ScriptedAI
//MindControl //MindControl
if (m_uiMindControl_Timer <= uiDiff) if (m_uiMindControl_Timer <= uiDiff)
{ {
DoCast(m_creature->getVictim(),SPELL_MINDCONTROL); DoCast(m_creature->getVictim(), SPELL_MINDCONTROL);
m_uiMindControl_Timer = 15000; m_uiMindControl_Timer = 15000;
} else m_uiMindControl_Timer -= uiDiff; } else m_uiMindControl_Timer -= uiDiff;
} }
@@ -85,27 +85,27 @@ struct TRINITY_DLL_DECL boss_magistrate_barthilasAI : public ScriptedAI
return; return;
++AngerCount; ++AngerCount;
m_creature->CastSpell(m_creature,SPELL_FURIOUS_ANGER,false); DoCast(m_creature, SPELL_FURIOUS_ANGER, false);
} else FuriousAnger_Timer -= diff; } else FuriousAnger_Timer -= diff;
//DrainingBlow //DrainingBlow
if (DrainingBlow_Timer <= diff) if (DrainingBlow_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_DRAININGBLOW); DoCast(m_creature->getVictim(), SPELL_DRAININGBLOW);
DrainingBlow_Timer = 15000; DrainingBlow_Timer = 15000;
} else DrainingBlow_Timer -= diff; } else DrainingBlow_Timer -= diff;
//CrowdPummel //CrowdPummel
if (CrowdPummel_Timer <= diff) if (CrowdPummel_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CROWDPUMMEL); DoCast(m_creature->getVictim(), SPELL_CROWDPUMMEL);
CrowdPummel_Timer = 15000; CrowdPummel_Timer = 15000;
} else CrowdPummel_Timer -= diff; } else CrowdPummel_Timer -= diff;
//MightyBlow //MightyBlow
if (MightyBlow_Timer <= diff) if (MightyBlow_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_MIGHTYBLOW); DoCast(m_creature->getVictim(), SPELL_MIGHTYBLOW);
MightyBlow_Timer = 20000; MightyBlow_Timer = 20000;
} else MightyBlow_Timer -= diff; } else MightyBlow_Timer -= diff;
@@ -69,7 +69,7 @@ struct TRINITY_DLL_DECL boss_maleki_the_pallidAI : public ScriptedAI
if (Frostbolt_Timer <= diff) if (Frostbolt_Timer <= diff)
{ {
if (rand()%100 < 90) if (rand()%100 < 90)
DoCast(m_creature->getVictim(),SPELL_FROSTBOLT); DoCast(m_creature->getVictim(), SPELL_FROSTBOLT);
Frostbolt_Timer = 3500; Frostbolt_Timer = 3500;
} else Frostbolt_Timer -= diff; } else Frostbolt_Timer -= diff;
@@ -77,7 +77,7 @@ struct TRINITY_DLL_DECL boss_maleki_the_pallidAI : public ScriptedAI
if (IceTomb_Timer <= diff) if (IceTomb_Timer <= diff)
{ {
if (rand()%100 < 65) if (rand()%100 < 65)
DoCast(m_creature->getVictim(),SPELL_ICETOMB); DoCast(m_creature->getVictim(), SPELL_ICETOMB);
IceTomb_Timer = 28000; IceTomb_Timer = 28000;
} else IceTomb_Timer -= diff; } else IceTomb_Timer -= diff;
@@ -85,7 +85,7 @@ struct TRINITY_DLL_DECL boss_maleki_the_pallidAI : public ScriptedAI
if (DrainLife_Timer <= diff) if (DrainLife_Timer <= diff)
{ {
if (rand()%100 < 55) if (rand()%100 < 55)
DoCast(m_creature->getVictim(),SPELL_DRAINLIFE); DoCast(m_creature->getVictim(), SPELL_DRAINLIFE);
DrainLife_Timer = 31000; DrainLife_Timer = 31000;
} else DrainLife_Timer -= diff; } else DrainLife_Timer -= diff;
@@ -75,7 +75,7 @@ struct TRINITY_DLL_DECL boss_nerubenkanAI : public ScriptedAI
//EncasingWebs //EncasingWebs
if (EncasingWebs_Timer <= diff) if (EncasingWebs_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_ENCASINGWEBS); DoCast(m_creature->getVictim(), SPELL_ENCASINGWEBS);
EncasingWebs_Timer = 30000; EncasingWebs_Timer = 30000;
} else EncasingWebs_Timer -= diff; } else EncasingWebs_Timer -= diff;
@@ -83,14 +83,14 @@ struct TRINITY_DLL_DECL boss_nerubenkanAI : public ScriptedAI
if (PierceArmor_Timer <= diff) if (PierceArmor_Timer <= diff)
{ {
if (urand(0,3) < 2) if (urand(0,3) < 2)
DoCast(m_creature->getVictim(),SPELL_PIERCEARMOR); DoCast(m_creature->getVictim(), SPELL_PIERCEARMOR);
PierceArmor_Timer = 35000; PierceArmor_Timer = 35000;
} else PierceArmor_Timer -= diff; } else PierceArmor_Timer -= diff;
//CryptScarabs_Timer //CryptScarabs_Timer
if (CryptScarabs_Timer <= diff) if (CryptScarabs_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_CRYPT_SCARABS); DoCast(m_creature->getVictim(), SPELL_CRYPT_SCARABS);
CryptScarabs_Timer = 20000; CryptScarabs_Timer = 20000;
} else CryptScarabs_Timer -= diff; } else CryptScarabs_Timer -= diff;
@@ -71,7 +71,7 @@ struct TRINITY_DLL_DECL boss_postmaster_malownAI : public ScriptedAI
//Cast //Cast
if (rand()%100 < 65) //65% chance to cast if (rand()%100 < 65) //65% chance to cast
{ {
DoCast(m_creature->getVictim(),SPELL_WAILINGDEAD); DoCast(m_creature->getVictim(), SPELL_WAILINGDEAD);
} }
//19 seconds until we should cast this again //19 seconds until we should cast this again
WailingDead_Timer = 19000; WailingDead_Timer = 19000;
@@ -83,7 +83,7 @@ struct TRINITY_DLL_DECL boss_postmaster_malownAI : public ScriptedAI
//Cast //Cast
if (rand()%100 < 45) //45% chance to cast if (rand()%100 < 45) //45% chance to cast
{ {
DoCast(m_creature->getVictim(),SPELL_BACKHAND); DoCast(m_creature->getVictim(), SPELL_BACKHAND);
} }
//8 seconds until we should cast this again //8 seconds until we should cast this again
Backhand_Timer = 8000; Backhand_Timer = 8000;
@@ -95,7 +95,7 @@ struct TRINITY_DLL_DECL boss_postmaster_malownAI : public ScriptedAI
//Cast //Cast
if (rand()%100 < 3) //3% chance to cast if (rand()%100 < 3) //3% chance to cast
{ {
DoCast(m_creature->getVictim(),SPELL_CURSEOFWEAKNESS); DoCast(m_creature->getVictim(), SPELL_CURSEOFWEAKNESS);
} }
//20 seconds until we should cast this again //20 seconds until we should cast this again
CurseOfWeakness_Timer = 20000; CurseOfWeakness_Timer = 20000;
@@ -107,7 +107,7 @@ struct TRINITY_DLL_DECL boss_postmaster_malownAI : public ScriptedAI
//Cast //Cast
if (rand()%100 < 3) //3% chance to cast if (rand()%100 < 3) //3% chance to cast
{ {
DoCast(m_creature->getVictim(),SPELL_CURSEOFTONGUES); DoCast(m_creature->getVictim(), SPELL_CURSEOFTONGUES);
} }
//22 seconds until we should cast this again //22 seconds until we should cast this again
CurseOfTongues_Timer = 22000; CurseOfTongues_Timer = 22000;
@@ -119,7 +119,7 @@ struct TRINITY_DLL_DECL boss_postmaster_malownAI : public ScriptedAI
//Cast //Cast
if (rand()%100 < 5) //5% chance to cast if (rand()%100 < 5) //5% chance to cast
{ {
DoCast(m_creature->getVictim(),SPELL_CALLOFTHEGRAVE); DoCast(m_creature->getVictim(), SPELL_CALLOFTHEGRAVE);
} }
//25 seconds until we should cast this again //25 seconds until we should cast this again
CallOfTheGrave_Timer = 25000; CallOfTheGrave_Timer = 25000;
@@ -72,14 +72,14 @@ struct TRINITY_DLL_DECL boss_ramstein_the_gorgerAI : public ScriptedAI
//Trample //Trample
if (Trample_Timer <= diff) if (Trample_Timer <= diff)
{ {
DoCast(m_creature,SPELL_TRAMPLE); DoCast(m_creature, SPELL_TRAMPLE);
Trample_Timer = 7000; Trample_Timer = 7000;
} else Trample_Timer -= diff; } else Trample_Timer -= diff;
//Knockout //Knockout
if (Knockout_Timer <= diff) if (Knockout_Timer <= diff)
{ {
DoCast(m_creature->getVictim(),SPELL_KNOCKOUT); DoCast(m_creature->getVictim(), SPELL_KNOCKOUT);
Knockout_Timer = 10000; Knockout_Timer = 10000;
} else Knockout_Timer -= diff; } else Knockout_Timer -= diff;
@@ -59,7 +59,7 @@ struct TRINITY_DLL_DECL boss_timmy_the_cruelAI : public ScriptedAI
if (RavenousClaw_Timer <= diff) if (RavenousClaw_Timer <= diff)
{ {
//Cast //Cast
DoCast(m_creature->getVictim(),SPELL_RAVENOUSCLAW); DoCast(m_creature->getVictim(), SPELL_RAVENOUSCLAW);
//15 seconds until we should cast this again //15 seconds until we should cast this again
RavenousClaw_Timer = 15000; RavenousClaw_Timer = 15000;
} else RavenousClaw_Timer -= diff; } else RavenousClaw_Timer -= diff;
@@ -230,7 +230,7 @@ struct TRINITY_DLL_DECL mobs_spectral_ghostly_citizenAI : public ScriptedAI
break; break;
case TEXTEMOTE_RUDE: case TEXTEMOTE_RUDE:
if (m_creature->IsWithinDistInMap(pPlayer, 5)) if (m_creature->IsWithinDistInMap(pPlayer, 5))
m_creature->CastSpell(pPlayer,SPELL_SLAP,false); DoCast(pPlayer, SPELL_SLAP, false);
else else
m_creature->HandleEmoteCommand(EMOTE_ONESHOT_RUDE); m_creature->HandleEmoteCommand(EMOTE_ONESHOT_RUDE);
break; break;
@@ -104,7 +104,7 @@ struct TRINITY_DLL_DECL boss_brutallusAI : public ScriptedAI
m_creature->CastSpell(m_creature, SPELL_DUAL_WIELD, true); DoCast(m_creature, SPELL_DUAL_WIELD, true);
if (pInstance) if (pInstance)
pInstance->SetData(DATA_BRUTALLUS_EVENT, NOT_STARTED); pInstance->SetData(DATA_BRUTALLUS_EVENT, NOT_STARTED);
@@ -235,7 +235,7 @@ struct TRINITY_DLL_DECL boss_sacrolashAI : public ScriptedAI
if (Temp && Temp->isDead()) if (Temp && Temp->isDead())
{ {
DoScriptText(YELL_SISTER_ALYTHESS_DEAD, m_creature); DoScriptText(YELL_SISTER_ALYTHESS_DEAD, m_creature);
DoCast(m_creature,SPELL_EMPOWER); DoCast(m_creature, SPELL_EMPOWER);
m_creature->InterruptSpell(CURRENT_GENERIC_SPELL); m_creature->InterruptSpell(CURRENT_GENERIC_SPELL);
SisterDeath = true; SisterDeath = true;
} }
@@ -324,7 +324,7 @@ struct TRINITY_DLL_DECL boss_sacrolashAI : public ScriptedAI
{ {
m_creature->InterruptSpell(CURRENT_GENERIC_SPELL); m_creature->InterruptSpell(CURRENT_GENERIC_SPELL);
DoScriptText(YELL_ENRAGE, m_creature); DoScriptText(YELL_ENRAGE, m_creature);
DoCast(m_creature,SPELL_ENRAGE); DoCast(m_creature, SPELL_ENRAGE);
Enraged = true; Enraged = true;
} else EnrageTimer -= diff; } else EnrageTimer -= diff;
@@ -641,7 +641,7 @@ struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI
{ {
if (!m_creature->IsNonMeleeSpellCasted(false)) if (!m_creature->IsNonMeleeSpellCasted(false))
{ {
DoCast(m_creature, SPELL_PYROGENICS,true); DoCast(m_creature, SPELL_PYROGENICS, true);
PyrogenicsTimer = 15000; PyrogenicsTimer = 15000;
} }
} else PyrogenicsTimer -= diff; } else PyrogenicsTimer -= diff;
@@ -174,8 +174,8 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
{ {
m_creature->setActive(true); m_creature->setActive(true);
DoZoneInCombat(); DoZoneInCombat();
m_creature->CastSpell(m_creature, AURA_SUNWELL_RADIANCE, true); DoCast(m_creature, AURA_SUNWELL_RADIANCE, true);
m_creature->CastSpell(m_creature, AURA_NOXIOUS_FUMES, true); DoCast(m_creature, AURA_NOXIOUS_FUMES, true);
EnterPhase(PHASE_GROUND); EnterPhase(PHASE_GROUND);
if (pInstance) if (pInstance)
@@ -311,7 +311,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
{ {
Vapor->AI()->AttackStart(pTarget); Vapor->AI()->AttackStart(pTarget);
m_creature->InterruptNonMeleeSpells(false); m_creature->InterruptNonMeleeSpells(false);
m_creature->CastSpell(Vapor, SPELL_VAPOR_CHANNEL, false); // core bug DoCast(Vapor, SPELL_VAPOR_CHANNEL, false); // core bug
Vapor->CastSpell(Vapor, SPELL_VAPOR_TRIGGER, true); Vapor->CastSpell(Vapor, SPELL_VAPOR_TRIGGER, true);
} }
} }
@@ -325,7 +325,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
case 3: { case 3: {
DespawnSummons(MOB_VAPOR_TRAIL); DespawnSummons(MOB_VAPOR_TRAIL);
error_log("Summon Vapor case3"); error_log("Summon Vapor case3");
//m_creature->CastSpell(m_creature, SPELL_VAPOR_SELECT); need core support //DoCast(m_creature, SPELL_VAPOR_SELECT); need core support
Unit *pTarget; Unit *pTarget;
pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true); pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true);
if (!pTarget) pTarget = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_PLAYER_GUID) : 0); if (!pTarget) pTarget = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_PLAYER_GUID) : 0);
@@ -337,7 +337,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
{ {
Vapor->AI()->AttackStart(pTarget); Vapor->AI()->AttackStart(pTarget);
m_creature->InterruptNonMeleeSpells(false); m_creature->InterruptNonMeleeSpells(false);
m_creature->CastSpell(Vapor, SPELL_VAPOR_CHANNEL, false); // core bug DoCast(Vapor, SPELL_VAPOR_CHANNEL, false); // core bug
Vapor->CastSpell(Vapor, SPELL_VAPOR_TRIGGER, true); Vapor->CastSpell(Vapor, SPELL_VAPOR_TRIGGER, true);
} }
} }
@@ -377,7 +377,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
Timer[EVENT_FLIGHT_SEQUENCE] = 10000; Timer[EVENT_FLIGHT_SEQUENCE] = 10000;
break; break;
case 7: case 7:
m_creature->CastSpell(m_creature, SPELL_FOG_BREATH, true); DoCast(m_creature, SPELL_FOG_BREATH, true);
{ {
float x, y, z; float x, y, z;
m_creature->GetPosition(x, y, z); m_creature->GetPosition(x, y, z);
@@ -451,26 +451,26 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
{ {
case EVENT_BERSERK: case EVENT_BERSERK:
DoScriptText(YELL_BERSERK, m_creature); DoScriptText(YELL_BERSERK, m_creature);
m_creature->CastSpell(m_creature, SPELL_BERSERK, true); DoCast(m_creature, SPELL_BERSERK, true);
Timer[EVENT_BERSERK] = 10000; Timer[EVENT_BERSERK] = 10000;
break; break;
case EVENT_CLEAVE: case EVENT_CLEAVE:
m_creature->CastSpell(m_creature->getVictim(), SPELL_CLEAVE, false); DoCast(m_creature->getVictim(), SPELL_CLEAVE, false);
Timer[EVENT_CLEAVE] = 5000 + rand()%5 * 1000; Timer[EVENT_CLEAVE] = urand(5000,10000);
break; break;
case EVENT_CORROSION: case EVENT_CORROSION:
m_creature->CastSpell(m_creature->getVictim(), SPELL_CORROSION, false); DoCast(m_creature->getVictim(), SPELL_CORROSION, false);
Timer[EVENT_CORROSION] = 20000 + rand()%10 * 1000; Timer[EVENT_CORROSION] = urand(20000,30000);
break; break;
case EVENT_GAS_NOVA: case EVENT_GAS_NOVA:
m_creature->CastSpell(m_creature, SPELL_GAS_NOVA, false); DoCast(m_creature, SPELL_GAS_NOVA, false);
Timer[EVENT_GAS_NOVA] = 20000 + rand()%5 * 1000; Timer[EVENT_GAS_NOVA] = urand(20000,25000);
break; break;
case EVENT_ENCAPSULATE: case EVENT_ENCAPSULATE:
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true)) if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true))
{ {
m_creature->CastSpell(pTarget, SPELL_ENCAPSULATE_CHANNEL, false); DoCast(pTarget, SPELL_ENCAPSULATE_CHANNEL, false);
Timer[EVENT_ENCAPSULATE] = 25000 + rand()%5 * 1000; Timer[EVENT_ENCAPSULATE] = urand(25000,30000);
} }
break; break;
case EVENT_FLIGHT: case EVENT_FLIGHT:
@@ -488,7 +488,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
{ {
case EVENT_BERSERK: case EVENT_BERSERK:
DoScriptText(YELL_BERSERK, m_creature); DoScriptText(YELL_BERSERK, m_creature);
m_creature->CastSpell(m_creature, SPELL_BERSERK, true); DoCast(m_creature, SPELL_BERSERK, true);
Timer[EVENT_BERSERK] = 0; Timer[EVENT_BERSERK] = 0;
break; break;
case EVENT_FLIGHT_SEQUENCE: case EVENT_FLIGHT_SEQUENCE:
@@ -560,12 +560,13 @@ struct TRINITY_DLL_DECL mob_felmyst_vaporAI : public ScriptedAI
void EnterCombat(Unit* who) void EnterCombat(Unit* who)
{ {
DoZoneInCombat(); DoZoneInCombat();
//m_creature->CastSpell(m_creature, SPELL_VAPOR_FORCE, true); core bug //DoCast(m_creature, SPELL_VAPOR_FORCE, true); core bug
} }
void UpdateAI(const uint32 diff) void UpdateAI(const uint32 diff)
{ {
if (!m_creature->getVictim()) if (!m_creature->getVictim())
AttackStart(SelectUnit(SELECT_TARGET_RANDOM, 0)); if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
AttackStart(pTarget);
} }
}; };
@@ -574,7 +575,7 @@ struct TRINITY_DLL_DECL mob_felmyst_trailAI : public ScriptedAI
mob_felmyst_trailAI(Creature *c) : ScriptedAI(c) mob_felmyst_trailAI(Creature *c) : ScriptedAI(c)
{ {
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
m_creature->CastSpell(m_creature, SPELL_TRAIL_TRIGGER, true); DoCast(m_creature, SPELL_TRAIL_TRIGGER, true);
m_creature->SetUInt64Value(UNIT_FIELD_TARGET, m_creature->GetGUID()); m_creature->SetUInt64Value(UNIT_FIELD_TARGET, m_creature->GetGUID());
m_creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 0.01); // core bug m_creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 0.01); // core bug
} }
@@ -604,7 +604,7 @@ struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI
case TIMER_SOUL_FLAY: case TIMER_SOUL_FLAY:
if (!m_creature->IsNonMeleeSpellCasted(false)) if (!m_creature->IsNonMeleeSpellCasted(false))
{ {
m_creature->CastSpell(m_creature->getVictim(), SPELL_SOUL_FLAY, false); DoCast(m_creature->getVictim(), SPELL_SOUL_FLAY, false);
m_creature->getVictim()->CastSpell(m_creature->getVictim(), SPELL_SOUL_FLAY_SLOW, true); m_creature->getVictim()->CastSpell(m_creature->getVictim(), SPELL_SOUL_FLAY_SLOW, true);
Timer[TIMER_SOUL_FLAY] = 3500; Timer[TIMER_SOUL_FLAY] = 3500;
} }
@@ -1319,7 +1319,7 @@ struct TRINITY_DLL_DECL mob_sinster_reflectionAI : public ScriptedAI
} }
if (Timer[2] <= diff) if (Timer[2] <= diff)
{ {
DoCast(m_creature, SPELL_SR_RENEW, false); DoCast(m_creature, SPELL_SR_RENEW, false);
Timer[2] = 7000; Timer[2] = 7000;
} }
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();

Some files were not shown because too many files have changed in this diff Show More