mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/InstanceScript: Refactored door types to reflect its behavior (#29406)
This commit is contained in:
@@ -183,7 +183,7 @@ void InstanceScript::LoadDoorData(DoorData const* data)
|
||||
while (data->entry)
|
||||
{
|
||||
if (data->bossId < bosses.size())
|
||||
doors.insert(std::make_pair(data->entry, DoorInfo(&bosses[data->bossId], data->type)));
|
||||
doors.insert(std::make_pair(data->entry, DoorInfo(&bosses[data->bossId], data->Behavior)));
|
||||
|
||||
++data;
|
||||
}
|
||||
@@ -228,17 +228,20 @@ void InstanceScript::UpdateDoorState(GameObject* door)
|
||||
for (; range.first != range.second && open; ++range.first)
|
||||
{
|
||||
DoorInfo const& info = range.first->second;
|
||||
switch (info.type)
|
||||
switch (info.Behavior)
|
||||
{
|
||||
case DOOR_TYPE_ROOM:
|
||||
case EncounterDoorBehavior::OpenWhenNotInProgress:
|
||||
open = (info.bossInfo->state != IN_PROGRESS);
|
||||
break;
|
||||
case DOOR_TYPE_PASSAGE:
|
||||
case EncounterDoorBehavior::OpenWhenDone:
|
||||
open = (info.bossInfo->state == DONE);
|
||||
break;
|
||||
case DOOR_TYPE_SPAWN_HOLE:
|
||||
case EncounterDoorBehavior::OpenWhenInProgress:
|
||||
open = (info.bossInfo->state == IN_PROGRESS);
|
||||
break;
|
||||
case EncounterDoorBehavior::OpenWhenNotDone:
|
||||
open = (info.bossInfo->state != DONE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -347,11 +350,9 @@ void InstanceScript::AddDoor(GameObject* door, bool add)
|
||||
DoorInfo const& data = range.first->second;
|
||||
|
||||
if (add)
|
||||
{
|
||||
data.bossInfo->door[data.type].insert(door->GetGUID());
|
||||
}
|
||||
data.bossInfo->door[AsUnderlyingType(data.Behavior)].insert(door->GetGUID());
|
||||
else
|
||||
data.bossInfo->door[data.type].erase(door->GetGUID());
|
||||
data.bossInfo->door[AsUnderlyingType(data.Behavior)].erase(door->GetGUID());
|
||||
}
|
||||
|
||||
if (add)
|
||||
@@ -454,9 +455,9 @@ bool InstanceScript::SetBossState(uint32 id, EncounterState state)
|
||||
instance->UpdateInstanceLock({ dungeonEncounter, id, state });
|
||||
}
|
||||
|
||||
for (uint32 type = 0; type < MAX_DOOR_TYPES; ++type)
|
||||
for (GuidSet::iterator i = bossInfo->door[type].begin(); i != bossInfo->door[type].end(); ++i)
|
||||
if (GameObject* door = instance->GetGameObject(*i))
|
||||
for (GuidSet const& doorSet : bossInfo->door)
|
||||
for (ObjectGuid const& doorGUID : doorSet)
|
||||
if (GameObject* door = instance->GetGameObject(doorGUID))
|
||||
UpdateDoorState(door);
|
||||
|
||||
GuidSet minions = bossInfo->minion; // Copy to prevent iterator invalidation (minion might be unsummoned in UpdateMinionState)
|
||||
|
||||
@@ -77,12 +77,13 @@ enum EncounterState
|
||||
TO_BE_DECIDED = 5
|
||||
};
|
||||
|
||||
enum DoorType
|
||||
enum class EncounterDoorBehavior : uint8
|
||||
{
|
||||
DOOR_TYPE_ROOM = 0, // Door can open if encounter is not in progress
|
||||
DOOR_TYPE_PASSAGE = 1, // Door can open if encounter is done
|
||||
DOOR_TYPE_SPAWN_HOLE = 2, // Door can open if encounter is in progress, typically used for spawning places
|
||||
MAX_DOOR_TYPES
|
||||
OpenWhenNotInProgress = 0, // open if encounter is not in progress
|
||||
OpenWhenDone = 1, // open if encounter is done
|
||||
OpenWhenInProgress = 2, // open if encounter is in progress, typically used for spawning places
|
||||
OpenWhenNotDone = 3, // open if encounter is not done
|
||||
Max
|
||||
};
|
||||
|
||||
static constexpr uint32 MAX_DUNGEON_ENCOUNTERS_PER_BOSS = 4;
|
||||
@@ -96,7 +97,7 @@ struct DungeonEncounterData
|
||||
struct DoorData
|
||||
{
|
||||
uint32 entry, bossId;
|
||||
DoorType type;
|
||||
EncounterDoorBehavior Behavior;
|
||||
};
|
||||
|
||||
struct BossBoundaryEntry
|
||||
@@ -139,7 +140,7 @@ struct BossInfo
|
||||
DungeonEncounterEntry const* GetDungeonEncounterForDifficulty(Difficulty difficulty) const;
|
||||
|
||||
EncounterState state;
|
||||
GuidSet door[MAX_DOOR_TYPES];
|
||||
std::array<GuidSet, static_cast<uint8>(EncounterDoorBehavior::Max)> door;
|
||||
GuidSet minion;
|
||||
CreatureBoundary boundary;
|
||||
std::array<DungeonEncounterEntry const*, MAX_DUNGEON_ENCOUNTERS_PER_BOSS> DungeonEncounters;
|
||||
@@ -147,10 +148,10 @@ struct BossInfo
|
||||
|
||||
struct DoorInfo
|
||||
{
|
||||
explicit DoorInfo(BossInfo* _bossInfo, DoorType _type)
|
||||
: bossInfo(_bossInfo), type(_type) { }
|
||||
explicit DoorInfo(BossInfo* _bossInfo, EncounterDoorBehavior _behavior)
|
||||
: bossInfo(_bossInfo), Behavior(_behavior) { }
|
||||
BossInfo* bossInfo;
|
||||
DoorType type;
|
||||
EncounterDoorBehavior Behavior;
|
||||
};
|
||||
|
||||
struct MinionInfo
|
||||
|
||||
@@ -32,9 +32,9 @@ ObjectData const creatureData[] =
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_COLLISION, DATA_GAROTHI_WORLDBREAKER, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ROCK, DATA_GAROTHI_WORLDBREAKER, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_COLLISION, DATA_GAROTHI_WORLDBREAKER, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ROCK, DATA_GAROTHI_WORLDBREAKER, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -35,9 +35,9 @@ ObjectData const creatureData[] =
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_GUARM_BOSS_DOOR_ENTRANCE, DATA_GUARM, DOOR_TYPE_ROOM },
|
||||
{ GO_GUARM_BOSS_DOOR_EXIT, DATA_GUARM, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_GUARM_BOSS_DOOR_ENTRANCE, DATA_GUARM, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_GUARM_BOSS_DOOR_EXIT, DATA_GUARM, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -36,8 +36,8 @@ ObjectData const creatureData[] =
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_KAZZARA_DOOR, DATA_KAZZARA_THE_HELLFORGED, DOOR_TYPE_ROOM },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_KAZZARA_DOOR, DATA_KAZZARA_THE_HELLFORGED, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
ObjectData const objectData[] =
|
||||
|
||||
@@ -36,9 +36,9 @@ ObjectData const creatureData[] =
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_ARCANE_VAULTS_DOOR_LEYMOR_ENTRANCE, DATA_LEYMOR, DOOR_TYPE_ROOM },
|
||||
{ GO_ARCANE_VAULTS_DOOR_LEYMOR_EXIT, DATA_LEYMOR, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_ARCANE_VAULTS_DOOR_LEYMOR_ENTRANCE, DATA_LEYMOR, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ARCANE_VAULTS_DOOR_LEYMOR_EXIT, DATA_LEYMOR, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -29,8 +29,8 @@ ObjectData const creatureData[] =
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_FIRE_WALL, DATA_KOKIA_BLAZEHOOF, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_FIRE_WALL, DATA_KOKIA_BLAZEHOOF, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -24,10 +24,10 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_ARGALOTH_DOOR, DATA_ARGALOTH, DOOR_TYPE_ROOM },
|
||||
{ GO_OCCUTHAR_DOOR, DATA_OCCUTHAR, DOOR_TYPE_ROOM },
|
||||
{ GO_ALIZABAL_DOOR, DATA_ALIZABAL, DOOR_TYPE_ROOM },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_ARGALOTH_DOOR, DATA_ARGALOTH, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_OCCUTHAR_DOOR, DATA_OCCUTHAR, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ALIZABAL_DOOR, DATA_ALIZABAL, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -30,13 +30,13 @@ uint32 const DragonspireMobs[3] = { NPC_BLACKHAND_DREADWEAVER, NPC_BLACKHAND_SUM
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_DOORS, DATA_PYROGAURD_EMBERSEER, DOOR_TYPE_ROOM },
|
||||
{ GO_EMBERSEER_OUT, DATA_PYROGAURD_EMBERSEER, DOOR_TYPE_PASSAGE },
|
||||
{ GO_DRAKKISATH_DOOR_1, DATA_GENERAL_DRAKKISATH, DOOR_TYPE_PASSAGE },
|
||||
{ GO_DRAKKISATH_DOOR_2, DATA_GENERAL_DRAKKISATH, DOOR_TYPE_PASSAGE },
|
||||
{ GO_PORTCULLIS_ACTIVE, DATA_WARCHIEF_REND_BLACKHAND, DOOR_TYPE_PASSAGE },
|
||||
{ GO_PORTCULLIS_TOBOSSROOMS, DATA_WARCHIEF_REND_BLACKHAND, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM }
|
||||
{ GO_DOORS, DATA_PYROGAURD_EMBERSEER, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_EMBERSEER_OUT, DATA_PYROGAURD_EMBERSEER, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_DRAKKISATH_DOOR_1, DATA_GENERAL_DRAKKISATH, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_DRAKKISATH_DOOR_2, DATA_GENERAL_DRAKKISATH, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_PORTCULLIS_ACTIVE, DATA_WARCHIEF_REND_BLACKHAND, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_PORTCULLIS_TOBOSSROOMS, DATA_WARCHIEF_REND_BLACKHAND, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
|
||||
};
|
||||
|
||||
static constexpr DungeonEncounterData Encounters[] =
|
||||
|
||||
@@ -27,15 +27,15 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_PORTCULLIS_RAZORGORE, DATA_RAZORGORE_THE_UNTAMED, DOOR_TYPE_PASSAGE },
|
||||
{ GO_PORTCULLIS_VAELASTRASZ, DATA_VAELASTRAZ_THE_CORRUPT, DOOR_TYPE_PASSAGE },
|
||||
{ GO_PORTCULLIS_BROODLORD, DATA_BROODLORD_LASHLAYER, DOOR_TYPE_PASSAGE },
|
||||
{ GO_PORTCULLIS_THREEDRAGONS, DATA_FIREMAW, DOOR_TYPE_PASSAGE },
|
||||
{ GO_PORTCULLIS_THREEDRAGONS, DATA_EBONROC, DOOR_TYPE_PASSAGE },
|
||||
{ GO_PORTCULLIS_THREEDRAGONS, DATA_FLAMEGOR, DOOR_TYPE_PASSAGE },
|
||||
{ GO_PORTCULLIS_CHROMAGGUS, DATA_CHROMAGGUS, DOOR_TYPE_PASSAGE },
|
||||
{ GO_PORTCULLIS_NEFARIAN, DATA_NEFARIAN, DOOR_TYPE_ROOM },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_PORTCULLIS_RAZORGORE, DATA_RAZORGORE_THE_UNTAMED, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_PORTCULLIS_VAELASTRASZ, DATA_VAELASTRAZ_THE_CORRUPT, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_PORTCULLIS_BROODLORD, DATA_BROODLORD_LASHLAYER, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_PORTCULLIS_THREEDRAGONS, DATA_FIREMAW, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_PORTCULLIS_THREEDRAGONS, DATA_EBONROC, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_PORTCULLIS_THREEDRAGONS, DATA_FLAMEGOR, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_PORTCULLIS_CHROMAGGUS, DATA_CHROMAGGUS, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_PORTCULLIS_NEFARIAN, DATA_NEFARIAN, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
|
||||
@@ -52,12 +52,12 @@ ObjectData const gameObjectData[] =
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_SUNWELL_RAID_GATE_2 , DATA_SELIN_FIREHEART, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ASSEMBLY_CHAMBER_DOOR, DATA_SELIN_FIREHEART, DOOR_TYPE_ROOM },
|
||||
{ GO_SUNWELL_RAID_GATE_5, DATA_VEXALLUS, DOOR_TYPE_PASSAGE },
|
||||
{ GO_SUNWELL_RAID_GATE_4, DATA_PRIESTESS_DELRISSA, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ASYLUM_DOOR, DATA_KAELTHAS_SUNSTRIDER, DOOR_TYPE_ROOM },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_SUNWELL_RAID_GATE_2 , DATA_SELIN_FIREHEART, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ASSEMBLY_CHAMBER_DOOR, DATA_SELIN_FIREHEART, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_SUNWELL_RAID_GATE_5, DATA_VEXALLUS, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_SUNWELL_RAID_GATE_4, DATA_PRIESTESS_DELRISSA, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ASYLUM_DOOR, DATA_KAELTHAS_SUNSTRIDER, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -34,13 +34,13 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_FIRE_BARRIER, DATA_FELMYST, 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
|
||||
{ GO_FIRE_BARRIER, DATA_FELMYST, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_MURUS_GATE_1, DATA_MURU, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_MURUS_GATE_2, DATA_MURU, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_BOSS_COLLISION_1, DATA_KALECGOS, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_BOSS_COLLISION_2, DATA_KALECGOS, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_FORCE_FIELD, DATA_KALECGOS, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
|
||||
@@ -22,12 +22,12 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_VENOXIS_COIL, DATA_VENOXIS, DOOR_TYPE_ROOM },
|
||||
{ GO_ARENA_DOOR_1, DATA_MANDOKIR, DOOR_TYPE_ROOM },
|
||||
{ GO_FORCEFIELD, DATA_KILNARA, DOOR_TYPE_ROOM },
|
||||
{ GO_ZANZIL_DOOR, DATA_ZANZIL, DOOR_TYPE_ROOM },
|
||||
//{ GO_THE_CACHE_OF_MADNESS_DOOR, DATA_xxxxxxx, DOOR_TYPE_ROOM },
|
||||
{ 0, 0, DOOR_TYPE_ROOM }
|
||||
{ GO_VENOXIS_COIL, DATA_VENOXIS, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ARENA_DOOR_1, DATA_MANDOKIR, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_FORCEFIELD, DATA_KILNARA, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ZANZIL_DOOR, DATA_ZANZIL, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
//{ GO_THE_CACHE_OF_MADNESS_DOOR, DATA_xxxxxxx, EncounterStateForOpenDoor::NotInProgress },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -123,9 +123,9 @@ enum COSMisc
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_MALGANIS_GATE_2, DATA_MAL_GANIS, DOOR_TYPE_ROOM },
|
||||
{ GO_EXIT_GATE, DATA_MAL_GANIS, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_MALGANIS_GATE_2, DATA_MAL_GANIS, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_EXIT_GATE, DATA_MAL_GANIS, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -25,19 +25,19 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{GO_ANHUURS_DOOR, DATA_TEMPLE_GUARDIAN_ANHUUR, DOOR_TYPE_PASSAGE },
|
||||
{GO_ANHUURS_BRIDGE, DATA_TEMPLE_GUARDIAN_ANHUUR, DOOR_TYPE_PASSAGE },
|
||||
{GO_DOODAD_ULDUM_ELEVATOR_COL01, DATA_TEMPLE_GUARDIAN_ANHUUR, DOOR_TYPE_PASSAGE },
|
||||
{GO_VAULT_OF_LIGHTS_DOOR, DATA_VAULT_OF_LIGHTS, DOOR_TYPE_PASSAGE },
|
||||
{GO_DOODAD_ULDUM_LIGHTMACHINE_02, DATA_EARTH_WARDEN, DOOR_TYPE_PASSAGE },
|
||||
{GO_DOODAD_ULDUM_LASERBEAMS01, DATA_EARTH_WARDEN, DOOR_TYPE_PASSAGE },
|
||||
{GO_DOODAD_ULDUM_LIGHTMACHINE_01, DATA_FIRE_WARDEN, DOOR_TYPE_PASSAGE },
|
||||
{GO_DOODAD_ULDUM_LASERBEAMS_01, DATA_FIRE_WARDEN, DOOR_TYPE_PASSAGE },
|
||||
{GO_DOODAD_ULDUM_LIGHTMACHINE_03, DATA_WATER_WARDEN, DOOR_TYPE_PASSAGE },
|
||||
{GO_DOODAD_ULDUM_LASERBEAMS_03, DATA_WATER_WARDEN, DOOR_TYPE_PASSAGE },
|
||||
{GO_DOODAD_ULDUM_LIGHTMACHINE_04, DATA_AIR_WARDEN, DOOR_TYPE_PASSAGE },
|
||||
{GO_DOODAD_ULDUM_LASERBEAMS_02, DATA_AIR_WARDEN, DOOR_TYPE_PASSAGE },
|
||||
{0, 0, DOOR_TYPE_ROOM }
|
||||
{GO_ANHUURS_DOOR, DATA_TEMPLE_GUARDIAN_ANHUUR, EncounterDoorBehavior::OpenWhenDone },
|
||||
{GO_ANHUURS_BRIDGE, DATA_TEMPLE_GUARDIAN_ANHUUR, EncounterDoorBehavior::OpenWhenDone },
|
||||
{GO_DOODAD_ULDUM_ELEVATOR_COL01, DATA_TEMPLE_GUARDIAN_ANHUUR, EncounterDoorBehavior::OpenWhenDone },
|
||||
{GO_VAULT_OF_LIGHTS_DOOR, DATA_VAULT_OF_LIGHTS, EncounterDoorBehavior::OpenWhenDone },
|
||||
{GO_DOODAD_ULDUM_LIGHTMACHINE_02, DATA_EARTH_WARDEN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{GO_DOODAD_ULDUM_LASERBEAMS01, DATA_EARTH_WARDEN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{GO_DOODAD_ULDUM_LIGHTMACHINE_01, DATA_FIRE_WARDEN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{GO_DOODAD_ULDUM_LASERBEAMS_01, DATA_FIRE_WARDEN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{GO_DOODAD_ULDUM_LIGHTMACHINE_03, DATA_WATER_WARDEN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{GO_DOODAD_ULDUM_LASERBEAMS_03, DATA_WATER_WARDEN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{GO_DOODAD_ULDUM_LIGHTMACHINE_04, DATA_AIR_WARDEN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{GO_DOODAD_ULDUM_LASERBEAMS_02, DATA_AIR_WARDEN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -39,11 +39,11 @@ ObjectData const creatureData[] =
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ AQ40_DOOR_1, DATA_SARTURA, DOOR_TYPE_PASSAGE },
|
||||
{ AQ40_DOOR_1, DATA_HUHURAN, DOOR_TYPE_PASSAGE },
|
||||
{ AQ40_DOOR_2, DATA_TWIN_EMPERORS, DOOR_TYPE_PASSAGE },
|
||||
{ AQ40_DOOR_3, DATA_SKERAM, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ AQ40_DOOR_1, DATA_SARTURA, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ AQ40_DOOR_1, DATA_HUHURAN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ AQ40_DOOR_2, DATA_TWIN_EMPERORS, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ AQ40_DOOR_3, DATA_SKERAM, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_PRINCE_TALDARAM_GATE, DATA_PRINCE_TALDARAM, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_PRINCE_TALDARAM_GATE, DATA_PRINCE_TALDARAM, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
|
||||
@@ -24,11 +24,11 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_KRIKTHIR_DOOR, DATA_KRIKTHIR, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ANUBARAK_DOOR_1, DATA_ANUBARAK, DOOR_TYPE_ROOM },
|
||||
{ GO_ANUBARAK_DOOR_2, DATA_ANUBARAK, DOOR_TYPE_ROOM },
|
||||
{ GO_ANUBARAK_DOOR_3, DATA_ANUBARAK, DOOR_TYPE_ROOM },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_KRIKTHIR_DOOR, DATA_KRIKTHIR, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ANUBARAK_DOOR_1, DATA_ANUBARAK, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ANUBARAK_DOOR_2, DATA_ANUBARAK, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ANUBARAK_DOOR_3, DATA_ANUBARAK, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
|
||||
@@ -346,7 +346,7 @@ class boss_halion : public CreatureScript
|
||||
events.ScheduleEvent(EVENT_BREATH, randtime(Seconds(16), Seconds(25)));
|
||||
break;
|
||||
case EVENT_ACTIVATE_FIREWALL:
|
||||
// Flame ring is activated 5 seconds after starting encounter, DOOR_TYPE_ROOM is only instant.
|
||||
// Flame ring is activated 5 seconds after starting encounter, EncounterStateForOpenDoor::NotInProgress is only instant.
|
||||
for (uint8 i = DATA_FLAME_RING; i <= DATA_TWILIGHT_FLAME_RING; ++i)
|
||||
if (GameObject* flameRing = instance->GetGameObject(i))
|
||||
instance->HandleGameObject(ObjectGuid::Empty, false, flameRing);
|
||||
|
||||
@@ -34,13 +34,13 @@ BossBoundaryData const boundaries =
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_FIRE_FIELD, DATA_BALTHARUS_THE_WARBORN, DOOR_TYPE_PASSAGE },
|
||||
{ GO_FLAME_WALLS, DATA_BALTHARUS_THE_WARBORN, DOOR_TYPE_PASSAGE },
|
||||
{ GO_FLAME_WALLS, DATA_SAVIANA_RAGEFIRE, DOOR_TYPE_PASSAGE },
|
||||
{ GO_FLAME_WALLS, DATA_GENERAL_ZARITHRIAN, DOOR_TYPE_ROOM },
|
||||
{ GO_FLAME_RING, DATA_HALION, DOOR_TYPE_ROOM },
|
||||
{ GO_TWILIGHT_FLAME_RING, DATA_HALION, DOOR_TYPE_ROOM },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_FIRE_FIELD, DATA_BALTHARUS_THE_WARBORN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_FLAME_WALLS, DATA_BALTHARUS_THE_WARBORN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_FLAME_WALLS, DATA_SAVIANA_RAGEFIRE, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_FLAME_WALLS, DATA_GENERAL_ZARITHRIAN, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_FLAME_RING, DATA_HALION, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_TWILIGHT_FLAME_RING, DATA_HALION, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
|
||||
@@ -83,13 +83,13 @@ ObjectData const gameObjectData[] =
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_EAST_PORTCULLIS, DATA_NORTHREND_BEASTS, DOOR_TYPE_ROOM },
|
||||
{ GO_EAST_PORTCULLIS, DATA_JARAXXUS, DOOR_TYPE_ROOM },
|
||||
{ GO_EAST_PORTCULLIS, DATA_FACTION_CRUSADERS, DOOR_TYPE_ROOM },
|
||||
{ GO_EAST_PORTCULLIS, DATA_TWIN_VALKIRIES, DOOR_TYPE_ROOM },
|
||||
{ GO_EAST_PORTCULLIS, DATA_LICH_KING, DOOR_TYPE_ROOM },
|
||||
{ GO_WEB_DOOR, DATA_ANUBARAK, DOOR_TYPE_ROOM },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_EAST_PORTCULLIS, DATA_NORTHREND_BEASTS, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_EAST_PORTCULLIS, DATA_JARAXXUS, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_EAST_PORTCULLIS, DATA_FACTION_CRUSADERS, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_EAST_PORTCULLIS, DATA_TWIN_VALKIRIES, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_EAST_PORTCULLIS, DATA_LICH_KING, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_WEB_DOOR, DATA_ANUBARAK, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -30,10 +30,10 @@ Position const EventLeaderPos2 = {1054.368f, 107.14620f, 628.4467f, 0.0f};
|
||||
|
||||
DoorData const Doors[] =
|
||||
{
|
||||
{ GO_ICE_WALL, DATA_GARFROST, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ICE_WALL, DATA_ICK, DOOR_TYPE_PASSAGE },
|
||||
{ GO_HALLS_OF_REFLECTION_PORTCULLIS, DATA_TYRANNUS, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_ICE_WALL, DATA_GARFROST, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ICE_WALL, DATA_ICK, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_HALLS_OF_REFLECTION_PORTCULLIS, DATA_TYRANNUS, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -26,12 +26,12 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_GAL_DARAH_DOOR_1, DATA_GAL_DARAH, DOOR_TYPE_PASSAGE },
|
||||
{ GO_GAL_DARAH_DOOR_2, DATA_GAL_DARAH, DOOR_TYPE_PASSAGE },
|
||||
{ GO_GAL_DARAH_DOOR_3, DATA_GAL_DARAH, DOOR_TYPE_ROOM },
|
||||
{ GO_ECK_THE_FEROCIOUS_DOOR, DATA_MOORABI, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ECK_THE_FEROCIOUS_DOOR_BEHIND, DATA_ECK_THE_FEROCIOUS, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_GAL_DARAH_DOOR_1, DATA_GAL_DARAH, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_GAL_DARAH_DOOR_2, DATA_GAL_DARAH, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_GAL_DARAH_DOOR_3, DATA_GAL_DARAH, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ECK_THE_FEROCIOUS_DOOR, DATA_MOORABI, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ECK_THE_FEROCIOUS_DOOR_BEHIND, DATA_ECK_THE_FEROCIOUS, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
|
||||
@@ -76,32 +76,32 @@ BossBoundaryData const boundaries =
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_LORD_MARROWGAR_S_ENTRANCE, DATA_LORD_MARROWGAR, DOOR_TYPE_ROOM },
|
||||
{ GO_ICEWALL, DATA_LORD_MARROWGAR, DOOR_TYPE_PASSAGE },
|
||||
{ GO_DOODAD_ICECROWN_ICEWALL02, DATA_LORD_MARROWGAR, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ORATORY_OF_THE_DAMNED_ENTRANCE, DATA_LADY_DEATHWHISPER, DOOR_TYPE_ROOM },
|
||||
{ GO_SAURFANG_S_DOOR, DATA_DEATHBRINGER_SAURFANG, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ORANGE_PLAGUE_MONSTER_ENTRANCE, DATA_FESTERGUT, DOOR_TYPE_ROOM },
|
||||
{ GO_GREEN_PLAGUE_MONSTER_ENTRANCE, DATA_ROTFACE, DOOR_TYPE_ROOM },
|
||||
{ GO_SCIENTIST_ENTRANCE, DATA_PROFESSOR_PUTRICIDE, DOOR_TYPE_ROOM },
|
||||
{ GO_CRIMSON_HALL_DOOR, DATA_BLOOD_PRINCE_COUNCIL, DOOR_TYPE_ROOM },
|
||||
{ GO_BLOOD_ELF_COUNCIL_DOOR, DATA_BLOOD_PRINCE_COUNCIL, DOOR_TYPE_PASSAGE },
|
||||
{ GO_BLOOD_ELF_COUNCIL_DOOR_RIGHT, DATA_BLOOD_PRINCE_COUNCIL, DOOR_TYPE_PASSAGE },
|
||||
{ GO_DOODAD_ICECROWN_BLOODPRINCE_DOOR_01, DATA_BLOOD_QUEEN_LANA_THEL, DOOR_TYPE_ROOM },
|
||||
{ GO_DOODAD_ICECROWN_GRATE_01, DATA_BLOOD_QUEEN_LANA_THEL, DOOR_TYPE_PASSAGE },
|
||||
{ GO_GREEN_DRAGON_BOSS_ENTRANCE, DATA_SISTER_SVALNA, DOOR_TYPE_PASSAGE },
|
||||
{ GO_GREEN_DRAGON_BOSS_ENTRANCE, DATA_VALITHRIA_DREAMWALKER, DOOR_TYPE_ROOM },
|
||||
{ GO_GREEN_DRAGON_BOSS_EXIT, DATA_VALITHRIA_DREAMWALKER, DOOR_TYPE_PASSAGE },
|
||||
{ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_01, DATA_VALITHRIA_DREAMWALKER, DOOR_TYPE_SPAWN_HOLE },
|
||||
{ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_02, DATA_VALITHRIA_DREAMWALKER, DOOR_TYPE_SPAWN_HOLE },
|
||||
{ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_03, DATA_VALITHRIA_DREAMWALKER, DOOR_TYPE_SPAWN_HOLE },
|
||||
{ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_04, DATA_VALITHRIA_DREAMWALKER, DOOR_TYPE_SPAWN_HOLE },
|
||||
{ GO_SINDRAGOSA_ENTRANCE_DOOR, DATA_SINDRAGOSA, DOOR_TYPE_ROOM },
|
||||
{ GO_SINDRAGOSA_SHORTCUT_ENTRANCE_DOOR, DATA_SINDRAGOSA, DOOR_TYPE_PASSAGE },
|
||||
{ GO_SINDRAGOSA_SHORTCUT_EXIT_DOOR, DATA_SINDRAGOSA, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ICE_WALL, DATA_SINDRAGOSA, DOOR_TYPE_ROOM },
|
||||
{ GO_ICE_WALL, DATA_SINDRAGOSA, DOOR_TYPE_ROOM },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_LORD_MARROWGAR_S_ENTRANCE, DATA_LORD_MARROWGAR, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ICEWALL, DATA_LORD_MARROWGAR, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_DOODAD_ICECROWN_ICEWALL02, DATA_LORD_MARROWGAR, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ORATORY_OF_THE_DAMNED_ENTRANCE, DATA_LADY_DEATHWHISPER, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_SAURFANG_S_DOOR, DATA_DEATHBRINGER_SAURFANG, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ORANGE_PLAGUE_MONSTER_ENTRANCE, DATA_FESTERGUT, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_GREEN_PLAGUE_MONSTER_ENTRANCE, DATA_ROTFACE, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_SCIENTIST_ENTRANCE, DATA_PROFESSOR_PUTRICIDE, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_CRIMSON_HALL_DOOR, DATA_BLOOD_PRINCE_COUNCIL, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_BLOOD_ELF_COUNCIL_DOOR, DATA_BLOOD_PRINCE_COUNCIL, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_BLOOD_ELF_COUNCIL_DOOR_RIGHT, DATA_BLOOD_PRINCE_COUNCIL, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_DOODAD_ICECROWN_BLOODPRINCE_DOOR_01, DATA_BLOOD_QUEEN_LANA_THEL, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_DOODAD_ICECROWN_GRATE_01, DATA_BLOOD_QUEEN_LANA_THEL, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_GREEN_DRAGON_BOSS_ENTRANCE, DATA_SISTER_SVALNA, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_GREEN_DRAGON_BOSS_ENTRANCE, DATA_VALITHRIA_DREAMWALKER, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_GREEN_DRAGON_BOSS_EXIT, DATA_VALITHRIA_DREAMWALKER, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_01, DATA_VALITHRIA_DREAMWALKER, EncounterDoorBehavior::OpenWhenInProgress },
|
||||
{ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_02, DATA_VALITHRIA_DREAMWALKER, EncounterDoorBehavior::OpenWhenInProgress },
|
||||
{ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_03, DATA_VALITHRIA_DREAMWALKER, EncounterDoorBehavior::OpenWhenInProgress },
|
||||
{ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_04, DATA_VALITHRIA_DREAMWALKER, EncounterDoorBehavior::OpenWhenInProgress },
|
||||
{ GO_SINDRAGOSA_ENTRANCE_DOOR, DATA_SINDRAGOSA, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_SINDRAGOSA_SHORTCUT_ENTRANCE_DOOR, DATA_SINDRAGOSA, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_SINDRAGOSA_SHORTCUT_EXIT_DOOR, DATA_SINDRAGOSA, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ICE_WALL, DATA_SINDRAGOSA, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ICE_WALL, DATA_SINDRAGOSA, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -61,40 +61,40 @@ BossBoundaryData const boundaries =
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_ROOM_ANUBREKHAN, BOSS_ANUBREKHAN, DOOR_TYPE_ROOM },
|
||||
{ GO_PASSAGE_ANUBREKHAN, BOSS_ANUBREKHAN, DOOR_TYPE_PASSAGE },
|
||||
{ GO_PASSAGE_FAERLINA, BOSS_FAERLINA, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ROOM_MAEXXNA, BOSS_FAERLINA, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ROOM_MAEXXNA, BOSS_MAEXXNA, DOOR_TYPE_ROOM },
|
||||
{ GO_ROOM_NOTH, BOSS_NOTH, DOOR_TYPE_ROOM },
|
||||
{ GO_PASSAGE_NOTH, BOSS_NOTH, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ROOM_HEIGAN, BOSS_NOTH, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ROOM_HEIGAN, BOSS_HEIGAN, DOOR_TYPE_ROOM },
|
||||
{ GO_PASSAGE_HEIGAN, BOSS_HEIGAN, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ROOM_LOATHEB, BOSS_HEIGAN, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ROOM_LOATHEB, BOSS_LOATHEB, DOOR_TYPE_ROOM },
|
||||
{ GO_ROOM_GROBBULUS, BOSS_PATCHWERK, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ROOM_GROBBULUS, BOSS_GROBBULUS, DOOR_TYPE_ROOM },
|
||||
{ GO_PASSAGE_GLUTH, BOSS_GLUTH, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ROOM_THADDIUS, BOSS_GLUTH, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ROOM_THADDIUS, BOSS_THADDIUS, DOOR_TYPE_ROOM },
|
||||
{ GO_ROOM_GOTHIK, BOSS_RAZUVIOUS, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ROOM_GOTHIK, BOSS_GOTHIK, DOOR_TYPE_ROOM },
|
||||
{ GO_PASSAGE_GOTHIK, BOSS_GOTHIK, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ROOM_HORSEMEN, BOSS_GOTHIK, DOOR_TYPE_PASSAGE },
|
||||
{ GO_GOTHIK_GATE, BOSS_GOTHIK, DOOR_TYPE_ROOM },
|
||||
{ GO_ROOM_HORSEMEN, BOSS_HORSEMEN, DOOR_TYPE_ROOM },
|
||||
{ GO_PASSAGE_SAPPHIRON, BOSS_SAPPHIRON, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ROOM_KELTHUZAD, BOSS_KELTHUZAD, DOOR_TYPE_ROOM },
|
||||
{ GO_ARAC_EYE_RAMP, BOSS_MAEXXNA, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ARAC_EYE_RAMP_BOSS, BOSS_MAEXXNA, DOOR_TYPE_PASSAGE },
|
||||
{ GO_PLAG_EYE_RAMP, BOSS_LOATHEB, DOOR_TYPE_PASSAGE },
|
||||
{ GO_PLAG_EYE_RAMP_BOSS, BOSS_LOATHEB, DOOR_TYPE_PASSAGE },
|
||||
{ GO_MILI_EYE_RAMP, BOSS_HORSEMEN, DOOR_TYPE_PASSAGE },
|
||||
{ GO_MILI_EYE_RAMP_BOSS, BOSS_HORSEMEN, DOOR_TYPE_PASSAGE },
|
||||
{ GO_CONS_EYE_RAMP, BOSS_THADDIUS, DOOR_TYPE_PASSAGE },
|
||||
{ GO_CONS_EYE_RAMP_BOSS, BOSS_THADDIUS, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM }
|
||||
{ GO_ROOM_ANUBREKHAN, BOSS_ANUBREKHAN, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_PASSAGE_ANUBREKHAN, BOSS_ANUBREKHAN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_PASSAGE_FAERLINA, BOSS_FAERLINA, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ROOM_MAEXXNA, BOSS_FAERLINA, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ROOM_MAEXXNA, BOSS_MAEXXNA, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ROOM_NOTH, BOSS_NOTH, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_PASSAGE_NOTH, BOSS_NOTH, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ROOM_HEIGAN, BOSS_NOTH, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ROOM_HEIGAN, BOSS_HEIGAN, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_PASSAGE_HEIGAN, BOSS_HEIGAN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ROOM_LOATHEB, BOSS_HEIGAN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ROOM_LOATHEB, BOSS_LOATHEB, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ROOM_GROBBULUS, BOSS_PATCHWERK, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ROOM_GROBBULUS, BOSS_GROBBULUS, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_PASSAGE_GLUTH, BOSS_GLUTH, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ROOM_THADDIUS, BOSS_GLUTH, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ROOM_THADDIUS, BOSS_THADDIUS, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ROOM_GOTHIK, BOSS_RAZUVIOUS, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ROOM_GOTHIK, BOSS_GOTHIK, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_PASSAGE_GOTHIK, BOSS_GOTHIK, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ROOM_HORSEMEN, BOSS_GOTHIK, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_GOTHIK_GATE, BOSS_GOTHIK, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ROOM_HORSEMEN, BOSS_HORSEMEN, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_PASSAGE_SAPPHIRON, BOSS_SAPPHIRON, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ROOM_KELTHUZAD, BOSS_KELTHUZAD, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ARAC_EYE_RAMP, BOSS_MAEXXNA, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ARAC_EYE_RAMP_BOSS, BOSS_MAEXXNA, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_PLAG_EYE_RAMP, BOSS_LOATHEB, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_PLAG_EYE_RAMP_BOSS, BOSS_LOATHEB, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_MILI_EYE_RAMP, BOSS_HORSEMEN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_MILI_EYE_RAMP_BOSS, BOSS_HORSEMEN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_CONS_EYE_RAMP, BOSS_THADDIUS, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_CONS_EYE_RAMP_BOSS, BOSS_THADDIUS, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
|
||||
};
|
||||
|
||||
ObjectData const objectData[] =
|
||||
|
||||
@@ -29,8 +29,8 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_DRAGON_CAGE_DOOR, DATA_DRAKOS, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM }
|
||||
{ GO_DRAGON_CAGE_DOOR, DATA_DRAKOS, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -25,10 +25,10 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_VOLKHAN_DOOR, DATA_VOLKHAN, DOOR_TYPE_PASSAGE },
|
||||
{ GO_IONAR_DOOR, DATA_IONAR, DOOR_TYPE_PASSAGE },
|
||||
{ GO_LOKEN_DOOR, DATA_LOKEN, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_VOLKHAN_DOOR, DATA_VOLKHAN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_IONAR_DOOR, DATA_IONAR, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_LOKEN_DOOR, DATA_LOKEN, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_SJONNIR_DOOR, DATA_TRIBUNAL_OF_AGES, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_SJONNIR_DOOR, DATA_TRIBUNAL_OF_AGES, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
|
||||
@@ -47,29 +47,29 @@ static BossBoundaryData const boundaries =
|
||||
|
||||
static DoorData const doorData[] =
|
||||
{
|
||||
{ GO_LEVIATHAN_DOOR, DATA_FLAME_LEVIATHAN, DOOR_TYPE_ROOM },
|
||||
{ GO_XT_002_DOOR, DATA_XT002, DOOR_TYPE_ROOM },
|
||||
{ GO_IRON_COUNCIL_DOOR, DATA_ASSEMBLY_OF_IRON, DOOR_TYPE_ROOM },
|
||||
{ GO_ARCHIVUM_DOOR, DATA_ASSEMBLY_OF_IRON, DOOR_TYPE_PASSAGE },
|
||||
{ GO_HODIR_ENTRANCE, DATA_HODIR, DOOR_TYPE_ROOM },
|
||||
{ GO_HODIR_DOOR, DATA_HODIR, DOOR_TYPE_PASSAGE },
|
||||
{ GO_HODIR_ICE_DOOR, DATA_HODIR, DOOR_TYPE_PASSAGE },
|
||||
{ GO_MIMIRON_DOOR_1, DATA_MIMIRON, DOOR_TYPE_ROOM },
|
||||
{ GO_MIMIRON_DOOR_2, DATA_MIMIRON, DOOR_TYPE_ROOM },
|
||||
{ GO_MIMIRON_DOOR_3, DATA_MIMIRON, DOOR_TYPE_ROOM },
|
||||
{ GO_THORIM_ENCOUNTER_DOOR, DATA_THORIM, DOOR_TYPE_ROOM },
|
||||
{ GO_ANCIENT_GATE_OF_THE_KEEPERS, DATA_HODIR, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ANCIENT_GATE_OF_THE_KEEPERS, DATA_MIMIRON, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ANCIENT_GATE_OF_THE_KEEPERS, DATA_THORIM, DOOR_TYPE_PASSAGE },
|
||||
{ GO_ANCIENT_GATE_OF_THE_KEEPERS, DATA_FREYA, DOOR_TYPE_PASSAGE },
|
||||
{ GO_VEZAX_DOOR, DATA_VEZAX, DOOR_TYPE_PASSAGE },
|
||||
{ GO_YOGG_SARON_DOOR, DATA_YOGG_SARON, DOOR_TYPE_ROOM },
|
||||
{ GO_DOODAD_UL_SIGILDOOR_03, DATA_ALGALON, DOOR_TYPE_ROOM },
|
||||
{ GO_DOODAD_UL_UNIVERSEFLOOR_01, DATA_ALGALON, DOOR_TYPE_ROOM },
|
||||
{ GO_DOODAD_UL_UNIVERSEFLOOR_02, DATA_ALGALON, DOOR_TYPE_SPAWN_HOLE },
|
||||
{ GO_DOODAD_UL_UNIVERSEGLOBE01, DATA_ALGALON, DOOR_TYPE_SPAWN_HOLE },
|
||||
{ GO_DOODAD_UL_ULDUAR_TRAPDOOR_03, DATA_ALGALON, DOOR_TYPE_SPAWN_HOLE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM },
|
||||
{ GO_LEVIATHAN_DOOR, DATA_FLAME_LEVIATHAN, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_XT_002_DOOR, DATA_XT002, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_IRON_COUNCIL_DOOR, DATA_ASSEMBLY_OF_IRON, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ARCHIVUM_DOOR, DATA_ASSEMBLY_OF_IRON, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_HODIR_ENTRANCE, DATA_HODIR, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_HODIR_DOOR, DATA_HODIR, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_HODIR_ICE_DOOR, DATA_HODIR, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_MIMIRON_DOOR_1, DATA_MIMIRON, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_MIMIRON_DOOR_2, DATA_MIMIRON, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_MIMIRON_DOOR_3, DATA_MIMIRON, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_THORIM_ENCOUNTER_DOOR, DATA_THORIM, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ANCIENT_GATE_OF_THE_KEEPERS, DATA_HODIR, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ANCIENT_GATE_OF_THE_KEEPERS, DATA_MIMIRON, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ANCIENT_GATE_OF_THE_KEEPERS, DATA_THORIM, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_ANCIENT_GATE_OF_THE_KEEPERS, DATA_FREYA, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_VEZAX_DOOR, DATA_VEZAX, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_YOGG_SARON_DOOR, DATA_YOGG_SARON, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_DOODAD_UL_SIGILDOOR_03, DATA_ALGALON, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_DOODAD_UL_UNIVERSEFLOOR_01, DATA_ALGALON, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_DOODAD_UL_UNIVERSEFLOOR_02, DATA_ALGALON, EncounterDoorBehavior::OpenWhenInProgress },
|
||||
{ GO_DOODAD_UL_UNIVERSEGLOBE01, DATA_ALGALON, EncounterDoorBehavior::OpenWhenInProgress },
|
||||
{ GO_DOODAD_UL_ULDUAR_TRAPDOOR_03, DATA_ALGALON, EncounterDoorBehavior::OpenWhenInProgress },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
};
|
||||
|
||||
MinionData const minionData[] =
|
||||
@@ -960,8 +960,8 @@ class instance_ulduar : public InstanceMapScript
|
||||
|
||||
void UpdateDoorState(GameObject* door) override
|
||||
{
|
||||
// Leviathan doors are set to DOOR_TYPE_ROOM except the one it uses to enter the room
|
||||
// which has to be set to DOOR_TYPE_PASSAGE
|
||||
// Leviathan doors are set to EncounterStateForOpenDoor::NotInProgress except the one it uses to enter the room
|
||||
// which has to be set to EncounterStateForOpenDoor::Done
|
||||
if (door->GetEntry() == GO_LEVIATHAN_DOOR && door->GetPositionX() > 400.f)
|
||||
door->SetGoState(GetBossState(DATA_FLAME_LEVIATHAN) == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
|
||||
else
|
||||
@@ -975,9 +975,9 @@ class instance_ulduar : public InstanceMapScript
|
||||
if (door->GetEntry() == GO_LEVIATHAN_DOOR && door->GetPositionX() > 400.f)
|
||||
{
|
||||
if (add)
|
||||
GetBossInfo(DATA_FLAME_LEVIATHAN)->door[DOOR_TYPE_PASSAGE].insert(door->GetGUID());
|
||||
GetBossInfo(DATA_FLAME_LEVIATHAN)->door[uint32(EncounterDoorBehavior::OpenWhenDone)].insert(door->GetGUID());
|
||||
else
|
||||
GetBossInfo(DATA_FLAME_LEVIATHAN)->door[DOOR_TYPE_PASSAGE].erase(door->GetGUID());
|
||||
GetBossInfo(DATA_FLAME_LEVIATHAN)->door[uint32(EncounterDoorBehavior::OpenWhenDone)].erase(door->GetGUID());
|
||||
|
||||
if (add)
|
||||
UpdateDoorState(door);
|
||||
|
||||
@@ -23,9 +23,9 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_GIANT_PORTCULLIS_1, DATA_INGVAR, DOOR_TYPE_PASSAGE },
|
||||
{ GO_GIANT_PORTCULLIS_2, DATA_INGVAR, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_GIANT_PORTCULLIS_1, DATA_INGVAR, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_GIANT_PORTCULLIS_2, DATA_INGVAR, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
MinionData const minionData[] =
|
||||
|
||||
@@ -28,9 +28,9 @@ BossBoundaryData const boundaries =
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_SKADI_THE_RUTHLESS_DOOR, DATA_SKADI_THE_RUTHLESS, DOOR_TYPE_PASSAGE },
|
||||
{ GO_KING_YMIRON_DOOR, DATA_KING_YMIRON, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_SKADI_THE_RUTHLESS_DOOR, DATA_SKADI_THE_RUTHLESS, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_KING_YMIRON_DOOR, DATA_KING_YMIRON, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_IKISS_DOOR, DATA_TALON_KING_IKISS, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_IKISS_DOOR, DATA_TALON_KING_IKISS, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
ObjectData const gameObjectData[] =
|
||||
|
||||
@@ -25,9 +25,9 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_REFECTORY_DOOR, DATA_BLACKHEART_THE_INCITER, DOOR_TYPE_PASSAGE },
|
||||
{ GO_SCREAMING_HALL_DOOR, DATA_GRANDMASTER_VORPIL, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_REFECTORY_DOOR, DATA_BLACKHEART_THE_INCITER, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_SCREAMING_HALL_DOOR, DATA_GRANDMASTER_VORPIL, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -26,19 +26,19 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_NAJENTUS_GATE, DATA_HIGH_WARLORD_NAJENTUS, DOOR_TYPE_PASSAGE },
|
||||
{ GO_NAJENTUS_GATE, DATA_SUPREMUS, DOOR_TYPE_ROOM },
|
||||
{ GO_SUPREMUS_GATE, DATA_SUPREMUS, DOOR_TYPE_PASSAGE },
|
||||
{ GO_SHADE_OF_AKAMA_DOOR, DATA_SHADE_OF_AKAMA, DOOR_TYPE_ROOM },
|
||||
{ GO_TERON_DOOR_1, DATA_TERON_GOREFIEND, DOOR_TYPE_ROOM },
|
||||
{ GO_TERON_DOOR_2, DATA_TERON_GOREFIEND, DOOR_TYPE_ROOM },
|
||||
{ GO_GURTOGG_DOOR, DATA_GURTOGG_BLOODBOIL, DOOR_TYPE_PASSAGE },
|
||||
{ GO_MOTHER_SHAHRAZ_DOOR, DATA_MOTHER_SHAHRAZ, DOOR_TYPE_PASSAGE },
|
||||
{ GO_COUNCIL_DOOR_1, DATA_ILLIDARI_COUNCIL, DOOR_TYPE_ROOM },
|
||||
{ GO_COUNCIL_DOOR_2, DATA_ILLIDARI_COUNCIL, DOOR_TYPE_ROOM },
|
||||
{ GO_ILLIDAN_DOOR_R, DATA_ILLIDAN_STORMRAGE, DOOR_TYPE_ROOM },
|
||||
{ GO_ILLIDAN_DOOR_L, DATA_ILLIDAN_STORMRAGE, DOOR_TYPE_ROOM },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_NAJENTUS_GATE, DATA_HIGH_WARLORD_NAJENTUS, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_NAJENTUS_GATE, DATA_SUPREMUS, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_SUPREMUS_GATE, DATA_SUPREMUS, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_SHADE_OF_AKAMA_DOOR, DATA_SHADE_OF_AKAMA, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_TERON_DOOR_1, DATA_TERON_GOREFIEND, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_TERON_DOOR_2, DATA_TERON_GOREFIEND, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_GURTOGG_DOOR, DATA_GURTOGG_BLOODBOIL, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_MOTHER_SHAHRAZ_DOOR, DATA_MOTHER_SHAHRAZ, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_COUNCIL_DOOR_1, DATA_ILLIDARI_COUNCIL, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_COUNCIL_DOOR_2, DATA_ILLIDARI_COUNCIL, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ILLIDAN_DOOR_R, DATA_ILLIDAN_STORMRAGE, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_ILLIDAN_DOOR_L, DATA_ILLIDAN_STORMRAGE, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
BossBoundaryData const boundaries =
|
||||
|
||||
@@ -22,9 +22,9 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_MAULGAR_DOOR, DATA_MAULGAR, DOOR_TYPE_PASSAGE },
|
||||
{ GO_GRUUL_DOOR, DATA_GRUUL, DOOR_TYPE_ROOM },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_MAULGAR_DOOR, DATA_MAULGAR, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_GRUUL_DOOR, DATA_GRUUL, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
MinionData const minionData[] =
|
||||
|
||||
@@ -24,13 +24,13 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_PRISON_DOOR_01, DATA_KELIDAN_THE_BREAKER, DOOR_TYPE_PASSAGE },
|
||||
{ GO_PRISON_DOOR_02, DATA_THE_MAKER, DOOR_TYPE_ROOM },
|
||||
{ GO_PRISON_DOOR_03, DATA_THE_MAKER, DOOR_TYPE_PASSAGE },
|
||||
{ GO_PRISON_DOOR_04, DATA_BROGGOK, DOOR_TYPE_PASSAGE },
|
||||
{ GO_PRISON_DOOR_05, DATA_BROGGOK, DOOR_TYPE_ROOM },
|
||||
{ GO_SUMMON_DOOR, DATA_KELIDAN_THE_BREAKER, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_PRISON_DOOR_01, DATA_KELIDAN_THE_BREAKER, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_PRISON_DOOR_02, DATA_THE_MAKER, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_PRISON_DOOR_03, DATA_THE_MAKER, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_PRISON_DOOR_04, DATA_BROGGOK, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_PRISON_DOOR_05, DATA_BROGGOK, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ GO_SUMMON_DOOR, DATA_KELIDAN_THE_BREAKER, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
|
||||
@@ -30,8 +30,8 @@ BossBoundaryData const boundaries =
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_MAGTHERIDON_DOOR, DATA_MAGTHERIDON, DOOR_TYPE_ROOM },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_MAGTHERIDON_DOOR, DATA_MAGTHERIDON, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
|
||||
@@ -33,9 +33,9 @@ EndScriptData */
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_GRAND_WARLOCK_CHAMBER_DOOR_1, DATA_NETHEKURSE, DOOR_TYPE_PASSAGE },
|
||||
{ GO_GRAND_WARLOCK_CHAMBER_DOOR_2, DATA_NETHEKURSE, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM }
|
||||
{ GO_GRAND_WARLOCK_CHAMBER_DOOR_1, DATA_NETHEKURSE, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_GRAND_WARLOCK_CHAMBER_DOOR_2, DATA_NETHEKURSE, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -29,9 +29,9 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_ARCANE_DOOR_LEFT, DATA_KAELTHAS, DOOR_TYPE_ROOM/*, BOUNDARY_SW */ },
|
||||
{ GO_ARCANE_DOOR_RIGHT, DATA_KAELTHAS, DOOR_TYPE_ROOM/*, BOUNDARY_SE */ },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_ARCANE_DOOR_LEFT, DATA_KAELTHAS, EncounterDoorBehavior::OpenWhenNotInProgress/*, BOUNDARY_SW */ },
|
||||
{ GO_ARCANE_DOOR_RIGHT, DATA_KAELTHAS, EncounterDoorBehavior::OpenWhenNotInProgress/*, BOUNDARY_SE */ },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
|
||||
static DoorData const doorData[] =
|
||||
{
|
||||
{ GO_DOOR_MOARG_1, DATA_GATEWATCHER_IRON_HAND, DOOR_TYPE_PASSAGE },
|
||||
{ GO_DOOR_MOARG_2, DATA_GATEWATCHER_GYROKILL, DOOR_TYPE_PASSAGE },
|
||||
{ GO_DOOR_NETHERMANCER, DATA_NETHERMANCER_SEPRETHREA, DOOR_TYPE_ROOM },
|
||||
{ 0, 0, DOOR_TYPE_ROOM }
|
||||
{ GO_DOOR_MOARG_1, DATA_GATEWATCHER_IRON_HAND, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_DOOR_MOARG_2, DATA_GATEWATCHER_GYROKILL, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_DOOR_NETHERMANCER, DATA_NETHERMANCER_SEPRETHREA, EncounterDoorBehavior::OpenWhenNotInProgress },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -24,9 +24,9 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_CONTAINMENT_CORE_SECURITY_FIELD_ALPHA, DATA_SOCCOTHRATES, DOOR_TYPE_PASSAGE },
|
||||
{ GO_CONTAINMENT_CORE_SECURITY_FIELD_BETA, DATA_DALLIAH, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_CONTAINMENT_CORE_SECURITY_FIELD_ALPHA, DATA_SOCCOTHRATES, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ GO_CONTAINMENT_CORE_SECURITY_FIELD_BETA, DATA_DALLIAH, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
@@ -37,8 +37,8 @@ ObjectData const creatureData[] =
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_WALL_DOOR_SHORTCUT_ENTRANCE, DATA_SPORECALLER_ZANCHA, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
{ GO_WALL_DOOR_SHORTCUT_ENTRANCE, DATA_SPORECALLER_ZANCHA, EncounterDoorBehavior::OpenWhenDone },
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
|
||||
};
|
||||
|
||||
DungeonEncounterData const encounters[] =
|
||||
|
||||
Reference in New Issue
Block a user