fix(Scripts/BlackwingLair): Prevent Chromaggus cage from looking (#11603)

This commit is contained in:
Skjalf
2022-05-03 07:10:09 -03:00
committed by GitHub
parent 3c1e76e55d
commit 3c851c059a
3 changed files with 15 additions and 33 deletions
@@ -0,0 +1,2 @@
--
UPDATE `gameobject_template_addon` SET `flags` = `flags` |16 WHERE `entry` = 179116;
@@ -237,14 +237,14 @@ class go_chromaggus_lever : public GameObjectScript
{ {
if (_instance->GetBossState(DATA_CHROMAGGUS) != DONE && _instance->GetBossState(DATA_CHROMAGGUS) != IN_PROGRESS) if (_instance->GetBossState(DATA_CHROMAGGUS) != DONE && _instance->GetBossState(DATA_CHROMAGGUS) != IN_PROGRESS)
{ {
if (Creature* creature = _instance->instance->GetCreature(_instance->GetGuidData(DATA_CHROMAGGUS))) if (Creature* creature = _instance->GetCreature(DATA_CHROMAGGUS))
{ {
creature->SetHomePosition(homePos); creature->SetHomePosition(homePos);
creature->GetMotionMaster()->MovePath(creature->GetEntry() * 10, false); creature->GetMotionMaster()->MovePath(creature->GetEntry() * 10, false);
creature->AI()->SetGUID(player->GetGUID(), GUID_LEVER_USER); creature->AI()->SetGUID(player->GetGUID(), GUID_LEVER_USER);
} }
if (GameObject* go = _instance->instance->GetGameObject(_instance->GetGuidData(DATA_GO_CHROMAGGUS_DOOR))) if (GameObject* go = _instance->GetGameObject(DATA_GO_CHROMAGGUS_DOOR))
_instance->HandleGameObject(ObjectGuid::Empty, true, go); _instance->HandleGameObject(ObjectGuid::Empty, true, go);
} }
@@ -35,7 +35,7 @@ DoorData const doorData[] =
{ GO_PORTCULLIS_RAZORGORE_ROOM, DATA_RAZORGORE_THE_UNTAMED, DOOR_TYPE_ROOM, }, // ID 176964 || GUID 75158 { GO_PORTCULLIS_RAZORGORE_ROOM, DATA_RAZORGORE_THE_UNTAMED, DOOR_TYPE_ROOM, }, // ID 176964 || GUID 75158
{ GO_PORTCULLIS_VAELASTRASZ, DATA_VAELASTRAZ_THE_CORRUPT, DOOR_TYPE_PASSAGE }, // ID 175185 || GUID 7229 { GO_PORTCULLIS_VAELASTRASZ, DATA_VAELASTRAZ_THE_CORRUPT, DOOR_TYPE_PASSAGE }, // ID 175185 || GUID 7229
{ GO_PORTCULLIS_BROODLORD, DATA_BROODLORD_LASHLAYER, DOOR_TYPE_PASSAGE }, // ID 179365 || GUID 75159 { GO_PORTCULLIS_BROODLORD, DATA_BROODLORD_LASHLAYER, DOOR_TYPE_PASSAGE }, // ID 179365 || GUID 75159
{ GO_PORTCULLIS_CHROMAGGUS, DATA_CHROMAGGUS, DOOR_TYPE_PASSAGE }, // ID 179116 || GUID 75161 { GO_PORTCULLIS_NEFARIAN, DATA_CHROMAGGUS, DOOR_TYPE_PASSAGE }, // ID 179116 || GUID 75161
{ GO_PORTCULLIS_NEFARIAN, DATA_NEFARIAN, DOOR_TYPE_ROOM }, // ID 179117 || GUID 75164 { GO_PORTCULLIS_NEFARIAN, DATA_NEFARIAN, DOOR_TYPE_ROOM }, // ID 179117 || GUID 75164
{ 0, 0, DOOR_TYPE_ROOM } // END { 0, 0, DOOR_TYPE_ROOM } // END
}; };
@@ -44,7 +44,13 @@ ObjectData const creatureData[] =
{ {
{ NPC_GRETHOK, DATA_GRETHOK }, { NPC_GRETHOK, DATA_GRETHOK },
{ NPC_NEFARIAN_TROOPS, DATA_NEFARIAN_TROOPS }, { NPC_NEFARIAN_TROOPS, DATA_NEFARIAN_TROOPS },
{ NPC_VICTOR_NEFARIUS, DATA_LORD_VICTOR_NEFARIUS } { NPC_VICTOR_NEFARIUS, DATA_LORD_VICTOR_NEFARIUS },
{ NPC_CHROMAGGUS, DATA_CHROMAGGUS }
};
ObjectData const objectData[] =
{
{ GO_PORTCULLIS_CHROMAGGUS, DATA_GO_CHROMAGGUS_DOOR }
}; };
Position const SummonPosition[8] = Position const SummonPosition[8] =
@@ -73,7 +79,7 @@ public:
//SetHeaders(DataHeader); //SetHeaders(DataHeader);
SetBossNumber(EncounterCount); SetBossNumber(EncounterCount);
LoadDoorData(doorData); LoadDoorData(doorData);
LoadObjectData(creatureData, nullptr); LoadObjectData(creatureData, objectData);
} }
void Initialize() override void Initialize() override
@@ -101,9 +107,6 @@ public:
case NPC_RAZORGORE: case NPC_RAZORGORE:
razorgoreGUID = creature->GetGUID(); razorgoreGUID = creature->GetGUID();
break; break;
case NPC_CHROMAGGUS:
chromaggusGUID = creature->GetGUID();
break;
case NPC_BLACKWING_DRAGON: case NPC_BLACKWING_DRAGON:
++addsCount[0]; ++addsCount[0];
if (Creature* razor = instance->GetCreature(razorgoreGUID)) if (Creature* razor = instance->GetCreature(razorgoreGUID))
@@ -166,19 +169,6 @@ public:
EggList.push_back(go->GetGUID()); EggList.push_back(go->GetGUID());
} }
break; break;
case GO_PORTCULLIS_NEFARIAN:
AddDoor(go, true);
nefarianDoorGUID = go->GetGUID();
if (GetBossState(DATA_CHROMAGGUS) != DONE)
{
HandleGameObject(ObjectGuid::Empty, false, go);
}
break;
case GO_PORTCULLIS_CHROMAGGUS:
AddDoor(go, true);
chromaggusDoorGUID = go->GetGUID();
go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
break;
default: default:
break; break;
} }
@@ -245,12 +235,6 @@ public:
} }
} }
break; break;
case DATA_CHROMAGGUS:
if (state == DONE)
{
HandleGameObject(nefarianDoorGUID, true);
}
break;
case DATA_NEFARIAN: case DATA_NEFARIAN:
switch (state) switch (state)
{ {
@@ -259,7 +243,9 @@ public:
[[fallthrough]]; [[fallthrough]];
case NOT_STARTED: case NOT_STARTED:
if (Creature* nefarian = instance->GetCreature(nefarianGUID)) if (Creature* nefarian = instance->GetCreature(nefarianGUID))
{
nefarian->DespawnOrUnsummon(); nefarian->DespawnOrUnsummon();
}
break; break;
default: default:
break; break;
@@ -341,10 +327,6 @@ public:
{ {
case DATA_RAZORGORE_THE_UNTAMED: case DATA_RAZORGORE_THE_UNTAMED:
return razorgoreGUID; return razorgoreGUID;
case DATA_CHROMAGGUS:
return chromaggusGUID;
case DATA_GO_CHROMAGGUS_DOOR:
return chromaggusDoorGUID;
default: default:
break; break;
} }
@@ -498,8 +480,6 @@ public:
protected: protected:
ObjectGuid razorgoreGUID; ObjectGuid razorgoreGUID;
ObjectGuid chromaggusGUID;
ObjectGuid chromaggusDoorGUID;
ObjectGuid nefarianGUID; ObjectGuid nefarianGUID;
ObjectGuid nefarianDoorGUID; ObjectGuid nefarianDoorGUID;