Files
CypherCore/Source/Scripts/EasternKingdoms/BastionOfTwilight/InstanceBastionOfTwilight.cs
T
2024-03-12 22:12:17 -04:00

97 lines
3.7 KiB
C#

// Copyright (c) CypherCore <http://github.com/CypherCore> All rights reserved.
// Licensed under the GNU GENERAL PUBLIC LICENSE. See LICENSE file in the project root for full license information.
using Framework.Constants;
using Game.Maps;
using Game.Scripting;
namespace Scripts.EasternKingdoms.BastionOfTwilight
{
enum DataTypes
{
// Encounters
HalfusWyrmbreaker = 0,
TheralionAndValiona = 1,
AscendantCouncil = 2,
Chogall = 3,
Sinestra = 4
}
enum CreatureIds
{
// Bosses
HalfusWyrmbreaker = 44600,
Theralion = 45993,
Valiona = 45992,
Ignacious = 43686,
Feludius = 43687,
Terrastra = 43689,
Arion = 43688,
ElementiumMonstrosity = 43735,
Chogall = 43324,
Sinestra = 45213
}
enum GameobjectIds
{
HalfusEntrance = 205222,
HalfusExit = 205223,
DragonSiblingsDoorEntrance = 205224,
DragonSiblingsDoorExit = 205225,
AscendantCouncilEntrance = 205226,
AscendantCouncilExit = 205227,
ChogallEntrance = 205228,
GrimBatolRaidTrapDoor = 205898
}
[Script]
class instance_bastion_of_twilight : InstanceMapScript
{
static ObjectData[] creatureData =
{
new ObjectData((uint)CreatureIds.HalfusWyrmbreaker, (uint)DataTypes.HalfusWyrmbreaker),
new ObjectData((uint)CreatureIds.Chogall, (uint)DataTypes.Chogall),
new ObjectData((uint)CreatureIds.Sinestra, (uint)DataTypes.Sinestra),
};
static DoorData[] doorData =
{
new DoorData((uint)GameobjectIds.HalfusEntrance, (uint)DataTypes.HalfusWyrmbreaker, EncounterDoorBehavior.OpenWhenNotInProgress),
new DoorData((uint)GameobjectIds.HalfusExit, (uint)DataTypes.HalfusWyrmbreaker, EncounterDoorBehavior.OpenWhenDone),
new DoorData((uint)GameobjectIds.DragonSiblingsDoorEntrance, (uint)DataTypes.TheralionAndValiona, EncounterDoorBehavior.OpenWhenNotInProgress),
new DoorData((uint)GameobjectIds.DragonSiblingsDoorExit, (uint)DataTypes.TheralionAndValiona, EncounterDoorBehavior.OpenWhenDone),
new DoorData((uint)GameobjectIds.AscendantCouncilEntrance, (uint)DataTypes.AscendantCouncil, EncounterDoorBehavior.OpenWhenNotInProgress),
new DoorData((uint)GameobjectIds.AscendantCouncilExit, (uint)DataTypes.AscendantCouncil, EncounterDoorBehavior.OpenWhenDone),
new DoorData((uint)GameobjectIds.ChogallEntrance, (uint)DataTypes.Chogall, EncounterDoorBehavior.OpenWhenNotInProgress),
};
static DungeonEncounterData[] encounters =
{
new DungeonEncounterData((uint)DataTypes.HalfusWyrmbreaker, 1030),
new DungeonEncounterData((uint)DataTypes.TheralionAndValiona, 1032),
new DungeonEncounterData((uint)DataTypes.AscendantCouncil, 1028),
new DungeonEncounterData((uint)DataTypes.Chogall, 1029),
new DungeonEncounterData((uint)DataTypes.Sinestra, 1082, 1083)
};
public instance_bastion_of_twilight() : base(nameof(instance_bastion_of_twilight), 671) { }
class instance_bastion_of_twilight_InstanceMapScript : InstanceScript
{
public instance_bastion_of_twilight_InstanceMapScript(InstanceMap map) : base(map)
{
SetHeaders("BOT");
SetBossNumber(5);
LoadObjectData(creatureData, null);
LoadDoorData(doorData);
LoadDungeonEncounterData(encounters);
}
}
public override InstanceScript GetInstanceScript(InstanceMap map)
{
return new instance_bastion_of_twilight_InstanceMapScript(map);
}
}
}