*hyjal update

-reset boss damage at boss reset
-minimal player dmg for bosses changed to min 25% (until someone confirms a better value)
-count pet dmg as player dmg into boss min dmg

--HG--
branch : trunk
This commit is contained in:
Rat
2009-04-13 16:13:22 +02:00
parent 5032bd159c
commit 6b7d0c7cfe
6 changed files with 8 additions and 2 deletions
@@ -60,6 +60,7 @@ struct TRINITY_DLL_DECL boss_anetheronAI : public hyjal_trashAI
void Reset() void Reset()
{ {
damageTaken = 0;
SwarmTimer = 45000; SwarmTimer = 45000;
SleepTimer = 60000; SleepTimer = 60000;
AuraTimer = 5000; AuraTimer = 5000;
@@ -357,6 +357,7 @@ struct TRINITY_DLL_DECL boss_archimondeAI : public hyjal_trashAI
if(pInstance) if(pInstance)
pInstance->SetData(DATA_ARCHIMONDEEVENT, NOT_STARTED); pInstance->SetData(DATA_ARCHIMONDEEVENT, NOT_STARTED);
damageTaken = 0;
DrainNordrassilTimer = 0; DrainNordrassilTimer = 0;
FearTimer = 42000; FearTimer = 42000;
AirBurstTimer = 30000; AirBurstTimer = 30000;
@@ -51,6 +51,7 @@ struct TRINITY_DLL_DECL boss_azgalorAI : public hyjal_trashAI
void Reset() void Reset()
{ {
damageTaken = 0;
RainTimer = 20000; RainTimer = 20000;
DoomTimer = 50000; DoomTimer = 50000;
HowlTimer = 30000; HowlTimer = 30000;
@@ -48,6 +48,7 @@ struct TRINITY_DLL_DECL boss_kazrogalAI : public hyjal_trashAI
void Reset() void Reset()
{ {
damageTaken = 0;
CleaveTimer = 5000; CleaveTimer = 5000;
WarStompTimer = 15000; WarStompTimer = 15000;
MarkTimer = 45000; MarkTimer = 45000;
@@ -48,6 +48,7 @@ struct TRINITY_DLL_DECL boss_rage_winterchillAI : public hyjal_trashAI
void Reset() void Reset()
{ {
damageTaken = 0;
FrostArmorTimer = 37000; FrostArmorTimer = 37000;
DecayTimer = 45000; DecayTimer = 45000;
NovaTimer = 15000; NovaTimer = 15000;
@@ -158,7 +158,7 @@ hyjal_trashAI::hyjal_trashAI(Creature *c) : npc_escortAI(c)
void hyjal_trashAI::DamageTaken(Unit *done_by, uint32 &damage) void hyjal_trashAI::DamageTaken(Unit *done_by, uint32 &damage)
{ {
if(done_by->GetTypeId() == TYPEID_PLAYER) if(done_by->GetTypeId() == TYPEID_PLAYER || (done_by->GetTypeId() == TYPEID_UNIT && ((Creature*)done_by)->isPet()))
{ {
damageTaken += damage; damageTaken += damage;
if(pInstance) if(pInstance)
@@ -431,6 +431,7 @@ void hyjal_trashAI::UpdateAI(const uint32 diff)
AddWaypoint(i, HordeWPs[i][0]+irand(-10,10), HordeWPs[i][1]+irand(-10,10), HordeWPs[i][2]); AddWaypoint(i, HordeWPs[i][0]+irand(-10,10), HordeWPs[i][1]+irand(-10,10), HordeWPs[i][2]);
switch(OverrunType) switch(OverrunType)
{ {
case 0:
default: default:
AddWaypoint( 5, HordeOverrunWP[0][0]+irand(-10,10), HordeOverrunWP[0][1]+irand(-10,10), HordeOverrunWP[0][2]); AddWaypoint( 5, HordeOverrunWP[0][0]+irand(-10,10), HordeOverrunWP[0][1]+irand(-10,10), HordeOverrunWP[0][2]);
AddWaypoint( 6, HordeOverrunWP[1][0]+irand(-10,10), HordeOverrunWP[1][1]+irand(-10,10), HordeOverrunWP[1][2]); AddWaypoint( 6, HordeOverrunWP[1][0]+irand(-10,10), HordeOverrunWP[1][1]+irand(-10,10), HordeOverrunWP[1][2]);
@@ -465,7 +466,7 @@ void hyjal_trashAI::JustDied(Unit *victim)
if(IsEvent && !m_creature->isWorldBoss()) if(IsEvent && !m_creature->isWorldBoss())
pInstance->SetData(DATA_TRASH, 0);//signal trash is dead pInstance->SetData(DATA_TRASH, 0);//signal trash is dead
if((pInstance->GetData(DATA_RAIDDAMAGE) < MINRAIDDAMAGE && !m_creature->isWorldBoss()) || (damageTaken < m_creature->GetMaxHealth()/2 && m_creature->isWorldBoss())) if((pInstance->GetData(DATA_RAIDDAMAGE) < MINRAIDDAMAGE && !m_creature->isWorldBoss()) || (damageTaken < m_creature->GetMaxHealth()/4 && m_creature->isWorldBoss()))
m_creature->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);//no loot m_creature->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);//no loot
if(IsOverrun) if(IsOverrun)