diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp index 26ca8ce0ec7..5ca04ace1f8 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp @@ -25,6 +25,8 @@ #include "Log.h" #include "Map.h" #include "MotionMaster.h" +#include "MapReference.h" +#include "Player.h" #define TIMER_TOMBOFTHESEVEN 15000 #define MAX_ENCOUNTER 6 @@ -42,6 +44,7 @@ enum Creatures NPC_DOOMREL = 9039, NPC_MAGMUS = 9938, NPC_MOIRA = 8929, + NPC_PRIESTESS_THAURISSAN = 10076, NPC_COREN = 23872 }; @@ -70,6 +73,12 @@ enum GameObjects GO_CHEST_SEVEN = 169243 }; +enum Quests +{ + QUEST_THE_PRINCESS_SURPRISE = 4363, // Alliance + QUEST_THE_PRINCESS_SAVED = 4004 // Horde +}; + class instance_blackrock_depths : public InstanceMapScript { public: @@ -131,13 +140,26 @@ public: uint32 TombTimer; uint32 TombEventCounter; + void UpdateMoira(Creature* moira) + { + InstanceMap::PlayerList const& players = instance->GetPlayers(); + + for (Map::PlayerList::const_iterator i = players.begin(); i != players.end(); ++i) + if (Player * player = i->GetSource()) + if ((player->GetTeamId() == TEAM_ALLIANCE && !player->IsActiveQuest(QUEST_THE_PRINCESS_SURPRISE)) + || (player->GetTeamId() == TEAM_HORDE && !player->IsActiveQuest(QUEST_THE_PRINCESS_SAVED))) + return; + + moira->UpdateEntry(NPC_PRIESTESS_THAURISSAN); + } + void OnCreatureCreate(Creature* creature) override { switch (creature->GetEntry()) { case NPC_EMPEROR: EmperorGUID = creature->GetGUID(); break; case NPC_PHALANX: PhalanxGUID = creature->GetGUID(); break; - case NPC_MOIRA: MoiraGUID = creature->GetGUID(); break; + case NPC_MOIRA: MoiraGUID = creature->GetGUID(); UpdateMoira(creature); break; case NPC_COREN: CorenGUID = creature->GetGUID(); break; case NPC_DOOMREL: TombBossGUIDs[0] = creature->GetGUID(); break; case NPC_DOPEREL: TombBossGUIDs[1] = creature->GetGUID(); break; @@ -407,6 +429,7 @@ public: TombEventStarterGUID.Clear(); SetData(TYPE_TOMB_OF_SEVEN, DONE); } + void Update(uint32 diff) override { if (TombEventStarterGUID && GhostKillCount < 7) |