mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-20 01:15:35 +01:00
Scripts/TheEye: Clean up instance script
This commit is contained in:
@@ -77,12 +77,11 @@ class boss_alar : public CreatureScript
|
||||
public:
|
||||
boss_alar() : CreatureScript("boss_alar") { }
|
||||
|
||||
struct boss_alarAI : public ScriptedAI
|
||||
struct boss_alarAI : public BossAI
|
||||
{
|
||||
boss_alarAI(Creature* creature) : ScriptedAI(creature)
|
||||
boss_alarAI(Creature* creature) : BossAI(creature, DATA_ALAR)
|
||||
{
|
||||
Initialize();
|
||||
instance = creature->GetInstanceScript();
|
||||
DefaultMoveSpeedRate = creature->GetSpeedRate(MOVE_RUN);
|
||||
DiveBomb_Timer = 0;
|
||||
MeltArmor_Timer = 0;
|
||||
@@ -105,8 +104,6 @@ class boss_alar : public CreatureScript
|
||||
cur_wp = 4;
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
|
||||
WaitEventType WaitEvent;
|
||||
uint32 WaitTimer;
|
||||
|
||||
@@ -129,9 +126,8 @@ class boss_alar : public CreatureScript
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
instance->SetData(DATA_ALAREVENT, NOT_STARTED);
|
||||
|
||||
Initialize();
|
||||
_Reset();
|
||||
|
||||
me->SetDisplayId(me->GetNativeDisplayId());
|
||||
me->SetSpeed(MOVE_RUN, DefaultMoveSpeedRate);
|
||||
@@ -145,18 +141,11 @@ class boss_alar : public CreatureScript
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
instance->SetData(DATA_ALAREVENT, IN_PROGRESS);
|
||||
|
||||
_EnterCombat();
|
||||
me->SetDisableGravity(true); // after enterevademode will be set walk movement
|
||||
DoZoneInCombat();
|
||||
me->setActive(true);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
instance->SetData(DATA_ALAREVENT, DONE);
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* summon) override
|
||||
{
|
||||
if (summon->GetEntry() == CREATURE_EMBER_OF_ALAR)
|
||||
@@ -508,7 +497,7 @@ class npc_ember_of_alar : public CreatureScript
|
||||
DoCast(me, SPELL_EMBER_BLAST, true);
|
||||
me->SetDisplayId(11686);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
if (instance->GetData(DATA_ALAREVENT) == 2)
|
||||
if (instance->GetBossState(DATA_ALAR) == IN_PROGRESS)
|
||||
{
|
||||
if (Unit* Alar = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_ALAR)))
|
||||
{
|
||||
|
||||
@@ -92,17 +92,13 @@ class boss_high_astromancer_solarian : public CreatureScript
|
||||
{
|
||||
public:
|
||||
|
||||
boss_high_astromancer_solarian()
|
||||
: CreatureScript("boss_high_astromancer_solarian")
|
||||
{
|
||||
}
|
||||
boss_high_astromancer_solarian() : CreatureScript("boss_high_astromancer_solarian") { }
|
||||
|
||||
struct boss_high_astromancer_solarianAI : public ScriptedAI
|
||||
struct boss_high_astromancer_solarianAI : public BossAI
|
||||
{
|
||||
boss_high_astromancer_solarianAI(Creature* creature) : ScriptedAI(creature), Summons(me)
|
||||
boss_high_astromancer_solarianAI(Creature* creature) : BossAI(creature, DATA_HIGH_ASTROMANCER_SOLARIAN)
|
||||
{
|
||||
Initialize();
|
||||
instance = creature->GetInstanceScript();
|
||||
|
||||
defaultarmor = creature->GetArmor();
|
||||
defaultsize = creature->GetObjectScale();
|
||||
@@ -126,9 +122,6 @@ class boss_high_astromancer_solarian : public CreatureScript
|
||||
Phase = 1;
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
SummonList Summons;
|
||||
|
||||
uint8 Phase;
|
||||
|
||||
uint32 ArcaneMissiles_Timer;
|
||||
@@ -152,16 +145,13 @@ class boss_high_astromancer_solarian : public CreatureScript
|
||||
void Reset() override
|
||||
{
|
||||
Initialize();
|
||||
|
||||
instance->SetData(DATA_HIGHASTROMANCERSOLARIANEVENT, NOT_STARTED);
|
||||
|
||||
_Reset();
|
||||
me->SetArmor(defaultarmor);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetVisible(true);
|
||||
me->SetObjectScale(defaultsize);
|
||||
me->SetDisplayId(MODEL_HUMAN);
|
||||
|
||||
Summons.DespawnAll();
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*victim*/) override
|
||||
@@ -174,15 +164,13 @@ class boss_high_astromancer_solarian : public CreatureScript
|
||||
me->SetObjectScale(defaultsize);
|
||||
me->SetDisplayId(MODEL_HUMAN);
|
||||
Talk(SAY_DEATH);
|
||||
instance->SetData(DATA_HIGHASTROMANCERSOLARIANEVENT, DONE);
|
||||
_JustDied();
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
Talk(SAY_AGGRO);
|
||||
DoZoneInCombat();
|
||||
|
||||
instance->SetData(DATA_HIGHASTROMANCERSOLARIANEVENT, IN_PROGRESS);
|
||||
_EnterCombat();
|
||||
}
|
||||
|
||||
void SummonMinion(uint32 entry, float x, float y, float z)
|
||||
@@ -193,7 +181,7 @@ class boss_high_astromancer_solarian : public CreatureScript
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||
Summoned->AI()->AttackStart(target);
|
||||
|
||||
Summons.Summon(Summoned);
|
||||
summons.Summon(Summoned);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -431,10 +419,7 @@ class npc_solarium_priest : public CreatureScript
|
||||
{
|
||||
public:
|
||||
|
||||
npc_solarium_priest()
|
||||
: CreatureScript("npc_solarium_priest")
|
||||
{
|
||||
}
|
||||
npc_solarium_priest() : CreatureScript("npc_solarium_priest") { }
|
||||
|
||||
struct npc_solarium_priestAI : public ScriptedAI
|
||||
{
|
||||
@@ -462,9 +447,7 @@ class npc_solarium_priest : public CreatureScript
|
||||
Initialize();
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
}
|
||||
void EnterCombat(Unit* /*who*/) override { }
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
|
||||
@@ -286,17 +286,13 @@ class boss_kaelthas : public CreatureScript
|
||||
{
|
||||
public:
|
||||
|
||||
boss_kaelthas()
|
||||
: CreatureScript("boss_kaelthas")
|
||||
boss_kaelthas() : CreatureScript("boss_kaelthas") { }
|
||||
|
||||
struct boss_kaelthasAI : public BossAI
|
||||
{
|
||||
}
|
||||
//Kael'thas AI
|
||||
struct boss_kaelthasAI : public ScriptedAI
|
||||
{
|
||||
boss_kaelthasAI(Creature* creature) : ScriptedAI(creature), summons(me)
|
||||
boss_kaelthasAI(Creature* creature) : BossAI(creature, DATA_KAELTHAS)
|
||||
{
|
||||
Initialize();
|
||||
instance = creature->GetInstanceScript();
|
||||
PhaseSubphase = 0;
|
||||
Phase_Timer = 0;
|
||||
}
|
||||
@@ -320,8 +316,6 @@ class boss_kaelthas : public CreatureScript
|
||||
ChainPyros = false;
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
|
||||
uint32 Fireball_Timer;
|
||||
uint32 ArcaneDisruption_Timer;
|
||||
uint32 Phoenix_Timer;
|
||||
@@ -341,8 +335,6 @@ class boss_kaelthas : public CreatureScript
|
||||
bool IsCastingFireball;
|
||||
bool ChainPyros;
|
||||
|
||||
SummonList summons;
|
||||
|
||||
ObjectGuid m_auiAdvisorGuid[MAX_ADVISORS];
|
||||
|
||||
void Reset() override
|
||||
@@ -351,8 +343,8 @@ class boss_kaelthas : public CreatureScript
|
||||
|
||||
if (me->IsInCombat())
|
||||
PrepareAdvisors();
|
||||
|
||||
summons.DespawnAll();
|
||||
|
||||
_Reset();
|
||||
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
@@ -413,7 +405,6 @@ class boss_kaelthas : public CreatureScript
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
|
||||
{
|
||||
if (!me->HasUnitState(UNIT_STATE_STUNNED) && me->CanCreatureAttack(who))
|
||||
{
|
||||
@@ -444,6 +435,8 @@ class boss_kaelthas : public CreatureScript
|
||||
{
|
||||
if (!instance->GetData(DATA_KAELTHASEVENT) && !Phase)
|
||||
StartEvent();
|
||||
|
||||
instance->SetBossState(DATA_KAELTHAS, IN_PROGRESS);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*victim*/) override
|
||||
@@ -463,11 +456,6 @@ class boss_kaelthas : public CreatureScript
|
||||
}
|
||||
}
|
||||
|
||||
void SummonedCreatureDespawn(Creature* summon) override
|
||||
{
|
||||
summons.Despawn(summon);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
@@ -475,8 +463,6 @@ class boss_kaelthas : public CreatureScript
|
||||
|
||||
Talk(SAY_DEATH);
|
||||
|
||||
summons.DespawnAll();
|
||||
|
||||
instance->SetData(DATA_KAELTHASEVENT, 0);
|
||||
|
||||
for (uint8 i = 0; i < MAX_ADVISORS; ++i)
|
||||
@@ -484,6 +470,7 @@ class boss_kaelthas : public CreatureScript
|
||||
if (Unit* pAdvisor = ObjectAccessor::GetUnit(*me, m_auiAdvisorGuid[i]))
|
||||
pAdvisor->Kill(pAdvisor);
|
||||
}
|
||||
_JustDied();
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -1024,10 +1011,8 @@ class boss_thaladred_the_darkener : public CreatureScript
|
||||
{
|
||||
public:
|
||||
|
||||
boss_thaladred_the_darkener()
|
||||
: CreatureScript("boss_thaladred_the_darkener")
|
||||
{
|
||||
}
|
||||
boss_thaladred_the_darkener() : CreatureScript("boss_thaladred_the_darkener") { }
|
||||
|
||||
struct boss_thaladred_the_darkenerAI : public advisorbase_ai
|
||||
{
|
||||
boss_thaladred_the_darkenerAI(Creature* creature) : advisorbase_ai(creature)
|
||||
@@ -1130,10 +1115,8 @@ class boss_lord_sanguinar : public CreatureScript
|
||||
{
|
||||
public:
|
||||
|
||||
boss_lord_sanguinar()
|
||||
: CreatureScript("boss_lord_sanguinar")
|
||||
{
|
||||
}
|
||||
boss_lord_sanguinar() : CreatureScript("boss_lord_sanguinar") { }
|
||||
|
||||
struct boss_lord_sanguinarAI : public advisorbase_ai
|
||||
{
|
||||
boss_lord_sanguinarAI(Creature* creature) : advisorbase_ai(creature)
|
||||
@@ -1205,10 +1188,8 @@ class boss_grand_astromancer_capernian : public CreatureScript
|
||||
{
|
||||
public:
|
||||
|
||||
boss_grand_astromancer_capernian()
|
||||
: CreatureScript("boss_grand_astromancer_capernian")
|
||||
{
|
||||
}
|
||||
boss_grand_astromancer_capernian() : CreatureScript("boss_grand_astromancer_capernian") { }
|
||||
|
||||
struct boss_grand_astromancer_capernianAI : public advisorbase_ai
|
||||
{
|
||||
boss_grand_astromancer_capernianAI(Creature* creature) : advisorbase_ai(creature)
|
||||
@@ -1358,10 +1339,8 @@ class boss_master_engineer_telonicus : public CreatureScript
|
||||
{
|
||||
public:
|
||||
|
||||
boss_master_engineer_telonicus()
|
||||
: CreatureScript("boss_master_engineer_telonicus")
|
||||
{
|
||||
}
|
||||
boss_master_engineer_telonicus() : CreatureScript("boss_master_engineer_telonicus") { }
|
||||
|
||||
struct boss_master_engineer_telonicusAI : public advisorbase_ai
|
||||
{
|
||||
boss_master_engineer_telonicusAI(Creature* creature) : advisorbase_ai(creature)
|
||||
@@ -1449,10 +1428,8 @@ class npc_kael_flamestrike : public CreatureScript
|
||||
{
|
||||
public:
|
||||
|
||||
npc_kael_flamestrike()
|
||||
: CreatureScript("npc_kael_flamestrike")
|
||||
{
|
||||
}
|
||||
npc_kael_flamestrike() : CreatureScript("npc_kael_flamestrike") { }
|
||||
|
||||
struct npc_kael_flamestrikeAI : public ScriptedAI
|
||||
{
|
||||
npc_kael_flamestrikeAI(Creature* creature) : ScriptedAI(creature)
|
||||
@@ -1482,7 +1459,6 @@ class npc_kael_flamestrike : public CreatureScript
|
||||
|
||||
void MoveInLineOfSight(Unit* /*who*/) override { }
|
||||
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override { }
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -1523,10 +1499,8 @@ class npc_phoenix_tk : public CreatureScript
|
||||
{
|
||||
public:
|
||||
|
||||
npc_phoenix_tk()
|
||||
: CreatureScript("npc_phoenix_tk")
|
||||
{
|
||||
}
|
||||
npc_phoenix_tk() : CreatureScript("npc_phoenix_tk") { }
|
||||
|
||||
struct npc_phoenix_tkAI : public ScriptedAI
|
||||
{
|
||||
npc_phoenix_tkAI(Creature* creature) : ScriptedAI(creature)
|
||||
@@ -1585,10 +1559,8 @@ class npc_phoenix_egg_tk : public CreatureScript
|
||||
{
|
||||
public:
|
||||
|
||||
npc_phoenix_egg_tk()
|
||||
: CreatureScript("npc_phoenix_egg_tk")
|
||||
{
|
||||
}
|
||||
npc_phoenix_egg_tk() : CreatureScript("npc_phoenix_egg_tk") { }
|
||||
|
||||
struct npc_phoenix_egg_tkAI : public ScriptedAI
|
||||
{
|
||||
npc_phoenix_egg_tkAI(Creature* creature) : ScriptedAI(creature)
|
||||
@@ -1611,7 +1583,6 @@ class npc_phoenix_egg_tk : public CreatureScript
|
||||
//ignore any
|
||||
void MoveInLineOfSight(Unit* /*who*/) override { }
|
||||
|
||||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (me->Attack(who, false))
|
||||
|
||||
@@ -47,17 +47,13 @@ class boss_void_reaver : public CreatureScript
|
||||
{
|
||||
public:
|
||||
|
||||
boss_void_reaver()
|
||||
: CreatureScript("boss_void_reaver")
|
||||
{
|
||||
}
|
||||
boss_void_reaver() : CreatureScript("boss_void_reaver") { }
|
||||
|
||||
struct boss_void_reaverAI : public ScriptedAI
|
||||
struct boss_void_reaverAI : public BossAI
|
||||
{
|
||||
boss_void_reaverAI(Creature* creature) : ScriptedAI(creature)
|
||||
boss_void_reaverAI(Creature* creature) : BossAI(creature, DATA_VOID_REAVER)
|
||||
{
|
||||
Initialize();
|
||||
instance = creature->GetInstanceScript();
|
||||
}
|
||||
|
||||
void Initialize()
|
||||
@@ -70,8 +66,6 @@ class boss_void_reaver : public CreatureScript
|
||||
Enraged = false;
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
|
||||
uint32 Pounding_Timer;
|
||||
uint32 ArcaneOrb_Timer;
|
||||
uint32 KnockAway_Timer;
|
||||
@@ -82,9 +76,7 @@ class boss_void_reaver : public CreatureScript
|
||||
void Reset() override
|
||||
{
|
||||
Initialize();
|
||||
|
||||
if (me->IsAlive())
|
||||
instance->SetData(DATA_VOIDREAVEREVENT, NOT_STARTED);
|
||||
_Reset();
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*victim*/) override
|
||||
@@ -96,15 +88,13 @@ class boss_void_reaver : public CreatureScript
|
||||
{
|
||||
Talk(SAY_DEATH);
|
||||
DoZoneInCombat();
|
||||
|
||||
instance->SetData(DATA_VOIDREAVEREVENT, DONE);
|
||||
_JustDied();
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
instance->SetData(DATA_VOIDREAVEREVENT, IN_PROGRESS);
|
||||
_EnterCombat();
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
||||
@@ -27,8 +27,6 @@ EndScriptData */
|
||||
#include "InstanceScript.h"
|
||||
#include "the_eye.h"
|
||||
|
||||
#define MAX_ENCOUNTER 5
|
||||
|
||||
/* The Eye encounters:
|
||||
0 - Kael'thas event
|
||||
1 - Al' ar event
|
||||
@@ -39,20 +37,16 @@ EndScriptData */
|
||||
class instance_the_eye : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
instance_the_eye()
|
||||
: InstanceMapScript("instance_the_eye", 550)
|
||||
{
|
||||
}
|
||||
instance_the_eye() : InstanceMapScript("instance_the_eye", 550) { }
|
||||
|
||||
struct instance_the_eye_InstanceMapScript : public InstanceScript
|
||||
{
|
||||
instance_the_eye_InstanceMapScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
||||
SetBossNumber(EncounterCount);
|
||||
|
||||
KaelthasEventPhase = 0;
|
||||
AlarEventPhase = 0;
|
||||
}
|
||||
|
||||
ObjectGuid ThaladredTheDarkener;
|
||||
@@ -63,44 +57,34 @@ class instance_the_eye : public InstanceMapScript
|
||||
ObjectGuid Astromancer;
|
||||
ObjectGuid Alar;
|
||||
uint8 KaelthasEventPhase;
|
||||
uint8 AlarEventPhase;
|
||||
|
||||
uint32 m_auiEncounter[MAX_ENCOUNTER];
|
||||
|
||||
bool IsEncounterInProgress() const override
|
||||
{
|
||||
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
||||
if (m_auiEncounter[i] == IN_PROGRESS)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* creature) override
|
||||
{
|
||||
switch (creature->GetEntry())
|
||||
{
|
||||
case 20064:
|
||||
ThaladredTheDarkener = creature->GetGUID();
|
||||
break;
|
||||
case 20063:
|
||||
MasterEngineerTelonicus = creature->GetGUID();
|
||||
break;
|
||||
case 20062:
|
||||
GrandAstromancerCapernian = creature->GetGUID();
|
||||
break;
|
||||
case 20060:
|
||||
LordSanguinar = creature->GetGUID();
|
||||
break;
|
||||
case 19622:
|
||||
Kaelthas = creature->GetGUID();
|
||||
break;
|
||||
case 18805:
|
||||
Astromancer = creature->GetGUID();
|
||||
break;
|
||||
case 19514:
|
||||
Alar = creature->GetGUID();
|
||||
break;
|
||||
case NPC_SANGUINAR:
|
||||
LordSanguinar = creature->GetGUID();
|
||||
break;
|
||||
case NPC_CAPERNIAN:
|
||||
GrandAstromancerCapernian = creature->GetGUID();
|
||||
break;
|
||||
case NPC_TELONICUS:
|
||||
MasterEngineerTelonicus = creature->GetGUID();
|
||||
break;
|
||||
case NPC_THALADRED:
|
||||
ThaladredTheDarkener = creature->GetGUID();
|
||||
break;
|
||||
case NPC_KAELTHAS:
|
||||
Kaelthas = creature->GetGUID();
|
||||
break;
|
||||
case NPC_HIGH_ASTROMANCER_SOLARIAN:
|
||||
Astromancer = creature->GetGUID();
|
||||
break;
|
||||
case NPC_ALAR:
|
||||
Alar = creature->GetGUID();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,7 +97,7 @@ class instance_the_eye : public InstanceMapScript
|
||||
case DATA_GRANDASTROMANCERCAPERNIAN: return GrandAstromancerCapernian;
|
||||
case DATA_MASTERENGINEERTELONICUS: return MasterEngineerTelonicus;
|
||||
case DATA_KAELTHAS: return Kaelthas;
|
||||
case DATA_ASTROMANCER: return Astromancer;
|
||||
case DATA_HIGH_ASTROMANCER_SOLARIAN: return Astromancer;
|
||||
case DATA_ALAR: return Alar;
|
||||
}
|
||||
return ObjectGuid::Empty;
|
||||
@@ -123,64 +107,23 @@ class instance_the_eye : public InstanceMapScript
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case DATA_ALAREVENT:
|
||||
AlarEventPhase = data;
|
||||
m_auiEncounter[0] = data;
|
||||
break;
|
||||
case DATA_HIGHASTROMANCERSOLARIANEVENT:
|
||||
m_auiEncounter[1] = data;
|
||||
break;
|
||||
case DATA_VOIDREAVEREVENT:
|
||||
m_auiEncounter[2] = data;
|
||||
break;
|
||||
case DATA_KAELTHASEVENT:
|
||||
KaelthasEventPhase = data;
|
||||
m_auiEncounter[3] = data;
|
||||
break;
|
||||
case DATA_KAELTHASEVENT:
|
||||
KaelthasEventPhase = data;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (data == DONE)
|
||||
SaveToDB();
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type) const override
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case DATA_ALAREVENT: return AlarEventPhase;
|
||||
case DATA_HIGHASTROMANCERSOLARIANEVENT: return m_auiEncounter[1];
|
||||
case DATA_VOIDREAVEREVENT: return m_auiEncounter[2];
|
||||
case DATA_KAELTHASEVENT: return KaelthasEventPhase;
|
||||
case DATA_KAELTHASEVENT:
|
||||
return KaelthasEventPhase;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream stream;
|
||||
stream << m_auiEncounter[0] << ' ' << m_auiEncounter[1] << ' ' << m_auiEncounter[2] << ' ' << m_auiEncounter[3];
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return stream.str();
|
||||
}
|
||||
|
||||
void Load(const char* in) override
|
||||
{
|
||||
if (!in)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
OUT_LOAD_INST_DATA(in);
|
||||
|
||||
std::istringstream stream(in);
|
||||
stream >> m_auiEncounter[0] >> m_auiEncounter[1] >> m_auiEncounter[2] >> m_auiEncounter[3];
|
||||
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
||||
if (m_auiEncounter[i] == IN_PROGRESS) // Do not load an encounter as "In Progress" - reset it instead.
|
||||
m_auiEncounter[i] = NOT_STARTED;
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
}
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
|
||||
@@ -21,19 +21,33 @@
|
||||
|
||||
#define DataHeader "TE"
|
||||
|
||||
uint32 const EncounterCount = 4;
|
||||
|
||||
enum DataTypes
|
||||
{
|
||||
DATA_ALAREVENT = 1,
|
||||
DATA_ASTROMANCER = 2,
|
||||
DATA_GRANDASTROMANCERCAPERNIAN = 3,
|
||||
DATA_HIGHASTROMANCERSOLARIANEVENT = 4,
|
||||
DATA_KAELTHAS = 5,
|
||||
// Encounter States/Boss GUIDs
|
||||
DATA_KAELTHAS = 0,
|
||||
DATA_ALAR = 1,
|
||||
DATA_HIGH_ASTROMANCER_SOLARIAN = 2,
|
||||
DATA_VOID_REAVER = 3,
|
||||
|
||||
DATA_ASTROMANCER = 4,
|
||||
DATA_GRANDASTROMANCERCAPERNIAN = 5,
|
||||
DATA_KAELTHASEVENT = 6,
|
||||
DATA_LORDSANGUINAR = 7,
|
||||
DATA_MASTERENGINEERTELONICUS = 8,
|
||||
DATA_THALADREDTHEDARKENER = 10,
|
||||
DATA_VOIDREAVEREVENT = 11,
|
||||
DATA_ALAR = 12
|
||||
DATA_THALADREDTHEDARKENER = 9
|
||||
};
|
||||
|
||||
enum CreatureIds
|
||||
{
|
||||
NPC_SANGUINAR = 20060,
|
||||
NPC_CAPERNIAN = 20062,
|
||||
NPC_TELONICUS = 20063,
|
||||
NPC_THALADRED = 20064,
|
||||
NPC_KAELTHAS = 19622,
|
||||
NPC_HIGH_ASTROMANCER_SOLARIAN = 18805,
|
||||
NPC_ALAR = 19514
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user