diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp index 4641e79d52f..81ae9d20a4d 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp @@ -156,9 +156,7 @@ struct boss_felblood_kaelthas : public BossAI { _Reset(); Initialize(); - if (instance->GetData(DATA_KAELTHAS_INTRO_STATE) != DONE) - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); - + events.SetPhase(PHASE_INTRO); } void JustDied(Unit* /*killer*/) override @@ -211,7 +209,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->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); 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 bafc264ed47..2d6fc7cf11e 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp @@ -82,7 +82,6 @@ class instance_magisters_terrace : public InstanceMapScript void Initialize() override { _delrissaDeathCount = 0; - _kaelthasIntroState = 0; } uint32 GetData(uint32 type) const override @@ -91,8 +90,6 @@ class instance_magisters_terrace : public InstanceMapScript { case DATA_DELRISSA_DEATH_COUNT: return _delrissaDeathCount; - case DATA_KAELTHAS_INTRO_STATE: - return _kaelthasIntroState; default: break; } @@ -109,9 +106,6 @@ class instance_magisters_terrace : public InstanceMapScript else _delrissaDeathCount = 0; break; - case DATA_KAELTHAS_INTRO_STATE: - _kaelthasIntroState = data; - SaveToDB(); break; default: break; @@ -154,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: @@ -226,21 +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; 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 e423e40b9c8..21bd641a2d1 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h @@ -39,7 +39,6 @@ enum MTDataTypes DATA_DELRISSA_DEATH_COUNT, // Additional data - DATA_KAELTHAS_INTRO_STATE, DATA_KALECGOS, DATA_ESCAPE_ORB };