aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIanislav Vasilev <ianislav_vasilev@abv.bg>2019-05-17 15:50:27 +0300
committerGiacomo Pozzoni <giacomopoz@gmail.com>2019-05-17 14:50:27 +0200
commit908fbf48d2f6a51c6976c5ed21eee7f165b2f507 (patch)
treeba53144f1765f38085f260e9436064908b576db4 /src
parent4d04344b414adc965bd2760d3f30338bcce70431 (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
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp25
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)