fix(Core/TempleOfAhnQiraj): Door handling (#13053)
This commit is contained in:
@@ -134,8 +134,6 @@ struct boss_skeram : public BossAI
|
|||||||
{
|
{
|
||||||
_JustDied();
|
_JustDied();
|
||||||
Talk(SAY_DEATH);
|
Talk(SAY_DEATH);
|
||||||
|
|
||||||
instance->HandleGameObject(instance->GetGuidData(AQ40_DOOR_3), true);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
me->RemoveCorpse();
|
me->RemoveCorpse();
|
||||||
|
|||||||
@@ -31,6 +31,14 @@ ObjectData const creatureData[] =
|
|||||||
{ NPC_VEKNILASH, DATA_VEKNILASH }
|
{ NPC_VEKNILASH, DATA_VEKNILASH }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
DoorData const doorData[] =
|
||||||
|
{
|
||||||
|
{ AQ40_DOOR_SKERAM, DATA_SKERAM, DOOR_TYPE_PASSAGE },
|
||||||
|
{ AQ40_DOOR_TE_ENTRANCE, DATA_TWIN_EMPERORS, DOOR_TYPE_ROOM },
|
||||||
|
{ AQ40_DOOR_TE_EXIT, DATA_TWIN_EMPERORS, DOOR_TYPE_PASSAGE },
|
||||||
|
{ 0, 0, DOOR_TYPE_ROOM}
|
||||||
|
};
|
||||||
|
|
||||||
class instance_temple_of_ahnqiraj : public InstanceMapScript
|
class instance_temple_of_ahnqiraj : public InstanceMapScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -45,9 +53,9 @@ public:
|
|||||||
{
|
{
|
||||||
instance_temple_of_ahnqiraj_InstanceMapScript(Map* map) : InstanceScript(map)
|
instance_temple_of_ahnqiraj_InstanceMapScript(Map* map) : InstanceScript(map)
|
||||||
{
|
{
|
||||||
LoadObjectData(creatureData, nullptr);
|
|
||||||
doorGUIDs.fill(ObjectGuid::Empty);
|
|
||||||
SetBossNumber(MAX_BOSS_NUMBER);
|
SetBossNumber(MAX_BOSS_NUMBER);
|
||||||
|
LoadObjectData(creatureData, nullptr);
|
||||||
|
LoadDoorData(doorData);
|
||||||
}
|
}
|
||||||
|
|
||||||
ObjectGuid SkeramGUID;
|
ObjectGuid SkeramGUID;
|
||||||
@@ -57,7 +65,6 @@ public:
|
|||||||
ObjectGuid ViscidusGUID;
|
ObjectGuid ViscidusGUID;
|
||||||
ObjectGuid CThunGUID;
|
ObjectGuid CThunGUID;
|
||||||
GuidVector CThunGraspGUIDs;
|
GuidVector CThunGraspGUIDs;
|
||||||
std::array<ObjectGuid, 3> doorGUIDs;
|
|
||||||
|
|
||||||
uint32 BugTrioDeathCount;
|
uint32 BugTrioDeathCount;
|
||||||
uint32 CthunPhase;
|
uint32 CthunPhase;
|
||||||
@@ -74,10 +81,6 @@ public:
|
|||||||
{
|
{
|
||||||
case NPC_SKERAM:
|
case NPC_SKERAM:
|
||||||
SkeramGUID = creature->GetGUID();
|
SkeramGUID = creature->GetGUID();
|
||||||
if (!creature->IsAlive())
|
|
||||||
{
|
|
||||||
HandleGameObject(doorGUIDs[2], true);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case NPC_VEM:
|
case NPC_VEM:
|
||||||
VemGUID = creature->GetGUID();
|
VemGUID = creature->GetGUID();
|
||||||
@@ -123,29 +126,6 @@ public:
|
|||||||
{
|
{
|
||||||
switch (go->GetEntry())
|
switch (go->GetEntry())
|
||||||
{
|
{
|
||||||
case AQ40_DOOR_1:
|
|
||||||
doorGUIDs[0] = go->GetGUID();
|
|
||||||
break;
|
|
||||||
case AQ40_DOOR_2:
|
|
||||||
doorGUIDs[1] = go->GetGUID();
|
|
||||||
if (Creature* veklor = GetCreature(DATA_VEKLOR))
|
|
||||||
{
|
|
||||||
if (!veklor->IsAlive())
|
|
||||||
{
|
|
||||||
HandleGameObject(go->GetGUID(), true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case AQ40_DOOR_3:
|
|
||||||
doorGUIDs[2] = go->GetGUID();
|
|
||||||
if (Creature* skeram = instance->GetCreature(SkeramGUID))
|
|
||||||
{
|
|
||||||
if (!skeram->IsAlive())
|
|
||||||
{
|
|
||||||
HandleGameObject(go->GetGUID(), true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case GO_CTHUN_GRASP:
|
case GO_CTHUN_GRASP:
|
||||||
CThunGraspGUIDs.push_back(go->GetGUID());
|
CThunGraspGUIDs.push_back(go->GetGUID());
|
||||||
if (Creature* CThun = instance->GetCreature(CThunGUID))
|
if (Creature* CThun = instance->GetCreature(CThunGUID))
|
||||||
@@ -190,12 +170,6 @@ public:
|
|||||||
return YaujGUID;
|
return YaujGUID;
|
||||||
case DATA_VISCIDUS:
|
case DATA_VISCIDUS:
|
||||||
return ViscidusGUID;
|
return ViscidusGUID;
|
||||||
case AQ40_DOOR_1:
|
|
||||||
return doorGUIDs[0];
|
|
||||||
case AQ40_DOOR_2:
|
|
||||||
return doorGUIDs[1];
|
|
||||||
case AQ40_DOOR_3:
|
|
||||||
return doorGUIDs[2];
|
|
||||||
}
|
}
|
||||||
return ObjectGuid::Empty;
|
return ObjectGuid::Empty;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,9 +80,9 @@ enum Creatures
|
|||||||
|
|
||||||
enum ObjectsAQ40
|
enum ObjectsAQ40
|
||||||
{
|
{
|
||||||
AQ40_DOOR_1 = 180634,
|
AQ40_DOOR_TE_ENTRANCE = 180634,
|
||||||
AQ40_DOOR_2 = 180635,
|
AQ40_DOOR_TE_EXIT = 180635,
|
||||||
AQ40_DOOR_3 = 180636,
|
AQ40_DOOR_SKERAM = 180636,
|
||||||
GO_CTHUN_GRASP = 180745
|
GO_CTHUN_GRASP = 180745
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user