fix(Scripts/DireMaul): immolthar and adds are now immune to combat until the pylons are activated (#9007)

Co-authored-by: Patou01 <youdontneed@this.com>
This commit is contained in:
patou01
2021-11-12 01:02:01 +01:00
committed by GitHub
parent d3c076424c
commit adbad6fb19
@@ -35,6 +35,7 @@ public:
_pylonsState = 0; _pylonsState = 0;
_northWingProgress = 0; _northWingProgress = 0;
_northWingBosses = 0; _northWingBosses = 0;
HighborneSummoners.clear();
} }
void OnCreatureCreate(Creature* creature) override void OnCreatureCreate(Creature* creature) override
@@ -43,10 +44,25 @@ public:
{ {
case NPC_IMMOL_THAR: case NPC_IMMOL_THAR:
_immoltharGUID = creature->GetGUID(); _immoltharGUID = creature->GetGUID();
if (_pylonsState == ALL_PYLONS_OFF)
{
creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
else
{
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
break; break;
case NPC_HIGHBORNE_SUMMONER: case NPC_HIGHBORNE_SUMMONER:
if (_pylonsState == ALL_PYLONS_OFF) if (_pylonsState == ALL_PYLONS_OFF)
{
creature->DespawnOrUnsummon(5000); creature->DespawnOrUnsummon(5000);
}
else
{
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
HighborneSummoners.push_back(creature->GetGUID());
break; break;
} }
} }
@@ -100,6 +116,14 @@ public:
{ {
immol->setActive(true); immol->setActive(true);
immol->GetAI()->SetData(1, 1); immol->GetAI()->SetData(1, 1);
immol->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
for (const auto& guid : HighborneSummoners)
{
if (Creature* summoner = instance->GetCreature(guid))
{
summoner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
} }
} }
break; break;
@@ -153,6 +177,7 @@ public:
uint32 _northWingBosses; uint32 _northWingBosses;
ObjectGuid _immoltharGUID; ObjectGuid _immoltharGUID;
std::vector<ObjectGuid> HighborneSummoners;
}; };
InstanceScript* GetInstanceScript(InstanceMap* map) const override InstanceScript* GetInstanceScript(InstanceMap* map) const override