aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedCreature.h2
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp21
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp12
3 files changed, 20 insertions, 15 deletions
diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.h b/src/server/game/AI/ScriptedAI/ScriptedCreature.h
index 788da26ea4a..f11769f1d1d 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedCreature.h
+++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.h
@@ -370,7 +370,7 @@ class BossAI : public ScriptedAI
void _JustDied();
void _JustReachedHome() { me->setActive(false); }
- bool CheckInRoom()
+ virtual bool CheckInRoom()
{
if (CheckBoundary(me))
return true;
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
index dbf3a185120..9d44e7d884f 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
@@ -262,9 +262,21 @@ struct generic_halionAI : public BossAI
}
}
+ bool CheckInRoom() override
+ {
+ // Rough radius, it is not an exactly perfect circle
+ if (me->GetDistance2d(HalionControllerSpawnPos.GetPositionX(), HalionControllerSpawnPos.GetPositionY()) > 48.5f)
+ {
+ if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION_CONTROLLER)))
+ controller->AI()->EnterEvadeMode();
+ return false;
+ }
+ return true;
+ }
+
void UpdateAI(uint32 diff) override
{
- if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_CASTING))
+ if (!UpdateVictim() || !CheckInRoom() || me->HasUnitState(UNIT_STATE_CASTING))
return;
events.Update(diff);
@@ -394,13 +406,6 @@ class boss_halion : public CreatureScript
if (events.IsInPhase(PHASE_TWO))
return;
- // Rough radius, it is not an exactly perfect circle
- if (me->GetDistance2d(HalionControllerSpawnPos.GetPositionX(), HalionControllerSpawnPos.GetPositionY()) > 48.5f)
- {
- EnterEvadeMode();
- return;
- }
-
generic_halionAI::UpdateAI(diff);
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
index 3aebed81f0b..4b3c50d1388 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
@@ -510,7 +510,7 @@ class boss_prince_keleseth_icc : public CreatureScript
}
}
- bool CheckRoom()
+ bool CheckInRoom() override
{
if (!CheckBoundary(me))
{
@@ -529,7 +529,7 @@ class boss_prince_keleseth_icc : public CreatureScript
void UpdateAI(uint32 diff) override
{
- if (!UpdateVictim() || !CheckRoom())
+ if (!UpdateVictim() || !CheckInRoom())
return;
events.Update(diff);
@@ -729,7 +729,7 @@ class boss_prince_taldaram_icc : public CreatureScript
}
}
- bool CheckRoom()
+ bool CheckInRoom() override
{
if (!CheckBoundary(me))
{
@@ -748,7 +748,7 @@ class boss_prince_taldaram_icc : public CreatureScript
void UpdateAI(uint32 diff) override
{
- if (!UpdateVictim() || !CheckRoom())
+ if (!UpdateVictim() || !CheckInRoom())
return;
events.Update(diff);
@@ -968,7 +968,7 @@ class boss_prince_valanar_icc : public CreatureScript
}
}
- bool CheckRoom()
+ bool CheckInRoom() override
{
if (!CheckBoundary(me))
{
@@ -987,7 +987,7 @@ class boss_prince_valanar_icc : public CreatureScript
void UpdateAI(uint32 diff) override
{
- if (!UpdateVictim() || !CheckRoom())
+ if (!UpdateVictim() || !CheckInRoom())
return;
events.Update(diff);