feat(Core/Maps): AreaBoundary (#10525)

* cherry-picked commit (https://github.com/TrinityCore/TrinityCore/commit/2da458c56d024aac04468ce2af454a83ad790bf6)
This commit is contained in:
IntelligentQuantum
2022-04-15 16:40:41 +04:30
committed by GitHub
parent c1747f2fbf
commit ab4ee71762
169 changed files with 918 additions and 628 deletions
@@ -111,15 +111,15 @@ public:
}
}
void EnterEvadeMode() override
void EnterEvadeMode(EvadeReason why) override
{
BossAI::EnterEvadeMode();
BossAI::EnterEvadeMode(why);
if (Creature* alythess = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_GRAND_WARLOCK_ALYTHESS)))
{
if (!alythess->IsAlive())
alythess->Respawn(true);
else if (!alythess->IsInEvadeMode())
alythess->AI()->EnterEvadeMode();
alythess->AI()->EnterEvadeMode(why);
}
}
@@ -259,15 +259,15 @@ public:
}
}
void EnterEvadeMode() override
void EnterEvadeMode(EvadeReason why) override
{
BossAI::EnterEvadeMode();
BossAI::EnterEvadeMode(why);
if (Creature* scorlash = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_LADY_SACROLASH)))
{
if (!scorlash->IsAlive())
scorlash->Respawn(true);
else if (!scorlash->IsInEvadeMode())
scorlash->AI()->EnterEvadeMode();
scorlash->AI()->EnterEvadeMode(why);
}
}
@@ -308,11 +308,11 @@ public:
events.Reset();
}
void EnterEvadeMode() override
void EnterEvadeMode(EvadeReason why) override
{
if (me->GetReactState() == REACT_PASSIVE)
return;
ScriptedAI::EnterEvadeMode();
ScriptedAI::EnterEvadeMode(why);
}
void AttackStart(Unit* who) override
@@ -176,12 +176,12 @@ public:
me->SetReactState(REACT_PASSIVE);
}
void EnterEvadeMode() override
void EnterEvadeMode(EvadeReason why) override
{
if (InstanceScript* instance = me->GetInstanceScript())
if (Creature* muru = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_MURU)))
if (!muru->IsInEvadeMode())
muru->AI()->EnterEvadeMode();
muru->AI()->EnterEvadeMode(why);
me->DespawnOrUnsummon();
}
@@ -22,13 +22,13 @@
DoorData const doorData[] =
{
{ GO_FIRE_BARRIER, DATA_FELMYST_DOORS, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
{ GO_MURUS_GATE_1, DATA_MURU, DOOR_TYPE_ROOM, BOUNDARY_NONE },
{ GO_MURUS_GATE_2, DATA_MURU, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
{ GO_BOSS_COLLISION_1, DATA_KALECGOS, DOOR_TYPE_ROOM, BOUNDARY_NONE },
{ GO_BOSS_COLLISION_2, DATA_KALECGOS, DOOR_TYPE_ROOM, BOUNDARY_NONE },
{ GO_FORCE_FIELD, DATA_KALECGOS, DOOR_TYPE_ROOM, BOUNDARY_NONE },
{ 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE } // END
{ GO_FIRE_BARRIER, DATA_FELMYST_DOORS, DOOR_TYPE_PASSAGE },
{ GO_MURUS_GATE_1, DATA_MURU, DOOR_TYPE_ROOM },
{ GO_MURUS_GATE_2, DATA_MURU, DOOR_TYPE_PASSAGE },
{ GO_BOSS_COLLISION_1, DATA_KALECGOS, DOOR_TYPE_ROOM },
{ GO_BOSS_COLLISION_2, DATA_KALECGOS, DOOR_TYPE_ROOM },
{ GO_FORCE_FIELD, DATA_KALECGOS, DOOR_TYPE_ROOM },
{ 0, 0, DOOR_TYPE_ROOM } // END
};
class instance_sunwell_plateau : public InstanceMapScript