mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-19 17:05:44 +01:00
Scripts/VP: make sure that Air Current is getting respawned properly to prevent the issue that the Upwinds of Altairus are having multiple auras
This commit is contained in:
@@ -42,14 +42,7 @@ enum Spells
|
||||
SPELL_DOWNWIND_OF_ALTAIRUS = 88286,
|
||||
|
||||
// Twister
|
||||
SPELL_TWISTER_AURA = 88313,
|
||||
};
|
||||
|
||||
enum NPCs
|
||||
{
|
||||
NPC_INVISIBLE_STALKER = 42844,
|
||||
NPC_AIR_CURRENT = 47305,
|
||||
NPC_TWISTER = 47342,
|
||||
SPELL_TWISTER_AURA = 88313
|
||||
};
|
||||
|
||||
enum Texts
|
||||
@@ -138,12 +131,16 @@ class boss_altairus : public CreatureScript
|
||||
me->SummonCreature(NPC_INVISIBLE_STALKER, InvisibleStalkerPos);
|
||||
|
||||
if (IsHeroic())
|
||||
{
|
||||
for (int8 i = 0; i < POINT_TWISTER_MAX; i++)
|
||||
{
|
||||
if (Creature* twister = me->SummonCreature(NPC_TWISTER, TwisterSpawnPoints[i]))
|
||||
{
|
||||
twister->SetHover(true);
|
||||
twister->GetMotionMaster()->MoveRandom(10.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -85,9 +85,9 @@ Position const SecondPrismGroundingFieldPoints[PrismGroundingFieldPoints] =
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
{
|
||||
{ NPC_ALTAIRUS, DATA_ALTAIRUS },
|
||||
{ NPC_ASAAD, DATA_ASAAD },
|
||||
{ 0, 0 }
|
||||
{ NPC_ALTAIRUS, DATA_ALTAIRUS },
|
||||
{ NPC_ASAAD, DATA_ASAAD },
|
||||
{ 0, 0 } // END
|
||||
};
|
||||
|
||||
class instance_vortex_pinnacle : public InstanceMapScript
|
||||
@@ -117,6 +117,9 @@ class instance_vortex_pinnacle : public InstanceMapScript
|
||||
case NPC_HOWLING_GALE:
|
||||
creature->SetReactState(REACT_PASSIVE);
|
||||
break;
|
||||
case NPC_AIR_CURRENT:
|
||||
airCurrentGUIDs.push_back(creature->GetGUID());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -133,6 +136,13 @@ class instance_vortex_pinnacle : public InstanceMapScript
|
||||
if (state == DONE)
|
||||
SummonSlipstreams(type);
|
||||
|
||||
if (type == DATA_ALTAIRUS && (state == DONE || state == FAIL))
|
||||
{
|
||||
for (ObjectGuid guid : airCurrentGUIDs)
|
||||
if (Creature* air = instance->GetCreature(guid))
|
||||
air->DespawnOrUnsummon(0, 30s);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -219,6 +229,7 @@ class instance_vortex_pinnacle : public InstanceMapScript
|
||||
}
|
||||
|
||||
EventMap events;
|
||||
GuidVector airCurrentGUIDs;
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
|
||||
@@ -28,8 +28,8 @@ uint32 const PrismGroundingFieldPoints = 3;
|
||||
|
||||
enum DataTypes
|
||||
{
|
||||
// Encounter States/Boss GUIDs
|
||||
DATA_GRAND_VIZIER_ERTAN,
|
||||
// Encounter Data
|
||||
DATA_GRAND_VIZIER_ERTAN = 0,
|
||||
DATA_ALTAIRUS,
|
||||
DATA_ASAAD,
|
||||
|
||||
@@ -50,13 +50,16 @@ enum DataTypes
|
||||
|
||||
enum Misc
|
||||
{
|
||||
// Bosses
|
||||
NPC_GRAND_VIZIER_ERTAN = 43878,
|
||||
NPC_ALTAIRUS = 43873,
|
||||
NPC_ASAAD = 43875,
|
||||
|
||||
NPC_INVISIBLE_STALKER = 42844,
|
||||
NPC_AIR_CURRENT = 47305,
|
||||
NPC_TWISTER = 47342,
|
||||
NPC_SLIPSTREAM = 45455,
|
||||
NPC_SLIPSTREAM_LANDING_ZONE = 45504,
|
||||
|
||||
NPC_HOWLING_GALE = 45572,
|
||||
|
||||
// Grounding Field
|
||||
|
||||
Reference in New Issue
Block a user