mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-18 00:18:43 +01:00
Scripts/TheBlackMorass: Modernize scripts
This commit is contained in:
@@ -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();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user