aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-09-17 18:52:02 +0200
committerShauren <shauren.trinity@gmail.com>2023-09-17 18:52:02 +0200
commit1ef9b294863f316e6f6489ef1a6486d88a66fc14 (patch)
tree9254b04fbcd90031d1aece06d7190713e8755135
parent8de5808fd4a4b88b10478d4cb686a5c7ba34c9a6 (diff)
Scripts/Wailing Caverns: Added dungeon encounter ids
-rw-r--r--src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp48
-rw-r--r--src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h21
2 files changed, 57 insertions, 12 deletions
diff --git a/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp b/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp
index f0606e6bca5..04e5e5b8928 100644
--- a/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp
+++ b/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp
@@ -25,11 +25,20 @@ EndScriptData */
#include "ScriptMgr.h"
#include "Creature.h"
#include "InstanceScript.h"
-#include "Log.h"
#include "Map.h"
#include "wailing_caverns.h"
-#define MAX_ENCOUNTER 9
+static constexpr DungeonEncounterData Encounters[] =
+{
+ { BOSS_LADY_ANACONDRA, {{ 585 } } },
+ { BOSS_LORD_COBRAHN, {{ 586 } } },
+ { BOSS_KRESH, {{ 587 } } },
+ { BOSS_LORD_PYTHAS, {{ 588 } } },
+ { BOSS_SKUM, {{ 589 } } },
+ { BOSS_LORD_SERPENTIS, {{ 590 } } },
+ { BOSS_VERDAN_THE_EVERLIVING, {{ 591 } } },
+ { BOSS_MUTANUS_THE_DEVOURER, {{ 592 } } },
+};
class instance_wailing_caverns : public InstanceMapScript
{
@@ -47,6 +56,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(MAX_ENCOUNTER);
+ LoadDungeonEncounterData(Encounters);
yelled = false;
}
@@ -60,20 +70,33 @@ public:
NaralexGUID = creature->GetGUID();
}
+ void OnUnitDeath(Unit* unit) override
+ {
+ switch (unit->GetEntry())
+ {
+ case NPC_KRESH: SetBossState(BOSS_KRESH, DONE); break;
+ case NPC_SKUM: SetBossState(BOSS_SKUM, DONE); break;
+ case NPC_VERDAN_THE_EVERLIVING: SetBossState(BOSS_VERDAN_THE_EVERLIVING, DONE); break;
+ default:
+ break;
+ }
+ }
+
void SetData(uint32 type, uint32 data) override
{
switch (type)
{
- case TYPE_LORD_COBRAHN: SetBossState(0, EncounterState(data));break;
- case TYPE_LORD_PYTHAS: SetBossState(1, EncounterState(data));break;
- case TYPE_LADY_ANACONDRA: SetBossState(2, EncounterState(data));break;
- case TYPE_LORD_SERPENTIS: SetBossState(3, EncounterState(data));break;
+ case TYPE_LORD_COBRAHN: SetBossState(BOSS_LORD_COBRAHN, EncounterState(data));break;
+ case TYPE_LORD_PYTHAS: SetBossState(BOSS_LORD_PYTHAS, EncounterState(data));break;
+ case TYPE_LADY_ANACONDRA: SetBossState(BOSS_LADY_ANACONDRA, EncounterState(data));break;
+ case TYPE_LORD_SERPENTIS: SetBossState(BOSS_LORD_SERPENTIS, EncounterState(data));break;
case TYPE_NARALEX_EVENT: SetBossState(4, EncounterState(data));break;
case TYPE_NARALEX_PART1: SetBossState(5, EncounterState(data));break;
case TYPE_NARALEX_PART2: SetBossState(6, EncounterState(data));break;
case TYPE_NARALEX_PART3: SetBossState(7, EncounterState(data));break;
- case TYPE_MUTANUS_THE_DEVOURER: SetBossState(8, EncounterState(data));break;
+ case TYPE_MUTANUS_THE_DEVOURER: SetBossState(BOSS_MUTANUS_THE_DEVOURER, EncounterState(data));break;
case TYPE_NARALEX_YELLED: yelled = true; break;
+ default: break;
}
}
@@ -81,16 +104,17 @@ public:
{
switch (type)
{
- case TYPE_LORD_COBRAHN: return GetBossState(0);
- case TYPE_LORD_PYTHAS: return GetBossState(1);
- case TYPE_LADY_ANACONDRA: return GetBossState(2);
- case TYPE_LORD_SERPENTIS: return GetBossState(3);
+ case TYPE_LORD_COBRAHN: return GetBossState(BOSS_LORD_COBRAHN);
+ case TYPE_LORD_PYTHAS: return GetBossState(BOSS_LORD_PYTHAS);
+ case TYPE_LADY_ANACONDRA: return GetBossState(BOSS_LADY_ANACONDRA);
+ case TYPE_LORD_SERPENTIS: return GetBossState(BOSS_LORD_SERPENTIS);
case TYPE_NARALEX_EVENT: return GetBossState(4);
case TYPE_NARALEX_PART1: return GetBossState(5);
case TYPE_NARALEX_PART2: return GetBossState(6);
case TYPE_NARALEX_PART3: return GetBossState(7);
- case TYPE_MUTANUS_THE_DEVOURER: return GetBossState(8);
+ case TYPE_MUTANUS_THE_DEVOURER: return GetBossState(BOSS_MUTANUS_THE_DEVOURER);
case TYPE_NARALEX_YELLED: return yelled;
+ default: break;
}
return 0;
}
diff --git a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h
index ffbfd30effb..72c56a90ccb 100644
--- a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h
+++ b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h
@@ -23,6 +23,20 @@
#define WCScriptName "instance_wailing_caverns"
#define DataHeader "WC"
+enum WCBossIds
+{
+ BOSS_LORD_COBRAHN = 0,
+ BOSS_LORD_PYTHAS = 1,
+ BOSS_LADY_ANACONDRA = 2,
+ BOSS_LORD_SERPENTIS = 3,
+ BOSS_MUTANUS_THE_DEVOURER = 8,
+ BOSS_KRESH = 9,
+ BOSS_SKUM = 10,
+ BOSS_VERDAN_THE_EVERLIVING = 11,
+
+ MAX_ENCOUNTER
+};
+
enum WCDataTypes
{
TYPE_LORD_COBRAHN = 1,
@@ -39,6 +53,13 @@ enum WCDataTypes
DATA_NARALEX = 3679,
};
+enum WCCreatureIds
+{
+ NPC_KRESH = 3653,
+ NPC_SKUM = 3674,
+ NPC_VERDAN_THE_EVERLIVING = 5775
+};
+
template <class AI, class T>
inline AI* GetWailingCavernsAI(T* obj)
{