Scripts/Stratholme: Added dungeon encounter ids

This commit is contained in:
Shauren
2023-09-18 19:25:30 +02:00
parent 4370f2fe29
commit 1f2ae69226
6 changed files with 75 additions and 21 deletions

View File

@@ -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);
}

View File

@@ -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

View File

@@ -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))

View File

@@ -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);
}

View File

@@ -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;
}
}
};
};

View File

@@ -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)
{