aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp16
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp35
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h4
3 files changed, 9 insertions, 46 deletions
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
index 85592df25cd..fe69169dca7 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
@@ -155,8 +155,7 @@ struct boss_felblood_kaelthas : public BossAI
{
_Reset();
Initialize();
- if (instance->GetData(DATA_KAELTHAS_INTRO_STATE) != DONE)
- me->SetImmuneToPC(true);
+ events.SetPhase(PHASE_INTRO);
}
void JustDied(Unit* /*killer*/) override
@@ -165,15 +164,12 @@ struct boss_felblood_kaelthas : public BossAI
instance->SetBossState(DATA_KAELTHAS_SUNSTRIDER, DONE);
}
- void EnterEvadeMode(EvadeReason why) override
+ void EnterEvadeMode(EvadeReason /*why*/) override
{
DoCastAOE(SPELL_CLEAR_FLIGHT, true);
_EnterEvadeMode();
summons.DespawnAll();
- events.Reset();
- me->SetReactState(REACT_AGGRESSIVE);
- me->ReleaseFocus();
- BossAI::EnterEvadeMode(why);
+ _DespawnAtEvade();
}
void DamageTaken(Unit* attacker, uint32 &damage) override
@@ -212,7 +208,11 @@ struct boss_felblood_kaelthas : public BossAI
{
if (type == DATA_KAELTHAS_INTRO)
{
- events.SetPhase(PHASE_INTRO);
+ // skip the intro if Kael'thas is engaged already
+ if (!events.IsInPhase(PHASE_INTRO))
+ return;
+
+ me->SetImmuneToPC(true);
events.ScheduleEvent(EVENT_TALK_INTRO_1, 6s, 0, PHASE_INTRO);
}
}
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp
index a5f42c2e12f..1c1b181693f 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp
@@ -83,7 +83,6 @@ class instance_magisters_terrace : public InstanceMapScript
void Initialize() override
{
_delrissaDeathCount = 0;
- _kaelthasIntroState = 0;
}
uint32 GetData(uint32 type) const override
@@ -92,8 +91,6 @@ class instance_magisters_terrace : public InstanceMapScript
{
case DATA_DELRISSA_DEATH_COUNT:
return _delrissaDeathCount;
- case DATA_KAELTHAS_INTRO_STATE:
- return _kaelthasIntroState;
default:
break;
}
@@ -110,10 +107,6 @@ class instance_magisters_terrace : public InstanceMapScript
else
_delrissaDeathCount = 0;
break;
- case DATA_KAELTHAS_INTRO_STATE:
- _kaelthasIntroState = data;
- SaveToDB();
- break;
default:
break;
}
@@ -155,13 +148,8 @@ class instance_magisters_terrace : public InstanceMapScript
{
_kaelthasPreTrashGUIDs.erase(unit->GetGUID());
if (_kaelthasPreTrashGUIDs.size() == 0)
- {
if (Creature* kaelthas = GetCreature(DATA_KAELTHAS_SUNSTRIDER))
- {
kaelthas->AI()->SetData(DATA_KAELTHAS_INTRO, IN_PROGRESS);
- SetData(DATA_KAELTHAS_INTRO_STATE, DONE);
- }
- }
}
break;
default:
@@ -175,10 +163,6 @@ class instance_magisters_terrace : public InstanceMapScript
switch (go->GetEntry())
{
- case GO_KAEL_STATUE_1:
- case GO_KAEL_STATUE_2:
- _statueGUIDs.push_back(go->GetGUID());
- break;
case GO_ESCAPE_ORB:
if (GetBossState(DATA_KAELTHAS_SUNSTRIDER) == DONE)
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
@@ -221,12 +205,7 @@ class instance_magisters_terrace : public InstanceMapScript
_delrissaDeathCount = 0;
break;
case DATA_KAELTHAS_SUNSTRIDER:
- if (state == NOT_STARTED)
- {
- for (ObjectGuid guid : _statueGUIDs)
- HandleGameObject(guid, false);
- }
- else if (state == DONE)
+ if (state == DONE)
if (GameObject* orb = GetGameObject(DATA_ESCAPE_ORB))
orb->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
break;
@@ -236,22 +215,10 @@ class instance_magisters_terrace : public InstanceMapScript
return true;
}
- void WriteSaveDataMore(std::ostringstream& data) override
- {
- data << _kaelthasIntroState;
- }
-
- void ReadSaveDataMore(std::istringstream& data) override
- {
- data >> _kaelthasIntroState;
- }
-
protected:
EventMap _events;
- GuidVector _statueGUIDs;
GuidSet _kaelthasPreTrashGUIDs;
uint8 _delrissaDeathCount;
- uint8 _kaelthasIntroState;
};
InstanceScript* GetInstanceScript(InstanceMap* map) const override
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h
index 5db4c6302ed..63041a51618 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h
@@ -38,8 +38,6 @@ enum MTDataTypes
DATA_DELRISSA_DEATH_COUNT,
// Additional data
- DATA_KAELTHAS_INTRO_STATE,
-
DATA_KALECGOS,
DATA_ESCAPE_ORB
};
@@ -80,8 +78,6 @@ enum MTGameObjectIds
GO_SUNWELL_RAID_GATE_4 = 187770,
GO_SUNWELL_RAID_GATE_5 = 187896,
GO_ASYLUM_DOOR = 188064,
- GO_KAEL_STATUE_1 = 188165,
- GO_KAEL_STATUE_2 = 188166,
GO_ESCAPE_ORB = 188173
};