diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-09-18 19:25:30 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-09-18 19:25:30 +0200 |
commit | 1f2ae69226548a70533ac4f6e5c7209625c4b7ff (patch) | |
tree | d0af4f279960b5bb2a7314ecd5eb81c22bfead4e | |
parent | 4370f2fe2933d54be4ed4dd815d62ff34a701ed2 (diff) |
Scripts/Stratholme: Added dungeon encounter ids
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) { |