mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-14 16:03:45 +00:00
feat(Core/Instances): Implement SummonData (#20582)
This commit is contained in:
@@ -59,6 +59,9 @@ void InstanceScript::OnCreatureCreate(Creature* creature)
|
||||
{
|
||||
AddObject(creature);
|
||||
AddMinion(creature);
|
||||
|
||||
if (creature->IsSummon())
|
||||
SetSummoner(creature);
|
||||
}
|
||||
|
||||
void InstanceScript::OnCreatureRemove(Creature* creature)
|
||||
@@ -194,6 +197,15 @@ void InstanceScript::LoadObjectData(ObjectData const* data, ObjectInfoMap& objec
|
||||
}
|
||||
}
|
||||
|
||||
void InstanceScript::LoadSummonData(ObjectData const* data)
|
||||
{
|
||||
while (data->entry)
|
||||
{
|
||||
_summonInfo[data->entry] = data->type;
|
||||
++data;
|
||||
}
|
||||
}
|
||||
|
||||
void InstanceScript::UpdateMinionState(Creature* minion, EncounterState state)
|
||||
{
|
||||
switch (state)
|
||||
@@ -348,6 +360,16 @@ void InstanceScript::RemoveMinion(Creature* minion)
|
||||
AddMinion(minion, false);
|
||||
}
|
||||
|
||||
void InstanceScript::SetSummoner(Creature* creature)
|
||||
{
|
||||
auto const& summonData = _summonInfo.find(creature->GetEntry());
|
||||
|
||||
if (summonData != _summonInfo.end())
|
||||
if (Creature* summoner = GetCreature(summonData->second))
|
||||
if (summoner->IsAIEnabled)
|
||||
summoner->AI()->JustSummoned(creature);
|
||||
}
|
||||
|
||||
bool InstanceScript::SetBossState(uint32 id, EncounterState state)
|
||||
{
|
||||
if (id < bosses.size())
|
||||
|
||||
Reference in New Issue
Block a user