aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-09-18 19:25:30 +0200
committerShauren <shauren.trinity@gmail.com>2023-09-18 19:25:30 +0200
commit1f2ae69226548a70533ac4f6e5c7209625c4b7ff (patch)
treed0af4f279960b5bb2a7314ecd5eb81c22bfead4e
parent4370f2fe2933d54be4ed4dd815d62ff34a701ed2 (diff)
Scripts/Stratholme: Added dungeon encounter ids
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp12
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp10
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp8
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp12
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/instance_maraudon.cpp32
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/maraudon.h22
6 files changed, 75 insertions, 21 deletions
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp
index 23381de577d..980a094fc94 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp
@@ -43,9 +43,9 @@ public:
return GetMaraudonAI<celebras_the_cursedAI>(creature);
}
- struct celebras_the_cursedAI : public ScriptedAI
+ struct celebras_the_cursedAI : public BossAI
{
- celebras_the_cursedAI(Creature* creature) : ScriptedAI(creature)
+ celebras_the_cursedAI(Creature* creature) : BossAI(creature, BOSS_CELEBRAS_THE_CURSED)
{
Initialize();
}
@@ -63,13 +63,15 @@ public:
void Reset() override
{
+ BossAI::Reset();
+
Initialize();
}
- void JustEngagedWith(Unit* /*who*/) override { }
-
- void JustDied(Unit* /*killer*/) override
+ void JustDied(Unit* killer) override
{
+ BossAI::JustDied(killer);
+
me->SummonCreature(13716, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 10min);
}
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp
index 07eae93c6e3..333192572b7 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp
@@ -43,9 +43,9 @@ public:
return GetMaraudonAI<boss_landslideAI>(creature);
}
- struct boss_landslideAI : public ScriptedAI
+ struct boss_landslideAI : public BossAI
{
- boss_landslideAI(Creature* creature) : ScriptedAI(creature)
+ boss_landslideAI(Creature* creature) : BossAI(creature, BOSS_LANDSLIDE)
{
Initialize();
}
@@ -63,11 +63,9 @@ public:
void Reset() override
{
- Initialize();
- }
+ BossAI::Reset();
- void JustEngagedWith(Unit* /*who*/) override
- {
+ Initialize();
}
void UpdateAI(uint32 diff) override
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp
index ef86e220646..2884f62262d 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp
@@ -42,9 +42,9 @@ public:
return GetMaraudonAI<boss_noxxionAI>(creature);
}
- struct boss_noxxionAI : public ScriptedAI
+ struct boss_noxxionAI : public BossAI
{
- boss_noxxionAI(Creature* creature) : ScriptedAI(creature)
+ boss_noxxionAI(Creature* creature) : BossAI(creature, BOSS_NOXXION)
{
Initialize();
}
@@ -66,11 +66,11 @@ public:
void Reset() override
{
+ BossAI::Reset();
+
Initialize();
}
- void JustEngagedWith(Unit* /*who*/) override { }
-
void SummonAdds(Unit* victim)
{
if (Creature* Add = DoSpawnCreature(13456, float(irand(-7, 7)), float(irand(-7, 7)), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 90s))
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp
index 01cf3575970..e60e4f7c79a 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp
@@ -44,9 +44,9 @@ public:
return GetMaraudonAI<boss_ptheradrasAI>(creature);
}
- struct boss_ptheradrasAI : public ScriptedAI
+ struct boss_ptheradrasAI : public BossAI
{
- boss_ptheradrasAI(Creature* creature) : ScriptedAI(creature)
+ boss_ptheradrasAI(Creature* creature) : BossAI(creature, BOSS_PRINCESS_THERADRAS)
{
Initialize();
}
@@ -66,13 +66,15 @@ public:
void Reset() override
{
+ BossAI::Reset();
+
Initialize();
}
- void JustEngagedWith(Unit* /*who*/) override { }
-
- void JustDied(Unit* /*killer*/) override
+ void JustDied(Unit* killer) override
{
+ BossAI::JustDied(killer);
+
me->SummonCreature(12238, 28.1887f, 62.3964f, -123.161f, 4.31096f, TEMPSUMMON_TIMED_DESPAWN, 10min);
}
diff --git a/src/server/scripts/Kalimdor/Maraudon/instance_maraudon.cpp b/src/server/scripts/Kalimdor/Maraudon/instance_maraudon.cpp
index 968968f99a3..9ea3c308a6f 100644
--- a/src/server/scripts/Kalimdor/Maraudon/instance_maraudon.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/instance_maraudon.cpp
@@ -24,8 +24,21 @@ gets instead the deserter debuff.
#include "ScriptMgr.h"
#include "InstanceScript.h"
+#include "Unit.h"
#include "maraudon.h"
+static constexpr DungeonEncounterData Encounters[] =
+{
+ { BOSS_NOXXION, { { 422 } } },
+ { BOSS_RAZORLASH, { { 423 } } },
+ { BOSS_TINKERER_GIZLOCK, { { 427 } } },
+ { BOSS_LORD_VYLETONGUE, { { 424 } } },
+ { BOSS_CELEBRAS_THE_CURSED, { { 425 } } },
+ { BOSS_LANDSLIDE, { { 426 } } },
+ { BOSS_ROTGRIP, { { 428 } } },
+ { BOSS_PRINCESS_THERADRAS, { { 429 } } },
+};
+
class instance_maraudon : public InstanceMapScript
{
public:
@@ -38,7 +51,24 @@ public:
struct instance_maraudon_InstanceMapScript : public InstanceScript
{
- instance_maraudon_InstanceMapScript(InstanceMap* map) : InstanceScript(map) { }
+ instance_maraudon_InstanceMapScript(InstanceMap* map) : InstanceScript(map)
+ {
+ SetHeaders("Maraudon_v1");
+ SetBossNumber(MAX_ENCOUNTER);
+ LoadDungeonEncounterData(Encounters);
+ }
+
+ void OnUnitDeath(Unit* unit) override
+ {
+ switch (unit->GetEntry())
+ {
+ case NPC_RAZORLASH: SetBossState(BOSS_RAZORLASH, DONE); break;
+ case NPC_TINKERER_GIZLOCK: SetBossState(BOSS_TINKERER_GIZLOCK, DONE); break;
+ case NPC_LORD_VYLETONGUE: SetBossState(BOSS_LORD_VYLETONGUE, DONE); break;
+ case NPC_ROTGRIP: SetBossState(BOSS_ROTGRIP, DONE); break;
+ default: break;
+ }
+ }
};
};
diff --git a/src/server/scripts/Kalimdor/Maraudon/maraudon.h b/src/server/scripts/Kalimdor/Maraudon/maraudon.h
index 01226e42411..0fef5860aa2 100644
--- a/src/server/scripts/Kalimdor/Maraudon/maraudon.h
+++ b/src/server/scripts/Kalimdor/Maraudon/maraudon.h
@@ -22,6 +22,28 @@
#define MaraudonScriptName "instance_maraudon"
+enum MDBossIds
+{
+ BOSS_NOXXION = 0,
+ BOSS_RAZORLASH = 1,
+ BOSS_TINKERER_GIZLOCK = 2,
+ BOSS_LORD_VYLETONGUE = 3,
+ BOSS_CELEBRAS_THE_CURSED = 4,
+ BOSS_LANDSLIDE = 5,
+ BOSS_ROTGRIP = 6,
+ BOSS_PRINCESS_THERADRAS = 7,
+
+ MAX_ENCOUNTER
+};
+
+enum MDCreatureIds
+{
+ NPC_RAZORLASH = 12258,
+ NPC_TINKERER_GIZLOCK = 13601,
+ NPC_LORD_VYLETONGUE = 12236,
+ NPC_ROTGRIP = 13596,
+};
+
template <class AI, class T>
inline AI* GetMaraudonAI(T* obj)
{