*Even more excessive cleanup..

--HG--
branch : trunk
This commit is contained in:
maximius
2009-10-27 21:28:20 -07:00
parent a0c72a0a00
commit a81faea969
337 changed files with 4620 additions and 4835 deletions
+2 -2
View File
@@ -184,14 +184,14 @@ void DoScriptText(int32 iTextEntry, WorldObject* pSource, Unit* pTarget)
if (pTarget && pTarget->GetTypeId() == TYPEID_PLAYER)
pSource->MonsterWhisper(iTextEntry, pTarget->GetGUID());
else
error_log("TSCR: DoScriptText entry %i cannot whisper without target unit (TYPEID_PLAYER).", iTextEntry);
error_log("TSCR: DoScriptText entry %i cannot whisper without pTarget unit (TYPEID_PLAYER).", iTextEntry);
}break;
case CHAT_TYPE_BOSS_WHISPER:
{
if (pTarget && pTarget->GetTypeId() == TYPEID_PLAYER)
pSource->MonsterWhisper(iTextEntry, pTarget->GetGUID(), true);
else
error_log("TSCR: DoScriptText entry %i cannot whisper without target unit (TYPEID_PLAYER).", iTextEntry);
error_log("TSCR: DoScriptText entry %i cannot whisper without pTarget unit (TYPEID_PLAYER).", iTextEntry);
}break;
case CHAT_TYPE_ZONE_YELL:
pSource->MonsterYellToZone(iTextEntry, pData->uiLanguage, pTarget ? pTarget->GetGUID() : 0);
+1 -1
View File
@@ -87,7 +87,7 @@ struct Script
};
//Generic scripting text function
void DoScriptText(int32 textEntry, WorldObject* pSource, Unit* target = NULL);
void DoScriptText(int32 textEntry, WorldObject* pSource, Unit *pTarget = NULL);
#if COMPILER == COMPILER_GNU
#define FUNC_PTR(name,callconvention,returntype,parameters) typedef returntype(*name)parameters __attribute__ ((callconvention));
+28 -28
View File
@@ -121,33 +121,33 @@ void SimpleAI::KilledUnit(Unit *victim)
if (!Kill_Spell)
return;
Unit* target = NULL;
Unit *pTarget = NULL;
switch (Kill_Target_Type)
{
case CAST_SELF:
target = m_creature;
pTarget = m_creature;
break;
case CAST_HOSTILE_TARGET:
target = m_creature->getVictim();
pTarget = m_creature->getVictim();
break;
case CAST_HOSTILE_SECOND_AGGRO:
target = SelectUnit(SELECT_TARGET_TOPAGGRO,1);
pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO,1);
break;
case CAST_HOSTILE_LAST_AGGRO:
target = SelectUnit(SELECT_TARGET_BOTTOMAGGRO,0);
pTarget = SelectUnit(SELECT_TARGET_BOTTOMAGGRO,0);
break;
case CAST_HOSTILE_RANDOM:
target = SelectUnit(SELECT_TARGET_RANDOM,0);
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
break;
case CAST_KILLEDUNIT_VICTIM:
target = victim;
pTarget = victim;
break;
}
//Target is ok, cast a spell on it
if (target)
DoCast(target, Kill_Spell);
if (pTarget)
DoCast(pTarget, Kill_Spell);
}
void SimpleAI::DamageTaken(Unit *killer, uint32 &damage)
@@ -169,33 +169,33 @@ void SimpleAI::DamageTaken(Unit *killer, uint32 &damage)
if (!Death_Spell)
return;
Unit* target = NULL;
Unit *pTarget = NULL;
switch (Death_Target_Type)
{
case CAST_SELF:
target = m_creature;
pTarget = m_creature;
break;
case CAST_HOSTILE_TARGET:
target = m_creature->getVictim();
pTarget = m_creature->getVictim();
break;
case CAST_HOSTILE_SECOND_AGGRO:
target = SelectUnit(SELECT_TARGET_TOPAGGRO,1);
pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO,1);
break;
case CAST_HOSTILE_LAST_AGGRO:
target = SelectUnit(SELECT_TARGET_BOTTOMAGGRO,0);
pTarget = SelectUnit(SELECT_TARGET_BOTTOMAGGRO,0);
break;
case CAST_HOSTILE_RANDOM:
target = SelectUnit(SELECT_TARGET_RANDOM,0);
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
break;
case CAST_JUSTDIED_KILLER:
target = killer;
pTarget = killer;
break;
}
//Target is ok, cast a spell on it
if (target)
DoCast(target, Death_Spell);
if (pTarget)
DoCast(pTarget, Death_Spell);
}
void SimpleAI::UpdateAI(const uint32 diff)
@@ -220,34 +220,34 @@ void SimpleAI::UpdateAI(const uint32 diff)
//Check Current spell
if (!(Spell[i].InterruptPreviousCast && m_creature->IsNonMeleeSpellCasted(false)))
{
Unit* target = NULL;
Unit *pTarget = NULL;
switch (Spell[i].Cast_Target_Type)
{
case CAST_SELF:
target = m_creature;
pTarget = m_creature;
break;
case CAST_HOSTILE_TARGET:
target = m_creature->getVictim();
pTarget = m_creature->getVictim();
break;
case CAST_HOSTILE_SECOND_AGGRO:
target = SelectUnit(SELECT_TARGET_TOPAGGRO,1);
pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO,1);
break;
case CAST_HOSTILE_LAST_AGGRO:
target = SelectUnit(SELECT_TARGET_BOTTOMAGGRO,0);
pTarget = SelectUnit(SELECT_TARGET_BOTTOMAGGRO,0);
break;
case CAST_HOSTILE_RANDOM:
target = SelectUnit(SELECT_TARGET_RANDOM,0);
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
break;
}
//Target is ok, cast a spell on it and then do our random yell
if (target)
if (pTarget)
{
if (m_creature->IsNonMeleeSpellCasted(false))
m_creature->InterruptNonMeleeSpells(false);
DoCast(target, Spell[i].Spell_Id);
DoCast(pTarget, Spell[i].Spell_Id);
//Yell and sound use the same number so that you can make
//the Creature yell with the correct sound effect attached
@@ -255,7 +255,7 @@ void SimpleAI::UpdateAI(const uint32 diff)
//Random yell
if (Spell[i].TextId[random_text])
DoScriptText(Spell[i].TextId[random_text], m_creature, target);
DoScriptText(Spell[i].TextId[random_text], m_creature, pTarget);
//Random sound
if (Spell[i].Text_Sound[random_text])
@@ -269,7 +269,7 @@ void SimpleAI::UpdateAI(const uint32 diff)
Spell_Timer[i] = Spell[i].Cooldown + (rand() % Spell[i].CooldownRandomAddition);
else Spell_Timer[i] = Spell[i].Cooldown;
}else Spell_Timer[i] -= diff;
} else Spell_Timer[i] -= diff;
}
+2 -2
View File
@@ -8,10 +8,10 @@
enum CastTarget
{
CAST_SELF = 0, //Self cast
CAST_HOSTILE_TARGET, //Our current target (ie: highest aggro)
CAST_HOSTILE_TARGET, //Our current pTarget (ie: highest aggro)
CAST_HOSTILE_SECOND_AGGRO, //Second highest aggro (generaly used for cleaves and some special attacks)
CAST_HOSTILE_LAST_AGGRO, //Dead last on aggro (no idea what this could be used for)
CAST_HOSTILE_RANDOM, //Just any random target on our threat list
CAST_HOSTILE_RANDOM, //Just any random pTarget on our threat list
CAST_FRIENDLY_RANDOM, //NOT YET IMPLEMENTED
//Special cases
+5 -5
View File
@@ -164,7 +164,7 @@ Creature* ScriptedAI::DoSpawnCreature(uint32 uiId, float fX, float fY, float fZ,
return m_creature->SummonCreature(uiId, m_creature->GetPositionX()+fX, m_creature->GetPositionY()+fY, m_creature->GetPositionZ()+fZ, fAngle, (TempSummonType)uiType, uiDespawntime);
}
Unit* ScriptedAI::SelectUnit(SelectAggroTarget target, uint32 uiPosition)
Unit* ScriptedAI::SelectUnit(SelectAggroTarget pTarget, uint32 uiPosition)
{
//ThreatList m_threatlist;
std::list<HostilReference*>& threatlist = m_creature->getThreatManager().getThreatList();
@@ -174,7 +174,7 @@ Unit* ScriptedAI::SelectUnit(SelectAggroTarget target, uint32 uiPosition)
if (uiPosition >= threatlist.size() || !threatlist.size())
return NULL;
switch (target)
switch (pTarget)
{
case SELECT_TARGET_RANDOM:
advance (itr , uiPosition + (rand() % (threatlist.size() - uiPosition ) ));
@@ -197,7 +197,7 @@ Unit* ScriptedAI::SelectUnit(SelectAggroTarget target, uint32 uiPosition)
SpellEntry const* ScriptedAI::SelectSpell(Unit* pTarget, int32 uiSchool, int32 uiMechanic, SelectTargetType selectTargets, uint32 uiPowerCostMin, uint32 uiPowerCostMax, float fRangeMin, float fRangeMax, SelectEffect selectEffects)
{
//No target so we can't cast
//No pTarget so we can't cast
if (!pTarget)
return false;
@@ -264,7 +264,7 @@ SpellEntry const* ScriptedAI::SelectSpell(Unit* pTarget, int32 uiSchool, int32 u
if (fRangeMax && m_creature->GetSpellMaxRangeForTarget(pTarget, pTempRange) > fRangeMax)
continue;
//Check if our target is in range
//Check if our pTarget is in range
if (m_creature->IsWithinDistInMap(pTarget, m_creature->GetSpellMinRangeForTarget(pTarget, pTempRange)) || !m_creature->IsWithinDistInMap(pTarget, m_creature->GetSpellMaxRangeForTarget(pTarget, pTempRange)))
continue;
@@ -282,7 +282,7 @@ SpellEntry const* ScriptedAI::SelectSpell(Unit* pTarget, int32 uiSchool, int32 u
bool ScriptedAI::CanCast(Unit* pTarget, SpellEntry const* pSpell, bool bTriggered)
{
//No target so we can't cast
//No pTarget so we can't cast
if (!pTarget || !pSpell)
return false;
+3 -3
View File
@@ -49,7 +49,7 @@ struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI
//CreatureAI Functions
//*************
void AttackStartNoMove(Unit *target);
void AttackStartNoMove(Unit *pTarget);
// Called at any Damage from any attacker (before damage apply)
void DamageTaken(Unit* pDone_by, uint32& uiDamage) {}
@@ -73,7 +73,7 @@ struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI
void SpellHit(Unit* caster, const SpellEntry *spell) {}
// Called when spell hits a target
void SpellHitTarget(Unit* target, const SpellEntry *spell) {}
void SpellHitTarget(Unit *pTarget, const SpellEntry *spell) {}
//Called at waypoint reached or PointMovement end
void MovementInform(uint32 type, uint32 id){}
@@ -153,7 +153,7 @@ struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI
Creature* DoSpawnCreature(uint32 uiId, float fX, float fY, float fZ, float fAngle, uint32 uiType, uint32 uiDespawntime);
//Selects a unit from the creature's current aggro list
Unit* SelectUnit(SelectAggroTarget target, uint32 uiPosition);
Unit* SelectUnit(SelectAggroTarget pTarget, uint32 uiPosition);
bool HealthBelowPct(uint32 pct) const { return me->GetHealth() * 100 < m_creature->GetMaxHealth() * pct; }
@@ -260,7 +260,7 @@ struct TRINITY_DLL_DECL npc_grimstoneAI : public npc_escortAI
}
}
}
}else MobDeath_Timer -= diff;
} else MobDeath_Timer -= diff;
}
if (Event_Timer)
@@ -328,7 +328,7 @@ struct TRINITY_DLL_DECL npc_grimstoneAI : public npc_escortAI
break;
}
++EventPhase;
}else Event_Timer -= diff;
} else Event_Timer -= diff;
}
if (CanWalk)
@@ -395,7 +395,7 @@ struct TRINITY_DLL_DECL mob_phalanxAI : public ScriptedAI
{
DoCast(m_creature->getVictim(),SPELL_MIGHTYBLOW);
MightyBlow_Timer = 10000;
}else MightyBlow_Timer -= diff;
} else MightyBlow_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -1199,7 +1199,7 @@ struct TRINITY_DLL_DECL npc_rocknotAI : public npc_escortAI
DoGo(DATA_GO_BAR_KEG,0);
BreakKeg_Timer = 0;
BreakDoor_Timer = 1000;
}else BreakKeg_Timer -= diff;
} else BreakKeg_Timer -= diff;
}
if (BreakDoor_Timer)
@@ -1218,7 +1218,7 @@ struct TRINITY_DLL_DECL npc_rocknotAI : public npc_escortAI
pInstance->SetData(TYPE_BAR,DONE);
BreakDoor_Timer = 0;
}else BreakDoor_Timer -= diff;
} else BreakDoor_Timer -= diff;
}
npc_escortAI::UpdateAI(diff);
@@ -34,10 +34,6 @@ struct TRINITY_DLL_DECL boss_ambassador_flamelashAI : public ScriptedAI
uint32 FireBlast_Timer;
uint32 Spirit_Timer;
int Rand;
int RandX;
int RandY;
Creature* Summoned;
void Reset()
{
@@ -49,22 +45,8 @@ struct TRINITY_DLL_DECL boss_ambassador_flamelashAI : public ScriptedAI
void SummonSpirits(Unit* victim)
{
Rand = rand()%10;
switch (rand()%2)
{
case 0: RandX -= Rand; break;
case 1: RandX += Rand; break;
}
Rand = 0;
Rand = rand()%10;
switch (rand()%2)
{
case 0: RandY -= Rand; break;
case 1: RandY += Rand; break;
}
Summoned = DoSpawnCreature(9178, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000);
if (Summoned)
(Summoned->AI())->AttackStart(victim);
if (Creature *Spirit = DoSpawnCreature(9178, RAND(irand(0,-9),irand(0,9)), RAND(irand(0,-9),irand(0,9)), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000))
Spirit->AI()->AttackStart(victim);
}
void UpdateAI(const uint32 diff)
@@ -71,8 +71,8 @@ struct TRINITY_DLL_DECL boss_anubshiahAI : public ScriptedAI
//CurseOfTongues_Timer
if (CurseOfTongues_Timer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target,SPELL_CURSEOFTONGUES);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_CURSEOFTONGUES);
CurseOfTongues_Timer = 18000;
} else CurseOfTongues_Timer -= diff;
@@ -93,8 +93,8 @@ struct TRINITY_DLL_DECL boss_anubshiahAI : public ScriptedAI
//EnvelopingWeb_Timer
if (EnvelopingWeb_Timer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target,SPELL_ENVELOPINGWEB);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_ENVELOPINGWEB);
EnvelopingWeb_Timer = 12000;
} else EnvelopingWeb_Timer -= diff;
@@ -69,8 +69,8 @@ struct TRINITY_DLL_DECL boss_draganthaurissanAI : public ScriptedAI
if (HandOfThaurissan_Timer <= diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(target,SPELL_HANDOFTHAURISSAN);
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(pTarget,SPELL_HANDOFTHAURISSAN);
//3 Hands of Thaurissan will be casted
//if (Counter < 3)
@@ -83,7 +83,7 @@ struct TRINITY_DLL_DECL boss_draganthaurissanAI : public ScriptedAI
HandOfThaurissan_Timer = 5000;
//Counter=0;
//}
}else HandOfThaurissan_Timer -= diff;
} else HandOfThaurissan_Timer -= diff;
//AvatarOfFlame_Timer
if (AvatarOfFlame_Timer <= diff)
@@ -39,14 +39,6 @@ struct TRINITY_DLL_DECL boss_general_angerforgeAI : public ScriptedAI
uint32 Cleave_Timer;
uint32 Adds_Timer;
bool Medics;
int Rand1;
int Rand1X;
int Rand1Y;
int Rand2;
int Rand2X;
int Rand2Y;
Creature* SummonedAdds;
Creature* SummonedMedics;
void Reset()
{
@@ -63,44 +55,14 @@ struct TRINITY_DLL_DECL boss_general_angerforgeAI : public ScriptedAI
void SummonAdds(Unit* victim)
{
Rand1 = rand()%15;
switch (rand()%2)
{
case 0: Rand1X = 0 - Rand1; break;
case 1: Rand1X = 0 + Rand1; break;
}
Rand1 = 0;
Rand1 = rand()%15;
switch (rand()%2)
{
case 0: Rand1Y = 0 - Rand1; break;
case 1: Rand1Y = 0 + Rand1; break;
}
Rand1 = 0;
SummonedAdds = DoSpawnCreature(8901, Rand1X, Rand1Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000);
if (SummonedAdds)
(SummonedAdds->AI())->AttackStart(victim);
if (Creature *SummonedAdd = DoSpawnCreature(8901, RAND(irand(0,-14),irand(0,14)), RAND(irand(0,-14),irand(0,14)), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000))
SummonedAdd->AI()->AttackStart(victim);
}
void SummonMedics(Unit* victim)
{
Rand2 = rand()%10;
switch (rand()%2)
{
case 0: Rand2X = 0 - Rand2; break;
case 1: Rand2X = 0 + Rand2; break;
}
Rand2 = 0;
Rand2 = rand()%10;
switch (rand()%2)
{
case 0: Rand2Y = 0 - Rand2; break;
case 1: Rand2Y = 0 + Rand2; break;
}
Rand2 = 0;
SummonedMedics = DoSpawnCreature(8894, Rand2X, Rand2Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000);
if (SummonedMedics)
(SummonedMedics->AI())->AttackStart(victim);
if (Creature *SummonedMedic = DoSpawnCreature(8894, RAND(irand(0,-9),irand(0,9)), RAND(irand(0,-9),irand(0,9)), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000))
SummonedMedic->AI()->AttackStart(victim);
}
void UpdateAI(const uint32 diff)
@@ -57,14 +57,14 @@ struct TRINITY_DLL_DECL boss_gorosh_the_dervishAI : public ScriptedAI
{
DoCast(m_creature,SPELL_WHIRLWIND);
WhirlWind_Timer = 15000;
}else WhirlWind_Timer -= diff;
} else WhirlWind_Timer -= diff;
//MortalStrike_Timer
if (MortalStrike_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_MORTALSTRIKE);
MortalStrike_Timer = 15000;
}else MortalStrike_Timer -= diff;
} else MortalStrike_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -61,16 +61,16 @@ struct TRINITY_DLL_DECL boss_high_interrogator_gerstahnAI : public ScriptedAI
//ShadowWordPain_Timer
if (ShadowWordPain_Timer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target,SPELL_SHADOWWORDPAIN);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_SHADOWWORDPAIN);
ShadowWordPain_Timer = 7000;
} else ShadowWordPain_Timer -= diff;
//ManaBurn_Timer
if (ManaBurn_Timer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target,SPELL_MANABURN);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_MANABURN);
ManaBurn_Timer = 10000;
} else ManaBurn_Timer -= diff;
@@ -57,7 +57,7 @@ struct TRINITY_DLL_DECL boss_magmusAI : public ScriptedAI
{
DoCast(m_creature->getVictim(),SPELL_FIERYBURST);
FieryBurst_Timer = 6000;
}else FieryBurst_Timer -= diff;
} else FieryBurst_Timer -= diff;
//WarStomp_Timer
if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 51)
@@ -66,7 +66,7 @@ struct TRINITY_DLL_DECL boss_magmusAI : public ScriptedAI
{
DoCast(m_creature->getVictim(),SPELL_WARSTOMP);
WarStomp_Timer = 8000;
}else WarStomp_Timer -= diff;
} else WarStomp_Timer -= diff;
}
DoMeleeAttackIfReady();
@@ -69,21 +69,21 @@ struct TRINITY_DLL_DECL boss_moira_bronzebeardAI : public ScriptedAI
{
DoCast(m_creature->getVictim(),SPELL_MINDBLAST);
MindBlast_Timer = 14000;
}else MindBlast_Timer -= diff;
} else MindBlast_Timer -= diff;
//ShadowWordPain_Timer
if (ShadowWordPain_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_SHADOWWORDPAIN);
ShadowWordPain_Timer = 18000;
}else ShadowWordPain_Timer -= diff;
} else ShadowWordPain_Timer -= diff;
//Smite_Timer
if (Smite_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_SMITE);
Smite_Timer = 10000;
}else Smite_Timer -= diff;
} else Smite_Timer -= diff;
}
};
@@ -170,8 +170,8 @@ struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI
//Immolate_Timer
if (Immolate_Timer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target,SPELL_IMMOLATE);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_IMMOLATE);
Immolate_Timer = 25000;
} else Immolate_Timer -= diff;
@@ -343,8 +343,8 @@ struct TRINITY_DLL_DECL instance_blackrock_depths : public ScriptedInstance
{
boss->setFaction(FACTION_HOSTILE);
boss->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE);
if (Unit* target = boss->SelectNearestTarget(500))
boss->AI()->AttackStart(target);
if (Unit *pTarget = boss->SelectNearestTarget(500))
boss->AI()->AttackStart(pTarget);
}
}
}
@@ -401,7 +401,7 @@ struct TRINITY_DLL_DECL instance_blackrock_depths : public ScriptedInstance
TombTimer = TIMER_TOMBOFTHESEVEN;
TombEventCounter++;
TombOfSevenEvent();
}else TombTimer -= diff;
} else TombTimer -= diff;
}
if (GhostKillCount >= 7 && TombEventStarterGUID)
TombOfSevenEnd();
@@ -85,9 +85,9 @@ struct TRINITY_DLL_DECL boss_gythAI : public ScriptedAI
Unit* Summoned = m_creature->SummonCreature(creatureId, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 240000);
if (Summoned)
{
Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0);
if (target)
Summoned->AddThreat(target, 1.0f);
Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0);
if (pTarget)
Summoned->AddThreat(pTarget, 1.0f);
}
}
@@ -99,15 +99,12 @@ struct TRINITY_DLL_DECL boss_overlordwyrmthalakAI : public ScriptedAI
//Summon two Beserks
if (!Summoned && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 51)
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM,0, 100, true);
SummonedCreature = m_creature->SummonCreature(9216,ADD_1X,ADD_1Y,ADD_1Z,ADD_1O,TEMPSUMMON_TIMED_DESPAWN,300000);
if (SummonedCreature)
(SummonedCreature->AI())->AttackStart(target);
SummonedCreature = m_creature->SummonCreature(9268,ADD_2X,ADD_2Y,ADD_2Z,ADD_2O,TEMPSUMMON_TIMED_DESPAWN,300000);
if (SummonedCreature)
(SummonedCreature->AI())->AttackStart(target);
if (SummonedCreature = m_creature->SummonCreature(9216,ADD_1X,ADD_1Y,ADD_1Z,ADD_1O,TEMPSUMMON_TIMED_DESPAWN,300000))
SummonedCreature->AI()->AttackStart(pTarget);
if (SummonedCreature = m_creature->SummonCreature(9268,ADD_2X,ADD_2Y,ADD_2Z,ADD_2O,TEMPSUMMON_TIMED_DESPAWN,300000))
SummonedCreature->AI()->AttackStart(pTarget);
Summoned = true;
}
@@ -69,8 +69,8 @@ struct TRINITY_DLL_DECL boss_pyroguard_emberseerAI : public ScriptedAI
//PyroBlast_Timer
if (PyroBlast_Timer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target,SPELL_PYROBLAST);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_PYROBLAST);
PyroBlast_Timer = 15000;
} else PyroBlast_Timer -= diff;
@@ -59,13 +59,13 @@ struct TRINITY_DLL_DECL boss_shadowvoshAI : public ScriptedAI
{
DoCast(m_creature->getVictim(),SPELL_CURSEOFBLOOD);
CurseOfBlood_Timer = 45000;
}else CurseOfBlood_Timer -= diff;
} else CurseOfBlood_Timer -= diff;
//Hex_Timer
if (Hex_Timer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target,SPELL_HEX);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_HEX);
Hex_Timer = 15000;
} else Hex_Timer -= diff;
@@ -62,8 +62,8 @@ struct TRINITY_DLL_DECL boss_thebeastAI : public ScriptedAI
//Immolate_Timer
if (Immolate_Timer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target,SPELL_IMMOLATE);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_IMMOLATE);
Immolate_Timer = 8000;
} else Immolate_Timer -= diff;
@@ -62,8 +62,7 @@ struct TRINITY_DLL_DECL boss_chromaggusAI : public ScriptedAI
//5 possiblities for the first breath, 4 for the second, 20 total possiblites
//This way we don't end up casting 2 of the same breath
//TL TL would be stupid
srand(time(NULL));
switch (rand()%20)
switch (urand(0,19))
{
//B1 - Incin
case 0:
@@ -240,15 +239,15 @@ struct TRINITY_DLL_DECL boss_chromaggusAI : public ScriptedAI
//Cast affliction
DoCast(pUnit, SpellAfflict, true);
//Chromatic mutation if target is effected by all afflictions
//Chromatic mutation if pTarget is effected by all afflictions
if (pUnit->HasAura(SPELL_BROODAF_BLUE)
&& pUnit->HasAura(SPELL_BROODAF_BLACK)
&& pUnit->HasAura(SPELL_BROODAF_RED)
&& pUnit->HasAura(SPELL_BROODAF_BRONZE)
&& pUnit->HasAura(SPELL_BROODAF_GREEN))
{
//target->RemoveAllAuras();
//DoCast(target,SPELL_CHROMATIC_MUT_1);
//pTarget->RemoveAllAuras();
//DoCast(pTarget,SPELL_CHROMATIC_MUT_1);
//Chromatic mutation is causing issues
//Assuming it is caused by a lack of core support for Charm
@@ -76,7 +76,7 @@ struct TRINITY_DLL_DECL boss_flamegorAI : public ScriptedAI
{
DoScriptText(EMOTE_FRENZY, m_creature);
DoCast(m_creature,SPELL_FRENZY);
Frenzy_Timer = 8000 + (rand()%2000);
Frenzy_Timer = urand(8000, 10000);
} else Frenzy_Timer -= diff;
DoMeleeAttackIfReady();
@@ -203,7 +203,7 @@ struct TRINITY_DLL_DECL boss_nefarianAI : public ScriptedAI
}
ClassCall_Timer = 35000 + (rand() % 5000);
}else ClassCall_Timer -= diff;
} else ClassCall_Timer -= diff;
//Phase3 begins when we are below X health
if (!Phase3 && (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 20)
@@ -102,8 +102,8 @@ struct TRINITY_DLL_DECL boss_razorgoreAI : public ScriptedAI
// Aura Check. If the gamer is affected by confliguration we attack a random gamer.
if (m_creature->getVictim() && m_creature->getVictim()->HasAura(SPELL_CONFLAGRATION))
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true))
m_creature->TauntApply(target);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true))
m_creature->TauntApply(pTarget);
DoMeleeAttackIfReady();
}
@@ -74,10 +74,10 @@ struct TRINITY_DLL_DECL boss_vaelAI : public ScriptedAI
DoingSpeech = false;
}
void BeginSpeech(Unit* target)
void BeginSpeech(Unit *pTarget)
{
//Stand up and begin speach
PlayerGUID = target->GetGUID();
PlayerGUID = pTarget->GetGUID();
//10 seconds
DoScriptText(SAY_LINE1, m_creature);
@@ -167,18 +167,18 @@ struct TRINITY_DLL_DECL boss_vaelAI : public ScriptedAI
//BurningAdrenalineCaster_Timer
if (BurningAdrenalineCaster_Timer <= diff)
{
Unit* target = NULL;
Unit *pTarget = NULL;
uint8 i = 0;
while (i < 3) // max 3 tries to get a random target with power_mana
while (i < 3) // max 3 tries to get a random pTarget with power_mana
{
++i;
if (target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true)) //not aggro leader
if (target->getPowerType() == POWER_MANA)
if (pTarget = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true)) //not aggro leader
if (pTarget->getPowerType() == POWER_MANA)
i = 3;
}
if (target) // cast on self (see below)
target->CastSpell(target,SPELL_BURNINGADRENALINE,1);
if (pTarget) // cast on self (see below)
pTarget->CastSpell(pTarget,SPELL_BURNINGADRENALINE,1);
BurningAdrenalineCaster_Timer = 15000;
} else BurningAdrenalineCaster_Timer -= diff;
@@ -72,8 +72,7 @@ struct TRINITY_DLL_DECL boss_victor_nefariusAI : public ScriptedAI
boss_victor_nefariusAI(Creature *c) : ScriptedAI(c)
{
NefarianGUID = 0;
srand(time(NULL));
switch (rand()%20)
switch (urand(0,19))
{
case 0:
DrakType1 = CREATURE_BRONZE_DRAKANOID;
@@ -184,7 +183,7 @@ struct TRINITY_DLL_DECL boss_victor_nefariusAI : public ScriptedAI
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
void BeginEvent(Player* target)
void BeginEvent(Player *pTarget)
{
DoScriptText(SAY_GAMESBEGIN_2, m_creature);
@@ -200,7 +199,7 @@ struct TRINITY_DLL_DECL boss_victor_nefariusAI : public ScriptedAI
m_creature->SetUInt32Value(UNIT_NPC_FLAGS,0);
m_creature->setFaction(103);
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
AttackStart(target);
AttackStart(pTarget);
}
void EnterCombat(Unit *who)
@@ -214,7 +213,7 @@ struct TRINITY_DLL_DECL boss_victor_nefariusAI : public ScriptedAI
if (who && who->GetTypeId() == TYPEID_PLAYER && m_creature->IsHostileTo(who))
{
//Add them to our threat list
m_creature->AddThreat(who,0.0f);
m_creature->AddThreat(who, 0.0f);
}
}
@@ -229,8 +228,8 @@ struct TRINITY_DLL_DECL boss_victor_nefariusAI : public ScriptedAI
//ShadowBoltTimer
if (ShadowBoltTimer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target,SPELL_SHADOWBOLT);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget, SPELL_SHADOWBOLT);
ShadowBoltTimer = urand(3000,10000);
} else ShadowBoltTimer -= diff;
@@ -238,8 +237,8 @@ struct TRINITY_DLL_DECL boss_victor_nefariusAI : public ScriptedAI
//FearTimer
if (FearTimer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target,SPELL_FEAR);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget, SPELL_FEAR);
FearTimer = 10000 + (rand()%10000);
} else FearTimer -= diff;
@@ -250,7 +249,7 @@ struct TRINITY_DLL_DECL boss_victor_nefariusAI : public ScriptedAI
//Spawn 2 random types of creatures at the 2 locations
uint32 CreatureID;
Creature* Spawned = NULL;
Unit* target = NULL;
Unit *pTarget = NULL;
//1 in 3 chance it will be a chromatic
if (urand(0,2) == 0)
@@ -262,10 +261,10 @@ struct TRINITY_DLL_DECL boss_victor_nefariusAI : public ScriptedAI
//Spawn Creature and force it to start attacking a random target
Spawned = m_creature->SummonCreature(CreatureID,ADD_X1,ADD_Y1,ADD_Z1,5.000,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,5000);
target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
if (target && Spawned)
pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
if (pTarget && Spawned)
{
Spawned->AI()->AttackStart(target);
Spawned->AI()->AttackStart(pTarget);
Spawned->setFaction(103);
}
@@ -278,10 +277,10 @@ struct TRINITY_DLL_DECL boss_victor_nefariusAI : public ScriptedAI
++SpawnedAdds;
Spawned = m_creature->SummonCreature(CreatureID,ADD_X2,ADD_Y2,ADD_Z2,5.000,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,5000);
target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
if (target && Spawned)
pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
if (pTarget && Spawned)
{
Spawned->AI()->AttackStart(target);
Spawned->AI()->AttackStart(pTarget);
Spawned->setFaction(103);
}
@@ -306,10 +305,10 @@ struct TRINITY_DLL_DECL boss_victor_nefariusAI : public ScriptedAI
//Spawn nef and have him attack a random target
Creature* Nefarian = m_creature->SummonCreature(CREATURE_NEFARIAN,NEF_X,NEF_Y,NEF_Z,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,120000);
target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
if (target && Nefarian)
pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
if (pTarget && Nefarian)
{
Nefarian->AI()->AttackStart(target);
Nefarian->AI()->AttackStart(pTarget);
Nefarian->setFaction(103);
NefarianGUID = Nefarian->GetGUID();
}
@@ -42,10 +42,6 @@ struct TRINITY_DLL_DECL boss_kruulAI : public ScriptedAI
uint32 VoidBolt_Timer;
uint32 Rage_Timer;
uint32 Hound_Timer;
int Rand;
int RandX;
int RandY;
Creature* Summoned;
void Reset()
{
@@ -66,28 +62,12 @@ struct TRINITY_DLL_DECL boss_kruulAI : public ScriptedAI
{
// When a player, pet or totem gets killed, Lord Kazzak casts this spell to instantly regenerate 70,000 health.
DoCast(m_creature,SPELL_CAPTURESOUL);
}
void SummonHounds(Unit* victim)
void SummonHounds(Unit* pVictim)
{
Rand = rand()%10;
switch (rand()%2)
{
case 0: RandX = 0 - Rand; break;
case 1: RandX = 0 + Rand; break;
}
Rand = 0;
Rand = rand()%10;
switch (rand()%2)
{
case 0: RandY = 0 - Rand; break;
case 1: RandY = 0 + Rand; break;
}
Rand = 0;
Summoned = DoSpawnCreature(19207, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
if (Summoned)
(Summoned->AI())->AttackStart(victim);
if (Creature *Hound = DoSpawnCreature(19207, RAND(irand(0,-9),irand(0,9)), RAND(irand(0,-9),irand(0,9)), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000))
Hound->AI()->AttackStart(pVictim);
}
void UpdateAI(const uint32 diff)
@@ -97,72 +77,64 @@ struct TRINITY_DLL_DECL boss_kruulAI : public ScriptedAI
return;
//ShadowVolley_Timer
if (ShadowVolley_Timer < diff)
if (ShadowVolley_Timer <= diff)
{
if (rand()%100 < 46)
{
if (urand(0,99) < 45)
DoCast(m_creature->getVictim(),SPELL_SHADOWVOLLEY);
}
ShadowVolley_Timer = 5000;
}else ShadowVolley_Timer -= diff;
} else ShadowVolley_Timer -= diff;
//Cleave_Timer
if (Cleave_Timer < diff)
if (Cleave_Timer <= diff)
{
if (rand()%100 < 50)
{
if (urand(0,1))
DoCast(m_creature->getVictim(),SPELL_CLEAVE);
}
Cleave_Timer = 10000;
}else Cleave_Timer -= diff;
} else Cleave_Timer -= diff;
//ThunderClap_Timer
if (ThunderClap_Timer < diff)
if (ThunderClap_Timer <= diff)
{
if (rand()%100 < 20)
{
if (urand(0,9) < 2)
DoCast(m_creature->getVictim(),SPELL_THUNDERCLAP);
}
ThunderClap_Timer = 12000;
}else ThunderClap_Timer -= diff;
} else ThunderClap_Timer -= diff;
//TwistedReflection_Timer
if (TwistedReflection_Timer < diff)
if (TwistedReflection_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_TWISTEDREFLECTION);
TwistedReflection_Timer = 30000;
}else TwistedReflection_Timer -= diff;
} else TwistedReflection_Timer -= diff;
//VoidBolt_Timer
if (VoidBolt_Timer < diff)
if (VoidBolt_Timer <= diff)
{
if (rand()%100 < 40)
{
if (urand(0,9) < 4)
DoCast(m_creature->getVictim(),SPELL_VOIDBOLT);
}
VoidBolt_Timer = 18000;
}else VoidBolt_Timer -= diff;
} else VoidBolt_Timer -= diff;
//Rage_Timer
if (Rage_Timer < diff)
if (Rage_Timer <= diff)
{
DoCast(m_creature,SPELL_RAGE);
Rage_Timer = 70000;
}else Rage_Timer -= diff;
} else Rage_Timer -= diff;
//Hound_Timer
if (Hound_Timer < diff)
if (Hound_Timer <= diff)
{
SummonHounds(m_creature->getVictim());
SummonHounds(m_creature->getVictim());
SummonHounds(m_creature->getVictim());
Hound_Timer = 45000;
}else Hound_Timer -= diff;
} else Hound_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -29,7 +29,7 @@ EndScriptData */
# item_Defias_Gunpowder
#####*/
bool ItemUse_item_defias_gunpowder(Player* pPlayer, Item* _Item, SpellCastTargets const& targets)
bool ItemUse_item_defias_gunpowder(Player* pPlayer, Item* pItem, SpellCastTargets const& targets)
{
ScriptedInstance *pInstance = pPlayer->GetInstanceData();
@@ -46,7 +46,7 @@ bool ItemUse_item_defias_gunpowder(Player* pPlayer, Item* _Item, SpellCastTarget
pInstance->SetData(EVENT_STATE, CANNON_GUNPOWDER_USED);
}
pPlayer->DestroyItemCount(_Item->GetEntry(), 1, true);
pPlayer->DestroyItemCount(pItem->GetEntry(), 1, true);
return true;
}
@@ -62,7 +62,7 @@ struct TRINITY_DLL_DECL npc_narm_faulkAI : public ScriptedAI
{
if (m_creature->IsStandState())
{
if (lifeTimer < diff)
if (lifeTimer <= diff)
{
EnterEvadeMode();
return;
@@ -92,12 +92,12 @@ struct TRINITY_DLL_DECL boss_twilight_corrupterAI : public ScriptedAI
{
if(!UpdateVictim())
return;
if(SoulCorruption_Timer < diff)
if (SoulCorruption_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_SOUL_CORRUPTION);
SoulCorruption_Timer = rand()%4000+15000; //gotta confirm Timers
} else SoulCorruption_Timer-=diff;
if(CreatureOfNightmare_Timer < diff)
if (CreatureOfNightmare_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_SOUL_CORRUPTION);
CreatureOfNightmare_Timer = 45000; //gotta confirm Timers
@@ -61,7 +61,7 @@ struct TRINITY_DLL_DECL npc_henze_faulkAI : public ScriptedAI
{
if (m_creature->IsStandState())
{
if (lifeTimer < diff)
if (lifeTimer <= diff)
{
EnterEvadeMode();
return;
@@ -227,16 +227,16 @@ struct TRINITY_DLL_DECL npc_secondTrialAI : public ScriptedAI
void UpdateAI(const uint32 diff)
{
if (questPhase == 1)
if (timer < diff)
if (timer <= diff)
{
m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_STAND);
m_creature->setFaction(FACTION_HOSTILE);
questPhase = 0;
if (Unit *target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
{
m_creature->AddThreat(target, 5000000.0f);
AttackStart(target);
m_creature->AddThreat(pTarget, 5000000.0f);
AttackStart(pTarget);
}
}
else
@@ -248,7 +248,7 @@ struct TRINITY_DLL_DECL npc_secondTrialAI : public ScriptedAI
// healer
if (spellFlashLight)
if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 70)
if (timerFlashLight < diff)
if (timerFlashLight <= diff)
{
DoCast(m_creature, SPELL_FLASH_OF_LIGHT);
timerFlashLight = TIMER_FLASH_OF_LIGHT + rand()%TIMER_FLASH_OF_LIGHT;
@@ -257,7 +257,7 @@ struct TRINITY_DLL_DECL npc_secondTrialAI : public ScriptedAI
timerFlashLight -= diff;
if (spellJustice)
if (timerJustice < diff)
if (timerJustice <= diff)
{
DoCast(m_creature, SPELL_SEAL_OF_JUSTICE);
timerJustice = TIMER_SEAL_OF_JUSTICE + rand()%TIMER_SEAL_OF_JUSTICE;
@@ -266,7 +266,7 @@ struct TRINITY_DLL_DECL npc_secondTrialAI : public ScriptedAI
timerJustice -= diff;
if (spellJudLight)
if (timerJudLight < diff)
if (timerJudLight <= diff)
{
DoCast(m_creature, SPELL_JUDGEMENT_OF_LIGHT);
timerJudLight = TIMER_JUDGEMENT_OF_LIGHT + rand()%TIMER_JUDGEMENT_OF_LIGHT;
@@ -275,7 +275,7 @@ struct TRINITY_DLL_DECL npc_secondTrialAI : public ScriptedAI
timerJudLight -= diff;
if (spellCommand)
if (timerCommand < diff)
if (timerCommand <= diff)
{
DoCast(m_creature, TIMER_SEAL_OF_COMMAND);
timerCommand = TIMER_SEAL_OF_COMMAND + rand()%TIMER_SEAL_OF_COMMAND;
@@ -321,7 +321,7 @@ struct TRINITY_DLL_DECL master_kelerun_bloodmournAI : public ScriptedAI
// Quest accepted but object not activated, object despawned (if in sync 1 minute!)
if (questPhase == 1)
{
if (timer < diff)
if (timer <= diff)
Reset();
else
timer -= diff;
@@ -329,7 +329,7 @@ struct TRINITY_DLL_DECL master_kelerun_bloodmournAI : public ScriptedAI
// fight the 4 paladin mobs phase
else if (questPhase == 2)
{
if (timer < diff)
if (timer <= diff)
{
if (Creature* paladinSpawn = Unit::GetCreature((*m_creature), paladinGuid[paladinPhase]))
{
@@ -658,7 +658,7 @@ struct TRINITY_DLL_DECL npc_infused_crystalAI : public Scripted_NoMovementAI
m_creature->SummonCreature(MOB_ENRAGED_WRAITH, SpawnLocations[ran2].x, SpawnLocations[ran2].y, SpawnLocations[ran2].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
m_creature->SummonCreature(MOB_ENRAGED_WRAITH, SpawnLocations[ran3].x, SpawnLocations[ran3].y, SpawnLocations[ran3].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
WaveTimer = 30000;
}else WaveTimer -= diff;
} else WaveTimer -= diff;
}
};
@@ -126,7 +126,7 @@ bool GOHello_gilded_brazier(Player* pPlayer, GameObject* pGo)
{
Creature *Stillblade = pPlayer->SummonCreature(17716, 8106.11, -7542.06, 151.775, 3.02598, TEMPSUMMON_DEAD_DESPAWN, 60000);
if (Stillblade)
(Stillblade->AI())->AttackStart(pPlayer);
Stillblade->AI()->AttackStart(pPlayer);
}
return true;
};
@@ -279,7 +279,7 @@ struct TRINITY_DLL_DECL npc_rinjiAI : public npc_escortAI
{
if (HasEscortState(STATE_ESCORT_ESCORTING) && m_uiPostEventCount)
{
if (m_uiPostEventTimer < uiDiff)
if (m_uiPostEventTimer <= uiDiff)
{
m_uiPostEventTimer = 3000;
@@ -71,7 +71,7 @@ struct TRINITY_DLL_DECL npc_converted_sentryAI : public ScriptedAI
if (m_creature->isPet())
CAST_PET(m_creature)->SetDuration(7500);
Credit = true;
}else Timer -= diff;
} else Timer -= diff;
}
}
};
@@ -103,7 +103,7 @@ struct TRINITY_DLL_DECL boss_curatorAI : public ScriptedAI
//don't know if he's supposed to do summon/evocate after hard enrage (probably not)
Enraged = true;
}else BerserkTimer -= diff;
} else BerserkTimer -= diff;
if (Evocating)
{
@@ -120,13 +120,13 @@ struct TRINITY_DLL_DECL boss_curatorAI : public ScriptedAI
{
//Summon Astral Flare
Creature* AstralFlare = DoSpawnCreature(17096, rand()%37, rand()%37, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM, 0);
Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0);
if (AstralFlare && target)
if (AstralFlare && pTarget)
{
AstralFlare->CastSpell(AstralFlare, SPELL_ASTRAL_FLARE_PASSIVE, false);
AstralFlare->AI()->AttackStart(target);
AstralFlare->AI()->AttackStart(pTarget);
}
//Reduce Mana by 10% of max health
@@ -155,7 +155,7 @@ struct TRINITY_DLL_DECL boss_curatorAI : public ScriptedAI
}
AddTimer = 10000;
}else AddTimer -= diff;
} else AddTimer -= diff;
if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 15)
{
@@ -172,8 +172,8 @@ struct TRINITY_DLL_DECL boss_curatorAI : public ScriptedAI
else
HatefulBoltTimer = 15000;
if (Unit* target = SelectUnit(SELECT_TARGET_TOPAGGRO, 1))
DoCast(target, SPELL_HATEFUL_BOLT);
if (Unit *pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO, 1))
DoCast(pTarget, SPELL_HATEFUL_BOLT);
} else HatefulBoltTimer -= diff;
@@ -103,16 +103,16 @@ struct TRINITY_DLL_DECL boss_maiden_of_virtueAI : public ScriptedAI
if (Holyfire_Timer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target,SPELL_HOLYFIRE);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_HOLYFIRE);
Holyfire_Timer = urand(8000,23000); //Anywhere from 8 to 23 seconds, good luck having several of those in a row!
} else Holyfire_Timer -= diff;
if (Holywrath_Timer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target,SPELL_HOLYWRATH);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_HOLYWRATH);
Holywrath_Timer = urand(20000,25000); //20-30 secs sounds nice
} else Holywrath_Timer -= diff;
@@ -243,20 +243,20 @@ struct TRINITY_DLL_DECL boss_attumenAI : public ScriptedAI
{
if (ChargeTimer <= diff)
{
Unit *target;
Unit *pTarget;
std::list<HostilReference *> t_list = m_creature->getThreatManager().getThreatList();
std::vector<Unit *> target_list;
for (std::list<HostilReference *>::iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
{
target = Unit::GetUnit(*m_creature, (*itr)->getUnitGuid());
if (target && !target->IsWithinDist(m_creature, ATTACK_DISTANCE, false))
target_list.push_back(target);
target = NULL;
pTarget = Unit::GetUnit(*m_creature, (*itr)->getUnitGuid());
if (pTarget && !pTarget->IsWithinDist(m_creature, ATTACK_DISTANCE, false))
target_list.push_back(pTarget);
pTarget = NULL;
}
if (target_list.size())
target = *(target_list.begin()+rand()%target_list.size());
pTarget = *(target_list.begin()+rand()%target_list.size());
DoCast(target, SPELL_BERSERKER_CHARGE);
DoCast(pTarget, SPELL_BERSERKER_CHARGE);
ChargeTimer = 20000;
} else ChargeTimer -= diff;
}
@@ -271,12 +271,12 @@ struct TRINITY_DLL_DECL boss_moroesAI : public ScriptedAI
if (Blind_Timer <= diff)
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, m_creature->GetMeleeReach()*5, true);
if (target && m_creature->IsWithinMeleeRange(target))
Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, m_creature->GetMeleeReach()*5, true);
if (pTarget && m_creature->IsWithinMeleeRange(pTarget))
{
DoCast(target, SPELL_BLIND);
DoCast(pTarget, SPELL_BLIND);
Blind_Timer = 40000;
} else Blind_Timer = 1000 + diff; // if target is out of melee range, wait a bit.
} else Blind_Timer = 1000 + diff; // if pTarget is out of melee range, wait a bit.
} else Blind_Timer -= diff;
}
@@ -286,8 +286,8 @@ struct TRINITY_DLL_DECL boss_moroesAI : public ScriptedAI
{
DoScriptText(RAND(SAY_SPECIAL_1,SAY_SPECIAL_2), m_creature);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
target->CastSpell(target, SPELL_GARROTE,true);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
pTarget->CastSpell(pTarget, SPELL_GARROTE,true);
InVanish = false;
} else Wait_Timer -= diff;
@@ -398,17 +398,17 @@ struct TRINITY_DLL_DECL boss_baroness_dorothea_millstipeAI : public boss_moroes_
if (ManaBurn_Timer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
if (target->getPowerType() == POWER_MANA)
DoCast(target,SPELL_MANABURN);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
if (pTarget->getPowerType() == POWER_MANA)
DoCast(pTarget,SPELL_MANABURN);
ManaBurn_Timer = 5000; // 3 sec cast
} else ManaBurn_Timer -= diff;
if (ShadowWordPain_Timer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
{
DoCast(target,SPELL_SWPAIN);
DoCast(pTarget,SPELL_SWPAIN);
ShadowWordPain_Timer = 7000;
}
} else ShadowWordPain_Timer -= diff;
@@ -507,9 +507,9 @@ struct TRINITY_DLL_DECL boss_lady_catriona_von_indiAI : public boss_moroes_guest
if (GreaterHeal_Timer <= diff)
{
Unit* target = SelectGuestTarget();
Unit *pTarget = SelectGuestTarget();
DoCast(target, SPELL_GREATERHEAL);
DoCast(pTarget, SPELL_GREATERHEAL);
GreaterHeal_Timer = 17000;
} else GreaterHeal_Timer -= diff;
@@ -521,8 +521,8 @@ struct TRINITY_DLL_DECL boss_lady_catriona_von_indiAI : public boss_moroes_guest
if (DispelMagic_Timer <= diff)
{
if (Unit* target = RAND(SelectGuestTarget(), SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)))
DoCast(target, SPELL_DISPELMAGIC);
if (Unit *pTarget = RAND(SelectGuestTarget(), SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)))
DoCast(pTarget, SPELL_DISPELMAGIC);
DispelMagic_Timer = 25000;
} else DispelMagic_Timer -= diff;
@@ -571,26 +571,26 @@ struct TRINITY_DLL_DECL boss_lady_keira_berrybuckAI : public boss_moroes_guestAI
if (HolyLight_Timer <= diff)
{
Unit* target = SelectGuestTarget();
Unit *pTarget = SelectGuestTarget();
DoCast(target, SPELL_HOLYLIGHT);
DoCast(pTarget, SPELL_HOLYLIGHT);
HolyLight_Timer = 10000;
} else HolyLight_Timer -= diff;
if (GreaterBless_Timer <= diff)
{
Unit* target = SelectGuestTarget();
Unit *pTarget = SelectGuestTarget();
DoCast(target, SPELL_GREATERBLESSOFMIGHT);
DoCast(pTarget, SPELL_GREATERBLESSOFMIGHT);
GreaterBless_Timer = 50000;
} else GreaterBless_Timer -= diff;
if (Cleanse_Timer <= diff)
{
Unit* target = SelectGuestTarget();
Unit *pTarget = SelectGuestTarget();
DoCast(target, SPELL_CLEANSE);
DoCast(pTarget, SPELL_CLEANSE);
Cleanse_Timer = 10000;
} else Cleanse_Timer -= diff;
@@ -90,9 +90,9 @@ struct TRINITY_DLL_DECL boss_netherspiteAI : public ScriptedAI
uint64 BeamerGUID[3]; // guid's of auxiliary beaming portals
uint64 BeamTarget[3]; // guid's of portals' current targets
bool IsBetween(WorldObject* u1, WorldObject* target, WorldObject* u2) // the in-line checker
bool IsBetween(WorldObject* u1, WorldObject *pTarget, WorldObject* u2) // the in-line checker
{
if(!u1 || !u2 || !target)
if(!u1 || !u2 || !pTarget)
return false;
float xn, yn, xp, yp, xh, yh;
@@ -100,10 +100,10 @@ struct TRINITY_DLL_DECL boss_netherspiteAI : public ScriptedAI
yn = u1->GetPositionY();
xp = u2->GetPositionX();
yp = u2->GetPositionY();
xh = target->GetPositionX();
yh = target->GetPositionY();
xh = pTarget->GetPositionX();
yh = pTarget->GetPositionY();
// check if target is between (not checking distance from the beam yet)
// check if pTarget is between (not checking distance from the beam yet)
if(dist(xn,yn,xh,yh)>=dist(xn,yn,xp,yp) || dist(xp,yp,xh,yh)>=dist(xn,yn,xp,yp))
return false;
// check distance from the beam
@@ -163,7 +163,7 @@ struct TRINITY_DLL_DECL boss_netherspiteAI : public ScriptedAI
// the one who's been casted upon before
Unit *current = Unit::GetUnit(*portal, BeamTarget[j]);
// temporary store for the best suitable beam reciever
Unit *target = m_creature;
Unit *pTarget = m_creature;
if(Map* map = m_creature->GetMap())
{
@@ -174,41 +174,41 @@ struct TRINITY_DLL_DECL boss_netherspiteAI : public ScriptedAI
{
Player* p = i->getSource();
if(p && p->isAlive() // alive
&& (!target || target->GetDistance2d(portal)>p->GetDistance2d(portal)) // closer than current best
&& (!pTarget || pTarget->GetDistance2d(portal)>p->GetDistance2d(portal)) // closer than current best
&& !p->HasAura(PlayerDebuff[j],0) // not exhausted
&& !p->HasAura(PlayerBuff[(j+1)%3],0) // not on another beam
&& !p->HasAura(PlayerBuff[(j+2)%3],0)
&& IsBetween(m_creature, p, portal)) // on the beam
target = p;
pTarget = p;
}
}
// buff the target
if(target->GetTypeId() == TYPEID_PLAYER)
target->AddAura(PlayerBuff[j], target);
if(pTarget->GetTypeId() == TYPEID_PLAYER)
pTarget->AddAura(PlayerBuff[j], pTarget);
else
target->AddAura(NetherBuff[j], target);
// cast visual beam on the chosen target if switched
// simple target switching isn't working -> using BeamerGUID to cast (workaround)
if(!current || target != current)
pTarget->AddAura(NetherBuff[j], pTarget);
// cast visual beam on the chosen pTarget if switched
// simple pTarget switching isn't working -> using BeamerGUID to cast (workaround)
if(!current || pTarget != current)
{
BeamTarget[j] = target->GetGUID();
BeamTarget[j] = pTarget->GetGUID();
// remove currently beaming portal
if(Creature *beamer = Unit::GetCreature(*portal, BeamerGUID[j]))
{
beamer->CastSpell(target, PortalBeam[j], false);
beamer->CastSpell(pTarget, PortalBeam[j], false);
beamer->DisappearAndDie();
BeamerGUID[j] = 0;
}
// create new one and start beaming on the target
if(Creature *beamer = portal->SummonCreature(PortalID[j],portal->GetPositionX(),portal->GetPositionY(),portal->GetPositionZ(),portal->GetOrientation(),TEMPSUMMON_TIMED_DESPAWN,60000))
{
beamer->CastSpell(target, PortalBeam[j], false);
beamer->CastSpell(pTarget, PortalBeam[j], false);
BeamerGUID[j] = beamer->GetGUID();
}
}
// aggro target if Red Beam
if(j==RED_PORTAL && m_creature->getVictim() != target && target->GetTypeId() == TYPEID_PLAYER)
m_creature->getThreatManager().addThreat(target, 100000.0f+DoGetThreat(m_creature->getVictim()));
// aggro pTarget if Red Beam
if(j==RED_PORTAL && m_creature->getVictim() != pTarget && pTarget->GetTypeId() == TYPEID_PLAYER)
m_creature->getThreatManager().addThreat(pTarget, 100000.0f+DoGetThreat(m_creature->getVictim()));
}
}
@@ -270,12 +270,12 @@ struct TRINITY_DLL_DECL boss_netherspiteAI : public ScriptedAI
} else VoidZoneTimer -= diff;
// NetherInfusion Berserk
if(!Berserk && NetherInfusionTimer < diff)
if (!Berserk && NetherInfusionTimer <= diff)
{
m_creature->AddAura(SPELL_NETHER_INFUSION, m_creature);
DoCast(m_creature, SPELL_NETHERSPITE_ROAR);
Berserk = true;
}else NetherInfusionTimer -= diff;
} else NetherInfusionTimer -= diff;
if(PortalPhase) // PORTAL PHASE
{
@@ -308,8 +308,8 @@ struct TRINITY_DLL_DECL boss_netherspiteAI : public ScriptedAI
// Netherbreath
if (NetherbreathTimer <= diff)
{
if(Unit* target = SelectTarget(SELECT_TARGET_RANDOM,0,40,true))
DoCast(target,SPELL_NETHERBREATH);
if(Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM,0,40,true))
DoCast(pTarget,SPELL_NETHERBREATH);
NetherbreathTimer = urand(5000,7000);
} else NetherbreathTimer -= diff;
@@ -309,23 +309,23 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
if (CharredEarthTimer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target,SPELL_CHARRED_EARTH);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_CHARRED_EARTH);
CharredEarthTimer = 20000;
} else CharredEarthTimer -= diff;
if (TailSweepTimer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
if (!m_creature->HasInArc(M_PI, target))
DoCast(target,SPELL_TAIL_SWEEP);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
if (!m_creature->HasInArc(M_PI, pTarget))
DoCast(pTarget,SPELL_TAIL_SWEEP);
TailSweepTimer = 15000;
} else TailSweepTimer -= diff;
if (SearingCindersTimer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target,SPELL_SEARING_CINDERS);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_SEARING_CINDERS);
SearingCindersTimer = 10000;
} else SearingCindersTimer -= diff;
@@ -367,8 +367,8 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
if (DistractingAshTimer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target,SPELL_DISTRACTING_ASH);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget,SPELL_DISTRACTING_ASH);
DistractingAshTimer = 2000; //timer wrong
} else DistractingAshTimer -= diff;
}
@@ -384,8 +384,8 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
if (FireballBarrageTimer <= diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_FARTHEST, 0))
DoCast(target,SPELL_FIREBALL_BARRAGE);
if (Unit *pTarget = SelectUnit(SELECT_TARGET_FARTHEST, 0))
DoCast(pTarget,SPELL_FIREBALL_BARRAGE);
FireballBarrageTimer = 20000;
} else FireballBarrageTimer -= diff;
@@ -288,15 +288,15 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI
if (!t_list.size())
return;
//begin + 1 , so we don't target the one with the highest threat
//begin + 1 , so we don't pTarget the one with the highest threat
std::list<HostilReference *>::iterator itr = t_list.begin();
std::advance(itr, 1);
for (; itr!= t_list.end(); ++itr) //store the threat list in a different container
{
Unit *target = Unit::GetUnit(*m_creature, (*itr)->getUnitGuid());
Unit *pTarget = Unit::GetUnit(*m_creature, (*itr)->getUnitGuid());
//only on alive players
if (target && target->isAlive() && target->GetTypeId() == TYPEID_PLAYER)
targets.push_back(target);
if (pTarget && pTarget->isAlive() && pTarget->GetTypeId() == TYPEID_PLAYER)
targets.push_back(pTarget);
}
//cut down to size if we have more than 5 targets
@@ -306,14 +306,14 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI
int i = 0;
for (std::vector<Unit *>::iterator iter = targets.begin(); iter!= targets.end(); ++iter, ++i)
{
Unit *target = *iter;
if (target)
Unit *pTarget = *iter;
if (pTarget)
{
enfeeble_targets[i] = target->GetGUID();
enfeeble_health[i] = target->GetHealth();
enfeeble_targets[i] = pTarget->GetGUID();
enfeeble_health[i] = pTarget->GetHealth();
target->CastSpell(target, SPELL_ENFEEBLE, true, 0, 0, m_creature->GetGUID());
target->SetHealth(1);
pTarget->CastSpell(pTarget, SPELL_ENFEEBLE, true, 0, 0, m_creature->GetGUID());
pTarget->SetHealth(1);
}
}
@@ -323,9 +323,9 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI
{
for (uint8 i = 0; i < 5; ++i)
{
Unit *target = Unit::GetUnit(*m_creature, enfeeble_targets[i]);
if (target && target->isAlive())
target->SetHealth(enfeeble_health[i]);
Unit *pTarget = Unit::GetUnit(*m_creature, enfeeble_targets[i]);
if (pTarget && pTarget->isAlive())
pTarget->SetHealth(enfeeble_health[i]);
enfeeble_targets[i] = 0;
enfeeble_health[i] = 0;
}
@@ -372,7 +372,7 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI
{
EnfeebleResetHealth();
EnfeebleResetTimer=0;
}else EnfeebleResetTimer -= diff;
} else EnfeebleResetTimer -= diff;
if (m_creature->hasUnitState(UNIT_STAT_STUNNED)) //While shifting to phase 2 malchezaar stuns himself
return;
@@ -430,7 +430,7 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI
DoScriptText(SAY_AXE_TOSS2, m_creature);
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
for (uint8 i = 0; i < 2; ++i)
{
Creature *axe = m_creature->SummonCreature(MALCHEZARS_AXE, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 1000);
@@ -439,12 +439,12 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI
axe->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
axe->setFaction(m_creature->getFaction());
axes[i] = axe->GetGUID();
if (target)
if (pTarget)
{
axe->AI()->AttackStart(target);
// axe->getThreatManager().tauntApply(target); //Taunt Apply and fade out does not work properly
axe->AI()->AttackStart(pTarget);
// axe->getThreatManager().tauntApply(pTarget); //Taunt Apply and fade out does not work properly
// So we'll use a hack to add a lot of threat to our target
axe->AddThreat(target, 10000000.0f);
axe->AddThreat(pTarget, 10000000.0f);
}
}
}
@@ -475,7 +475,7 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI
{
AxesTargetSwitchTimer = urand(7500,20000);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
{
for (uint8 i = 0; i < 2; ++i)
{
@@ -484,10 +484,10 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI
float threat = 1000000.0f;
if (axe->getVictim())
DoModifyThreatPercent(axe->getVictim(), -100);
if (target)
axe->AddThreat(target, threat);
if (pTarget)
axe->AddThreat(pTarget, threat);
//axe->getThreatManager().tauntFadeOut(axe->getVictim());
//axe->getThreatManager().tauntApply(target);
//axe->getThreatManager().tauntApply(pTarget);
}
}
}
@@ -495,8 +495,8 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI
if (AmplifyDamageTimer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target, SPELL_AMPLIFY_DAMAGE);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget, SPELL_AMPLIFY_DAMAGE);
AmplifyDamageTimer = urand(20000,30000);
} else AmplifyDamageTimer -= diff;
}
@@ -518,17 +518,17 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI
{
if (SWPainTimer <= diff)
{
Unit* target = NULL;
Unit *pTarget = NULL;
if (phase == 1)
target = m_creature->getVictim(); // the tank
pTarget = m_creature->getVictim(); // the tank
else // anyone but the tank
target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true);
pTarget = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true);
if (target)
DoCast(target, SPELL_SW_PAIN);
if (pTarget)
DoCast(pTarget, SPELL_SW_PAIN);
SWPainTimer = 20000;
}else SWPainTimer -= diff;
} else SWPainTimer -= diff;
}
if (phase != 3)
@@ -183,10 +183,10 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
//store the threat list in a different container
for (std::list<HostilReference *>::iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
{
Unit *target = Unit::GetUnit(*m_creature, (*itr)->getUnitGuid());
Unit *pTarget = Unit::GetUnit(*m_creature, (*itr)->getUnitGuid());
//only on alive players
if (target && target->isAlive() && target->GetTypeId() == TYPEID_PLAYER)
targets.push_back(target);
if (pTarget && pTarget->isAlive() && pTarget->GetTypeId() == TYPEID_PLAYER)
targets.push_back(pTarget);
}
//cut down to size if we have more than 3 targets
@@ -221,7 +221,7 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
pInstance->HandleGameObject(pInstance->GetData64(DATA_GO_LIBRARY_DOOR), false);
CloseDoorTimer = 0;
}
}else CloseDoorTimer -= diff;
} else CloseDoorTimer -= diff;
}
//Cooldowns for casts
@@ -295,9 +295,8 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
{
if (!m_creature->IsNonMeleeSpellCasted(false))
{
Unit* target = NULL;
target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
if (!target)
Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
if (!pTarget)
return;
uint32 Spells[3];
@@ -324,7 +323,7 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
if (AvailableSpells)
{
CurrentNormalSpell = Spells[rand() % AvailableSpells];
DoCast(target, CurrentNormalSpell);
DoCast(pTarget, CurrentNormalSpell);
}
}
NormalCastTimer = 1000;
@@ -365,16 +364,12 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
break;
}
LastSuperSpell = Available[rand()%2];
LastSuperSpell = Available[urand(0,1)];
switch (LastSuperSpell)
{
case SUPER_AE:
if (rand()%2)
DoScriptText(SAY_EXPLOSION1, m_creature);
else
DoScriptText(SAY_EXPLOSION2, m_creature);
DoScriptText(RAND(SAY_EXPLOSION1,SAY_EXPLOSION2), m_creature);
m_creature->CastSpell(m_creature, SPELL_BLINK_CENTER, true);
m_creature->CastSpell(m_creature, SPELL_PLAYERPULL, true);
@@ -383,10 +378,7 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
break;
case SUPER_FLAME:
if (rand()%2)
DoScriptText(SAY_FLAMEWREATH1, m_creature);
else
DoScriptText(SAY_FLAMEWREATH2, m_creature);
DoScriptText(RAND(SAY_FLAMEWREATH1,SAY_FLAMEWREATH2), m_creature);
FlameWreathTimer = 20000;
FlameWreathCheckTime = 500;
@@ -399,11 +391,7 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
break;
case SUPER_BLIZZARD:
if (rand()%2)
DoScriptText(SAY_BLIZZARD1, m_creature);
else
DoScriptText(SAY_BLIZZARD2, m_creature);
DoScriptText(RAND(SAY_BLIZZARD1,SAY_BLIZZARD2), m_creature);
if (Creature* pSpawn = m_creature->SummonCreature(CREATURE_ARAN_BLIZZARD, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 25000))
{
@@ -413,8 +401,8 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
break;
}
SuperCastTimer = 35000 + (rand()%5000);
}else SuperCastTimer -= diff;
SuperCastTimer = urand(35000,40000);
} else SuperCastTimer -= diff;
if (!ElementalsSpawned && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 40)
{
@@ -446,7 +434,7 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
DoScriptText(SAY_TIMEOVER, m_creature);
BerserkTimer = 60000;
}else BerserkTimer -= diff;
} else BerserkTimer -= diff;
//Flame Wreath check
if (FlameWreathTimer)
@@ -471,7 +459,7 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
}
}
FlameWreathCheckTime = 500;
}else FlameWreathCheckTime -= diff;
} else FlameWreathCheckTime -= diff;
}
if (ArcaneCooldown && FireCooldown && FrostCooldown)
@@ -45,7 +45,7 @@ EndScriptData */
#define SPELL_FIENDISH_PORTAL 30171 // Opens portal and summons Fiendish Portal, 2 sec cast
#define SPELL_FIENDISH_PORTAL_1 30179 // Opens portal and summons Fiendish Portal, instant cast
#define SPELL_FIREBOLT 30050 // Blasts a target for 150 Fire damage.
#define SPELL_FIREBOLT 30050 // Blasts a pTarget for 150 Fire damage.
#define SPELL_BROKEN_PACT 30065 // All damage taken increased by 25%.
#define SPELL_AMPLIFY_FLAMES 30053 // Increases the Fire damage taken by an enemy by 500 for 25 sec.
@@ -93,7 +93,7 @@ struct TRINITY_DLL_DECL mob_kilrekAI : public ScriptedAI
if (Terestian && Terestian->isAlive())
DoCast(Terestian, SPELL_BROKEN_PACT, true);
}
}else ERROR_INST_DATA(m_creature);
} else ERROR_INST_DATA(m_creature);
}
void UpdateAI(const uint32 diff)
@@ -108,7 +108,7 @@ struct TRINITY_DLL_DECL mob_kilrekAI : public ScriptedAI
DoCast(m_creature->getVictim(),SPELL_AMPLIFY_FLAMES);
AmplifyTimer = urand(10000,20000);
}else AmplifyTimer -= diff;
} else AmplifyTimer -= diff;
DoMeleeAttackIfReady();
}
@@ -277,15 +277,15 @@ struct TRINITY_DLL_DECL boss_terestianAI : public ScriptedAI
if (SacrificeTimer <= diff)
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true);
if (target && target->isAlive())
Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true);
if (pTarget && pTarget->isAlive())
{
DoCast(target, SPELL_SACRIFICE, true);
DoCast(target, SPELL_SUMMON_DEMONCHAINS, true);
DoCast(pTarget, SPELL_SACRIFICE, true);
DoCast(pTarget, SPELL_SUMMON_DEMONCHAINS, true);
if (Creature* Chains = m_creature->FindNearestCreature(CREATURE_DEMONCHAINS, 5000))
{
CAST_AI(mob_demon_chainAI, Chains->AI())->SacrificeGUID = target->GetGUID();
CAST_AI(mob_demon_chainAI, Chains->AI())->SacrificeGUID = pTarget->GetGUID();
Chains->CastSpell(Chains, SPELL_DEMON_CHAINS, true);
DoScriptText(RAND(SAY_SACRIFICE1,SAY_SACRIFICE2), m_creature);
SacrificeTimer = 30000;
@@ -328,7 +328,7 @@ struct TRINITY_DLL_DECL boss_terestianAI : public ScriptedAI
}
};
#define SPELL_FIREBOLT 30050 // Blasts a target for 181-209 Fire damage.
#define SPELL_FIREBOLT 30050 // Blasts a pTarget for 181-209 Fire damage.
struct TRINITY_DLL_DECL mob_fiendish_impAI : public ScriptedAI
{
@@ -352,8 +352,8 @@ struct TRINITY_DLL_DECL boss_strawmanAI : public ScriptedAI
if (BrainWipeTimer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target, SPELL_BRAIN_WIPE);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget, SPELL_BRAIN_WIPE);
BrainWipeTimer = 20000;
} else BrainWipeTimer -= diff;
@@ -528,7 +528,7 @@ struct TRINITY_DLL_DECL boss_roarAI : public ScriptedAI
{
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
AggroTimer = 0;
}else AggroTimer -= diff;
} else AggroTimer -= diff;
}
if (!UpdateVictim())
@@ -800,15 +800,15 @@ struct TRINITY_DLL_DECL boss_bigbadwolfAI : public ScriptedAI
{
if (!IsChasing)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
{
DoScriptText(SAY_WOLF_HOOD, m_creature);
DoCast(target, SPELL_LITTLE_RED_RIDING_HOOD, true);
TempThreat = DoGetThreat(target);
DoCast(pTarget, SPELL_LITTLE_RED_RIDING_HOOD, true);
TempThreat = DoGetThreat(pTarget);
if (TempThreat)
DoModifyThreatPercent(target, -100);
HoodGUID = target->GetGUID();
m_creature->AddThreat(target, 1000000.0f);
DoModifyThreatPercent(pTarget, -100);
HoodGUID = pTarget->GetGUID();
m_creature->AddThreat(pTarget, 1000000.0f);
ChaseTimer = 20000;
IsChasing = true;
}
@@ -817,12 +817,12 @@ struct TRINITY_DLL_DECL boss_bigbadwolfAI : public ScriptedAI
{
IsChasing = false;
if (Unit* target = Unit::GetUnit((*m_creature), HoodGUID))
if (Unit *pTarget = Unit::GetUnit((*m_creature), HoodGUID))
{
HoodGUID = 0;
if (DoGetThreat(target))
DoModifyThreatPercent(target, -100);
m_creature->AddThreat(target, TempThreat);
if (DoGetThreat(pTarget))
DoModifyThreatPercent(pTarget, -100);
m_creature->AddThreat(pTarget, TempThreat);
TempThreat = 0;
}
@@ -911,19 +911,19 @@ void PretendToDie(Creature* pCreature)
pCreature->SetStandState(UNIT_STAND_STATE_DEAD);
};
void Resurrect(Creature* target)
void Resurrect(Creature *pTarget)
{
target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
target->SetHealth(target->GetMaxHealth());
target->SetStandState(UNIT_STAND_STATE_STAND);
target->CastSpell(target, SPELL_RES_VISUAL, true);
if (target->getVictim())
pTarget->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
pTarget->SetHealth(pTarget->GetMaxHealth());
pTarget->SetStandState(UNIT_STAND_STATE_STAND);
pTarget->CastSpell(pTarget, SPELL_RES_VISUAL, true);
if (pTarget->getVictim())
{
target->GetMotionMaster()->MoveChase(target->getVictim());
target->AI()->AttackStart(target->getVictim());
pTarget->GetMotionMaster()->MoveChase(pTarget->getVictim());
pTarget->AI()->AttackStart(pTarget->getVictim());
}
else
target->GetMotionMaster()->Initialize();
pTarget->GetMotionMaster()->Initialize();
};
struct TRINITY_DLL_DECL boss_julianneAI : public ScriptedAI
@@ -1253,7 +1253,7 @@ void boss_julianneAI::UpdateAI(const uint32 diff)
{
DoScriptText(SAY_JULIANNE_ENTER, m_creature);
EntryYellTimer = 0;
}else EntryYellTimer -= diff;
} else EntryYellTimer -= diff;
}
if (AggroYellTimer)
@@ -1264,7 +1264,7 @@ void boss_julianneAI::UpdateAI(const uint32 diff)
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
m_creature->setFaction(16);
AggroYellTimer = 0;
}else AggroYellTimer -= diff;
} else AggroYellTimer -= diff;
}
if (DrinkPoisonTimer)
@@ -1276,7 +1276,7 @@ void boss_julianneAI::UpdateAI(const uint32 diff)
Phase = PHASE_ROMULO;
SummonRomuloTimer = 10000;
DrinkPoisonTimer = 0;
}else DrinkPoisonTimer -= diff;
} else DrinkPoisonTimer -= diff;
}
if (Phase == PHASE_ROMULO && !SummonedRomulo)
@@ -1309,7 +1309,7 @@ void boss_julianneAI::UpdateAI(const uint32 diff)
ResurrectSelfTimer = 0;
ResurrectTimer = 1000;
}else ResurrectSelfTimer -= diff;
} else ResurrectSelfTimer -= diff;
}
if (!UpdateVictim() || IsFakingDeath)
@@ -1333,8 +1333,8 @@ void boss_julianneAI::UpdateAI(const uint32 diff)
if (BlindingPassionTimer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target, SPELL_BLINDING_PASSION);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget, SPELL_BLINDING_PASSION);
BlindingPassionTimer = urand(30000,45000);
} else BlindingPassionTimer -= diff;
@@ -1388,10 +1388,10 @@ void boss_romuloAI::UpdateAI(const uint32 diff)
if (BackwardLungeTimer <= diff)
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true);
if (target && !m_creature->HasInArc(M_PI, target))
Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true);
if (pTarget && !m_creature->HasInArc(M_PI, pTarget))
{
DoCast(target, SPELL_BACKWARD_LUNGE);
DoCast(pTarget, SPELL_BACKWARD_LUNGE);
BackwardLungeTimer = urand(15000,30000);
}
} else BackwardLungeTimer -= diff;
@@ -1404,8 +1404,8 @@ void boss_romuloAI::UpdateAI(const uint32 diff)
if (DeadlySwatheTimer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target, SPELL_DEADLY_SWATHE);
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget, SPELL_DEADLY_SWATHE);
DeadlySwatheTimer = urand(15000,25000);
} else DeadlySwatheTimer -= diff;
@@ -273,7 +273,7 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI
// *Heroic mode only:
if (Heroic)
{
if (PyroblastTimer < diff)
if (PyroblastTimer <= diff)
{
m_creature->InterruptSpell(CURRENT_CHANNELED_SPELL);
m_creature->InterruptSpell(CURRENT_GENERIC_SPELL);
@@ -283,18 +283,18 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI
} else PyroblastTimer -= diff;
}
if (FireballTimer < diff)
if (FireballTimer <= diff)
{
DoCast(m_creature->getVictim(), Heroic ? SPELL_FIREBALL_HEROIC : SPELL_FIREBALL_NORMAL);
FireballTimer = urand(2000,6000);
} else FireballTimer -= diff;
if (PhoenixTimer < diff)
if (PhoenixTimer <= diff)
{
Unit* target = SelectUnit(SELECT_TARGET_RANDOM,1);
Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,1);
uint32 random = rand()%2 + 1;
uint8 random = urand(1,2);
float x = KaelLocations[random][0];
float y = KaelLocations[random][1];
@@ -303,25 +303,25 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI
{
Phoenix->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE + UNIT_FLAG_NON_ATTACKABLE);
SetThreatList(Phoenix);
Phoenix->AI()->AttackStart(target);
Phoenix->AI()->AttackStart(pTarget);
}
DoScriptText(SAY_PHOENIX, m_creature);
PhoenixTimer = 60000;
}else PhoenixTimer -= diff;
} else PhoenixTimer -= diff;
if (FlameStrikeTimer < diff)
if (FlameStrikeTimer <= diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
{
m_creature->InterruptSpell(CURRENT_CHANNELED_SPELL);
m_creature->InterruptSpell(CURRENT_GENERIC_SPELL);
DoCast(target, SPELL_FLAMESTRIKE3, true);
DoCast(pTarget, SPELL_FLAMESTRIKE3, true);
DoScriptText(SAY_FLAMESTRIKE, m_creature);
}
FlameStrikeTimer = 15000 + rand()%10000;
}else FlameStrikeTimer -= diff;
FlameStrikeTimer = urand(15000,25000);
} else FlameStrikeTimer -= diff;
// Below 50%
if (m_creature->GetMaxHealth() * 0.5 > m_creature->GetHealth())
@@ -341,7 +341,7 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI
case 1:
{
if (GravityLapseTimer < diff)
if (GravityLapseTimer <= diff)
{
switch(GravityLapsePhase)
{
@@ -385,15 +385,15 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI
for (uint8 i = 0; i < 3; ++i)
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
Creature* Orb = DoSpawnCreature(CREATURE_ARCANE_SPHERE, 5, 5, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000);
if (Orb && target)
if (Orb && pTarget)
{
//SetThreatList(Orb);
Orb->AddThreat(target, 1.0f);
Orb->AI()->AttackStart(target);
Orb->AddThreat(pTarget, 1.0f);
Orb->AI()->AttackStart(pTarget);
}
}
@@ -410,7 +410,7 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI
GravityLapsePhase = 0;
break;
}
}else GravityLapseTimer -= diff;
} else GravityLapseTimer -= diff;
}
break;
}
@@ -441,7 +441,7 @@ struct TRINITY_DLL_DECL mob_felkael_flamestrikeAI : public ScriptedAI
void MoveInLineOfSight(Unit *who) {}
void UpdateAI(const uint32 diff)
{
if (FlameStrikeTimer < diff)
if (FlameStrikeTimer <= diff)
{
DoCast(m_creature, Heroic ? SPELL_FLAMESTRIKE1_HEROIC : SPELL_FLAMESTRIKE1_NORMAL, true);
m_creature->Kill(m_creature);
@@ -532,13 +532,12 @@ struct TRINITY_DLL_DECL mob_felkael_phoenixAI : public ScriptedAI
if (Rebirth)
{
if (Death_Timer < diff)
if (Death_Timer <= diff)
{
m_creature->SummonCreature(CREATURE_PHOENIX_EGG, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45000);
m_creature->setDeathState(JUST_DIED);
m_creature->RemoveCorpse();
m_creature->DisappearAndDie();
Rebirth = false;
}else Death_Timer -= diff;
} else Death_Timer -= diff;
}
}
@@ -546,10 +545,10 @@ struct TRINITY_DLL_DECL mob_felkael_phoenixAI : public ScriptedAI
if (!UpdateVictim())
return;
if (BurnTimer < diff)
if (BurnTimer <= diff)
{
//spell Burn should possible do this, but it doesn't, so do this for now.
uint32 dmg = urand(1650,2050);
uint16 dmg = urand(1650,2050);
m_creature->DealDamage(m_creature, dmg, 0, DOT, SPELL_SCHOOL_MASK_FIRE, NULL, false);
BurnTimer += 2000;
} BurnTimer -= diff;
@@ -567,7 +566,6 @@ struct TRINITY_DLL_DECL mob_felkael_phoenix_eggAI : public ScriptedAI
void Reset()
{
HatchTimer = 10000;
}
void EnterCombat(Unit* who) {}
@@ -575,7 +573,7 @@ struct TRINITY_DLL_DECL mob_felkael_phoenix_eggAI : public ScriptedAI
void UpdateAI(const uint32 diff)
{
if (HatchTimer < diff)
if (HatchTimer <= diff)
{
m_creature->SummonCreature(CREATURE_PHOENIX, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000);
m_creature->Kill(m_creature);
@@ -586,7 +584,7 @@ struct TRINITY_DLL_DECL mob_felkael_phoenix_eggAI : public ScriptedAI
struct TRINITY_DLL_DECL mob_arcane_sphereAI : public ScriptedAI
{
mob_arcane_sphereAI(Creature *c) : ScriptedAI(c) {Reset();}
mob_arcane_sphereAI(Creature *c) : ScriptedAI(c) { Reset(); }
uint32 DespawnTimer;
uint32 ChangeTargetTimer;
@@ -606,21 +604,22 @@ struct TRINITY_DLL_DECL mob_arcane_sphereAI : public ScriptedAI
void UpdateAI(const uint32 diff)
{
if (DespawnTimer < diff)
if (DespawnTimer <= diff)
m_creature->Kill(m_creature);
else DespawnTimer -= diff;
else
DespawnTimer -= diff;
//Return since we have no target
if (!UpdateVictim())
return;
if (ChangeTargetTimer < diff)
if (ChangeTargetTimer <= diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
{
m_creature->AddThreat(target, 1.0f);
m_creature->TauntApply(target);
AttackStart(target);
m_creature->AddThreat(pTarget, 1.0f);
m_creature->TauntApply(pTarget);
AttackStart(pTarget);
}
ChangeTargetTimer = urand(5000,15000);
@@ -246,72 +246,72 @@ struct TRINITY_DLL_DECL boss_priestess_delrissaAI : public ScriptedAI
if (HealTimer <= diff)
{
uint32 health = m_creature->GetHealth();
Unit* target = m_creature;
Unit *pTarget = m_creature;
for (uint8 i = 0; i < MAX_ACTIVE_LACKEY; ++i)
{
if (Unit* pAdd = Unit::GetUnit(*m_creature, m_auiLackeyGUID[i]))
{
if (pAdd->isAlive() && pAdd->GetHealth() < health)
target = pAdd;
pTarget = pAdd;
}
}
DoCast(target, SPELL_FLASH_HEAL);
DoCast(pTarget, SPELL_FLASH_HEAL);
HealTimer = 15000;
}else HealTimer -= diff;
} else HealTimer -= diff;
if (RenewTimer <= diff)
{
Unit* target = m_creature;
Unit *pTarget = m_creature;
if (urand(0,1))
if (Unit* pAdd = Unit::GetUnit(*m_creature, m_auiLackeyGUID[rand()%MAX_ACTIVE_LACKEY]))
if (pAdd->isAlive())
target = pAdd;
pTarget = pAdd;
DoCast(target,Heroic ? SPELL_RENEW_HEROIC : SPELL_RENEW_NORMAL);
DoCast(pTarget,Heroic ? SPELL_RENEW_HEROIC : SPELL_RENEW_NORMAL);
RenewTimer = 5000;
} else RenewTimer -= diff;
if (ShieldTimer <= diff)
{
Unit* target = m_creature;
Unit *pTarget = m_creature;
if (urand(0,1))
if (Unit* pAdd = Unit::GetUnit(*m_creature, m_auiLackeyGUID[rand()%MAX_ACTIVE_LACKEY]))
if (pAdd->isAlive() && !pAdd->HasAura(SPELL_SHIELD))
target = pAdd;
pTarget = pAdd;
DoCast(target, SPELL_SHIELD);
DoCast(pTarget, SPELL_SHIELD);
ShieldTimer = 7500;
} else ShieldTimer -= diff;
if (DispelTimer <= diff)
{
Unit* target = NULL;
Unit *pTarget = NULL;
bool friendly = false;
if (urand(0,1))
target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
else
{
friendly = true;
if (urand(0,1))
target = m_creature;
pTarget = m_creature;
else
if (Unit* pAdd = Unit::GetUnit(*m_creature, m_auiLackeyGUID[rand()%MAX_ACTIVE_LACKEY]))
if (pAdd->isAlive())
target = pAdd;
pTarget = pAdd;
}
if (target)
DoCast(target, SPELL_DISPEL_MAGIC);
if (pTarget)
DoCast(pTarget, SPELL_DISPEL_MAGIC);
DispelTimer = 12000;
} else DispelTimer -= diff;
if (SWPainTimer < diff)
if (SWPainTimer <= diff)
{
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(pTarget, Heroic ? SPELL_SW_PAIN_HEROIC : SPELL_SW_PAIN_NORMAL);
@@ -754,14 +754,14 @@ struct TRINITY_DLL_DECL boss_yazzaiAI : public boss_priestess_lackey_commonAI
boss_priestess_lackey_commonAI::UpdateAI(diff);
if (Polymorph_Timer < diff)
if (Polymorph_Timer <= diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
{
DoCast(target, SPELL_POLYMORPH);
DoCast(pTarget, SPELL_POLYMORPH);
Polymorph_Timer = 20000;
}
}else Polymorph_Timer -= diff;
} else Polymorph_Timer -= diff;
if (((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 35) && !HasIceBlocked)
{
@@ -769,42 +769,42 @@ struct TRINITY_DLL_DECL boss_yazzaiAI : public boss_priestess_lackey_commonAI
HasIceBlocked = true;
}
if (Blizzard_Timer < diff)
if (Blizzard_Timer <= diff)
{
if (Unit* pUnit = SelectUnit(SELECT_TARGET_RANDOM, 0))
DoCast(pUnit, SPELL_BLIZZARD);
Blizzard_Timer = 8000;
}else Blizzard_Timer -= diff;
} else Blizzard_Timer -= diff;
if (Ice_Lance_Timer < diff)
if (Ice_Lance_Timer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_ICE_LANCE);
Ice_Lance_Timer = 12000;
}else Ice_Lance_Timer -= diff;
} else Ice_Lance_Timer -= diff;
if (Cone_of_Cold_Timer < diff)
if (Cone_of_Cold_Timer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_CONE_OF_COLD);
Cone_of_Cold_Timer = 10000;
}else Cone_of_Cold_Timer -= diff;
} else Cone_of_Cold_Timer -= diff;
if (Frostbolt_Timer < diff)
if (Frostbolt_Timer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_FROSTBOLT);
Frostbolt_Timer = 8000;
}else Frostbolt_Timer -= diff;
} else Frostbolt_Timer -= diff;
if (Blink_Timer < diff)
if (Blink_Timer <= diff)
{
bool InMeleeRange = false;
std::list<HostilReference*>& t_list = m_creature->getThreatManager().getThreatList();
for (std::list<HostilReference*>::iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
{
if (Unit* target = Unit::GetUnit(*m_creature, (*itr)->getUnitGuid()))
if (Unit *pTarget = Unit::GetUnit(*m_creature, (*itr)->getUnitGuid()))
{
//if in melee range
if (target->IsWithinDistInMap(m_creature, 5))
if (pTarget->IsWithinDistInMap(m_creature, 5))
{
InMeleeRange = true;
break;
@@ -817,7 +817,7 @@ struct TRINITY_DLL_DECL boss_yazzaiAI : public boss_priestess_lackey_commonAI
DoCast(m_creature, SPELL_BLINK);
Blink_Timer = 8000;
}else Blink_Timer -= diff;
} else Blink_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -875,16 +875,16 @@ struct TRINITY_DLL_DECL boss_warlord_salarisAI : public boss_priestess_lackey_co
boss_priestess_lackey_commonAI::UpdateAI(diff);
if (Intercept_Stun_Timer < diff)
if (Intercept_Stun_Timer <= diff)
{
bool InMeleeRange = false;
std::list<HostilReference*>& t_list = m_creature->getThreatManager().getThreatList();
for (std::list<HostilReference*>::iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
{
if (Unit* target = Unit::GetUnit(*m_creature, (*itr)->getUnitGuid()))
if (Unit *pTarget = Unit::GetUnit(*m_creature, (*itr)->getUnitGuid()))
{
//if in melee range
if (target->IsWithinDistInMap(m_creature, ATTACK_DISTANCE))
if (pTarget->IsWithinDistInMap(m_creature, ATTACK_DISTANCE))
{
InMeleeRange = true;
break;
@@ -900,37 +900,37 @@ struct TRINITY_DLL_DECL boss_warlord_salarisAI : public boss_priestess_lackey_co
}
Intercept_Stun_Timer = 10000;
}else Intercept_Stun_Timer -= diff;
} else Intercept_Stun_Timer -= diff;
if (Disarm_Timer < diff)
if (Disarm_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_DISARM);
Disarm_Timer = 6000;
}else Disarm_Timer -= diff;
} else Disarm_Timer -= diff;
if (Hamstring_Timer < diff)
if (Hamstring_Timer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_HAMSTRING);
Hamstring_Timer = 4500;
}else Hamstring_Timer -= diff;
} else Hamstring_Timer -= diff;
if (Mortal_Strike_Timer < diff)
if (Mortal_Strike_Timer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_MORTAL_STRIKE);
Mortal_Strike_Timer = 4500;
}else Mortal_Strike_Timer -= diff;
} else Mortal_Strike_Timer -= diff;
if (Piercing_Howl_Timer < diff)
if (Piercing_Howl_Timer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_PIERCING_HOWL);
Piercing_Howl_Timer = 10000;
}else Piercing_Howl_Timer -= diff;
} else Piercing_Howl_Timer -= diff;
if (Frightening_Shout_Timer < diff)
if (Frightening_Shout_Timer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_FRIGHTENING_SHOUT);
Frightening_Shout_Timer = 18000;
}else Frightening_Shout_Timer -= diff;
} else Frightening_Shout_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -997,13 +997,13 @@ struct TRINITY_DLL_DECL boss_garaxxasAI : public boss_priestess_lackey_commonAI
if (m_creature->IsWithinDistInMap(m_creature->getVictim(), ATTACK_DISTANCE))
{
if (Wing_Clip_Timer < diff)
if (Wing_Clip_Timer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_WING_CLIP);
Wing_Clip_Timer = 4000;
}else Wing_Clip_Timer -= diff;
} else Wing_Clip_Timer -= diff;
if (Freezing_Trap_Timer < diff)
if (Freezing_Trap_Timer <= diff)
{
//attempt find go summoned from spell (casted by m_creature)
GameObject* pGo = m_creature->GetGameObject(SPELL_FREEZING_TRAP);
@@ -1017,35 +1017,35 @@ struct TRINITY_DLL_DECL boss_garaxxasAI : public boss_priestess_lackey_commonAI
DoCast(m_creature->getVictim(), SPELL_FREEZING_TRAP);
Freezing_Trap_Timer = 15000;
}
}else Freezing_Trap_Timer -= diff;
} else Freezing_Trap_Timer -= diff;
DoMeleeAttackIfReady();
}
else
{
if (Concussive_Shot_Timer < diff)
if (Concussive_Shot_Timer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_CONCUSSIVE_SHOT);
Concussive_Shot_Timer = 8000;
}else Concussive_Shot_Timer -= diff;
} else Concussive_Shot_Timer -= diff;
if (Multi_Shot_Timer < diff)
if (Multi_Shot_Timer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_MULTI_SHOT);
Multi_Shot_Timer = 10000;
}else Multi_Shot_Timer -= diff;
} else Multi_Shot_Timer -= diff;
if (Aimed_Shot_Timer < diff)
if (Aimed_Shot_Timer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_AIMED_SHOT);
Aimed_Shot_Timer = 6000;
}else Aimed_Shot_Timer -= diff;
} else Aimed_Shot_Timer -= diff;
if (Shoot_Timer < diff)
if (Shoot_Timer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_SHOOT);
Shoot_Timer = 2500;
}else Shoot_Timer -= diff;
} else Shoot_Timer -= diff;
}
}
};
@@ -1097,20 +1097,20 @@ struct TRINITY_DLL_DECL boss_apokoAI : public boss_priestess_lackey_commonAI
boss_priestess_lackey_commonAI::UpdateAI(diff);
if (Totem_Timer < diff)
if (Totem_Timer <= diff)
{
DoCast(m_creature, RAND(SPELL_WINDFURY_TOTEM,SPELL_FIRE_NOVA_TOTEM,SPELL_EARTHBIND_TOTEM));
++Totem_Amount;
Totem_Timer = Totem_Amount*2000;
} else Totem_Timer -= diff;
if (War_Stomp_Timer < diff)
if (War_Stomp_Timer <= diff)
{
DoCast(m_creature, SPELL_WAR_STOMP);
War_Stomp_Timer = 10000;
} else War_Stomp_Timer -= diff;
if (Purge_Timer < diff)
if (Purge_Timer <= diff)
{
if (Unit* pUnit = SelectUnit(SELECT_TARGET_RANDOM, 0))
DoCast(pUnit, SPELL_PURGE);
@@ -1118,13 +1118,13 @@ struct TRINITY_DLL_DECL boss_apokoAI : public boss_priestess_lackey_commonAI
Purge_Timer = 15000;
} else Purge_Timer -= diff;
if (Frost_Shock_Timer < diff)
if (Frost_Shock_Timer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_FROST_SHOCK);
Frost_Shock_Timer = 7000;
} else Frost_Shock_Timer -= diff;
if (Healing_Wave_Timer < diff)
if (Healing_Wave_Timer <= diff)
{
// std::vector<Add*>::iterator itr = Group.begin() + rand()%Group.size();
// uint64 guid = (*itr)->guid;
@@ -1187,25 +1187,25 @@ struct TRINITY_DLL_DECL boss_zelfanAI : public boss_priestess_lackey_commonAI
boss_priestess_lackey_commonAI::UpdateAI(diff);
if (Goblin_Dragon_Gun_Timer < diff)
if (Goblin_Dragon_Gun_Timer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_GOBLIN_DRAGON_GUN);
Goblin_Dragon_Gun_Timer = 10000;
}else Goblin_Dragon_Gun_Timer -= diff;
} else Goblin_Dragon_Gun_Timer -= diff;
if (Rocket_Launch_Timer < diff)
if (Rocket_Launch_Timer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_ROCKET_LAUNCH);
Rocket_Launch_Timer = 9000;
}else Rocket_Launch_Timer -= diff;
} else Rocket_Launch_Timer -= diff;
if (Fel_Iron_Bomb_Timer < diff)
if (Fel_Iron_Bomb_Timer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_FEL_IRON_BOMB);
Fel_Iron_Bomb_Timer = 15000;
}else Fel_Iron_Bomb_Timer -= diff;
} else Fel_Iron_Bomb_Timer -= diff;
if (Recombobulate_Timer < diff)
if (Recombobulate_Timer <= diff)
{
for (uint8 i = 0; i < MAX_ACTIVE_LACKEY; ++i)
{
@@ -1219,13 +1219,13 @@ struct TRINITY_DLL_DECL boss_zelfanAI : public boss_priestess_lackey_commonAI
}
}
Recombobulate_Timer = 2000;
}else Recombobulate_Timer -= diff;
} else Recombobulate_Timer -= diff;
if (High_Explosive_Sheep_Timer < diff)
if (High_Explosive_Sheep_Timer <= diff)
{
DoCast(m_creature, SPELL_HIGH_EXPLOSIVE_SHEEP);
High_Explosive_Sheep_Timer = 65000;
}else High_Explosive_Sheep_Timer -= diff;
} else High_Explosive_Sheep_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -1253,7 +1253,7 @@ CreatureAI* GetAI_zelfan(Creature* pCreature)
//
// void UpdateAI(const uint32 diff)
// {
// if (Explosion_Timer < diff)
// if (Explosion_Timer <= diff)
// {
// DoCast(m_creature->getVictim(), SPELL_SHEEP_EXPLOSION);
// }else
@@ -110,7 +110,7 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI
// Small door opened after event are expected to be closed by default
// Set Inst data for encounter
pInstance->SetData(DATA_SELIN_EVENT, NOT_STARTED);
}else error_log(ERROR_INST_DATA);
} else error_log(ERROR_INST_DATA);
DrainLifeTimer = 3000 + rand()%4000;
DrainManaTimer = DrainLifeTimer + 5000;
@@ -239,7 +239,7 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI
uint32 maxPowerMana = m_creature->GetMaxPower(POWER_MANA);
if (maxPowerMana && ((m_creature->GetPower(POWER_MANA)*100 / maxPowerMana) < 10))
{
if (DrainLifeTimer < diff)
if (DrainLifeTimer <= diff)
{
DoCast(SelectUnit(SELECT_TARGET_RANDOM, 0), SPELL_DRAIN_LIFE);
DrainLifeTimer = 10000;
@@ -248,7 +248,7 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI
// Heroic only
if (Heroic)
{
if (DrainManaTimer < diff)
if (DrainManaTimer <= diff)
{
DoCast(SelectUnit(SELECT_TARGET_RANDOM, 1), SPELL_DRAIN_MANA);
DrainManaTimer = 10000;
@@ -256,7 +256,7 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI
}
}
if (FelExplosionTimer < diff)
if (FelExplosionTimer <= diff)
{
if (!m_creature->IsNonMeleeSpellCasted(false))
{
@@ -269,7 +269,7 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI
maxPowerMana = m_creature->GetMaxPower(POWER_MANA);
if (maxPowerMana && ((m_creature->GetPower(POWER_MANA)*100 / maxPowerMana) < 10))
{
if (DrainCrystalTimer < diff)
if (DrainCrystalTimer <= diff)
{
SelectNearestCrystal();
if (Heroic) DrainCrystalTimer = 10000 + rand()%5000;
@@ -281,7 +281,7 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI
{
if (IsDraining)
{
if (EmpowerTimer < diff)
if (EmpowerTimer <= diff)
{
IsDraining = false;
DrainingCrystal = false;
@@ -151,31 +151,31 @@ struct TRINITY_DLL_DECL boss_vexallusAI : public ScriptedAI
m_creature->SummonCreature(NPC_PURE_ENERGY, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
}
if (ChainLightningTimer < diff)
if (ChainLightningTimer <= diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
DoCast(target, Heroic ? SPELL_H_CHAIN_LIGHTNING : SPELL_CHAIN_LIGHTNING);
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
DoCast(pTarget, Heroic ? SPELL_H_CHAIN_LIGHTNING : SPELL_CHAIN_LIGHTNING);
ChainLightningTimer = 8000;
}else ChainLightningTimer -= diff;
} else ChainLightningTimer -= diff;
if (ArcaneShockTimer < diff)
if (ArcaneShockTimer <= diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
if (target)
DoCast(target, Heroic ? SPELL_H_ARCANE_SHOCK : SPELL_ARCANE_SHOCK);
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
if (pTarget)
DoCast(pTarget, Heroic ? SPELL_H_ARCANE_SHOCK : SPELL_ARCANE_SHOCK);
ArcaneShockTimer = 8000;
}else ArcaneShockTimer -= diff;
} else ArcaneShockTimer -= diff;
}
else
{
if (OverloadTimer < diff)
if (OverloadTimer <= diff)
{
DoCast(m_creature->getVictim(), SPELL_OVERLOAD);
OverloadTimer = 2000;
}else OverloadTimer -= diff;
} else OverloadTimer -= diff;
}
DoMeleeAttackIfReady();
@@ -112,7 +112,7 @@ struct TRINITY_DLL_DECL npc_kalecgosAI : public ScriptedAI
m_creature->UpdateEntry(NPC_KAEL);
m_uiTransformTimer = 0;
}else m_uiTransformTimer -= uiDiff;
} else m_uiTransformTimer -= uiDiff;
}
}
};
@@ -64,29 +64,29 @@ struct TRINITY_DLL_DECL boss_baron_geddonAI : public ScriptedAI
}
//Inferno_Timer
if (Inferno_Timer < diff)
if (Inferno_Timer <= diff)
{
DoCast(m_creature,SPELL_INFERNO);
Inferno_Timer = 45000;
}else Inferno_Timer -= diff;
} else Inferno_Timer -= diff;
//IgniteMana_Timer
if (IgniteMana_Timer < diff)
if (IgniteMana_Timer <= diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(target,SPELL_IGNITEMANA);
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(pTarget,SPELL_IGNITEMANA);
IgniteMana_Timer = 30000;
}else IgniteMana_Timer -= diff;
} else IgniteMana_Timer -= diff;
//LivingBomb_Timer
if (LivingBomb_Timer < diff)
if (LivingBomb_Timer <= diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(target,SPELL_LIVINGBOMB);
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(pTarget,SPELL_LIVINGBOMB);
LivingBomb_Timer = 35000;
}else LivingBomb_Timer -= diff;
} else LivingBomb_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -59,18 +59,18 @@ struct TRINITY_DLL_DECL boss_garrAI : public ScriptedAI
return;
//AntiMagicPulse_Timer
if (AntiMagicPulse_Timer < diff)
if (AntiMagicPulse_Timer <= diff)
{
DoCast(m_creature,SPELL_ANTIMAGICPULSE);
AntiMagicPulse_Timer = 10000 + rand()%5000;
}else AntiMagicPulse_Timer -= diff;
} else AntiMagicPulse_Timer -= diff;
//MagmaShackles_Timer
if (MagmaShackles_Timer < diff)
if (MagmaShackles_Timer <= diff)
{
DoCast(m_creature,SPELL_MAGMASHACKLES);
MagmaShackles_Timer = 8000 + rand()%4000;
}else MagmaShackles_Timer -= diff;
} else MagmaShackles_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -97,13 +97,13 @@ struct TRINITY_DLL_DECL mob_fireswornAI : public ScriptedAI
return;
//Immolate_Timer
if (Immolate_Timer < diff)
if (Immolate_Timer <= diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(target,SPELL_IMMOLATE);
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(pTarget,SPELL_IMMOLATE);
Immolate_Timer = 5000 + rand()%5000;
}else Immolate_Timer -= diff;
Immolate_Timer = urand(5000,10000);
} else Immolate_Timer -= diff;
//Cast Erruption and let them die
if (m_creature->GetHealth() <= m_creature->GetMaxHealth() * 0.10)
@@ -50,28 +50,29 @@ struct TRINITY_DLL_DECL boss_gehennasAI : public ScriptedAI
return;
//ShadowBolt_Timer
if (ShadowBolt_Timer < diff)
if (ShadowBolt_Timer <= diff)
{
if (Unit* bTarget = SelectUnit(SELECT_TARGET_RANDOM,1))
DoCast(bTarget,SPELL_SHADOWBOLT);
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 1))
DoCast(pTarget, SPELL_SHADOWBOLT);
ShadowBolt_Timer = 7000;
}else ShadowBolt_Timer -= diff;
} else ShadowBolt_Timer -= diff;
//RainOfFire_Timer
if (RainOfFire_Timer < diff)
if (RainOfFire_Timer <= diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(target,SPELL_RAINOFFIRE);
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
DoCast(pTarget, SPELL_RAINOFFIRE);
RainOfFire_Timer = 4000 + rand()%8000;
}else RainOfFire_Timer -= diff;
RainOfFire_Timer = urand(4000,12000);
} else RainOfFire_Timer -= diff;
//GehennasCurse_Timer
if (GehennasCurse_Timer < diff)
if (GehennasCurse_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_GEHENNASCURSE);
GehennasCurse_Timer = 22000 + rand()%8000;
}else GehennasCurse_Timer -= diff;
GehennasCurse_Timer = urand(22000,30000);
} else GehennasCurse_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -52,25 +52,25 @@ struct TRINITY_DLL_DECL boss_lucifronAI : public ScriptedAI
return;
//Impending doom timer
if (ImpendingDoom_Timer < diff)
if (ImpendingDoom_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_IMPENDINGDOOM);
ImpendingDoom_Timer = 20000;
}else ImpendingDoom_Timer -= diff;
} else ImpendingDoom_Timer -= diff;
//Lucifron's curse timer
if (LucifronCurse_Timer < diff)
if (LucifronCurse_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_LUCIFRONCURSE);
LucifronCurse_Timer = 15000;
}else LucifronCurse_Timer -= diff;
} else LucifronCurse_Timer -= diff;
//Shadowshock
if (ShadowShock_Timer < diff)
if (ShadowShock_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_SHADOWSHOCK);
ShadowShock_Timer = 6000;
}else ShadowShock_Timer -= diff;
} else ShadowShock_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -58,28 +58,28 @@ struct TRINITY_DLL_DECL boss_magmadarAI : public ScriptedAI
return;
//Frenzy_Timer
if (Frenzy_Timer < diff)
if (Frenzy_Timer <= diff)
{
DoScriptText(EMOTE_FRENZY, m_creature);
DoCast(m_creature,SPELL_FRENZY);
Frenzy_Timer = 15000;
}else Frenzy_Timer -= diff;
} else Frenzy_Timer -= diff;
//Panic_Timer
if (Panic_Timer < diff)
if (Panic_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_PANIC);
Panic_Timer = 35000;
}else Panic_Timer -= diff;
} else Panic_Timer -= diff;
//Lavabomb_Timer
if (Lavabomb_Timer < diff)
if (Lavabomb_Timer <= diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(target,SPELL_LAVABOMB_ALT);
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(pTarget,SPELL_LAVABOMB_ALT);
Lavabomb_Timer = 12000;
}else Lavabomb_Timer -= diff;
} else Lavabomb_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -91,29 +91,29 @@ struct TRINITY_DLL_DECL boss_majordomoAI : public ScriptedAI
}
//MagicReflection_Timer
// if (MagicReflection_Timer < diff)
// if (MagicReflection_Timer <= diff)
// {
// DoCast(m_creature, SPELL_MAGICREFLECTION);
//60 seconds until we should cast this agian
// MagicReflection_Timer = 30000;
// }else MagicReflection_Timer -= diff;
// } else MagicReflection_Timer -= diff;
//DamageReflection_Timer
// if (DamageReflection_Timer < diff)
// if (DamageReflection_Timer <= diff)
// {
// DoCast(m_creature, SPELL_DAMAGEREFLECTION);
//60 seconds until we should cast this agian
// DamageReflection_Timer = 30000;
// }else DamageReflection_Timer -= diff;
// } else DamageReflection_Timer -= diff;
//Blastwave_Timer
if (Blastwave_Timer < diff)
if (Blastwave_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_BLASTWAVE);
Blastwave_Timer = 10000;
}else Blastwave_Timer -= diff;
} else Blastwave_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -136,7 +136,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public ScriptedAI
void UpdateAI(const uint32 diff)
{
if (WasBanished && Attack_Timer < diff)
if (WasBanished && Attack_Timer <= diff)
{
//Become unbanished again
m_creature->setFaction(14);
@@ -155,54 +155,50 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public ScriptedAI
return;
//WrathOfRagnaros_Timer
if (WrathOfRagnaros_Timer < diff)
if (WrathOfRagnaros_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_WRATHOFRAGNAROS);
if (rand()%2 == 0)
{
if (urand(0,1))
DoScriptText(SAY_WRATH, m_creature);
}
WrathOfRagnaros_Timer = 30000;
}else WrathOfRagnaros_Timer -= diff;
} else WrathOfRagnaros_Timer -= diff;
//HandOfRagnaros_Timer
if (HandOfRagnaros_Timer < diff)
if (HandOfRagnaros_Timer <= diff)
{
DoCast(m_creature,SPELL_HANDOFRAGNAROS);
if (rand()%2==0)
{
if (urand(0,1))
DoScriptText(SAY_HAND, m_creature);
}
HandOfRagnaros_Timer = 25000;
}else HandOfRagnaros_Timer -= diff;
} else HandOfRagnaros_Timer -= diff;
//LavaBurst_Timer
if (LavaBurst_Timer < diff)
if (LavaBurst_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_LAVABURST);
LavaBurst_Timer = 10000;
}else LavaBurst_Timer -= diff;
} else LavaBurst_Timer -= diff;
//Erruption_Timer
if (LavaBurst_Timer < diff)
if (LavaBurst_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_ERRUPTION);
Erruption_Timer = 20000 + rand()%25000;
}else Erruption_Timer -= diff;
Erruption_Timer = urand(20000,45000);
} else Erruption_Timer -= diff;
//ElementalFire_Timer
if (ElementalFire_Timer < diff)
if (ElementalFire_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_ELEMENTALFIRE);
ElementalFire_Timer = 10000 + rand()%4000;
}else ElementalFire_Timer -= diff;
ElementalFire_Timer = urand(10000,14000);
} else ElementalFire_Timer -= diff;
//Submerge_Timer
if (!WasBanished && Submerge_Timer < diff)
if (!WasBanished && Submerge_Timer <= diff)
{
//Creature spawning and ragnaros becomming unattackable
//is not very well supported in the core
@@ -254,7 +250,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public ScriptedAI
}
Submerge_Timer = 180000;
}else Submerge_Timer -= diff;
} else Submerge_Timer -= diff;
//If we are within range melee the target
if (m_creature->IsWithinMeleeRange(m_creature->getVictim()))
@@ -269,7 +265,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public ScriptedAI
else
{
//MagmaBurst_Timer
if (MagmaBurst_Timer < diff)
if (MagmaBurst_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_MAGMABURST);
@@ -281,7 +277,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public ScriptedAI
}
MagmaBurst_Timer = 2500;
}else MagmaBurst_Timer -= diff;
} else MagmaBurst_Timer -= diff;
}
}
};
@@ -57,53 +57,50 @@ struct TRINITY_DLL_DECL boss_shazzrahAI : public ScriptedAI
return;
//ArcaneExplosion_Timer
if (ArcaneExplosion_Timer < diff)
if (ArcaneExplosion_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_ARCANEEXPLOSION);
ArcaneExplosion_Timer = 5000 + rand()%4000;
}else ArcaneExplosion_Timer -= diff;
} else ArcaneExplosion_Timer -= diff;
//ShazzrahCurse_Timer
if (ShazzrahCurse_Timer < diff)
if (ShazzrahCurse_Timer <= diff)
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
if (target) DoCast(target,SPELL_SHAZZRAHCURSE);
Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget) DoCast(pTarget,SPELL_SHAZZRAHCURSE);
ShazzrahCurse_Timer = 25000 + rand()%5000;
}else ShazzrahCurse_Timer -= diff;
} else ShazzrahCurse_Timer -= diff;
//DeadenMagic_Timer
if (DeadenMagic_Timer < diff)
if (DeadenMagic_Timer <= diff)
{
DoCast(m_creature,SPELL_DEADENMAGIC);
DeadenMagic_Timer = 35000;
}else DeadenMagic_Timer -= diff;
} else DeadenMagic_Timer -= diff;
//Countspell_Timer
if (Countspell_Timer < diff)
if (Countspell_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_COUNTERSPELL);
Countspell_Timer = 16000 + rand()%4000;
}else Countspell_Timer -= diff;
} else Countspell_Timer -= diff;
//Blink_Timer
if (Blink_Timer < diff)
if (Blink_Timer <= diff)
{
// Teleporting him to a random gamer and casting Arcane Explosion after that.
// Blink is not working cause of LoS System we need to do this hardcoded.
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
if (target)
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM,0, 100, true))
{
DoTeleportTo(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ());
DoCast(target,SPELL_ARCANEEXPLOSION);
DoResetThreat();
DoTeleportTo(pTarget->GetPositionX(), pTarget->GetPositionY(), pTarget->GetPositionZ());
DoCast(pTarget, SPELL_ARCANEEXPLOSION);
DoResetThreat();
}
Blink_Timer = 45000;
}else Blink_Timer -= diff;
} else Blink_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -64,55 +64,55 @@ struct TRINITY_DLL_DECL boss_sulfuronAI : public ScriptedAI
return;
//DemoralizingShout_Timer
if (DemoralizingShout_Timer < diff)
if (DemoralizingShout_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_DEMORALIZINGSHOUT);
DemoralizingShout_Timer = 15000 + rand()%5000;
}else DemoralizingShout_Timer -= diff;
} else DemoralizingShout_Timer -= diff;
//Inspire_Timer
if (Inspire_Timer < diff)
if (Inspire_Timer <= diff)
{
Creature* target = NULL;
Creature *pTarget = NULL;
std::list<Creature*> pList = DoFindFriendlyMissingBuff(45.0f,SPELL_INSPIRE);
if (!pList.empty())
{
std::list<Creature*>::iterator i = pList.begin();
advance(i, (rand()%pList.size()));
target = (*i);
pTarget = (*i);
}
if (target)
DoCast(target,SPELL_INSPIRE);
if (pTarget)
DoCast(pTarget,SPELL_INSPIRE);
DoCast(m_creature,SPELL_INSPIRE);
Inspire_Timer = 20000 + rand()%6000;
}else Inspire_Timer -= diff;
} else Inspire_Timer -= diff;
//Knockdown_Timer
if (Knockdown_Timer < diff)
if (Knockdown_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_KNOCKDOWN);
Knockdown_Timer = 12000 + rand()%3000;
}else Knockdown_Timer -= diff;
} else Knockdown_Timer -= diff;
//Flamespear_Timer
if (Flamespear_Timer < diff)
if (Flamespear_Timer <= diff)
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
if (target) DoCast(target,SPELL_FLAMESPEAR);
Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget) DoCast(pTarget,SPELL_FLAMESPEAR);
Flamespear_Timer = 12000 + rand()%4000;
}else Flamespear_Timer -= diff;
} else Flamespear_Timer -= diff;
//DarkStrike_Timer
if (Darkstrike_Timer < diff)
if (Darkstrike_Timer <= diff)
{
DoCast(m_creature, SPELL_DARKSTRIKE);
Darkstrike_Timer = 15000 + rand()%3000;
}else Darkstrike_Timer -= diff;
} else Darkstrike_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -143,7 +143,7 @@ struct TRINITY_DLL_DECL mob_flamewaker_priestAI : public ScriptedAI
return;
//Casting Heal to Sulfuron or other Guards.
if (Heal_Timer < diff)
if (Heal_Timer <= diff)
{
Unit* pUnit = DoSelectLowestHpFriendly(60.0f, 1);
if (!pUnit)
@@ -152,27 +152,27 @@ struct TRINITY_DLL_DECL mob_flamewaker_priestAI : public ScriptedAI
DoCast(pUnit, SPELL_HEAL);
Heal_Timer = 15000+rand()%5000;
}else Heal_Timer -= diff;
} else Heal_Timer -= diff;
//ShadowWordPain_Timer
if (ShadowWordPain_Timer < diff)
if (ShadowWordPain_Timer <= diff)
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
if (target) DoCast(target,SPELL_SHADOWWORDPAIN);
Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget) DoCast(pTarget,SPELL_SHADOWWORDPAIN);
ShadowWordPain_Timer = 18000+rand()%8000;
}else ShadowWordPain_Timer -= diff;
} else ShadowWordPain_Timer -= diff;
//Immolate_Timer
if (Immolate_Timer < diff)
if (Immolate_Timer <= diff)
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
if (target) DoCast(target,SPELL_IMMOLATE);
Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget) DoCast(pTarget,SPELL_IMMOLATE);
Immolate_Timer = 15000+rand()%10000;
}else Immolate_Timer -= diff;
} else Immolate_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -146,7 +146,7 @@ struct TRINITY_DLL_DECL npc_unworthy_initiateAI : public ScriptedAI
}
}
void EventStart(Creature* anchor, Player* target)
void EventStart(Creature* anchor, Player *pTarget)
{
wait_timer = 5000;
phase = PHASE_TO_EQUIP;
@@ -158,8 +158,8 @@ struct TRINITY_DLL_DECL npc_unworthy_initiateAI : public ScriptedAI
float z;
anchor->GetContactPoint(me, anchorX, anchorY, z, 1.0f);
playerGUID = target->GetGUID();
DoScriptText(say_event_start[rand()%8], me, target);
playerGUID = pTarget->GetGUID();
DoScriptText(say_event_start[rand()%8], me, pTarget);
}
void UpdateAI(const uint32 diff);
@@ -247,8 +247,8 @@ void npc_unworthy_initiateAI::UpdateAI(const uint32 diff)
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE);
phase = PHASE_ATTACKING;
if (Player* target = Unit::GetPlayer(playerGUID))
me->AI()->AttackStart(target);
if (Player *pTarget = Unit::GetPlayer(playerGUID))
me->AI()->AttackStart(pTarget);
wait_timer = 0;
}
}
@@ -538,7 +538,7 @@ struct TRINITY_DLL_DECL npc_dark_rider_of_acherusAI : public ScriptedAI
default:
break;
}
}else PhaseTimer -= diff;
} else PhaseTimer -= diff;
}
@@ -878,7 +878,7 @@ struct TRINITY_DLL_DECL npc_scarlet_minerAI : public npc_escortAI
AddWaypoint(11, 2202.595947, -6061.325684, 5.882018 );
AddWaypoint(12, 2188.974609, -6080.866699, 3.370027 );
if(rand()%2)
if(urand(0,1))
{
AddWaypoint(13, 2176.483887, -6110.407227, 1.855181 );
AddWaypoint(14, 2172.516602, -6146.752441, 1.074235 );
@@ -956,7 +956,7 @@ struct TRINITY_DLL_DECL npc_scarlet_minerAI : public npc_escortAI
car->AI()->DoAction();
IntroPhase = 0;
}
}else IntroTimer-=diff;
} else IntroTimer-=diff;
}
npc_escortAI::UpdateAI(diff);
}
@@ -987,9 +987,9 @@ bool GOHello_go_inconspicuous_mine_car(Player* pPlayer, GameObject* pGO)
{
car->AI()->SetGUID(miner->GetGUID());
CAST_AI(npc_scarlet_minerAI, miner->AI())->InitCartQuest(pPlayer);
}else error_log("TSCR: GOHello_go_inconspicuous_mine_car vehicle entry is not correct.");
}else error_log("TSCR: GOHello_go_inconspicuous_mine_car player is not on the vehicle.");
}else error_log("TSCR: GOHello_go_inconspicuous_mine_car Scarlet Miner cant be found by script.");
} else error_log("TSCR: GOHello_go_inconspicuous_mine_car vehicle entry is not correct.");
} else error_log("TSCR: GOHello_go_inconspicuous_mine_car player is not on the vehicle.");
} else error_log("TSCR: GOHello_go_inconspicuous_mine_car Scarlet Miner cant be found by script.");
}
return true;
}
@@ -118,7 +118,7 @@ struct TRINITY_DLL_DECL npc_crusade_persuadedAI : public ScriptedAI
++uiSpeech_counter;
DoCastAOE(58111, true);
}else uiSpeech_timer -= diff;
} else uiSpeech_timer -= diff;
return;
}
@@ -394,7 +394,7 @@ struct TRINITY_DLL_DECL mob_scarlet_courierAI : public ScriptedAI
}
uiStage_timer = 3000;
uiStage = 0;
}else uiStage_timer -= diff;
} else uiStage_timer -= diff;
}
if(!UpdateVictim())
@@ -582,7 +582,7 @@ struct TRINITY_DLL_DECL npc_highlord_darion_mograineAI : public npc_escortAI
if (!bIsBattle)
{
if (uiPhase_timer < diff)
if (uiPhase_timer <= diff)
{
// ******* Before battle *****************************************************************
switch(uiStep)
@@ -1287,43 +1287,43 @@ struct TRINITY_DLL_DECL npc_highlord_darion_mograineAI : public npc_escortAI
break;
}
}else uiPhase_timer -= diff;
} else uiPhase_timer -= diff;
}
// ******* During battle *****************************************************************
else
{
if (uiAnti_magic_zone < diff)
if (uiAnti_magic_zone <= diff)
{
DoCast(me, SPELL_ANTI_MAGIC_ZONE1);
uiAnti_magic_zone = 25000 + rand()%5000;
} else uiAnti_magic_zone -= diff;
if (uiDeath_strike < diff)
if (uiDeath_strike <= diff)
{
DoCast(me->getVictim(), SPELL_DEATH_STRIKE);
uiDeath_strike = 5000 + rand()%5000;
} else uiDeath_strike -= diff;
if (uiDeath_embrace < diff)
if (uiDeath_embrace <= diff)
{
DoCast(me->getVictim(), SPELL_DEATH_EMBRACE);
uiDeath_embrace = 5000 + rand()%5000;
} else uiDeath_embrace -= diff;
if (uiIcy_touch < diff)
if (uiIcy_touch <= diff)
{
DoCast(me->getVictim(), SPELL_ICY_TOUCH1);
uiIcy_touch = 5000 + rand()%5000;
} else uiIcy_touch -= diff;
if (uiUnholy_blight < diff)
if (uiUnholy_blight <= diff)
{
DoCast(me->getVictim(), SPELL_UNHOLY_BLIGHT);
uiUnholy_blight = 5000 + rand()%5000;
} else uiUnholy_blight -= diff;
if (uiFight_speech < diff)
if (uiFight_speech <= diff)
{
DoScriptText(RAND(SAY_LIGHT_OF_DAWN09,SAY_LIGHT_OF_DAWN10,SAY_LIGHT_OF_DAWN11,
SAY_LIGHT_OF_DAWN12,SAY_LIGHT_OF_DAWN13,SAY_LIGHT_OF_DAWN14,
@@ -1335,14 +1335,14 @@ struct TRINITY_DLL_DECL npc_highlord_darion_mograineAI : public npc_escortAI
} else uiFight_speech -= diff;
// Check spawns
if (uiSpawncheck < diff)
if (uiSpawncheck <= diff)
{
SpawnNPC();
uiSpawncheck = 1000;
} else uiSpawncheck -= diff;
// Check targets
if (uiTargetcheck < diff)
if (uiTargetcheck <= diff)
{
for (uint8 i = 0; i < ENCOUNTER_GHOUL_NUMBER; ++i)
NPCChangeTarget(uiGhoulGUID[i]);
@@ -1371,7 +1371,7 @@ struct TRINITY_DLL_DECL npc_highlord_darion_mograineAI : public npc_escortAI
uiTirionGUID = pTemp->GetGUID();
}
}
if (uiFight_duration < diff)
if (uiFight_duration <= diff)
{
bIsBattle = false;
uiFight_duration = 300000;
@@ -1614,8 +1614,8 @@ bool GossipSelect_npc_highlord_darion_mograine(Player* pPlayer, Creature* pCreat
{
case GOSSIP_ACTION_INFO_DEF+1:
pPlayer->CLOSE_GOSSIP_MENU();
((npc_highlord_darion_mograineAI*)pCreature->AI())->uiStep = 1;
((npc_highlord_darion_mograineAI*)pCreature->AI())->Start(true, false, pPlayer->GetGUID());
CAST_AI(npc_highlord_darion_mograineAI, pCreature->AI())->uiStep = 1;
CAST_AI(npc_highlord_darion_mograineAI, pCreature->AI())->Start(true, false, pPlayer->GetGUID());
break;
}
return true;
@@ -48,7 +48,7 @@ struct TRINITY_DLL_DECL npc_valkyr_battle_maidenAI : public PassiveAI
void UpdateAI(const uint32 diff)
{
if(FlyBackTimer < diff)
if (FlyBackTimer <= diff)
{
Player *plr = NULL;
if(me->isSummon())
@@ -91,7 +91,7 @@ struct TRINITY_DLL_DECL npc_valkyr_battle_maidenAI : public PassiveAI
break;
}
++phase;
}else FlyBackTimer-=diff;
} else FlyBackTimer-=diff;
}
};
@@ -87,27 +87,27 @@ struct TRINITY_DLL_DECL boss_arcanist_doanAI : public ScriptedAI
bShielded = true;
}
if (Polymorph_Timer < diff)
if (Polymorph_Timer <= diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,1))
DoCast(target,SPELL_POLYMORPH);
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,1))
DoCast(pTarget,SPELL_POLYMORPH);
Polymorph_Timer = 20000;
}else Polymorph_Timer -= diff;
} else Polymorph_Timer -= diff;
//AoESilence_Timer
if (AoESilence_Timer < diff)
if (AoESilence_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_AOESILENCE);
AoESilence_Timer = 15000 + rand()%5000;
}else AoESilence_Timer -= diff;
} else AoESilence_Timer -= diff;
//ArcaneExplosion_Timer
if (ArcaneExplosion_Timer < diff)
if (ArcaneExplosion_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_ARCANEEXPLOSION);
ArcaneExplosion_Timer = 8000;
}else ArcaneExplosion_Timer -= diff;
} else ArcaneExplosion_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -55,28 +55,28 @@ struct TRINITY_DLL_DECL boss_azshir_the_sleeplessAI : public ScriptedAI
if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 50 && !m_creature->IsNonMeleeSpellCasted(false))
{
//SoulSiphon_Timer
if (SoulSiphon_Timer < diff)
if (SoulSiphon_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_SOULSIPHON);
return;
SoulSiphon_Timer = 20000;
}else SoulSiphon_Timer -= diff;
} else SoulSiphon_Timer -= diff;
}
//CallOfTheGrave_Timer
if (CallOftheGrave_Timer < diff)
if (CallOftheGrave_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_CALLOFTHEGRAVE);
CallOftheGrave_Timer = 30000;
}else CallOftheGrave_Timer -= diff;
} else CallOftheGrave_Timer -= diff;
//Terrify_Timer
if (Terrify_Timer < diff)
if (Terrify_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_TERRIFY);
Terrify_Timer = 20000;
}else Terrify_Timer -= diff;
} else Terrify_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -77,32 +77,32 @@ struct TRINITY_DLL_DECL boss_bloodmage_thalnosAI : public ScriptedAI
}
//FlameShock_Timer
if (FlameShock_Timer < diff)
if (FlameShock_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_FLAMESHOCK);
FlameShock_Timer = 10000 + rand()%5000;
}else FlameShock_Timer -= diff;
} else FlameShock_Timer -= diff;
//FlameSpike_Timer
if (FlameSpike_Timer < diff)
if (FlameSpike_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_FLAMESPIKE);
FlameSpike_Timer = 30000;
}else FlameSpike_Timer -= diff;
} else FlameSpike_Timer -= diff;
//FireNova_Timer
if (FireNova_Timer < diff)
if (FireNova_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_FIRENOVA);
FireNova_Timer = 40000;
}else FireNova_Timer -= diff;
} else FireNova_Timer -= diff;
//ShadowBolt_Timer
if (ShadowBolt_Timer < diff)
if (ShadowBolt_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_SHADOWBOLT);
ShadowBolt_Timer = 2000;
}else ShadowBolt_Timer -= diff;
} else ShadowBolt_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -230,9 +230,9 @@ struct TRINITY_DLL_DECL mob_headAI : public ScriptedAI
}
void EnterCombat(Unit *who) {}
void SaySound(int32 textEntry, Unit *target = 0)
void SaySound(int32 textEntry, Unit *pTarget = 0)
{
DoScriptText(textEntry, m_creature, target);
DoScriptText(textEntry, m_creature, pTarget);
//DoCast(m_creature,SPELL_HEAD_SPEAKS,true);
Creature *speaker = DoSpawnCreature(HELPER,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN,1000);
if (speaker)
@@ -297,7 +297,7 @@ struct TRINITY_DLL_DECL mob_headAI : public ScriptedAI
{
if (!withbody)
{
if (wait < diff)
if (wait <= diff)
{
wait = 1000;
if (!m_creature->getVictim()) return;
@@ -305,7 +305,7 @@ struct TRINITY_DLL_DECL mob_headAI : public ScriptedAI
m_creature->GetMotionMaster()->MoveFleeing(m_creature->getVictim());
} else wait -= diff;
if (laugh < diff)
if (laugh <= diff)
{
laugh = urand(15000,30000);
DoPlaySoundToSet(m_creature, RandomLaugh[urand(0,2)]);
@@ -320,7 +320,7 @@ struct TRINITY_DLL_DECL mob_headAI : public ScriptedAI
{
if (die)
{
if (wait < diff)
if (wait <= diff)
{
die = false;
if (Unit *body = Unit::GetUnit((*m_creature), bodyGUID))
@@ -488,9 +488,9 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
}
}
void SaySound(int32 textEntry, Unit *target = 0)
void SaySound(int32 textEntry, Unit *pTarget = 0)
{
DoScriptText(textEntry, m_creature, target);
DoScriptText(textEntry, m_creature, pTarget);
laugh += 4000;
}
@@ -608,7 +608,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
{
if (!IsFlying)
{
if (say_timer < diff)
if (say_timer <= diff)
{
say_timer = 3000;
Player *plr = SelectRandomPlayer(100.0f,false);
@@ -647,7 +647,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
case 1:
if (burned)
break;
if (burn < diff)
if (burn <= diff)
{
if (Creature *flame = m_creature->SummonCreature(HELPER,Spawn[0].x,Spawn[0].y,Spawn[0].z,0,TEMPSUMMON_TIMED_DESPAWN,17000))
CAST_AI(mob_wisp_invisAI, flame->AI())->SetType(2);
@@ -655,7 +655,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
} else burn -= diff;
break;
case 2:
if (conflagrate < diff)
if (conflagrate <= diff)
{
if (Unit *plr = SelectRandomPlayer(30.0f))
m_creature->CastSpell(plr,SPELL_CONFLAGRATION,false);
@@ -663,7 +663,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
} else conflagrate -= diff;
break;
case 3:
if (summonadds < diff)
if (summonadds <= diff)
{
m_creature->InterruptNonMeleeSpells(false);
DoCast(m_creature,SPELL_SUMMON_PUMPKIN);
@@ -673,7 +673,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
break;
}
if (laugh < diff)
if (laugh <= diff)
{
laugh = urand(11000,22000);
m_creature->MonsterTextEmote(EMOTE_LAUGHS,NULL);
@@ -683,7 +683,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
if (UpdateVictim())
{
DoMeleeAttackIfReady();
if (cleave < diff)
if (cleave <= diff)
{
DoCast(m_creature->getVictim(),SPELL_CLEAVE);
cleave = urand(2000,6000); //1 cleave per 2.0-6.0sec
@@ -692,7 +692,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
}
else
{
if (regen < diff)
if (regen <= diff)
{
regen = 1000; //"body calls head"
if (m_creature->GetHealth()/m_creature->GetMaxHealth() == 1 && !returned)
@@ -712,7 +712,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
}
else regen -= diff;
if (whirlwind < diff)
if (whirlwind <= diff)
{
whirlwind = urand(4000,8000);
if (urand(0,1))
@@ -86,19 +86,19 @@ struct TRINITY_DLL_DECL boss_herodAI : public ScriptedAI
}
//Cleave_Timer
if (Cleave_Timer < diff)
if (Cleave_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_CLEAVE);
Cleave_Timer = 12000;
}else Cleave_Timer -= diff;
} else Cleave_Timer -= diff;
// Whirlwind_Timer
if (Whirlwind_Timer < diff)
if (Whirlwind_Timer <= diff)
{
DoScriptText(SAY_WHIRLWIND, m_creature);
DoCast(m_creature->getVictim(),SPELL_WHIRLWIND);
Whirlwind_Timer = 30000;
}else Whirlwind_Timer -= diff;
} else Whirlwind_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -126,11 +126,11 @@ struct TRINITY_DLL_DECL mob_scarlet_traineeAI : public npc_escortAI
{
if (Start_Timer)
{
if (Start_Timer < diff)
if (Start_Timer <= diff)
{
Start(true,true);
Start_Timer = 0;
}else Start_Timer -= diff;
} else Start_Timer -= diff;
}
npc_escortAI::UpdateAI(diff);
@@ -66,29 +66,29 @@ struct TRINITY_DLL_DECL boss_high_inquisitor_fairbanksAI : public ScriptedAI
return;
//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);
Heal_Timer = 30000;
}else Heal_Timer -= diff;
} else Heal_Timer -= diff;
//Fear_Timer
if (Fear_Timer < diff)
if (Fear_Timer <= diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,1))
DoCast(target,SPELL_FEAR);
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,1))
DoCast(pTarget,SPELL_FEAR);
Fear_Timer = 40000;
}else Fear_Timer -= diff;
} else Fear_Timer -= diff;
//Sleep_Timer
if (Sleep_Timer < diff)
if (Sleep_Timer <= diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_TOPAGGRO,0))
DoCast(target,SPELL_SLEEP);
if (Unit *pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO,0))
DoCast(pTarget,SPELL_SLEEP);
Sleep_Timer = 30000;
}else Sleep_Timer -= diff;
} else Sleep_Timer -= diff;
//PowerWordShield_Timer
if (!PowerWordShield && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 25)
@@ -98,20 +98,20 @@ struct TRINITY_DLL_DECL boss_high_inquisitor_fairbanksAI : public ScriptedAI
}
//Dispel_Timer
if (Dispel_Timer < diff)
if (Dispel_Timer <= diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(target, SPELL_DISPELMAGIC);
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(pTarget, SPELL_DISPELMAGIC);
DispelMagic_Timer = 30000;
}else DispelMagic_Timer -= diff;
} else DispelMagic_Timer -= diff;
//CurseOfBlood_Timer
if (CurseOfBlood_Timer < diff)
if (CurseOfBlood_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_CURSEOFBLOOD);
CurseOfBlood_Timer = 25000;
}else CurseOfBlood_Timer -= diff;
} else CurseOfBlood_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -51,11 +51,11 @@ struct TRINITY_DLL_DECL boss_houndmaster_lokseyAI : public ScriptedAI
if (!UpdateVictim())
return;
if (BloodLust_Timer < diff)
if (BloodLust_Timer <= diff)
{
DoCast(m_creature,SPELL_BLOODLUST);
BloodLust_Timer = 20000;
}else BloodLust_Timer -= diff;
} else BloodLust_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -92,11 +92,11 @@ struct TRINITY_DLL_DECL boss_interrogator_vishasAI : public ScriptedAI
}
//ShadowWordPain_Timer
if (ShadowWordPain_Timer < diff)
if (ShadowWordPain_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_SHADOWWORDPAIN);
ShadowWordPain_Timer = 5000 + rand()%10000;;
}else ShadowWordPain_Timer -= diff;
} else ShadowWordPain_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -262,7 +262,7 @@ struct TRINITY_DLL_DECL boss_high_inquisitor_whitemaneAI : public ScriptedAI
if (m_bCanResurrect)
{
//When casting resuruction make sure to delay so on rez when reinstate battle deepsleep runs out
if (m_pInstance && m_uiWait_Timer < uiDiff)
if (m_pInstance && m_uiWait_Timer <= uiDiff)
{
if (Unit* Mograine = Unit::GetUnit((*m_creature), m_pInstance->GetData64(DATA_MOGRAINE)))
{
@@ -55,32 +55,32 @@ struct TRINITY_DLL_DECL boss_scornAI : public ScriptedAI
return;
//LichSlap_Timer
if (LichSlap_Timer < diff)
if (LichSlap_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_LICHSLAP);
LichSlap_Timer = 45000;
}else LichSlap_Timer -= diff;
} else LichSlap_Timer -= diff;
//FrostboltVolley_Timer
if (FrostboltVolley_Timer < diff)
if (FrostboltVolley_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_FROSTBOLTVOLLEY);
FrostboltVolley_Timer = 20000;
}else FrostboltVolley_Timer -= diff;
} else FrostboltVolley_Timer -= diff;
//MindFlay_Timer
if (MindFlay_Timer < diff)
if (MindFlay_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_MINDFLAY);
MindFlay_Timer = 20000;
}else MindFlay_Timer -= diff;
} else MindFlay_Timer -= diff;
//FrostNova_Timer
if (FrostNova_Timer < diff)
if (FrostNova_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_FROSTNOVA);
FrostNova_Timer = 15000;
}else FrostNova_Timer -= diff;
} else FrostNova_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -88,123 +88,123 @@ struct TRINITY_DLL_DECL boss_darkmaster_gandlingAI : public ScriptedAI
return;
//ArcaneMissiles_Timer
if (ArcaneMissiles_Timer < diff)
if (ArcaneMissiles_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_ARCANEMISSILES);
ArcaneMissiles_Timer = 8000;
}else ArcaneMissiles_Timer -= diff;
} else ArcaneMissiles_Timer -= diff;
//ShadowShield_Timer
if (ShadowShield_Timer < diff)
if (ShadowShield_Timer <= diff)
{
DoCast(m_creature,SPELL_SHADOWSHIELD);
ShadowShield_Timer = 14000 + rand()%14000;
}else ShadowShield_Timer -= diff;
} else ShadowShield_Timer -= diff;
//Curse_Timer
if (Curse_Timer < diff)
if (Curse_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_CURSE);
Curse_Timer = 15000 + rand()%12000;
}else Curse_Timer -= diff;
} else Curse_Timer -= diff;
//Teleporting Random Target to one of the six pre boss rooms and spawn 3-4 skeletons near the gamer.
//We will only telport if gandling has more than 3% of hp so teleported gamers can always loot.
if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() > 3)
{
if (Teleport_Timer < diff)
if (Teleport_Timer <= diff)
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
if (target && target->GetTypeId() == TYPEID_PLAYER)
Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget && pTarget->GetTypeId() == TYPEID_PLAYER)
{
if (DoGetThreat(target))
DoModifyThreatPercent(target, -100);
if (DoGetThreat(pTarget))
DoModifyThreatPercent(pTarget, -100);
switch(rand()%6)
{
case 0:
DoTeleportPlayer(target, 250.0696,0.3921,84.8408,3.149);
DoTeleportPlayer(pTarget, 250.0696,0.3921,84.8408,3.149);
Summoned = m_creature->SummonCreature(16119,254.2325,0.3417,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
Summoned = m_creature->SummonCreature(16119,257.7133,4.0226,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
Summoned = m_creature->SummonCreature(16119,258.6702,-2.60656,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
break;
case 1:
DoTeleportPlayer(target, 181.4220,-91.9481,84.8410,1.608);
DoTeleportPlayer(pTarget, 181.4220,-91.9481,84.8410,1.608);
Summoned = m_creature->SummonCreature(16119,184.0519,-73.5649,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
Summoned = m_creature->SummonCreature(16119,179.5951,-73.7045,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
Summoned = m_creature->SummonCreature(16119,180.6452,-78.2143,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
Summoned = m_creature->SummonCreature(16119,283.2274,-78.1518,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
break;
case 2:
DoTeleportPlayer(target, 95.1547,-1.8173,85.2289,0.043);
DoTeleportPlayer(pTarget, 95.1547,-1.8173,85.2289,0.043);
Summoned = m_creature->SummonCreature(16119,100.9404,-1.8016,85.2289,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
Summoned = m_creature->SummonCreature(16119,101.3729,0.4882,85.2289,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
Summoned = m_creature->SummonCreature(16119,101.4596,-4.4740,85.2289,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
break;
case 3:
DoTeleportPlayer(target, 250.0696,0.3921,72.6722,3.149);
DoTeleportPlayer(pTarget, 250.0696,0.3921,72.6722,3.149);
Summoned = m_creature->SummonCreature(16119,240.34481,0.7368,72.6722,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
Summoned = m_creature->SummonCreature(16119,240.3633,-2.9520,72.6722,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
Summoned = m_creature->SummonCreature(16119,240.6702,3.34949,72.6722,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
break;
case 4:
DoTeleportPlayer(target, 181.4220,-91.9481,70.7734,1.608);
DoTeleportPlayer(pTarget, 181.4220,-91.9481,70.7734,1.608);
Summoned = m_creature->SummonCreature(16119,184.0519,-73.5649,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
Summoned = m_creature->SummonCreature(16119,179.5951,-73.7045,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
Summoned = m_creature->SummonCreature(16119,180.6452,-78.2143,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
Summoned = m_creature->SummonCreature(16119,283.2274,-78.1518,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
break;
case 5:
DoTeleportPlayer(target, 106.1541,-1.8994,75.3663,0.043);
DoTeleportPlayer(pTarget, 106.1541,-1.8994,75.3663,0.043);
Summoned = m_creature->SummonCreature(16119,115.3945,-1.5555,75.3663,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
Summoned = m_creature->SummonCreature(16119,257.7133,1.8066,75.3663,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
Summoned = m_creature->SummonCreature(16119,258.6702,-5.1001,75.3663,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if (Summoned)
(Summoned->AI())->AttackStart(target);
Summoned->AI()->AttackStart(pTarget);
break;
}
}
Teleport_Timer = 20000 + rand()%15000;
}else Teleport_Timer -= diff;
} else Teleport_Timer -= diff;
}
DoMeleeAttackIfReady();
@@ -68,35 +68,35 @@ struct TRINITY_DLL_DECL boss_illuciabarovAI : public ScriptedAI
return;
//CurseOfAgony_Timer
if (CurseOfAgony_Timer < diff)
if (CurseOfAgony_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_CURSEOFAGONY);
CurseOfAgony_Timer = 30000;
}else CurseOfAgony_Timer -= diff;
} else CurseOfAgony_Timer -= diff;
//ShadowShock_Timer
if (ShadowShock_Timer < diff)
if (ShadowShock_Timer <= diff)
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
if (target) DoCast(target,SPELL_SHADOWSHOCK);
Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget) DoCast(pTarget,SPELL_SHADOWSHOCK);
ShadowShock_Timer = 12000;
}else ShadowShock_Timer -= diff;
} else ShadowShock_Timer -= diff;
//Silence_Timer
if (Silence_Timer < diff)
if (Silence_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_SILENCE);
Silence_Timer = 14000;
}else Silence_Timer -= diff;
} else Silence_Timer -= diff;
//Fear_Timer
if (Fear_Timer < diff)
if (Fear_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_FEAR);
Fear_Timer = 30000;
}else Fear_Timer -= diff;
} else Fear_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -75,31 +75,31 @@ struct TRINITY_DLL_DECL boss_instructormaliciaAI : public ScriptedAI
return;
//CallOfGraves_Timer
if (CallOfGraves_Timer < diff)
if (CallOfGraves_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_CALLOFGRAVES);
CallOfGraves_Timer = 65000;
}else CallOfGraves_Timer -= diff;
} else CallOfGraves_Timer -= diff;
//Corruption_Timer
if (Corruption_Timer < diff)
if (Corruption_Timer <= diff)
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
if (target) DoCast(target,SPELL_CORRUPTION);
Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget) DoCast(pTarget,SPELL_CORRUPTION);
Corruption_Timer = 24000;
}else Corruption_Timer -= diff;
} else Corruption_Timer -= diff;
//Renew_Timer
if (Renew_Timer < diff)
if (Renew_Timer <= diff)
{
DoCast(m_creature, SPELL_RENEW);
Renew_Timer = 10000;
}else Renew_Timer -= diff;
} else Renew_Timer -= diff;
//FlashHeal_Timer
if (FlashHeal_Timer < diff)
if (FlashHeal_Timer <= diff)
{
DoCast(m_creature,SPELL_FLASHHEAL);
@@ -114,10 +114,10 @@ struct TRINITY_DLL_DECL boss_instructormaliciaAI : public ScriptedAI
FlashCounter=0;
FlashHeal_Timer = 30000;
}
}else FlashHeal_Timer -= diff;
} else FlashHeal_Timer -= diff;
//HealingTouch_Timer
if (HealingTouch_Timer < diff)
if (HealingTouch_Timer <= diff)
{
DoCast(m_creature,SPELL_HEALINGTOUCH);
@@ -132,7 +132,7 @@ struct TRINITY_DLL_DECL boss_instructormaliciaAI : public ScriptedAI
TouchCounter=0;
HealingTouch_Timer = 30000;
}
}else HealingTouch_Timer -= diff;
} else HealingTouch_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -38,10 +38,6 @@ struct TRINITY_DLL_DECL boss_jandicebarovAI : public ScriptedAI
//uint32 Illusioncounter;
uint32 Invisible_Timer;
bool Invisible;
int Rand;
int RandX;
int RandY;
Creature* Summoned;
void Reset()
{
@@ -57,28 +53,13 @@ struct TRINITY_DLL_DECL boss_jandicebarovAI : public ScriptedAI
void SummonIllusions(Unit* victim)
{
Rand = rand()%10;
switch (rand()%2)
{
case 0: RandX = 0 - Rand; break;
case 1: RandX = 0 + Rand; break;
}
Rand = 0;
Rand = rand()%10;
switch (rand()%2)
{
case 0: RandY = 0 - Rand; break;
case 1: RandY = 0 + Rand; break;
}
Rand = 0;
Summoned = DoSpawnCreature(11439, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000);
if (Summoned)
(Summoned->AI())->AttackStart(victim);
if (Creature *Illusion = DoSpawnCreature(11439, RAND(irand(0,-9),irand(0,9)), RAND(irand(0,-9),irand(0,9)), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000))
Illusion->AI()->AttackStart(victim);
}
void UpdateAI(const uint32 diff)
{
if (Invisible && Invisible_Timer < diff)
if (Invisible && Invisible_Timer <= diff)
{
//Become visible again
m_creature->setFaction(14);
@@ -97,17 +78,17 @@ struct TRINITY_DLL_DECL boss_jandicebarovAI : public ScriptedAI
return;
//CurseOfBlood_Timer
if (CurseOfBlood_Timer < diff)
if (CurseOfBlood_Timer <= diff)
{
//Cast
DoCast(m_creature->getVictim(),SPELL_CURSEOFBLOOD);
//45 seconds
CurseOfBlood_Timer = 30000;
}else CurseOfBlood_Timer -= diff;
} else CurseOfBlood_Timer -= diff;
//Illusion_Timer
if (!Invisible && Illusion_Timer < diff)
if (!Invisible && Illusion_Timer <= diff)
{
//Inturrupt any spell casting
@@ -118,22 +99,22 @@ struct TRINITY_DLL_DECL boss_jandicebarovAI : public ScriptedAI
DoModifyThreatPercent(m_creature->getVictim(),-99);
//Summon 10 Illusions attacking random gamers
Unit* target = NULL;
Unit *pTarget = NULL;
for (uint8 i = 0; i < 10; ++i)
{
target = SelectUnit(SELECT_TARGET_RANDOM,0);
if (target)
SummonIllusions(target);
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget)
SummonIllusions(pTarget);
}
Invisible = true;
Invisible_Timer = 3000;
//25 seconds until we should cast this agian
Illusion_Timer = 25000;
}else Illusion_Timer -= diff;
} else Illusion_Timer -= diff;
// //Illusion_Timer
// if (Illusion_Timer < diff)
// if (Illusion_Timer <= diff)
// {
// //Cast
// DoCast(m_creature->getVictim(),SPELL_ILLUSION);
@@ -150,7 +131,7 @@ struct TRINITY_DLL_DECL boss_jandicebarovAI : public ScriptedAI
// Illusioncounter=0;
// }
//
// }else Illusion_Timer -= diff;
// } else Illusion_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -181,14 +162,14 @@ struct TRINITY_DLL_DECL mob_illusionofjandicebarovAI : public ScriptedAI
return;
//Cleave_Timer
if (Cleave_Timer < diff)
if (Cleave_Timer <= diff)
{
//Cast
DoCast(m_creature->getVictim(),SPELL_CLEAVE);
//5-8 seconds
Cleave_Timer = 5000 + rand()%3000;
}else Cleave_Timer -= diff;
} else Cleave_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -35,14 +35,6 @@ struct TRINITY_DLL_DECL boss_kormokAI : public ScriptedAI
uint32 Minion_Timer;
uint32 Mage_Timer;
bool Mages;
int Rand1;
int Rand1X;
int Rand1Y;
int Rand2;
int Rand2X;
int Rand2Y;
Creature* SummonedMinions;
Creature* SummonedMages;
void Reset()
{
@@ -57,46 +49,16 @@ struct TRINITY_DLL_DECL boss_kormokAI : public ScriptedAI
{
}
void SummonMinion(Unit* victim)
void SummonMinions(Unit* victim)
{
Rand1 = rand()%8;
switch (rand()%2)
{
case 0: Rand1X = 0 - Rand1; break;
case 1: Rand1X = 0 + Rand1; break;
}
Rand1 = 0;
Rand1 = rand()%8;
switch (rand()%2)
{
case 0: Rand1Y = 0 - Rand1; break;
case 1: Rand1Y = 0 + Rand1; break;
}
Rand1 = 0;
SummonedMinions = DoSpawnCreature(16119, Rand1X, Rand1Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000);
if (SummonedMinions)
(SummonedMinions->AI())->AttackStart(victim);
if (Creature *SummonedMinion = DoSpawnCreature(16119, RAND(irand(0,-7),irand(0,7)), RAND(irand(0,-7),irand(0,7)), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000))
SummonedMinion->AI()->AttackStart(victim);
}
void SummonMages(Unit* victim)
{
Rand2 = rand()%10;
switch (rand()%2)
{
case 0: Rand2X = 0 - Rand2; break;
case 1: Rand2X = 0 + Rand2; break;
}
Rand2 = 0;
Rand2 = rand()%10;
switch (rand()%2)
{
case 0: Rand2Y = 0 - Rand2; break;
case 1: Rand2Y = 0 + Rand2; break;
}
Rand2 = 0;
SummonedMages = DoSpawnCreature(16120, Rand2X, Rand2Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000);
if (SummonedMages)
(SummonedMages->AI())->AttackStart(victim);
if (Creature *SummonedMage = DoSpawnCreature(16120, RAND(irand(0,-9),irand(0,9)), RAND(irand(0,-9),irand(0,9)), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000))
SummonedMage->AI()->AttackStart(victim);
}
void UpdateAI(const uint32 diff)
@@ -105,30 +67,30 @@ struct TRINITY_DLL_DECL boss_kormokAI : public ScriptedAI
return;
//ShadowVolley_Timer
if (ShadowVolley_Timer < diff)
if (ShadowVolley_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_SHADOWBOLTVOLLEY);
ShadowVolley_Timer = 15000;
}else ShadowVolley_Timer -= diff;
} else ShadowVolley_Timer -= diff;
//BoneShield_Timer
if (BoneShield_Timer < diff)
if (BoneShield_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_BONESHIELD);
BoneShield_Timer = 45000;
}else BoneShield_Timer -= diff;
} else BoneShield_Timer -= diff;
//Minion_Timer
if (Minion_Timer < diff)
if (Minion_Timer <= diff)
{
//Cast
SummonMinion(m_creature->getVictim());
SummonMinion(m_creature->getVictim());
SummonMinion(m_creature->getVictim());
SummonMinion(m_creature->getVictim());
SummonMinions(m_creature->getVictim());
SummonMinions(m_creature->getVictim());
SummonMinions(m_creature->getVictim());
SummonMinions(m_creature->getVictim());
Minion_Timer = 12000;
}else Minion_Timer -= diff;
} else Minion_Timer -= diff;
//Summon 2 Bone Mages
if (!Mages && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 26)
@@ -64,21 +64,21 @@ struct TRINITY_DLL_DECL boss_lordalexeibarovAI : public ScriptedAI
return;
//Immolate_Timer
if (Immolate_Timer < diff)
if (Immolate_Timer <= diff)
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
if (target) DoCast(target,SPELL_IMMOLATE);
Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget) DoCast(pTarget,SPELL_IMMOLATE);
Immolate_Timer = 12000;
}else Immolate_Timer -= diff;
} else Immolate_Timer -= diff;
//VeilofShadow_Timer
if (VeilofShadow_Timer < diff)
if (VeilofShadow_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_VEILOFSHADOW);
VeilofShadow_Timer = 20000;
}else VeilofShadow_Timer -= diff;
} else VeilofShadow_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -68,32 +68,32 @@ struct TRINITY_DLL_DECL boss_lorekeeperpolkeltAI : public ScriptedAI
return;
//VolatileInfection_Timer
if (VolatileInfection_Timer < diff)
if (VolatileInfection_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_VOLATILEINFECTION);
VolatileInfection_Timer = 32000;
}else VolatileInfection_Timer -= diff;
} else VolatileInfection_Timer -= diff;
//Darkplague_Timer
if (Darkplague_Timer < diff)
if (Darkplague_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_DARKPLAGUE);
Darkplague_Timer = 8000;
}else Darkplague_Timer -= diff;
} else Darkplague_Timer -= diff;
//CorrosiveAcid_Timer
if (CorrosiveAcid_Timer < diff)
if (CorrosiveAcid_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_CORROSIVEACID);
CorrosiveAcid_Timer = 25000;
}else CorrosiveAcid_Timer -= diff;
} else CorrosiveAcid_Timer -= diff;
//NoxiousCatalyst_Timer
if (NoxiousCatalyst_Timer < diff)
if (NoxiousCatalyst_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_NOXIOUSCATALYST);
NoxiousCatalyst_Timer = 38000;
}else NoxiousCatalyst_Timer -= diff;
} else NoxiousCatalyst_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -63,49 +63,49 @@ struct TRINITY_DLL_DECL boss_rasfrostAI : public ScriptedAI
return;
//IceArmor_Timer
if (IceArmor_Timer < diff)
if (IceArmor_Timer <= diff)
{
DoCast(m_creature, SPELL_ICEARMOR);
IceArmor_Timer = 180000;
}else IceArmor_Timer -= diff;
} else IceArmor_Timer -= diff;
//Frostbolt_Timer
if (Frostbolt_Timer < diff)
if (Frostbolt_Timer <= diff)
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
if (target) DoCast(target,SPELL_FROSTBOLT);
Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget) DoCast(pTarget,SPELL_FROSTBOLT);
Frostbolt_Timer = 8000;
}else Frostbolt_Timer -= diff;
} else Frostbolt_Timer -= diff;
//Freeze_Timer
if (Freeze_Timer < diff)
if (Freeze_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_FREEZE);
Freeze_Timer = 24000;
}else Freeze_Timer -= diff;
} else Freeze_Timer -= diff;
//Fear_Timer
if (Fear_Timer < diff)
if (Fear_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_FEAR);
Fear_Timer = 30000;
}else Fear_Timer -= diff;
} else Fear_Timer -= diff;
//ChillNova_Timer
if (ChillNova_Timer < diff)
if (ChillNova_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_CHILLNOVA);
ChillNova_Timer = 14000;
}else ChillNova_Timer -= diff;
} else ChillNova_Timer -= diff;
//FrostVolley_Timer
if (FrostVolley_Timer < diff)
if (FrostVolley_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_FROSTVOLLEY);
FrostVolley_Timer = 15000;
}else FrostVolley_Timer -= diff;
} else FrostVolley_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -70,32 +70,32 @@ struct TRINITY_DLL_DECL boss_theravenianAI : public ScriptedAI
return;
//Trample_Timer
if (Trample_Timer < diff)
if (Trample_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_TRAMPLE);
Trample_Timer = 10000;
}else Trample_Timer -= diff;
} else Trample_Timer -= diff;
//Cleave_Timer
if (Cleave_Timer < diff)
if (Cleave_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_CLEAVE);
Cleave_Timer = 7000;
}else Cleave_Timer -= diff;
} else Cleave_Timer -= diff;
//SunderingCleave_Timer
if (SunderingCleave_Timer < diff)
if (SunderingCleave_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_SUNDERINCLEAVE);
SunderingCleave_Timer = 20000;
}else SunderingCleave_Timer -= diff;
} else SunderingCleave_Timer -= diff;
//KnockAway_Timer
if (KnockAway_Timer < diff)
if (KnockAway_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_KNOCKAWAY);
KnockAway_Timer = 12000;
}else KnockAway_Timer -= diff;
} else KnockAway_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -54,7 +54,7 @@ struct TRINITY_DLL_DECL boss_vectusAI : public ScriptedAI
return;
//FireShield_Timer
if (m_uiFireShield_Timer < uiDiff)
if (m_uiFireShield_Timer <= uiDiff)
{
DoCast(m_creature, SPELL_FIRESHIELD);
m_uiFireShield_Timer = 90000;
@@ -63,7 +63,7 @@ struct TRINITY_DLL_DECL boss_vectusAI : public ScriptedAI
m_uiFireShield_Timer -= uiDiff;
//BlastWave_Timer
if (m_uiBlastWave_Timer < uiDiff)
if (m_uiBlastWave_Timer <= uiDiff)
{
DoCast(m_creature->getVictim(), SPELL_BLAST_WAVE);
m_uiBlastWave_Timer = 12000;
@@ -74,7 +74,7 @@ struct TRINITY_DLL_DECL boss_vectusAI : public ScriptedAI
//Frenzy_Timer
if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 25)
{
if (m_uiFrenzy_Timer < uiDiff)
if (m_uiFrenzy_Timer <= uiDiff)
{
DoCast(m_creature, SPELL_FRENZY);
DoScriptText(EMOTE_GENERIC_FRENZY_KILL, m_creature);
@@ -65,7 +65,7 @@ struct TRINITY_DLL_DECL npc_blood_knight_stillbladeAI : public ScriptedAI
{
if (m_creature->IsStandState())
{
if (lifeTimer < diff)
if (lifeTimer <= diff)
m_creature->AI()->EnterEvadeMode();
else
lifeTimer -= diff;
@@ -284,7 +284,7 @@ struct TRINITY_DLL_DECL pyrewood_ambushAI : public ScriptedAI
if(KillCount && Phase < 6)
{
if(!UpdateVictim()) //reset() on target Despawn...
if(!UpdateVictim()) //reset() on pTarget Despawn...
return;
DoMeleeAttackIfReady();
@@ -72,7 +72,7 @@ struct TRINITY_DLL_DECL mob_yennikuAI : public ScriptedAI
{
if (bReset)
{
if (Reset_Timer < diff)
if (Reset_Timer <= diff)
{
EnterEvadeMode();
bReset = false;
@@ -111,8 +111,8 @@ struct TRINITY_DLL_DECL boss_baron_rivendareAI : public ScriptedAI
void JustSummoned(Creature* summoned)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
summoned->AI()->AttackStart(target);
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
summoned->AI()->AttackStart(pTarget);
}
void JustDied(Unit* Killer)
@@ -127,38 +127,38 @@ struct TRINITY_DLL_DECL boss_baron_rivendareAI : public ScriptedAI
return;
//ShadowBolt
if (ShadowBolt_Timer < diff)
if (ShadowBolt_Timer <= diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
DoCast(m_creature->getVictim(),SPELL_SHADOWBOLT);
ShadowBolt_Timer = 10000;
}else ShadowBolt_Timer -= diff;
} else ShadowBolt_Timer -= diff;
//Cleave
if (Cleave_Timer < diff)
if (Cleave_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_CLEAVE);
//13 seconds until we should cast this again
Cleave_Timer = 7000 + (rand()%10000);
}else Cleave_Timer -= diff;
} else Cleave_Timer -= diff;
//MortalStrike
if (MortalStrike_Timer < diff)
if (MortalStrike_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_MORTALSTRIKE);
MortalStrike_Timer = 10000 + (rand()%15000);
}else MortalStrike_Timer -= diff;
} else MortalStrike_Timer -= diff;
//RaiseDead
// if (RaiseDead_Timer < diff)
// if (RaiseDead_Timer <= diff)
// {
// DoCast(m_creature,SPELL_RAISEDEAD);
// RaiseDead_Timer = 45000;
// }else RaiseDead_Timer -= diff;
// } else RaiseDead_Timer -= diff;
//SummonSkeletons
if (SummonSkeletons_Timer < diff)
if (SummonSkeletons_Timer <= diff)
{
m_creature->SummonCreature(11197,ADD_1X,ADD_1Y,ADD_1Z,ADD_1O,TEMPSUMMON_TIMED_DESPAWN,29000);
m_creature->SummonCreature(11197,ADD_2X,ADD_2Y,ADD_2Z,ADD_2O,TEMPSUMMON_TIMED_DESPAWN,29000);
@@ -169,7 +169,7 @@ struct TRINITY_DLL_DECL boss_baron_rivendareAI : public ScriptedAI
//34 seconds until we should cast this again
SummonSkeletons_Timer = 40000;
}else SummonSkeletons_Timer -= diff;
} else SummonSkeletons_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -67,45 +67,45 @@ struct TRINITY_DLL_DECL boss_baroness_anastariAI : public ScriptedAI
return;
//BansheeWail
if (BansheeWail_Timer < diff)
if (BansheeWail_Timer <= diff)
{
if (rand()%100 < 95)
DoCast(m_creature->getVictim(),SPELL_BANSHEEWAIL);
//4 seconds until we should cast this again
BansheeWail_Timer = 4000;
}else BansheeWail_Timer -= diff;
} else BansheeWail_Timer -= diff;
//BansheeCurse
if (BansheeCurse_Timer < diff)
if (BansheeCurse_Timer <= diff)
{
if (rand()%100 < 75)
DoCast(m_creature->getVictim(),SPELL_BANSHEECURSE);
//18 seconds until we should cast this again
BansheeCurse_Timer = 18000;
}else BansheeCurse_Timer -= diff;
} else BansheeCurse_Timer -= diff;
//Silence
if (Silence_Timer < diff)
if (Silence_Timer <= diff)
{
if (rand()%100 < 80)
DoCast(m_creature->getVictim(),SPELL_SILENCE);
//13 seconds until we should cast this again
Silence_Timer = 13000;
}else Silence_Timer -= diff;
} else Silence_Timer -= diff;
//Possess
/* if (Possess_Timer < diff)
/* if (Possess_Timer <= diff)
{
//Cast
if (rand()%100 < 65)
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
if (target)DoCast(target,SPELL_POSSESS);
Unit *pTarget = NULL;
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
if (pTarget)DoCast(pTarget,SPELL_POSSESS);
}
//50 seconds until we should cast this again
Possess_Timer = 50000;
}else Possess_Timer -= diff;
} else Possess_Timer -= diff;
*/
DoMeleeAttackIfReady();
@@ -113,7 +113,7 @@ struct TRINITY_DLL_DECL boss_cannon_master_willeyAI : public ScriptedAI
return;
//Pummel
if (Pummel_Timer < diff)
if (Pummel_Timer <= diff)
{
//Cast
if (rand()%100 < 90) //90% chance to cast
@@ -122,10 +122,10 @@ struct TRINITY_DLL_DECL boss_cannon_master_willeyAI : public ScriptedAI
}
//12 seconds until we should cast this again
Pummel_Timer = 12000;
}else Pummel_Timer -= diff;
} else Pummel_Timer -= diff;
//KnockAway
if (KnockAway_Timer < diff)
if (KnockAway_Timer <= diff)
{
//Cast
if (rand()%100 < 80) //80% chance to cast
@@ -134,19 +134,19 @@ struct TRINITY_DLL_DECL boss_cannon_master_willeyAI : public ScriptedAI
}
//14 seconds until we should cast this again
KnockAway_Timer = 14000;
}else KnockAway_Timer -= diff;
} else KnockAway_Timer -= diff;
//Shoot
if (Shoot_Timer < diff)
if (Shoot_Timer <= diff)
{
//Cast
DoCast(m_creature->getVictim(),SPELL_SHOOT);
//1 seconds until we should cast this again
Shoot_Timer = 1000;
}else Shoot_Timer -= diff;
} else Shoot_Timer -= diff;
//SummonRifleman
if (SummonRifleman_Timer < diff)
if (SummonRifleman_Timer <= diff)
{
//Cast
switch (rand()%9)
@@ -199,7 +199,7 @@ struct TRINITY_DLL_DECL boss_cannon_master_willeyAI : public ScriptedAI
}
//30 seconds until we should cast this again
SummonRifleman_Timer = 30000;
}else SummonRifleman_Timer -= diff;
} else SummonRifleman_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -116,32 +116,32 @@ struct TRINITY_DLL_DECL boss_dathrohan_balnazzarAI : public ScriptedAI
if (!m_bTransformed)
{
//MindBlast
if (m_uiMindBlast_Timer < uiDiff)
if (m_uiMindBlast_Timer <= uiDiff)
{
DoCast(m_creature->getVictim(),SPELL_MINDBLAST);
m_uiMindBlast_Timer = 15000 + rand()%5000;
}else m_uiMindBlast_Timer -= uiDiff;
} else m_uiMindBlast_Timer -= uiDiff;
//CrusadersHammer
if (m_uiCrusadersHammer_Timer < uiDiff)
if (m_uiCrusadersHammer_Timer <= uiDiff)
{
DoCast(m_creature->getVictim(),SPELL_CRUSADERSHAMMER);
m_uiCrusadersHammer_Timer = 12000;
}else m_uiCrusadersHammer_Timer -= uiDiff;
} else m_uiCrusadersHammer_Timer -= uiDiff;
//CrusaderStrike
if (m_uiCrusaderStrike_Timer < uiDiff)
if (m_uiCrusaderStrike_Timer <= uiDiff)
{
DoCast(m_creature->getVictim(),SPELL_CRUSADERSTRIKE);
m_uiCrusaderStrike_Timer = 15000;
}else m_uiCrusaderStrike_Timer -= uiDiff;
} else m_uiCrusaderStrike_Timer -= uiDiff;
//HolyStrike
if (m_uiHolyStrike_Timer < uiDiff)
if (m_uiHolyStrike_Timer <= uiDiff)
{
DoCast(m_creature->getVictim(),SPELL_HOLYSTRIKE);
m_uiHolyStrike_Timer = 15000;
}else m_uiHolyStrike_Timer -= uiDiff;
} else m_uiHolyStrike_Timer -= uiDiff;
//BalnazzarTransform
if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 40)
@@ -158,43 +158,43 @@ struct TRINITY_DLL_DECL boss_dathrohan_balnazzarAI : public ScriptedAI
else
{
//MindBlast
if (m_uiMindBlast_Timer < uiDiff)
if (m_uiMindBlast_Timer <= uiDiff)
{
DoCast(m_creature->getVictim(),SPELL_MINDBLAST);
m_uiMindBlast_Timer = 15000 + rand()%5000;
}else m_uiMindBlast_Timer -= uiDiff;
} else m_uiMindBlast_Timer -= uiDiff;
//ShadowShock
if (m_uiShadowShock_Timer < uiDiff)
if (m_uiShadowShock_Timer <= uiDiff)
{
DoCast(m_creature->getVictim(),SPELL_SHADOWSHOCK);
m_uiShadowShock_Timer = 11000;
}else m_uiShadowShock_Timer -= uiDiff;
} else m_uiShadowShock_Timer -= uiDiff;
//PsychicScream
if (m_uiPsychicScream_Timer < uiDiff)
if (m_uiPsychicScream_Timer <= uiDiff)
{
if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(pTarget,SPELL_PSYCHICSCREAM);
m_uiPsychicScream_Timer = 20000;
}else m_uiPsychicScream_Timer -= uiDiff;
} else m_uiPsychicScream_Timer -= uiDiff;
//DeepSleep
if (m_uiDeepSleep_Timer < uiDiff)
if (m_uiDeepSleep_Timer <= uiDiff)
{
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(pTarget,SPELL_SLEEP);
m_uiDeepSleep_Timer = 15000;
}else m_uiDeepSleep_Timer -= uiDiff;
} else m_uiDeepSleep_Timer -= uiDiff;
//MindControl
if (m_uiMindControl_Timer < uiDiff)
if (m_uiMindControl_Timer <= uiDiff)
{
DoCast(m_creature->getVictim(),SPELL_MINDCONTROL);
m_uiMindControl_Timer = 15000;
}else m_uiMindControl_Timer -= uiDiff;
} else m_uiMindControl_Timer -= uiDiff;
}
DoMeleeAttackIfReady();
@@ -78,7 +78,7 @@ struct TRINITY_DLL_DECL boss_magistrate_barthilasAI : public ScriptedAI
if (!UpdateVictim())
return;
if (FuriousAnger_Timer < diff)
if (FuriousAnger_Timer <= diff)
{
FuriousAnger_Timer = 4000;
if (AngerCount > 25)
@@ -86,28 +86,28 @@ struct TRINITY_DLL_DECL boss_magistrate_barthilasAI : public ScriptedAI
++AngerCount;
m_creature->CastSpell(m_creature,SPELL_FURIOUS_ANGER,false);
}else FuriousAnger_Timer -= diff;
} else FuriousAnger_Timer -= diff;
//DrainingBlow
if (DrainingBlow_Timer < diff)
if (DrainingBlow_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_DRAININGBLOW);
DrainingBlow_Timer = 15000;
}else DrainingBlow_Timer -= diff;
} else DrainingBlow_Timer -= diff;
//CrowdPummel
if (CrowdPummel_Timer < diff)
if (CrowdPummel_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_CROWDPUMMEL);
CrowdPummel_Timer = 15000;
}else CrowdPummel_Timer -= diff;
} else CrowdPummel_Timer -= diff;
//MightyBlow
if (MightyBlow_Timer < diff)
if (MightyBlow_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_MIGHTYBLOW);
MightyBlow_Timer = 20000;
}else MightyBlow_Timer -= diff;
} else MightyBlow_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -66,28 +66,28 @@ struct TRINITY_DLL_DECL boss_maleki_the_pallidAI : public ScriptedAI
return;
//Frostbolt
if (Frostbolt_Timer < diff)
if (Frostbolt_Timer <= diff)
{
if (rand()%100 < 90)
DoCast(m_creature->getVictim(),SPELL_FROSTBOLT);
Frostbolt_Timer = 3500;
}else Frostbolt_Timer -= diff;
} else Frostbolt_Timer -= diff;
//IceTomb
if (IceTomb_Timer < diff)
if (IceTomb_Timer <= diff)
{
if (rand()%100 < 65)
DoCast(m_creature->getVictim(),SPELL_ICETOMB);
IceTomb_Timer = 28000;
}else IceTomb_Timer -= diff;
} else IceTomb_Timer -= diff;
//DrainLife
if (DrainLife_Timer < diff)
if (DrainLife_Timer <= diff)
{
if (rand()%100 < 55)
DoCast(m_creature->getVictim(),SPELL_DRAINLIFE);
DrainLife_Timer = 31000;
}else DrainLife_Timer -= diff;
} else DrainLife_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -40,16 +40,12 @@ struct TRINITY_DLL_DECL boss_nerubenkanAI : public ScriptedAI
uint32 EncasingWebs_Timer;
uint32 PierceArmor_Timer;
uint32 CryptScarabs_Timer;
uint32 CryptScarabs_Timer;
uint32 RaiseUndeadScarab_Timer;
int Rand;
int RandX;
int RandY;
Creature* Summoned;
void Reset()
{
CryptScarabs_Timer = 3000;
CryptScarabs_Timer = 3000;
EncasingWebs_Timer = 7000;
PierceArmor_Timer = 19000;
RaiseUndeadScarab_Timer = 3000;
@@ -67,23 +63,8 @@ struct TRINITY_DLL_DECL boss_nerubenkanAI : public ScriptedAI
void RaiseUndeadScarab(Unit* victim)
{
Rand = rand()%10;
switch (rand()%2)
{
case 0: RandX = 0 - Rand; break;
case 1: RandX = 0 + Rand; break;
}
Rand = 0;
Rand = rand()%10;
switch (rand()%2)
{
case 0: RandY = 0 - Rand; break;
case 1: RandY = 0 + Rand; break;
}
Rand = 0;
Summoned = DoSpawnCreature(10876, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 180000);
if (Summoned)
(Summoned->AI())->AttackStart(victim);
if (Creature *UndeadScarab = DoSpawnCreature(10876, RAND(irand(0,-9),irand(0,9)), RAND(irand(0,-9),irand(0,9)), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 180000))
UndeadScarab->AI()->AttackStart(victim);
}
void UpdateAI(const uint32 diff)
@@ -92,33 +73,33 @@ struct TRINITY_DLL_DECL boss_nerubenkanAI : public ScriptedAI
return;
//EncasingWebs
if (EncasingWebs_Timer < diff)
if (EncasingWebs_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_ENCASINGWEBS);
EncasingWebs_Timer = 30000;
}else EncasingWebs_Timer -= diff;
} else EncasingWebs_Timer -= diff;
//PierceArmor
if (PierceArmor_Timer < diff)
if (PierceArmor_Timer <= diff)
{
if (rand()%100 < 75)
if (urand(0,3) < 2)
DoCast(m_creature->getVictim(),SPELL_PIERCEARMOR);
PierceArmor_Timer = 35000;
}else PierceArmor_Timer -= diff;
} else PierceArmor_Timer -= diff;
//CryptScarabs_Timer
if (CryptScarabs_Timer < diff)
if (CryptScarabs_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_CRYPT_SCARABS);
CryptScarabs_Timer = 20000;
}else CryptScarabs_Timer -= diff;
} else CryptScarabs_Timer -= diff;
//RaiseUndeadScarab
if (RaiseUndeadScarab_Timer < diff)
if (RaiseUndeadScarab_Timer <= diff)
{
RaiseUndeadScarab(m_creature->getVictim());
RaiseUndeadScarab_Timer = 16000;
}else RaiseUndeadScarab_Timer -= diff;
} else RaiseUndeadScarab_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -118,23 +118,23 @@ struct TRINITY_DLL_DECL boss_silver_hand_bossesAI : public ScriptedAI
if (!UpdateVictim())
return;
if (HolyLight_Timer < diff)
if (HolyLight_Timer <= diff)
{
if (m_creature->GetHealth()*5 < m_creature->GetMaxHealth())
{
DoCast(m_creature, SPELL_HOLY_LIGHT);
HolyLight_Timer = 20000;
}
}else HolyLight_Timer -= diff;
} else HolyLight_Timer -= diff;
if (DivineShield_Timer < diff)
if (DivineShield_Timer <= diff)
{
if (m_creature->GetHealth()*20 < m_creature->GetMaxHealth())
{
DoCast(m_creature, SPELL_DIVINE_SHIELD);
DivineShield_Timer = 40000;
}
}else DivineShield_Timer -= diff;
} else DivineShield_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -66,7 +66,7 @@ struct TRINITY_DLL_DECL boss_postmaster_malownAI : public ScriptedAI
return;
//WailingDead
if (WailingDead_Timer < diff)
if (WailingDead_Timer <= diff)
{
//Cast
if (rand()%100 < 65) //65% chance to cast
@@ -75,10 +75,10 @@ struct TRINITY_DLL_DECL boss_postmaster_malownAI : public ScriptedAI
}
//19 seconds until we should cast this again
WailingDead_Timer = 19000;
}else WailingDead_Timer -= diff;
} else WailingDead_Timer -= diff;
//Backhand
if (Backhand_Timer < diff)
if (Backhand_Timer <= diff)
{
//Cast
if (rand()%100 < 45) //45% chance to cast
@@ -87,10 +87,10 @@ struct TRINITY_DLL_DECL boss_postmaster_malownAI : public ScriptedAI
}
//8 seconds until we should cast this again
Backhand_Timer = 8000;
}else Backhand_Timer -= diff;
} else Backhand_Timer -= diff;
//CurseOfWeakness
if (CurseOfWeakness_Timer < diff)
if (CurseOfWeakness_Timer <= diff)
{
//Cast
if (rand()%100 < 3) //3% chance to cast
@@ -99,10 +99,10 @@ struct TRINITY_DLL_DECL boss_postmaster_malownAI : public ScriptedAI
}
//20 seconds until we should cast this again
CurseOfWeakness_Timer = 20000;
}else CurseOfWeakness_Timer -= diff;
} else CurseOfWeakness_Timer -= diff;
//CurseOfTongues
if (CurseOfTongues_Timer < diff)
if (CurseOfTongues_Timer <= diff)
{
//Cast
if (rand()%100 < 3) //3% chance to cast
@@ -111,10 +111,10 @@ struct TRINITY_DLL_DECL boss_postmaster_malownAI : public ScriptedAI
}
//22 seconds until we should cast this again
CurseOfTongues_Timer = 22000;
}else CurseOfTongues_Timer -= diff;
} else CurseOfTongues_Timer -= diff;
//CallOfTheGrave
if (CallOfTheGrave_Timer < diff)
if (CallOfTheGrave_Timer <= diff)
{
//Cast
if (rand()%100 < 5) //5% chance to cast
@@ -123,7 +123,7 @@ struct TRINITY_DLL_DECL boss_postmaster_malownAI : public ScriptedAI
}
//25 seconds until we should cast this again
CallOfTheGrave_Timer = 25000;
}else CallOfTheGrave_Timer -= diff;
} else CallOfTheGrave_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -70,18 +70,18 @@ struct TRINITY_DLL_DECL boss_ramstein_the_gorgerAI : public ScriptedAI
return;
//Trample
if (Trample_Timer < diff)
if (Trample_Timer <= diff)
{
DoCast(m_creature,SPELL_TRAMPLE);
Trample_Timer = 7000;
}else Trample_Timer -= diff;
} else Trample_Timer -= diff;
//Knockout
if (Knockout_Timer < diff)
if (Knockout_Timer <= diff)
{
DoCast(m_creature->getVictim(),SPELL_KNOCKOUT);
Knockout_Timer = 10000;
}else Knockout_Timer -= diff;
} else Knockout_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -56,13 +56,13 @@ struct TRINITY_DLL_DECL boss_timmy_the_cruelAI : public ScriptedAI
return;
//RavenousClaw
if (RavenousClaw_Timer < diff)
if (RavenousClaw_Timer <= diff)
{
//Cast
DoCast(m_creature->getVictim(),SPELL_RAVENOUSCLAW);
//15 seconds until we should cast this again
RavenousClaw_Timer = 15000;
}else RavenousClaw_Timer -= diff;
} else RavenousClaw_Timer -= diff;
DoMeleeAttackIfReady();
}
@@ -385,7 +385,7 @@ struct TRINITY_DLL_DECL instance_stratholme : public ScriptedInstance
SetData(TYPE_BARON_RUN, FAIL);
BaronRun_Timer = 0;
debug_log("TSCR: Instance Stratholme: Baron run event reached end. Event has state %u.",GetData(TYPE_BARON_RUN));
}else BaronRun_Timer -= diff;
} else BaronRun_Timer -= diff;
}
if (SlaugtherSquare_Timer)
@@ -402,7 +402,7 @@ struct TRINITY_DLL_DECL instance_stratholme : public ScriptedInstance
debug_log("TSCR: Instance Stratholme: Black guard sentries spawned. Opening gates to baron.");
}
SlaugtherSquare_Timer = 0;
}else SlaugtherSquare_Timer -= diff;
} else SlaugtherSquare_Timer -= diff;
}
}
};

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