*Replace taunt immunities with extra flags

--HG--
branch : trunk
This commit is contained in:
Blaymoira
2009-02-26 19:10:44 +01:00
parent 1e8a318933
commit 80490865cc
4 changed files with 7 additions and 17 deletions
@@ -195,8 +195,6 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI
EnrageUsed = false; EnrageUsed = false;
InnderDemon_Count = 0; InnderDemon_Count = 0;
m_creature->SetSpeed( MOVE_RUN, 2.0f, true); m_creature->SetSpeed( MOVE_RUN, 2.0f, true);
m_creature->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, true);
m_creature->ApplySpellImmune(0, IMMUNITY_EFFECT,SPELL_EFFECT_ATTACK_ME, true);
m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_NIGHTELF); m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_NIGHTELF);
m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY , 0); m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY , 0);
m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY+1, 0); m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY+1, 0);
@@ -58,9 +58,6 @@ struct TRINITY_DLL_DECL boss_maiden_of_virtueAI : public ScriptedAI
Enrage_Timer = 600000; Enrage_Timer = 600000;
Enraged = false; Enraged = false;
m_creature->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, true);
m_creature->ApplySpellImmune(1, IMMUNITY_EFFECT,SPELL_EFFECT_ATTACK_ME, true);
} }
void KilledUnit(Unit* Victim) void KilledUnit(Unit* Victim)
@@ -386,9 +386,6 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
m_creature->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, true);
m_creature->ApplySpellImmune(0, IMMUNITY_EFFECT,SPELL_EFFECT_ATTACK_ME, true);
if(pInstance) if(pInstance)
pInstance->SetData(DATA_KAELTHASEVENT, NOT_STARTED); pInstance->SetData(DATA_KAELTHASEVENT, NOT_STARTED);
@@ -52,16 +52,17 @@ struct TRINITY_DLL_DECL boss_void_reaverAI : public ScriptedAI
uint32 KnockAway_Timer; uint32 KnockAway_Timer;
uint32 Berserk_Timer; uint32 Berserk_Timer;
bool Enraged;
void Reset() void Reset()
{ {
m_creature->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, true);
m_creature->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_ATTACK_ME, true);
Pounding_Timer = 15000; Pounding_Timer = 15000;
ArcaneOrb_Timer = 3000; ArcaneOrb_Timer = 3000;
KnockAway_Timer = 30000; KnockAway_Timer = 30000;
Berserk_Timer = 600000; Berserk_Timer = 600000;
Enraged = false;
if (pInstance && m_creature->isAlive()) if (pInstance && m_creature->isAlive())
pInstance->SetData(DATA_VOIDREAVEREVENT, NOT_STARTED); pInstance->SetData(DATA_VOIDREAVEREVENT, NOT_STARTED);
} }
@@ -120,7 +121,7 @@ struct TRINITY_DLL_DECL boss_void_reaverAI : public ScriptedAI
{ {
target = Unit::GetUnit(*m_creature, (*itr)->getUnitGuid()); target = Unit::GetUnit(*m_creature, (*itr)->getUnitGuid());
//18 yard radius minimum //18 yard radius minimum
if(target && target->GetTypeId() == TYPEID_PLAYER && target->isAlive() && target->GetDistance2d(m_creature) > 18) if(target && target->GetTypeId() == TYPEID_PLAYER && target->isAlive() && target->GetDistance2d(m_creature) >= 18)
target_list.push_back(target); target_list.push_back(target);
target = NULL; target = NULL;
} }
@@ -146,13 +147,10 @@ struct TRINITY_DLL_DECL boss_void_reaverAI : public ScriptedAI
}else KnockAway_Timer -= diff; }else KnockAway_Timer -= diff;
//Berserk //Berserk
if(Berserk_Timer < diff) if(Berserk_Timer < diff && !Enraged)
{ {
if (m_creature->IsNonMeleeSpellCasted(false))
m_creature->InterruptNonMeleeSpells(false);
DoCast(m_creature,SPELL_BERSERK); DoCast(m_creature,SPELL_BERSERK);
Berserk_Timer = 600000; Enraged = true;
}else Berserk_Timer -= diff; }else Berserk_Timer -= diff;
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();