aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp23
2 files changed, 24 insertions, 0 deletions
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h b/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h
index cef08375c13..beef71ea857 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h
@@ -57,6 +57,7 @@ enum AdditionalData
{
SPELL_SUMMON_ROOKERY_WHELP = 15745,
MAX_ENCOUNTER = 14,
+ MAX_DRAGONSPIRE_HALL_RUNES = 7,
};
enum GameObjects
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
index ff97984fa09..b5b1b34a593 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
@@ -247,7 +247,30 @@ public:
};
+uint8 ActivatedRunes = 0;
+
+class go_dragonspire_hall_rune : public GameObjectScript
+{
+public:
+ go_dragonspire_hall_rune() : GameObjectScript("go_dragonspire_hall_rune") { }
+
+ void OnGameObjectStateChanged(GameObject* go, uint32 state)
+ {
+ if (state == GO_STATE_READY)
+ {
+ if (++ActivatedRunes == MAX_DRAGONSPIRE_HALL_RUNES)
+ {
+ if (GameObject* door1 = GetClosestGameObjectWithEntry(go, GO_EMBERSEER_IN, 150.0f))
+ door1->SetGoState(GO_STATE_ACTIVE);
+ if (GameObject* door2 = GetClosestGameObjectWithEntry(go, GO_DOORS, 150.0f))
+ door2->SetGoState(GO_STATE_ACTIVE);
+ }
+ }
+ }
+};
+
void AddSC_instance_blackrock_spire()
{
new instance_blackrock_spire();
+ new go_dragonspire_hall_rune;
}