aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h2
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp2
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp14
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp17
4 files changed, 21 insertions, 14 deletions
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h
index 32317b14484..d886437ca47 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h
@@ -28,7 +28,7 @@ uint32 const EncounterCount = 3;
enum ANDataTypes
{
// Encounter States/Boss GUIDs
- DATA_KRIKTHIR_THE_GATEWATCHER = 0,
+ DATA_KRIKTHIR = 0,
DATA_HADRONOX = 1,
DATA_ANUBARAK = 2,
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
index 41e22761249..38282a93589 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
@@ -967,6 +967,8 @@ class spell_hadronox_periodic_summon_template_AuraScript : public AuraScript
InstanceScript* instance = caster->GetInstanceScript();
if (!instance)
return;
+ if (!instance->instance->HavePlayers())
+ return;
if (instance->GetBossState(DATA_HADRONOX) == DONE)
GetAura()->Remove();
else
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
index 74678bbeadc..326ded1713b 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
@@ -132,11 +132,11 @@ class boss_krik_thir : public CreatureScript
struct boss_krik_thirAI : public BossAI
{
- boss_krik_thirAI(Creature* creature) : BossAI(creature, DATA_KRIKTHIR_THE_GATEWATCHER), _hadGreet(false), _hadFrenzy(false), _petsInCombat(false), _watchersActive(0) { }
+ boss_krik_thirAI(Creature* creature) : BossAI(creature, DATA_KRIKTHIR), _hadGreet(false), _hadFrenzy(false), _petsInCombat(false), _watchersActive(0) { }
void SummonAdds()
{
- if (instance->GetBossState(DATA_KRIKTHIR_THE_GATEWATCHER) == DONE)
+ if (instance->GetBossState(DATA_KRIKTHIR) == DONE)
return;
for (uint8 i = 1; i <= 3; ++i)
@@ -429,7 +429,7 @@ class npc_watcher_gashra : public CreatureScript
void JustDied(Unit* /*killer*/) override
{
- Creature* krikthir = _instance->GetCreature(DATA_KRIKTHIR_THE_GATEWATCHER);
+ Creature* krikthir = _instance->GetCreature(DATA_KRIKTHIR);
if (krikthir && krikthir->IsAlive())
krikthir->AI()->DoAction(ACTION_GASHRA_DIED);
}
@@ -507,7 +507,7 @@ class npc_watcher_narjil : public CreatureScript
void JustDied(Unit* /*killer*/) override
{
- Creature* krikthir = _instance->GetCreature(DATA_KRIKTHIR_THE_GATEWATCHER);
+ Creature* krikthir = _instance->GetCreature(DATA_KRIKTHIR);
if (krikthir && krikthir->IsAlive())
krikthir->AI()->DoAction(ACTION_NARJIL_DIED);
}
@@ -585,7 +585,7 @@ class npc_watcher_silthik : public CreatureScript
void JustDied(Unit* /*killer*/) override
{
- Creature* krikthir = _instance->GetCreature(DATA_KRIKTHIR_THE_GATEWATCHER);
+ Creature* krikthir = _instance->GetCreature(DATA_KRIKTHIR);
if (krikthir && krikthir->IsAlive())
krikthir->AI()->DoAction(ACTION_SILTHIK_DIED);
}
@@ -839,7 +839,7 @@ class npc_skittering_swarmer : public CreatureScript
void InitializeAI() override
{
ScriptedAI::InitializeAI();
- if (Creature* gatewatcher = me->GetInstanceScript()->GetCreature(DATA_KRIKTHIR_THE_GATEWATCHER))
+ if (Creature* gatewatcher = me->GetInstanceScript()->GetCreature(DATA_KRIKTHIR))
{
if (Unit* target = gatewatcher->getAttackerForHelper())
AttackStart(target);
@@ -866,7 +866,7 @@ class npc_skittering_infector : public CreatureScript
void InitializeAI() override
{
ScriptedAI::InitializeAI();
- if (Creature* gatewatcher = me->GetInstanceScript()->GetCreature(DATA_KRIKTHIR_THE_GATEWATCHER))
+ if (Creature* gatewatcher = me->GetInstanceScript()->GetCreature(DATA_KRIKTHIR))
{
if (Unit* target = gatewatcher->getAttackerForHelper())
AttackStart(target);
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp
index 76989b88c1d..bcb4ee87547 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp
@@ -24,7 +24,7 @@
DoorData const doorData[] =
{
- { GO_KRIKTHIR_DOOR, DATA_KRIKTHIR_THE_GATEWATCHER, DOOR_TYPE_PASSAGE },
+ { GO_KRIKTHIR_DOOR, DATA_KRIKTHIR, DOOR_TYPE_PASSAGE },
{ GO_ANUBARAK_DOOR_1, DATA_ANUBARAK, DOOR_TYPE_ROOM },
{ GO_ANUBARAK_DOOR_2, DATA_ANUBARAK, DOOR_TYPE_ROOM },
{ GO_ANUBARAK_DOOR_3, DATA_ANUBARAK, DOOR_TYPE_ROOM },
@@ -33,7 +33,7 @@ DoorData const doorData[] =
ObjectData const creatureData[] =
{
- { NPC_KRIKTHIR, DATA_KRIKTHIR_THE_GATEWATCHER },
+ { NPC_KRIKTHIR, DATA_KRIKTHIR },
{ NPC_HADRONOX, DATA_HADRONOX },
{ NPC_ANUBARAK, DATA_ANUBARAK },
{ NPC_WATCHER_NARJIL, DATA_WATCHER_GASHRA },
@@ -51,7 +51,7 @@ ObjectData const gameobjectData[] =
BossBoundaryData const boundaries =
{
- { DATA_KRIKTHIR_THE_GATEWATCHER, new RectangleBoundary(400.0f, 580.0f, 623.5f, 810.0f) },
+ { DATA_KRIKTHIR, new RectangleBoundary(400.0f, 580.0f, 623.5f, 810.0f) },
{ DATA_HADRONOX, new ZRangeBoundary(666.0f, 776.0f) },
{ DATA_ANUBARAK, new CircleBoundary(Position(550.6178f, 253.5917f), 26.0f) }
};
@@ -75,10 +75,15 @@ class instance_azjol_nerub : public InstanceMapScript
void OnUnitDeath(Unit* who) override
{
InstanceScript::OnUnitDeath(who);
+
+ if (who->GetTypeId() != TYPEID_UNIT || GetBossState(DATA_KRIKTHIR) == DONE)
+ return;
+
Creature* creature = who->ToCreature();
- if (!creature || creature->IsCritter() || creature->IsControlledByPlayer())
+ if (creature->IsCritter() || creature->IsCharmedOwnedByPlayerOrPlayer())
return;
- if (Creature* gatewatcher = GetCreature(DATA_KRIKTHIR_THE_GATEWATCHER))
+
+ if (Creature* gatewatcher = GetCreature(DATA_KRIKTHIR))
gatewatcher->AI()->DoAction(-ACTION_GATEWATCHER_GREET);
}
@@ -87,7 +92,7 @@ class instance_azjol_nerub : public InstanceMapScript
if (_SkipCheckRequiredBosses(player))
return true;
- if (bossId > DATA_KRIKTHIR_THE_GATEWATCHER && GetBossState(DATA_KRIKTHIR_THE_GATEWATCHER) != DONE)
+ if (bossId > DATA_KRIKTHIR && GetBossState(DATA_KRIKTHIR) != DONE)
return false;
return true;