Scripts/TheBlackMorass: Modernize scripts

This commit is contained in:
offl
2025-05-17 12:51:14 +02:00
committed by ModoX
parent e2eb8c2b32
commit 2f331b2fe2
3 changed files with 56 additions and 72 deletions

View File

@@ -15,41 +15,37 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
Name: Boss_Aeonus
%Complete: 80
Comment: Some spells not implemented
Category: Caverns of Time, The Dark Portal
*/
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "ScriptedCreature.h"
#include "the_black_morass.h"
enum Enums
enum AeonusTexts
{
SAY_ENTER = 0,
SAY_AGGRO = 1,
SAY_BANISH = 2,
SAY_SLAY = 3,
SAY_DEATH = 4,
EMOTE_FRENZY = 5,
EMOTE_FRENZY = 5
};
enum AeonusSpells
{
SPELL_CLEAVE = 40504,
SPELL_TIME_STOP = 31422,
SPELL_ENRAGE = 37605,
SPELL_SAND_BREATH = 31473,
H_SPELL_SAND_BREATH = 39049
SPELL_SAND_BREATH = 31473
};
enum Events
enum AeonusEvents
{
EVENT_SANDBREATH = 1,
EVENT_TIMESTOP = 2,
EVENT_FRENZY = 3
EVENT_TIMESTOP,
EVENT_FRENZY
};
// 17881 - Aeonus
struct boss_aeonus : public BossAI
{
boss_aeonus(Creature* creature) : BossAI(creature, TYPE_AEONUS) { }
@@ -66,7 +62,6 @@ struct boss_aeonus : public BossAI
}
void MoveInLineOfSight(Unit* who) override
{
//Despawn Time Keeper
if (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_TIME_KEEPER)
@@ -97,7 +92,6 @@ struct boss_aeonus : public BossAI
void UpdateAI(uint32 diff) override
{
//Return since we have no target
if (!UpdateVictim())
return;
@@ -112,16 +106,16 @@ struct boss_aeonus : public BossAI
{
case EVENT_SANDBREATH:
DoCastVictim(SPELL_SAND_BREATH);
events.ScheduleEvent(EVENT_SANDBREATH, 15s, 25s);
events.Repeat(15s, 25s);
break;
case EVENT_TIMESTOP:
DoCastVictim(SPELL_TIME_STOP);
events.ScheduleEvent(EVENT_TIMESTOP, 20s, 35s);
DoCastSelf(SPELL_TIME_STOP);
events.Repeat(20s, 35s);
break;
case EVENT_FRENZY:
Talk(EMOTE_FRENZY);
DoCast(me, SPELL_ENRAGE);
events.ScheduleEvent(EVENT_FRENZY, 20s, 35s);
Talk(EMOTE_FRENZY);
DoCastSelf(SPELL_ENRAGE);
events.Repeat(20s, 35s);
break;
default:
break;
@@ -130,6 +124,7 @@ struct boss_aeonus : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
DoMeleeAttackIfReady();
}
};

View File

@@ -15,42 +15,37 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
Name: Boss_Chrono_Lord_Deja
%Complete: 65
Comment: All abilities not implemented
Category: Caverns of Time, The Black Morass
*/
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "ScriptedCreature.h"
#include "the_black_morass.h"
enum Enums
enum DejaTexts
{
SAY_ENTER = 0,
SAY_AGGRO = 1,
SAY_BANISH = 2,
SAY_SLAY = 3,
SAY_DEATH = 4,
SAY_DEATH = 4
};
enum DejaSpells
{
SPELL_ARCANE_BLAST = 31457,
H_SPELL_ARCANE_BLAST = 38538,
SPELL_ARCANE_DISCHARGE = 31472,
H_SPELL_ARCANE_DISCHARGE = 38539,
SPELL_TIME_LAPSE = 31467,
SPELL_ATTRACTION = 38540 //Not Implemented (Heroic mode)
};
enum Events
enum DejaEvents
{
EVENT_ARCANE_BLAST = 1,
EVENT_TIME_LAPSE = 2,
EVENT_ARCANE_DISCHARGE = 3,
EVENT_ATTRACTION = 4
EVENT_TIME_LAPSE,
EVENT_ARCANE_DISCHARGE,
EVENT_ATTRACTION
};
// 17879 - Chrono Lord Deja
struct boss_chrono_lord_deja : public BossAI
{
boss_chrono_lord_deja(Creature* creature) : BossAI(creature, TYPE_CRONO_LORD_DEJA) { }
@@ -69,7 +64,6 @@ struct boss_chrono_lord_deja : public BossAI
}
void MoveInLineOfSight(Unit* who) override
{
//Despawn Time Keeper
if (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_TIME_KEEPER)
@@ -112,21 +106,20 @@ struct boss_chrono_lord_deja : public BossAI
{
case EVENT_ARCANE_BLAST:
DoCastVictim(SPELL_ARCANE_BLAST);
events.ScheduleEvent(EVENT_ARCANE_BLAST, 15s, 25s);
events.Repeat(15s, 25s);
break;
case EVENT_TIME_LAPSE:
Talk(SAY_BANISH);
DoCast(me, SPELL_TIME_LAPSE);
events.ScheduleEvent(EVENT_TIME_LAPSE, 15s, 25s);
DoCastSelf(SPELL_TIME_LAPSE);
events.Repeat(15s, 25s);
break;
case EVENT_ARCANE_DISCHARGE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
DoCast(target, SPELL_ARCANE_DISCHARGE);
events.ScheduleEvent(EVENT_ARCANE_DISCHARGE, 20s, 30s);
DoCastSelf(SPELL_ARCANE_DISCHARGE);
events.Repeat(20s, 30s);
break;
case EVENT_ATTRACTION: // Only in Heroic
DoCast(me, SPELL_ATTRACTION);
events.ScheduleEvent(EVENT_ATTRACTION, 25s, 35s);
case EVENT_ATTRACTION:
DoCastSelf(SPELL_ATTRACTION);
events.Repeat(25s, 35s);
break;
default:
break;

View File

@@ -15,41 +15,37 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
Name: Boss_Temporus
%Complete: 75
Comment: More abilities need to be implemented
Category: Caverns of Time, The Black Morass
*/
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "ScriptedCreature.h"
#include "the_black_morass.h"
enum Enums
enum TemporusTexts
{
SAY_ENTER = 0,
SAY_AGGRO = 1,
SAY_BANISH = 2,
SAY_SLAY = 3,
SAY_DEATH = 4,
SAY_DEATH = 4
};
enum TemporusSpells
{
SPELL_HASTE = 31458,
SPELL_MORTAL_WOUND = 31464,
SPELL_WING_BUFFET = 31475,
H_SPELL_WING_BUFFET = 38593,
SPELL_REFLECT = 38592 //Not Implemented (Heroic mod)
SPELL_REFLECT = 38592
};
enum Events
enum TemporusEvents
{
EVENT_HASTE = 1,
EVENT_MORTAL_WOUND = 2,
EVENT_WING_BUFFET = 3,
EVENT_SPELL_REFLECTION = 4
EVENT_MORTAL_WOUND,
EVENT_WING_BUFFET,
EVENT_SPELL_REFLECTION
};
// 17880 - Temporus
struct boss_temporus : public BossAI
{
boss_temporus(Creature* creature) : BossAI(creature, TYPE_TEMPORUS) { }
@@ -97,7 +93,6 @@ struct boss_temporus : public BossAI
void UpdateAI(uint32 diff) override
{
//Return since we have no target
if (!UpdateVictim())
return;
@@ -111,20 +106,20 @@ struct boss_temporus : public BossAI
switch (eventId)
{
case EVENT_HASTE:
DoCast(me, SPELL_HASTE);
events.ScheduleEvent(EVENT_HASTE, 20s, 25s);
DoCastSelf(SPELL_HASTE);
events.Repeat(20s, 25s);
break;
case EVENT_MORTAL_WOUND:
DoCast(me, SPELL_MORTAL_WOUND);
events.ScheduleEvent(EVENT_MORTAL_WOUND, 10s, 20s);
DoCastVictim(SPELL_MORTAL_WOUND);
events.Repeat(10s, 20s);
break;
case EVENT_WING_BUFFET:
DoCast(me, SPELL_WING_BUFFET);
events.ScheduleEvent(EVENT_WING_BUFFET, 20s, 30s);
DoCastSelf(SPELL_WING_BUFFET);
events.Repeat(20s, 30s);
break;
case EVENT_SPELL_REFLECTION: // Only in Heroic
DoCast(me, SPELL_REFLECT);
events.ScheduleEvent(EVENT_SPELL_REFLECTION, 25s, 35s);
case EVENT_SPELL_REFLECTION:
DoCastSelf(SPELL_REFLECT);
events.Repeat(25s, 35s);
break;
default:
break;
@@ -133,6 +128,7 @@ struct boss_temporus : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
DoMeleeAttackIfReady();
}
};