aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_noth.cpp27
1 files changed, 9 insertions, 18 deletions
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
index 263e0ef7e20..0a8d6473e72 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
@@ -89,31 +89,24 @@ public:
events.SetPhase(PHASE_NONE);
}
- void EnterEvadeMode(EvadeReason /*why*/) override
+ void EnterEvadeMode(EvadeReason why) override
{
- Reset(); // teleport back first
- _EnterEvadeMode();
+ // in case we reset during balcony phase
+ if (events.IsInPhase(PHASE_BALCONY))
+ DoCastAOE(SPELL_TELEPORT_BACK);
+ BossAI::EnterEvadeMode(why);
}
void Reset() override
{
- if (!me->IsAlive())
- return;
+ _Reset();
- // in case we reset during balcony phase
- if (events.IsInPhase(PHASE_BALCONY))
- {
- DoCastAOE(SPELL_TELEPORT_BACK);
- me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->SetImmuneToPC(false);
- }
+ me->SetReactState(REACT_AGGRESSIVE);
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
balconyCount = 0;
events.SetPhase(PHASE_NONE);
justBlinked = false;
-
- _Reset();
}
void JustEngagedWith(Unit* who) override
@@ -130,7 +123,7 @@ public:
DoZoneInCombat();
if (!me->IsThreatened())
- Reset();
+ EnterEvadeMode(EVADE_REASON_NO_HOSTILES);
else
{
uint8 timeGround;
@@ -246,7 +239,6 @@ public:
events.SetPhase(PHASE_BALCONY);
me->SetReactState(REACT_PASSIVE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->SetImmuneToPC(true);
me->AttackStop();
me->StopMoving();
me->RemoveAllAuras();
@@ -303,7 +295,6 @@ public:
break;
case EVENT_GROUND_ATTACKABLE:
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->SetImmuneToPC(false);
me->SetReactState(REACT_AGGRESSIVE);
break;
}