diff options
author | Ianislav Vasilev <ianislav_vasilev@abv.bg> | 2019-05-17 15:50:27 +0300 |
---|---|---|
committer | Giacomo Pozzoni <giacomopoz@gmail.com> | 2019-05-17 14:50:27 +0200 |
commit | 908fbf48d2f6a51c6976c5ed21eee7f165b2f507 (patch) | |
tree | ba53144f1765f38085f260e9436064908b576db4 | |
parent | 4d04344b414adc965bd2760d3f30338bcce70431 (diff) |
Scripts/Blackrock Depths: High Priestess of Thaurissan (#23230)
* Initial fix suggestion for 22660.
* Removed todo related to the work done in this branch.
* Removing obsolete braces and added failfast check.
* Refactored the logic about having the quest.
* Removing obsolete braces.
* Adding reference to incomplete type.
* Switching from forward declaration to header where type is defined.
* Including Player type definition in order to work with nopch.
* Update src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp
Co-Authored-By: Trond B. Krokli <38162891+illfated@users.noreply.github.com>
* Update src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp
Co-Authored-By: Trond B. Krokli <38162891+illfated@users.noreply.github.com>
* Reverted mistakenly deleted todo
-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) |