Scripts/MGT: Kael'thas intro can now be skipped when not killing the trash pack in his room

This commit is contained in:
Ovahlord
2019-02-20 21:23:43 +01:00
parent f6e9ff5ca4
commit ed8c1830f5
3 changed files with 6 additions and 27 deletions

View File

@@ -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);
}
}

View File

@@ -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

View File

@@ -39,7 +39,6 @@ enum MTDataTypes
DATA_DELRISSA_DEATH_COUNT,
// Additional data
DATA_KAELTHAS_INTRO_STATE,
DATA_KALECGOS,
DATA_ESCAPE_ORB
};