diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h index ff2b474b1..587b4de45 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h @@ -22,6 +22,7 @@ enum Encounter enum gobjects { GO_TRIBUNAL_CONSOLE = 193907, + GO_TRIBUNAL_ACCESS_DOOR = 191295, GO_KADDRAK = 191671, GO_MARNAK = 191670, GO_ABEDNEUM = 191669, diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp index dd2698d7b..4fad7dfbf 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp @@ -31,12 +31,15 @@ public: uint64 goSjonnirDoorGUID; uint64 goLeftPipeGUID; uint64 goRightPipeGUID; + uint64 goTribunalDoorGUID; uint64 SjonnirGUID; uint64 BrannGUID; bool brannAchievement; bool sjonnirAchievement; + bool isMaidenOfGriefDead; + bool isKrystalusDead; void Initialize() { @@ -51,12 +54,15 @@ public: goSjonnirDoorGUID = 0; goLeftPipeGUID = 0; goRightPipeGUID = 0; + goTribunalDoorGUID = 0; SjonnirGUID = 0; BrannGUID = 0; brannAchievement = false; sjonnirAchievement = false; + isMaidenOfGriefDead = false; + isKrystalusDead = false; } bool IsEncounterInProgress() const @@ -87,6 +93,10 @@ public: case GO_TRIBUNAL_CONSOLE: goTribunalConsoleGUID = go->GetGUID(); break; + case GO_TRIBUNAL_ACCESS_DOOR: + goTribunalDoorGUID = go->GetGUID(); + go->SetGoState(GO_STATE_READY); + break; case GO_SKY_FLOOR: goSkyRoomFloorGUID = go->GetGUID(); if (Encounter[BOSS_TRIBUNAL_OF_AGES] == DONE) @@ -128,6 +138,7 @@ public: switch(id) { case GO_TRIBUNAL_CONSOLE: return goTribunalConsoleGUID; + case GO_TRIBUNAL_ACCESS_DOOR: return goTribunalDoorGUID; case GO_SJONNIR_CONSOLE: return goSjonnirConsoleGUID; case GO_SJONNIR_DOOR: return goSjonnirDoorGUID; case GO_LEFT_PIPE: return goLeftPipeGUID; @@ -173,6 +184,16 @@ public: if (type < MAX_ENCOUNTER) Encounter[type] = data; + if (data == DONE) + { + isMaidenOfGriefDead = (type == BOSS_MAIDEN_OF_GRIEF ? true : isMaidenOfGriefDead); + isKrystalusDead = (type == BOSS_KRYSTALLUS ? true : isKrystalusDead); + } + + if (isMaidenOfGriefDead && isKrystalusDead) + if (GameObject* tribunalDoor = instance->GetGameObject(goTribunalDoorGUID)) + tribunalDoor->SetGoState(GO_STATE_ACTIVE); + if (type == BOSS_TRIBUNAL_OF_AGES && data == DONE) { if (GameObject* pA = instance->GetGameObject(goAbedneumGUID)) @@ -250,4 +271,4 @@ public: void AddSC_instance_halls_of_stone() { new instance_halls_of_stone(); -} \ No newline at end of file +}