mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 10:26:28 +01:00
Scripts/MGT: Kael'thas intro can now be skipped when not killing the trash pack in his room
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -39,7 +39,6 @@ enum MTDataTypes
|
||||
DATA_DELRISSA_DEATH_COUNT,
|
||||
|
||||
// Additional data
|
||||
DATA_KAELTHAS_INTRO_STATE,
|
||||
DATA_KALECGOS,
|
||||
DATA_ESCAPE_ORB
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user