*Use SetReactState(REACT_PASSIVE) to force creatures such as halazzi and reliquary of souls to stop combat and merge.
--HG-- branch : trunk
This commit is contained in:
@@ -370,6 +370,7 @@ struct TRINITY_DLL_DECL boss_essence_of_sufferingAI : public ScriptedAI
|
||||
{
|
||||
damage = 0;
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
m_creature->SetReactState(REACT_PASSIVE);
|
||||
m_creature->Yell(SUFF_SAY_RECAP,LANG_UNIVERSAL,0);
|
||||
DoPlaySoundToSet(m_creature, SUFF_SOUND_RECAP);
|
||||
}
|
||||
@@ -482,6 +483,7 @@ struct TRINITY_DLL_DECL boss_essence_of_desireAI : public ScriptedAI
|
||||
{
|
||||
damage = 0;
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
m_creature->SetReactState(REACT_PASSIVE);
|
||||
m_creature->Yell(DESI_SAY_RECAP,LANG_UNIVERSAL,0);
|
||||
DoPlaySoundToSet(m_creature, DESI_SOUND_RECAP);
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ struct TRINITY_DLL_DECL boss_halazziAI : public ScriptedAI
|
||||
BerserkTimer = 600000;
|
||||
CheckTimer = 1000;
|
||||
|
||||
DoCast(m_creature, SPELL_DUAL_WIELD, true);
|
||||
m_creature->CastSpell(m_creature, SPELL_DUAL_WIELD, true);
|
||||
|
||||
Phase = PHASE_NONE;
|
||||
EnterPhase(PHASE_LYNX);
|
||||
@@ -143,17 +143,13 @@ struct TRINITY_DLL_DECL boss_halazziAI : public ScriptedAI
|
||||
EnterPhase(PHASE_HUMAN);
|
||||
}
|
||||
|
||||
void AttackStart(Unit *who)
|
||||
{
|
||||
if(Phase != PHASE_MERGE) ScriptedAI::AttackStart(who);
|
||||
}
|
||||
|
||||
void EnterPhase(PhaseHalazzi NextPhase)
|
||||
{
|
||||
switch(NextPhase)
|
||||
{
|
||||
case PHASE_LYNX:
|
||||
case PHASE_ENRAGE:
|
||||
m_creature->SetReactState(REACT_AGGRESSIVE);
|
||||
if(Phase == PHASE_MERGE)
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_TRANSFORM_MERGE, true);
|
||||
@@ -193,8 +189,10 @@ struct TRINITY_DLL_DECL boss_halazziAI : public ScriptedAI
|
||||
Lynx->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
Lynx->GetMotionMaster()->Clear();
|
||||
Lynx->GetMotionMaster()->MoveFollow(m_creature, 0, 0);
|
||||
((Creature*)Lynx)->SetReactState(REACT_PASSIVE);
|
||||
m_creature->GetMotionMaster()->Clear();
|
||||
m_creature->GetMotionMaster()->MoveFollow(Lynx, 0, 0);
|
||||
m_creature->SetReactState(REACT_PASSIVE);
|
||||
TransformCount++;
|
||||
}break;
|
||||
default:
|
||||
@@ -203,7 +201,7 @@ struct TRINITY_DLL_DECL boss_halazziAI : public ScriptedAI
|
||||
Phase = NextPhase;
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if(!m_creature->SelectHostilTarget() && !m_creature->getVictim())
|
||||
return;
|
||||
@@ -281,11 +279,10 @@ struct TRINITY_DLL_DECL boss_halazziAI : public ScriptedAI
|
||||
{
|
||||
if(CheckTimer < diff)
|
||||
{
|
||||
Unit *Lynx = Unit::GetUnit(*m_creature, LynxGUID);
|
||||
if(Lynx)
|
||||
if(Unit *Lynx = Unit::GetUnit(*m_creature, LynxGUID))
|
||||
{
|
||||
Lynx->GetMotionMaster()->MoveFollow(m_creature, 0, 0);
|
||||
m_creature->GetMotionMaster()->MoveFollow(Lynx, 0, 0);
|
||||
//Lynx->GetMotionMaster()->MoveFollow(m_creature, 0, 0);
|
||||
//m_creature->GetMotionMaster()->MoveFollow(Lynx, 0, 0);
|
||||
if(m_creature->IsWithinDistInMap(Lynx, 6.0f))
|
||||
{
|
||||
if(TransformCount < 3)
|
||||
@@ -348,12 +345,6 @@ struct TRINITY_DLL_DECL boss_spiritlynxAI : public ScriptedAI
|
||||
damage = 0;
|
||||
}
|
||||
|
||||
void AttackStart(Unit *who)
|
||||
{
|
||||
if(!m_creature->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
|
||||
ScriptedAI::AttackStart(who);
|
||||
}
|
||||
|
||||
void Aggro(Unit *who) {/*DoZoneInCombat();*/}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
|
||||
Reference in New Issue
Block a user