aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_argent_challenge.cpp646
-rw-r--r--src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_black_knight.cpp334
-rw-r--r--src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/trial_of_the_champion.cpp8
-rw-r--r--src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/trial_of_the_champion.h60
-rw-r--r--src/game/Unit.cpp1
5 files changed, 545 insertions, 504 deletions
diff --git a/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_argent_challenge.cpp b/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_argent_challenge.cpp
index 02ad675e8b7..55639eb4eb7 100644
--- a/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_argent_challenge.cpp
+++ b/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_argent_challenge.cpp
@@ -27,28 +27,27 @@ EndScriptData */
enum
{
//yells
-
//eadric
- SPELL_VENGEANCE = 66889,
- SPELL_RADIANCE = 66862,
+ SPELL_VENGEANCE = 66889,
+ SPELL_RADIANCE = 66862,
SPELL_RADIANCE_H = 67681,
- SPELL_HAMMER_OF_JUSTICE = 66940,
+ SPELL_HAMMER_OF_JUSTICE = 66940,
SPELL_HAMMER = 67680,
//paletress
SPELL_SMITE = 66536,
SPELL_SMITE_H = 67674,
- SPELL_HOLY_FIRE = 66538,
+ SPELL_HOLY_FIRE = 66538,
SPELL_HOLY_FIRE_H = 67676,
SPELL_RENEW = 66537,
SPELL_RENEW_H = 67675,
- SPELL_HOLY_NOVA = 66546,
+ SPELL_HOLY_NOVA = 66546,
SPELL_SHIELD = 66515,
SPELL_CONFESS = 66547,
//memory
SPELL_FEAR = 66552,
SPELL_FEAR_H = 67677,
SPELL_SHADOWS = 66619,
- SPELL_SHADOWS_H = 67678,
+ SPELL_SHADOWS_H = 67678,
SPELL_OLD_WOUNDS = 66620,
SPELL_OLD_WOUNDS_H = 67679,
};
@@ -99,6 +98,7 @@ struct TRINITY_DLL_DECL boss_eadricAI : public ScriptedAI
{
if (!m_pInstance)
return;
+
if (m_pInstance->GetData(TYPE_ARGENT_CHALLENGE) == DONE)
m_creature->ForcedDespawn();
else
@@ -109,35 +109,42 @@ struct TRINITY_DLL_DECL boss_eadricAI : public ScriptedAI
{
if (!m_pInstance)
return;
+
m_pInstance->SetData(TYPE_ARGENT_CHALLENGE, DONE);
}
void UpdateAI(const uint32 diff)
{
- if (!m_creature->SelectVictim() || !m_creature->getVictim())
- return;
+ if (!m_creature->SelectVictim() || !m_creature->getVictim())
+ return;
if (Vengeance_Timer < diff)
- {
+ {
DoCast(m_creature, SPELL_VENGEANCE);
- Vengeance_Timer = 12000;
- }else Vengeance_Timer -= diff;
+ Vengeance_Timer = 12000;
+ }
+ else
+ Vengeance_Timer -= diff;
if (Radiance_Timer < diff)
- {
+ {
DoCast(m_creature, m_bIsRegularMode ? SPELL_RADIANCE : SPELL_RADIANCE_H);
- Radiance_Timer = 20000;
- }else Radiance_Timer -= diff;
+ Radiance_Timer = 20000;
+ }
+ else
+ Radiance_Timer -= diff;
if (Hammer_Timer < diff)
- {
- if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
+ {
+ if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
{
DoCast(target, SPELL_HAMMER_OF_JUSTICE);
HammerTarget = target->GetGUID();
}
- Hammer_Timer = 50000;
- }else Hammer_Timer -= diff;
+ Hammer_Timer = 50000;
+ }
+ else
+ Hammer_Timer -= diff;
if (Hammer_Dmg_Timer < diff)
{
@@ -145,10 +152,11 @@ struct TRINITY_DLL_DECL boss_eadricAI : public ScriptedAI
DoCast(pHammerTarget, SPELL_HAMMER);
Hammer_Dmg_Timer = 50000;
}
- else Hammer_Dmg_Timer -= diff;
+ else
+ Hammer_Dmg_Timer -= diff;
- DoMeleeAttackIfReady();
- }
+ DoMeleeAttackIfReady();
+ }
};
CreatureAI* GetAI_boss_eadric(Creature* pCreature)
@@ -160,301 +168,313 @@ CreatureAI* GetAI_boss_eadric(Creature* pCreature)
struct TRINITY_DLL_DECL boss_paletressAI : public ScriptedAI
{
boss_paletressAI(Creature* pCreature) : ScriptedAI(pCreature)
- {
- Reset();
- m_pInstance = (ScriptedInstance*)pCreature->GetInstanceData();
- }
+ {
+ Reset();
+ m_pInstance = (ScriptedInstance*)pCreature->GetInstanceData();
+ }
- ScriptedInstance* m_pInstance;
+ ScriptedInstance* m_pInstance;
bool m_bIsRegularMode;
- uint32 Smite_Timer;
- uint32 Holy_Fire_Timer;
- uint32 Renew_Timer;
- uint32 Shield_Delay;
- uint32 Shield_Check;
+ uint32 Smite_Timer;
+ uint32 Holy_Fire_Timer;
+ uint32 Renew_Timer;
+ uint32 Shield_Delay;
+ uint32 Shield_Check;
- bool summoned;
- bool shielded;
+ bool summoned;
+ bool shielded;
void Reset()
{
- m_creature->SetRespawnDelay(999999999);
- m_creature->RemoveAurasDueToSpell(SPELL_SHIELD);
- Smite_Timer = 5000;
- Holy_Fire_Timer = 10000;
- Renew_Timer = 7000;
- Shield_Delay = 0;
- Shield_Check = 1000;
- summoned = false;
- shielded = false;
+ m_creature->SetRespawnDelay(999999999);
+ m_creature->RemoveAurasDueToSpell(SPELL_SHIELD);
+ Smite_Timer = 5000;
+ Holy_Fire_Timer = 10000;
+ Renew_Timer = 7000;
+ Shield_Delay = 0;
+ Shield_Check = 1000;
+ summoned = false;
+ shielded = false;
}
- void EnterEvadeMode()
- {
- m_creature->RemoveAurasDueToSpell(SPELL_SHIELD);
- Smite_Timer = 2000;
- Holy_Fire_Timer = 10000;
- Renew_Timer = 7000;
- Shield_Delay = 0;
- Shield_Check = 1000;
- summoned = false;
- shielded = false;
- m_creature->RemoveArenaAuras(true);
- m_creature->SendMonsterMove(746.864441, 660.918762, 411.695465, 4.698700, m_creature->GetDefaultMovementType(), 1);
- m_creature->GetMap()->CreatureRelocation(m_creature, 754.360779, 660.816162, 412.395996, 4.698700);
- m_creature->SetHealth(m_creature->GetMaxHealth());
- }
+ void EnterEvadeMode()
+ {
+ m_creature->RemoveAurasDueToSpell(SPELL_SHIELD);
+ Smite_Timer = 2000;
+ Holy_Fire_Timer = 10000;
+ Renew_Timer = 7000;
+ Shield_Delay = 0;
+ Shield_Check = 1000;
+ summoned = false;
+ shielded = false;
+ m_creature->RemoveArenaAuras(true);
+ m_creature->SendMonsterMove(746.864441, 660.918762, 411.695465, 4.698700, m_creature->GetDefaultMovementType(), 1);
+ m_creature->GetMap()->CreatureRelocation(m_creature, 754.360779, 660.816162, 412.395996, 4.698700);
+ m_creature->SetHealth(m_creature->GetMaxHealth());
+ }
- void Aggro(Unit* pWho)
- {
- if (!m_pInstance)
- return;
- m_pInstance->SetData(TYPE_ARGENT_CHALLENGE, IN_PROGRESS);
- }
+ void Aggro(Unit* pWho)
+ {
+ if (!m_pInstance)
+ return;
- void JustDied(Unit* pKiller)
- {
- if (!m_pInstance)
- return;
- m_pInstance->SetData(TYPE_ARGENT_CHALLENGE, DONE);
- }
+ m_pInstance->SetData(TYPE_ARGENT_CHALLENGE, IN_PROGRESS);
+ }
- void UpdateAI(const uint32 diff)
+ void JustDied(Unit* pKiller)
+ {
+ if (!m_pInstance)
+ return;
+
+ m_pInstance->SetData(TYPE_ARGENT_CHALLENGE, DONE);
+ }
+
+ void UpdateAI(const uint32 diff)
{
if (!m_creature->SelectVictim() || !m_creature->getVictim())
return;
- if (Smite_Timer < diff)
+ if (Smite_Timer < diff)
{
- if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
- DoCast(target, m_bIsRegularMode ? SPELL_SMITE : SPELL_SMITE_H);
+ if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
+ DoCast(target, m_bIsRegularMode ? SPELL_SMITE : SPELL_SMITE_H);
Smite_Timer = 2000;
- }else Smite_Timer -= diff;
+ }
+ else
+ Smite_Timer -= diff;
- if (Holy_Fire_Timer < diff)
+ if (Holy_Fire_Timer < diff)
{
- m_creature->CastStop(m_bIsRegularMode ? SPELL_SMITE : SPELL_SMITE_H);
- if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
- DoCast(target, m_bIsRegularMode ? SPELL_HOLY_FIRE : SPELL_HOLY_FIRE_H);
+ m_creature->CastStop(m_bIsRegularMode ? SPELL_SMITE : SPELL_SMITE_H);
+ if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
+ DoCast(target, m_bIsRegularMode ? SPELL_HOLY_FIRE : SPELL_HOLY_FIRE_H);
Holy_Fire_Timer = 10000;
- }else Holy_Fire_Timer -= diff;
+ }
+ else
+ Holy_Fire_Timer -= diff;
- if (Renew_Timer < diff)
+ if (Renew_Timer < diff)
{
- m_creature->CastStop(m_bIsRegularMode ? SPELL_SMITE : SPELL_SMITE_H);
- m_creature->CastStop(m_bIsRegularMode ? SPELL_HOLY_FIRE : SPELL_HOLY_FIRE_H);
- switch(urand(0, 1))
+ m_creature->CastStop(m_bIsRegularMode ? SPELL_SMITE : SPELL_SMITE_H);
+ m_creature->CastStop(m_bIsRegularMode ? SPELL_HOLY_FIRE : SPELL_HOLY_FIRE_H);
+ switch(urand(0, 1))
{
case 0:
- if (Creature* pTemp = ((Creature*)Unit::GetUnit((*m_creature), m_pInstance->GetData64(DATA_MEMORY))))
- if (pTemp->isAlive())
- DoCast(pTemp, m_bIsRegularMode ? SPELL_RENEW : SPELL_RENEW_H);
- else
- DoCast(pTemp, m_bIsRegularMode ? SPELL_RENEW : SPELL_RENEW_H);
+ {
+ if (Creature* pTemp = ((Creature*)Unit::GetUnit((*m_creature), m_pInstance->GetData64(DATA_MEMORY))))
+ if (pTemp->isAlive())
+ DoCast(pTemp, m_bIsRegularMode ? SPELL_RENEW : SPELL_RENEW_H);
+ else
+ DoCast(pTemp, m_bIsRegularMode ? SPELL_RENEW : SPELL_RENEW_H);
+ }
break;
- case 1:
- DoCast(m_creature, m_bIsRegularMode ? SPELL_RENEW : SPELL_RENEW_H);
+ case 1:
+ DoCast(m_creature, m_bIsRegularMode ? SPELL_RENEW : SPELL_RENEW_H);
break;
- }
+ }
Renew_Timer = 15000;
- }else Renew_Timer -= diff;
-
- if ((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 35 && !summoned)
- {
- m_creature->CastStop(m_bIsRegularMode ? SPELL_SMITE : SPELL_SMITE_H);
- m_creature->CastStop(m_bIsRegularMode ? SPELL_HOLY_FIRE : SPELL_HOLY_FIRE_H);
- DoCast(m_creature, SPELL_HOLY_NOVA);
- switch(urand(0, 24))
+ }
+ else
+ Renew_Timer -= diff;
+
+ if ((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 35 && !summoned)
+ {
+ m_creature->CastStop(m_bIsRegularMode ? SPELL_SMITE : SPELL_SMITE_H);
+ m_creature->CastStop(m_bIsRegularMode ? SPELL_HOLY_FIRE : SPELL_HOLY_FIRE_H);
+ DoCast(m_creature, SPELL_HOLY_NOVA);
+ switch(urand(0, 24))
{
case 0:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_ALGALON, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 1:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_CHROMAGGUS, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 2:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_CYANIGOSA, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 3:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_DELRISSA, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 4:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_ECK, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 5:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_ENTROPIUS, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 6:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_GRUUL, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 7:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_HAKKAR, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 8:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_HEIGAN, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 9:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_HEROD, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 10:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_HOGGER, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 11:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_IGNIS, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 12:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_ILLIDAN, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 13:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_INGVAR, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 14:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_KALITHRESH, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 15:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_LUCIFRON, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 16:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_MALCHEZAAR, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 17:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_MUTANUS, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 18:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_ONYXIA, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 19:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_THUNDERAAN, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 20:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_VANCLEEF, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 21:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_VASHJ, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 22:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_VEKNILASH, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 23:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_VEZAX, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- case 24:
- if (Creature* pTemp = m_creature->SummonCreature(MEMORY_ARCHIMONDE, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
- {
- pTemp->AddThreat(m_creature->getVictim(),1000.0f);
- pTemp->AI()->AttackStart(m_creature->getVictim());
- }
- break;
- }
- summoned = true;
- Shield_Delay = 1000;
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_ALGALON, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 1:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_CHROMAGGUS, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 2:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_CYANIGOSA, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 3:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_DELRISSA, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 4:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_ECK, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 5:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_ENTROPIUS, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 6:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_GRUUL, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 7:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_HAKKAR, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 8:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_HEIGAN, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 9:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_HEROD, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 10:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_HOGGER, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 11:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_IGNIS, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 12:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_ILLIDAN, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 13:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_INGVAR, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 14:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_KALITHRESH, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 15:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_LUCIFRON, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 16:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_MALCHEZAAR, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 17:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_MUTANUS, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 18:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_ONYXIA, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 19:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_THUNDERAAN, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 20:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_VANCLEEF, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 21:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_VASHJ, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 22:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_VEKNILASH, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 23:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_VEZAX, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
+ case 24:
+ if (Creature* pTemp = m_creature->SummonCreature(MEMORY_ARCHIMONDE, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
+ {
+ pTemp->AddThreat(m_creature->getVictim(),1000.0f);
+ pTemp->AI()->AttackStart(m_creature->getVictim());
+ }
+ break;
}
+ summoned = true;
+ Shield_Delay = 1000;
+ }
if (Shield_Delay < diff && !shielded && summoned)
- {
+ {
m_creature->CastStop(m_bIsRegularMode ? SPELL_SMITE : SPELL_SMITE_H);
m_creature->CastStop(m_bIsRegularMode ? SPELL_HOLY_FIRE : SPELL_HOLY_FIRE_H);
DoCast(m_creature, SPELL_SHIELD);
- shielded = true;
+ shielded = true;
Shield_Check = 1000;
- }else Shield_Delay -= diff;
+ }
+ else
+ Shield_Delay -= diff;
if (!m_creature->FindNearestCreature(35052, 200, true) && !m_creature->FindNearestCreature(35041, 200, true) && !m_creature->FindNearestCreature(35033, 200, true) &&
!m_creature->FindNearestCreature(35046, 200, true) && !m_creature->FindNearestCreature(35043, 200, true) && !m_creature->FindNearestCreature(35047, 200, true) &&
@@ -483,52 +503,58 @@ CreatureAI* GetAI_boss_paletress(Creature* pCreature)
struct TRINITY_DLL_DECL mob_toc5_memoryAI : public ScriptedAI
{
mob_toc5_memoryAI(Creature* pCreature) : ScriptedAI(pCreature)
- {
- Reset();
- m_pInstance = (ScriptedInstance*)pCreature->GetInstanceData();
- }
+ {
+ Reset();
+ m_pInstance = (ScriptedInstance*)pCreature->GetInstanceData();
+ }
- ScriptedInstance* m_pInstance;
+ ScriptedInstance* m_pInstance;
bool m_bIsRegularMode;
- uint32 Old_Wounds_Timer;
- uint32 Shadows_Timer;
- uint32 Fear_Timer;
+ uint32 Old_Wounds_Timer;
+ uint32 Shadows_Timer;
+ uint32 Fear_Timer;
void Reset()
{
- Old_Wounds_Timer = 5000;
- Shadows_Timer = 8000;
- Fear_Timer = 13000;
+ Old_Wounds_Timer = 5000;
+ Shadows_Timer = 8000;
+ Fear_Timer = 13000;
}
- void UpdateAI(const uint32 diff)
+ void UpdateAI(const uint32 diff)
{
if (!m_creature->SelectVictim() || !m_creature->getVictim())
return;
- if (Old_Wounds_Timer < diff)
+ if (Old_Wounds_Timer < diff)
{
- if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
- DoCast(target, m_bIsRegularMode ? SPELL_OLD_WOUNDS : SPELL_OLD_WOUNDS_H);
+ if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
+ DoCast(target, m_bIsRegularMode ? SPELL_OLD_WOUNDS : SPELL_OLD_WOUNDS_H);
Old_Wounds_Timer = 10000;
- }else Old_Wounds_Timer -= diff;
+ }
+ else
+ Old_Wounds_Timer -= diff;
- if (Fear_Timer < diff)
+ if (Fear_Timer < diff)
{
- DoCast(m_creature, m_bIsRegularMode ? SPELL_FEAR : SPELL_FEAR_H);
+ DoCast(m_creature, m_bIsRegularMode ? SPELL_FEAR : SPELL_FEAR_H);
Fear_Timer = 40000;
- }else Fear_Timer -= diff;
+ }
+ else
+ Fear_Timer -= diff;
- if (Shadows_Timer < diff)
+ if (Shadows_Timer < diff)
{
- if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,1))
- DoCast(target, m_bIsRegularMode ? SPELL_SHADOWS : SPELL_SHADOWS_H);
+ if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,1))
+ DoCast(target, m_bIsRegularMode ? SPELL_SHADOWS : SPELL_SHADOWS_H);
Shadows_Timer = 10000;
- }else Shadows_Timer -= diff;
+ }
+ else
+ Shadows_Timer -= diff;
- DoMeleeAttackIfReady();
- }
+ DoMeleeAttackIfReady();
+ }
};
CreatureAI* GetAI_mob_toc5_memory(Creature* pCreature)
@@ -542,16 +568,16 @@ void AddSC_boss_argent_challenge()
NewScript = new Script;
NewScript->Name = "boss_eadric";
- NewScript->GetAI = &GetAI_boss_eadric;
+ NewScript->GetAI = &GetAI_boss_eadric;
NewScript->RegisterSelf();
- NewScript = new Script;
+ NewScript = new Script;
NewScript->Name = "boss_paletress";
- NewScript->GetAI = &GetAI_boss_paletress;
+ NewScript->GetAI = &GetAI_boss_paletress;
NewScript->RegisterSelf();
- NewScript = new Script;
+ NewScript = new Script;
NewScript->Name = "mob_toc5_memory";
- NewScript->GetAI = &GetAI_mob_toc5_memory;
+ NewScript->GetAI = &GetAI_mob_toc5_memory;
NewScript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_black_knight.cpp b/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_black_knight.cpp
index eda17bf49c9..255adceecec 100644
--- a/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_black_knight.cpp
+++ b/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_black_knight.cpp
@@ -31,78 +31,81 @@ enum
//undead
SPELL_PLAGUE_STRIKE = 67724,
SPELL_PLAGUE_STRIKE_H = 67884,
- SPELL_ICY_TOUCH = 67718,
+ SPELL_ICY_TOUCH = 67718,
SPELL_ICY_TOUCH_H = 67881,
SPELL_OBLITERATE = 67725,
SPELL_OBLITERATE_H = 67883,
- SPELL_CHOKE = 68306,
+ SPELL_CHOKE = 68306,
//skeleton
- SPELL_ARMY = 42650, //replacing original one, since that one spawns millions of ghouls!!
+ SPELL_ARMY = 42650, //replacing original one, since that one spawns millions of ghouls!!
//ghost
SPELL_DEATH = 67808,
SPELL_DEATH_H = 67875,
- SPELL_MARK = 67823,
+ SPELL_MARK = 67823,
//risen ghoul
- SPELL_CLAW = 67879,
+ SPELL_CLAW = 67879,
SPELL_EXPLODE = 67729,
- SPELL_EXPLODE_H = 67886,
- SPELL_LEAP = 67749,
+ SPELL_EXPLODE_H = 67886,
+ SPELL_LEAP = 67749,
SPELL_LEAP_H = 67880,
//sword ID
- EQUIP_SWORD = 40343
+ EQUIP_SWORD = 40343
};
// Risen Ghoul
struct TRINITY_DLL_DECL mob_toc5_risen_ghoulAI : public ScriptedAI
{
mob_toc5_risen_ghoulAI(Creature* pCreature) : ScriptedAI(pCreature)
- {
- Reset();
- m_pInstance = (ScriptedInstance*)pCreature->GetInstanceData();
- }
+ {
+ Reset();
+ m_pInstance = (ScriptedInstance*)pCreature->GetInstanceData();
+ }
- ScriptedInstance* m_pInstance;
+ ScriptedInstance* m_pInstance;
bool m_bIsRegularMode;
- uint32 Attack;
+ uint32 Attack;
void Reset()
{
- Attack = 2500;
+ Attack = 2500;
}
- void UpdateAI(const uint32 diff)
+ void UpdateAI(const uint32 diff)
{
if (!m_creature->SelectVictim() || !m_creature->getVictim())
return;
- if (Attack < diff)
+ if (Attack < diff)
{
- if (Creature* pTemp = ((Creature*)Unit::GetUnit((*m_creature), m_pInstance->GetData64(DATA_BLACK_KNIGHT))))
- if (pTemp->isAlive())
- if ((pTemp->GetHealth()*100 / pTemp->GetMaxHealth()) < 25)
- DoCast(m_creature, m_bIsRegularMode ? SPELL_EXPLODE : SPELL_EXPLODE_H);
- if (m_creature->IsWithinDistInMap(m_creature->getVictim(), 4))
- {
- DoCast(m_creature->getVictim(), SPELL_CLAW);
- if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,1))
- m_creature->AI()->AttackStart(target);
- Attack = 2500;
- }else
- if (m_creature->IsWithinDistInMap(m_creature->getVictim(), 30))
- {
- DoCast(m_creature->getVictim(), m_bIsRegularMode ? SPELL_LEAP : SPELL_LEAP_H);
- Attack = 2500;
- }
- }else Attack -= diff;
-
- if ((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 25)
- DoCast(m_creature, m_bIsRegularMode ? SPELL_EXPLODE : SPELL_EXPLODE_H);
+ if (Creature* pTemp = ((Creature*)Unit::GetUnit((*m_creature), m_pInstance->GetData64(DATA_BLACK_KNIGHT))))
+ if (pTemp->isAlive())
+ if ((pTemp->GetHealth()*100 / pTemp->GetMaxHealth()) < 25)
+ DoCast(m_creature, m_bIsRegularMode ? SPELL_EXPLODE : SPELL_EXPLODE_H);
+ if (m_creature->IsWithinDistInMap(m_creature->getVictim(), 4))
+ {
+ DoCast(m_creature->getVictim(), SPELL_CLAW);
+ if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,1))
+ m_creature->AI()->AttackStart(target);
+ Attack = 2500;
+ }
+ else
+ if (m_creature->IsWithinDistInMap(m_creature->getVictim(), 30))
+ {
+ DoCast(m_creature->getVictim(), m_bIsRegularMode ? SPELL_LEAP : SPELL_LEAP_H);
+ Attack = 2500;
+ }
+ }
+ else
+ Attack -= diff;
+
+ if ((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 25)
+ DoCast(m_creature, m_bIsRegularMode ? SPELL_EXPLODE : SPELL_EXPLODE_H);
- DoMeleeAttackIfReady();
- }
+ DoMeleeAttackIfReady();
+ }
};
CreatureAI* GetAI_mob_toc5_risen_ghoul(Creature* pCreature)
@@ -114,106 +117,105 @@ CreatureAI* GetAI_mob_toc5_risen_ghoul(Creature* pCreature)
struct TRINITY_DLL_DECL boss_black_knightAI : public ScriptedAI
{
boss_black_knightAI(Creature* pCreature) : ScriptedAI(pCreature)
- {
- Reset();
- m_pInstance = (ScriptedInstance*)pCreature->GetInstanceData();
- }
+ {
+ Reset();
+ m_pInstance = (ScriptedInstance*)pCreature->GetInstanceData();
+ }
ScriptedInstance* m_pInstance;
bool m_bIsRegularMode;
- uint32 Plague_Strike_Timer;
- uint32 Icy_Touch_Timer;
- uint32 Obliterate_Timer;
- uint32 Choke_Timer;
- uint32 Death_Timer;
- uint32 Mark_Timer;
- uint32 Phase_Delay;
- uint32 Summon_Ghoul;
+ uint32 Plague_Strike_Timer;
+ uint32 Icy_Touch_Timer;
+ uint32 Obliterate_Timer;
+ uint32 Choke_Timer;
+ uint32 Death_Timer;
+ uint32 Mark_Timer;
+ uint32 Phase_Delay;
+ uint32 Summon_Ghoul;
- bool phase1;
- bool phase2;
- bool phase3;
- bool ghoul;
+ bool phase1;
+ bool phase2;
+ bool phase3;
+ bool ghoul;
void Reset()
{
- m_creature->SetRespawnDelay(999999999);
- m_creature->SetDisplayId(29837);
- SetEquipmentSlots(false, EQUIP_SWORD, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
- Plague_Strike_Timer = 5000;
- Icy_Touch_Timer = 10000;
- Obliterate_Timer = 16000;
- Choke_Timer = 15000;
- Summon_Ghoul = 4000;
- phase1 = true;
- phase2 = false;
- phase3 = false;
- ghoul = false;
+ m_creature->SetRespawnDelay(999999999);
+ m_creature->SetDisplayId(29837);
+ SetEquipmentSlots(false, EQUIP_SWORD, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
+ Plague_Strike_Timer = 5000;
+ Icy_Touch_Timer = 10000;
+ Obliterate_Timer = 16000;
+ Choke_Timer = 15000;
+ Summon_Ghoul = 4000;
+ phase1 = true;
+ phase2 = false;
+ phase3 = false;
+ ghoul = false;
}
- void EnterEvadeMode()
- {
- m_creature->SetDisplayId(29837);
- Plague_Strike_Timer = 5000;
- Icy_Touch_Timer = 10000;
- Obliterate_Timer = 16000;
- Choke_Timer = 15000;
- Summon_Ghoul = 4000;
- phase1 = true;
- phase2 = false;
- phase3 = false;
- ghoul = false;
- m_creature->RemoveArenaAuras(true);
- m_creature->SendMonsterMove(746.864441, 660.918762, 411.695465, 4.698700, m_creature->GetDefaultMovementType(), 1);
- m_creature->GetMap()->CreatureRelocation(m_creature, 754.360779, 660.816162, 412.395996, 4.698700);
- m_creature->SetHealth(m_creature->GetMaxHealth());
- }
+ void EnterEvadeMode()
+ {
+ m_creature->SetDisplayId(29837);
+ Plague_Strike_Timer = 5000;
+ Icy_Touch_Timer = 10000;
+ Obliterate_Timer = 16000;
+ Choke_Timer = 15000;
+ Summon_Ghoul = 4000;
+ phase1 = true;
+ phase2 = false;
+ phase3 = false;
+ ghoul = false;
+ m_creature->RemoveArenaAuras(true);
+ m_creature->SendMonsterMove(746.864441, 660.918762, 411.695465, 4.698700, m_creature->GetDefaultMovementType(), 1);
+ m_creature->GetMap()->CreatureRelocation(m_creature, 754.360779, 660.816162, 412.395996, 4.698700);
+ m_creature->SetHealth(m_creature->GetMaxHealth());
+ }
- void Aggro(Unit* pWho)
+ void Aggro(Unit* pWho)
{
- if (!m_pInstance)
- return;
- if (m_pInstance->GetData(TYPE_BLACK_KNIGHT) == DONE)
- m_creature->ForcedDespawn();
- else
- m_pInstance->SetData(TYPE_BLACK_KNIGHT, IN_PROGRESS);
+ if (!m_pInstance)
+ return;
+
+ if (m_pInstance->GetData(TYPE_BLACK_KNIGHT) == DONE)
+ m_creature->ForcedDespawn();
+ else
+ m_pInstance->SetData(TYPE_BLACK_KNIGHT, IN_PROGRESS);
}
- void DamageTaken(Unit* pDoneBy, uint32& uiDamage)
+ void DamageTaken(Unit* pDoneBy, uint32& uiDamage)
{
- if (uiDamage > m_creature->GetHealth() && !phase3){
- uiDamage = 0;
- if (phase2)
- StartPhase3();
- if (phase1)
- StartPhase2();
- }
+ if (uiDamage > m_creature->GetHealth() && !phase3){
+ uiDamage = 0;
+ if (phase2)
+ StartPhase3();
+ if (phase1)
+ StartPhase2();
}
- void JustDied(Unit* pKiller)
+ void JustDied(Unit* pKiller)
{
- if (!m_pInstance)
- return;
- if (phase3)
- {
- m_pInstance->SetData(TYPE_BLACK_KNIGHT, DONE);
- }
- if (phase2)
- if (!m_creature->isAlive())
- {
- m_creature->Respawn();
- StartPhase3();
- }
- if (phase1)
- if (!m_creature->isAlive())
- {
- m_creature->Respawn();
- StartPhase2();
- }
- }
+ if (!m_pInstance)
+ return;
- void StartPhase2()
+ if (phase3)
+ m_pInstance->SetData(TYPE_BLACK_KNIGHT, DONE);
+ if (phase2)
+ if (!m_creature->isAlive())
+ {
+ m_creature->Respawn();
+ StartPhase3();
+ }
+ if (phase1)
+ if (!m_creature->isAlive())
+ {
+ m_creature->Respawn();
+ StartPhase2();
+ }
+ }
+
+ void StartPhase2()
{
m_creature->SetHealth(m_creature->GetMaxHealth());
m_creature->SetDisplayId(27550);
@@ -238,60 +240,74 @@ struct TRINITY_DLL_DECL boss_black_knightAI : public ScriptedAI
Mark_Timer = 9000;
}
- void UpdateAI(const uint32 diff)
+ void UpdateAI(const uint32 diff)
{
if (!m_creature->SelectVictim() || !m_creature->getVictim())
return;
- if (Plague_Strike_Timer < diff && !phase3)
+ if (Plague_Strike_Timer < diff && !phase3)
{
- DoCast(m_creature->getVictim(), m_bIsRegularMode ? SPELL_PLAGUE_STRIKE : SPELL_PLAGUE_STRIKE_H);
+ DoCast(m_creature->getVictim(), m_bIsRegularMode ? SPELL_PLAGUE_STRIKE : SPELL_PLAGUE_STRIKE_H);
Plague_Strike_Timer = 10500;
- }else Plague_Strike_Timer -= diff;
+ }
+ else
+ Plague_Strike_Timer -= diff;
- if (Icy_Touch_Timer < diff && !phase3)
+ if (Icy_Touch_Timer < diff && !phase3)
{
- DoCast(m_creature->getVictim(), m_bIsRegularMode ? SPELL_ICY_TOUCH : SPELL_ICY_TOUCH_H);
+ DoCast(m_creature->getVictim(), m_bIsRegularMode ? SPELL_ICY_TOUCH : SPELL_ICY_TOUCH_H);
Icy_Touch_Timer = 10000;
- }else Icy_Touch_Timer -= diff;
+ }
+ else
+ Icy_Touch_Timer -= diff;
- if (Obliterate_Timer < diff && !phase3)
+ if (Obliterate_Timer < diff && !phase3)
{
- DoCast(m_creature->getVictim(), m_bIsRegularMode ? SPELL_OBLITERATE : SPELL_OBLITERATE_H);
+ DoCast(m_creature->getVictim(), m_bIsRegularMode ? SPELL_OBLITERATE : SPELL_OBLITERATE_H);
Obliterate_Timer = 11000;
- }else Obliterate_Timer -= diff;
+ }
+ else
+ Obliterate_Timer -= diff;
- if (Choke_Timer < diff && phase1)
+ if (Choke_Timer < diff && phase1)
{
- if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,1))
- DoCast(m_creature->getVictim(), SPELL_CHOKE);
- Choke_Timer = 15000;
- }else Choke_Timer -= diff;
-
- if (Summon_Ghoul < diff && phase1 && !ghoul)
+ if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,1))
+ DoCast(m_creature->getVictim(), SPELL_CHOKE);
+ Choke_Timer = 15000;
+ }
+ else
+ Choke_Timer -= diff;
+
+ if (Summon_Ghoul < diff && phase1 && !ghoul)
{
- if (m_pInstance->GetData(DATA_TOC5_ANNOUNCER) == m_pInstance->GetData(DATA_JAEREN))
- m_creature->SummonCreature(NPC_RISEN_JAEREN, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- else
- m_creature->SummonCreature(NPC_RISEN_ARELAS, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
- ghoul = true;
- }else Summon_Ghoul -= diff;
-
- if (Mark_Timer < diff && phase3)
+ if (m_pInstance->GetData(DATA_TOC5_ANNOUNCER) == m_pInstance->GetData(DATA_JAEREN))
+ m_creature->SummonCreature(NPC_RISEN_JAEREN, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ else
+ m_creature->SummonCreature(NPC_RISEN_ARELAS, 0.0f, 0.0f, 0.0f, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ ghoul = true;
+ }
+ else
+ Summon_Ghoul -= diff;
+
+ if (Mark_Timer < diff && phase3)
{
- if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,1))
- DoCast(target, SPELL_MARK);
- Mark_Timer = 15000;
- }else Mark_Timer -= diff;
-
- if (Death_Timer < diff && phase3)
+ if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,1))
+ DoCast(target, SPELL_MARK);
+ Mark_Timer = 15000;
+ }
+ else
+ Mark_Timer -= diff;
+
+ if (Death_Timer < diff && phase3)
{
- DoCast(m_creature, m_bIsRegularMode ? SPELL_DEATH : SPELL_DEATH_H);
- Death_Timer = 3500;
- }else Death_Timer -= diff;
+ DoCast(m_creature, m_bIsRegularMode ? SPELL_DEATH : SPELL_DEATH_H);
+ Death_Timer = 3500;
+ }
+ else
+ Death_Timer -= diff;
- DoMeleeAttackIfReady();
- }
+ DoMeleeAttackIfReady();
+ }
};
CreatureAI* GetAI_boss_black_knight(Creature* pCreature)
@@ -305,11 +321,11 @@ void AddSC_boss_black_knight()
NewScript = new Script;
NewScript->Name = "mob_toc5_risen_ghoul";
- NewScript->GetAI = &GetAI_mob_toc5_risen_ghoul;
+ NewScript->GetAI = &GetAI_mob_toc5_risen_ghoul;
NewScript->RegisterSelf();
- NewScript = new Script;
+ NewScript = new Script;
NewScript->Name = "boss_black_knight";
- NewScript->GetAI = &GetAI_boss_black_knight;
+ NewScript->GetAI = &GetAI_boss_black_knight;
NewScript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/trial_of_the_champion.cpp b/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/trial_of_the_champion.cpp
index 4d35f54daf0..15df0fbc5f9 100644
--- a/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/trial_of_the_champion.cpp
+++ b/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/trial_of_the_champion.cpp
@@ -69,16 +69,16 @@ struct TRINITY_DLL_DECL npc_toc5_announcerAI : public ScriptedAI
if(pInstance->GetData(TYPE_GRAND_CHAMPIONS) == DONE && pInstance->GetData(TYPE_ARGENT_CHALLENGE) == NOT_STARTED && pInstance->GetData(TYPE_BLACK_KNIGHT) == NOT_STARTED)
{
- argent = RAND(35119,34928);
+ argent = RAND(35119,34928);
m_creature->SummonCreature(argent, 746.864441, 660.918762, 411.695465, 4.698700, TEMPSUMMON_MANUAL_DESPAWN, 0);
- pInstance->SetData(TYPE_ARGENT_CHALLENGE, IN_PROGRESS);
+ pInstance->SetData(TYPE_ARGENT_CHALLENGE, IN_PROGRESS);
}
if(pInstance->GetData(TYPE_GRAND_CHAMPIONS) == DONE && pInstance->GetData(TYPE_ARGENT_CHALLENGE) == DONE && pInstance->GetData(TYPE_BLACK_KNIGHT) == NOT_STARTED)
{
m_creature->SummonCreature(NPC_BLACK_KNIGHT, 746.864441, 660.918762, 411.695465, 4.698700, TEMPSUMMON_MANUAL_DESPAWN, 0);
pInstance->SetData(TYPE_BLACK_KNIGHT, IN_PROGRESS);
- m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
+ m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
}
}
@@ -123,7 +123,7 @@ void AddSC_trial_of_the_champion()
NewScript = new Script;
NewScript->Name = "npc_toc5_announcer";
- NewScript->GetAI = &GetAI_npc_toc5_announcer;
+ NewScript->GetAI = &GetAI_npc_toc5_announcer;
NewScript->pGossipHello = &GossipHello_npc_toc5_announcer;
NewScript->pGossipSelect = &GossipSelect_npc_toc5_announcer;
NewScript->RegisterSelf();
diff --git a/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/trial_of_the_champion.h b/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/trial_of_the_champion.h
index a7043a5e61b..5b76bd8e7d8 100644
--- a/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/trial_of_the_champion.h
+++ b/src/bindings/scripts/scripts/northrend/crusaders_coliseum/trial_of_the_champion/trial_of_the_champion.h
@@ -21,8 +21,8 @@ enum
DATA_CHAMPIONID_1 = 11,
DATA_CHAMPIONID_2 = 12,
DATA_CHAMPIONID_3 = 13,
- DATA_MEMORY = 14,
- DATA_ARGENT_CHALLENGER = 15,
+ DATA_MEMORY = 14,
+ DATA_ARGENT_CHALLENGER = 15,
NPC_JACOB = 34705,
NPC_AMBROSE = 34702,
@@ -41,38 +41,38 @@ enum
NPC_RISEN_ARELAS = 35564,
NPC_JAEREN = 35004,
NPC_ARELAS = 35005,
- MEMORY_ALGALON = 35052,
- MEMORY_ARCHIMONDE = 35041,
- MEMORY_CHROMAGGUS = 35033,
- MEMORY_CYANIGOSA = 35046,
- MEMORY_DELRISSA = 35043,
- MEMORY_ECK = 35047,
- MEMORY_ENTROPIUS = 35044,
- MEMORY_GRUUL = 35039,
- MEMORY_HAKKAR = 35034,
- MEMORY_HEIGAN = 35049,
- MEMORY_HEROD = 35030,
- MEMORY_HOGGER = 34942,
- MEMORY_IGNIS = 35050,
- MEMORY_ILLIDAN = 35042,
- MEMORY_INGVAR = 35045,
- MEMORY_KALITHRESH = 35037,
- MEMORY_LUCIFRON = 35031,
- MEMORY_MALCHEZAAR = 35038,
- MEMORY_MUTANUS = 35029,
- MEMORY_ONYXIA = 35048,
- MEMORY_THUNDERAAN = 35032,
- MEMORY_VANCLEEF = 35028,
- MEMORY_VASHJ = 35040,
- MEMORY_VEKNILASH = 35036,
- MEMORY_VEZAX = 35051,
+ MEMORY_ALGALON = 35052,
+ MEMORY_ARCHIMONDE = 35041,
+ MEMORY_CHROMAGGUS = 35033,
+ MEMORY_CYANIGOSA = 35046,
+ MEMORY_DELRISSA = 35043,
+ MEMORY_ECK = 35047,
+ MEMORY_ENTROPIUS = 35044,
+ MEMORY_GRUUL = 35039,
+ MEMORY_HAKKAR = 35034,
+ MEMORY_HEIGAN = 35049,
+ MEMORY_HEROD = 35030,
+ MEMORY_HOGGER = 34942,
+ MEMORY_IGNIS = 35050,
+ MEMORY_ILLIDAN = 35042,
+ MEMORY_INGVAR = 35045,
+ MEMORY_KALITHRESH = 35037,
+ MEMORY_LUCIFRON = 35031,
+ MEMORY_MALCHEZAAR = 35038,
+ MEMORY_MUTANUS = 35029,
+ MEMORY_ONYXIA = 35048,
+ MEMORY_THUNDERAAN = 35032,
+ MEMORY_VANCLEEF = 35028,
+ MEMORY_VASHJ = 35040,
+ MEMORY_VEKNILASH = 35036,
+ MEMORY_VEZAX = 35051,
GO_CHAMPIONS_LOOT = 195709,
- GO_CHAMPIONS_LOOT_H = 195710,
+ GO_CHAMPIONS_LOOT_H = 195710,
GO_EADRIC_LOOT = 195374,
- GO_EADRIC_LOOT_H = 195375,
+ GO_EADRIC_LOOT_H = 195375,
GO_PALETRESS_LOOT = 195323,
- GO_PALETRESS_LOOT_H = 195324
+ GO_PALETRESS_LOOT_H = 195324
};
#endif
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 888f51ce201..7ea832d2477 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -2071,7 +2071,6 @@ void Unit::CalcAbsorbResist(Unit *pVictim, SpellSchoolMask schoolMask, DamageEff
absorbed = canabsorb;
RemainingDamage -= absorbed;
- triggeredSpells.push_back(TriggeredSpellInfo(0, this, caster, absorbed, *i));
}
continue;
default: