aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortartalo <none@none>2009-11-20 20:12:45 +0100
committertartalo <none@none>2009-11-20 20:12:45 +0100
commit25a7e83699c9ef8ceb44c8a1317a8ebced3d21b8 (patch)
treeab604a6ae8e5cf9ca0f5be879c140d1d41cbaeab /src
parent59097039df192ace4f8228b5f1c51ea42d3542a7 (diff)
Blackfathom Deeps: Event tracking & Go handling on instance script (needs boss AI support)
--HG-- branch : trunk
Diffstat (limited to 'src')
-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.cpp44
2 files changed, 42 insertions, 6 deletions
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 0ef175338d9..64def3c9e5f 100644
--- a/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.h
+++ b/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.h
@@ -19,13 +19,15 @@ enum Data64
enum Data
{
+ TYPE_GELIHAST,
TYPE_KELRIS,
TYPE_SHRINE
};
enum Creatures
{
- NPC_TWILIGHT_LORD_KELRIS = 4832
+ NPC_TWILIGHT_LORD_KELRIS = 4832,
+ NPC_LORCUS_JETT = 12902
};
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 4054f3423d3..2af0f308584 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
@@ -24,13 +24,21 @@ EndScriptData */
#include "precompiled.h"
#include "blackfathom_deeps.h"
-#define MAX_ENCOUNTER 2
+#define MAX_ENCOUNTER 3
-/* Encounter 0 = Twilight Lord Kelris
- Encounter 1 = Shrine event
+/* Encounter 0 = Gelihast
+ Encounter 1 = Twilight Lord Kelris
+ Encounter 2 = Shrine event
Must kill twilight lord for shrine event to be possible
*/
+const Position LorgusPosition[4] =
+{ { },
+ { },
+ { },
+ { }
+};
+
struct TRINITY_DLL_DECL instance_blackfathom_deeps : public ScriptedInstance
{
instance_blackfathom_deeps(Map* pMap) : ScriptedInstance(pMap) {Initialize();};
@@ -73,24 +81,30 @@ struct TRINITY_DLL_DECL instance_blackfathom_deeps : public ScriptedInstance
case GO_FIRE_OF_AKU_MAI_1:
m_uiShrine1GUID = pGo->GetGUID();
pGo->SetGoState(GO_STATE_READY);
+ pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
break;
case GO_FIRE_OF_AKU_MAI_2:
m_uiShrine2GUID = pGo->GetGUID();
pGo->SetGoState(GO_STATE_READY);
+ pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
break;
case GO_FIRE_OF_AKU_MAI_3:
m_uiShrine3GUID = pGo->GetGUID();
pGo->SetGoState(GO_STATE_READY);
+ pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
break;
case GO_FIRE_OF_AKU_MAI_4:
m_uiShrine4GUID = pGo->GetGUID();
pGo->SetGoState(GO_STATE_READY);
+ pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
break;
case GO_SHRINE_OF_GELIHAST:
m_uiShrineOfGelihastGUID = pGo->GetGUID();
+ pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
break;
case GO_ALTAR_OF_THE_DEEPS:
m_uiAltarOfTheDeepsGUID = pGo->GetGUID();
+ pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
break;
case GO_AKU_MAI_DOOR:
m_uiMainDoorGUID = pGo->GetGUID();
@@ -102,11 +116,31 @@ struct TRINITY_DLL_DECL instance_blackfathom_deeps : public ScriptedInstance
{
switch(uiType)
{
- case TYPE_KELRIS:
+ case TYPE_GELIHAST:
m_auiEncounter[0] = uiData;
+ if (uiData == DONE)
+ if (GameObject *pGo = instance->GetGameObject(m_uiShrineOfGelihastGUID))
+ pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
break;
- case TYPE_SHRINE:
+ case TYPE_KELRIS:
m_auiEncounter[1] = uiData;
+ if (uiData == DONE)
+ {
+ if (GameObject *pGo = instance->GetGameObject(m_uiShrine1GUID))
+ pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
+ if (GameObject *pGo = instance->GetGameObject(m_uiShrine2GUID))
+ pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
+ if (GameObject *pGo = instance->GetGameObject(m_uiShrine3GUID))
+ pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
+ if (GameObject *pGo = instance->GetGameObject(m_uiShrine4GUID))
+ pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
+ }
+ break;
+ case TYPE_SHRINE:
+ m_auiEncounter[2] = uiData;
+ if (uiData == DONE)
+ if (GameObject *pGo = instance->GetGameObject(m_uiAltarOfTheDeepsGUID))
+ pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
break;
}
}