fix(Core/BWL): do not open Nefarian door until Chromaggus is defeated (#10472)

This commit is contained in:
Nefertumm
2022-02-04 15:05:26 -03:00
committed by GitHub
parent fbc846927e
commit efce657db4

View File

@@ -124,8 +124,15 @@ public:
case GO_PORTCULLIS_VAELASTRASZ: case GO_PORTCULLIS_VAELASTRASZ:
case GO_PORTCULLIS_BROODLORD: case GO_PORTCULLIS_BROODLORD:
case GO_PORTCULLIS_THREEDRAGONS: case GO_PORTCULLIS_THREEDRAGONS:
AddDoor(go, true);
break;
case GO_PORTCULLIS_NEFARIAN: case GO_PORTCULLIS_NEFARIAN:
AddDoor(go, true); AddDoor(go, true);
nefarianDoorGUID = go->GetGUID();
if (GetBossState(DATA_CHROMAGGUS) != DONE)
{
HandleGameObject(ObjectGuid::Empty, false, go);
}
break; break;
case GO_PORTCULLIS_CHROMAGGUS: case GO_PORTCULLIS_CHROMAGGUS:
AddDoor(go, true); AddDoor(go, true);
@@ -146,16 +153,16 @@ public:
switch (go->GetEntry()) switch (go->GetEntry())
{ {
case GO_PORTCULLIS_RAZORGORE: case GO_PORTCULLIS_RAZORGORE:
case GO_PORTCULLIS_VAELASTRASZ: case GO_PORTCULLIS_VAELASTRASZ:
case GO_PORTCULLIS_BROODLORD: case GO_PORTCULLIS_BROODLORD:
case GO_PORTCULLIS_THREEDRAGONS: case GO_PORTCULLIS_THREEDRAGONS:
case GO_PORTCULLIS_CHROMAGGUS: case GO_PORTCULLIS_CHROMAGGUS:
case GO_PORTCULLIS_NEFARIAN: case GO_PORTCULLIS_NEFARIAN:
AddDoor(go, false); AddDoor(go, false);
break; break;
default: default:
break; break;
} }
} }
@@ -196,6 +203,12 @@ public:
} }
SetData(DATA_EGG_EVENT, NOT_STARTED); SetData(DATA_EGG_EVENT, NOT_STARTED);
break; break;
case DATA_CHROMAGGUS:
if (state == DONE)
{
HandleGameObject(nefarianDoorGUID, true);
}
break;
case DATA_NEFARIAN: case DATA_NEFARIAN:
switch (state) switch (state)
{ {
@@ -314,6 +327,7 @@ public:
ObjectGuid chromaggusGUID; ObjectGuid chromaggusGUID;
ObjectGuid chromaggusDoorGUID; ObjectGuid chromaggusDoorGUID;
ObjectGuid nefarianGUID; ObjectGuid nefarianGUID;
ObjectGuid nefarianDoorGUID;
ObjectGuid victorNefariusGUID; ObjectGuid victorNefariusGUID;
// Razorgore // Razorgore
@@ -325,7 +339,7 @@ public:
EventMap _events; EventMap _events;
}; };
InstanceScript* GetInstanceScript(InstanceMap* map) const InstanceScript* GetInstanceScript(InstanceMap* map) const override
{ {
return new instance_blackwing_lair_InstanceMapScript(map); return new instance_blackwing_lair_InstanceMapScript(map);
} }
@@ -366,7 +380,7 @@ public:
} }
}; };
SpellScript* GetSpellScript() const SpellScript* GetSpellScript() const override
{ {
return new spell_bwl_shadowflame_SpellScript; return new spell_bwl_shadowflame_SpellScript;
} }