aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.cpp68
-rw-r--r--src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.h4
-rw-r--r--src/bindings/scripts/scripts/kalimdor/blackfathom_depths/instance_blackfathom_deeps.cpp4
3 files changed, 74 insertions, 2 deletions
diff --git a/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.cpp b/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.cpp
index 6a2f9126afe..20a59a0bc21 100644
--- a/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.cpp
@@ -18,15 +18,19 @@
#include "precompiled.h"
#include "blackfathom_deeps.h"
+#include "escort_ai.h"
enum eSpells
{
SPELL_BLESSING_OF_BLACKFATHOM = 8733,
SPELL_RAVAGE = 8391,
SPELL_FROST_NOVA = 865,
- SPELL_FROST_BOLT_VOLLEY = 8398
+ SPELL_FROST_BOLT_VOLLEY = 8398,
+ SPELL_TELEPORT_DARNASSUS = 9268
};
+#define GOSSIP_ITEM_MORRIDUNE "Please port me to Darnassus"
+
const Position HomePosition = {-815.817,-145.299,-25.870, 0};
bool GoHello_blackfathom_altar(Player *pPlayer, GameObject* pGo)
@@ -166,6 +170,61 @@ CreatureAI* GetAI_npc_blackfathom_deeps_event(Creature* pCreature)
return new npc_blackfathom_deeps_eventAI (pCreature);
}
+enum eMorridune
+{
+ SAY_MORRIDUNE_1 = -1048003,
+ SAY_MORRIDUNE_2 = -1048004
+};
+
+struct TRINITY_DLL_DECL npc_morriduneAI : public npc_escortAI
+{
+ npc_morriduneAI(Creature* pCreature) : npc_escortAI(pCreature)
+ {
+ DoScriptText(SAY_MORRIDUNE_1,pCreature);
+ m_creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ Start(false,false,NULL);
+ }
+
+ void WaypointReached(uint32 uiPoint)
+ {
+ switch(uiPoint)
+ {
+ case 4:
+ SetEscortPaused(true);
+ m_creature->SetOrientation(1.775791);
+ m_creature->SendMovementFlagUpdate();
+ m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ DoScriptText(SAY_MORRIDUNE_2,m_creature);
+ break;
+ }
+ }
+};
+
+CreatureAI* GetAI_npc_morridune(Creature* pCreature)
+{
+ return new npc_morriduneAI (pCreature);
+}
+
+bool GossipHello_npc_morridune(Player* pPlayer, Creature* pCreature)
+{
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_MORRIDUNE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
+
+ pPlayer->SEND_GOSSIP_MENU(pPlayer->GetGossipTextId(pCreature), pCreature->GetGUID());
+ return true;
+}
+
+bool GossipSelect_npc_morridune(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction)
+{
+ switch(uiAction)
+ {
+ case GOSSIP_ACTION_INFO_DEF+1:
+ pPlayer->TeleportTo(1,9952.239,2284.277,1341.394,1.595);
+ pPlayer->CLOSE_GOSSIP_MENU();
+ break;
+ }
+ return true;
+}
+
void AddSC_blackfathom_deeps()
{
Script *newscript;
@@ -183,4 +242,11 @@ void AddSC_blackfathom_deeps()
newscript->Name = "npc_blackfathom_deeps_event";
newscript->GetAI = &GetAI_npc_blackfathom_deeps_event;
newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name = "npc_morridune";
+ newscript->GetAI = &GetAI_npc_morridune;
+ newscript->pGossipHello = &GossipHello_npc_morridune;
+ newscript->pGossipSelect = &GossipSelect_npc_morridune;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.h b/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.h
index 317aa67fa1c..e8bbab9f105 100644
--- a/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.h
+++ b/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.h
@@ -35,7 +35,9 @@ enum Creatures
NPC_AKU_MAI_SNAPJAW = 4825,
NPC_MURKSHALLOW_SOFTSHELL = 4977,
NPC_AKU_MAI_SERVANT = 4978,
- NPC_BARBED_CRUSTACEAN = 4823
+ NPC_BARBED_CRUSTACEAN = 4823,
+
+ NPC_MORRIDUNE = 6729
};
enum GameObjects
diff --git a/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/instance_blackfathom_deeps.cpp b/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/instance_blackfathom_deeps.cpp
index a1ba1c63934..c925616d32d 100644
--- a/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/instance_blackfathom_deeps.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/instance_blackfathom_deeps.cpp
@@ -46,6 +46,7 @@ const Position SpawnsLocation[] =
{-775.404, -174.132, -25.871, 3.185},
{-862.430, -154.937, -25.871, 0.060},
{-862.193, -174.251, -25.871, 6.182},
+ {-863.895, -458.899, -33.891, 5.637}
};
struct TRINITY_DLL_DECL instance_blackfathom_deeps : public ScriptedInstance
@@ -142,7 +143,10 @@ struct TRINITY_DLL_DECL instance_blackfathom_deeps : public ScriptedInstance
m_auiEncounter[3] = uiData;
if (uiData == DONE)
if (GameObject *pGo = instance->GetGameObject(m_uiAltarOfTheDeepsGUID))
+ {
pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
+ pGo->SummonCreature(NPC_MORRIDUNE,SpawnsLocation[4], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
+ }
break;
case DATA_FIRE:
m_uiCountFires = uiData;