LiveSplit.TZA/LiveSplit.TZA/Splits/SplitInfo.cs

118 lines
3.1 KiB
C#
Executable File

namespace LiveSplit.TZA.Splits;
internal class SplitInfo {
internal uint Id { get; }
internal string Name { get; }
internal ISplit[] Splits { get; }
internal SplitInfo(SplitId id, params ISplit[] splits) {
this.Id = (uint) id;
this.Name = id.Name();
this.Splits = splits;
}
}
// NOTE: reordering is a breaking change
internal enum SplitId {
StartGame = 1,
Reks,
Rats,
RogueTomato,
Dustia,
Firemane,
MimicQueen,
JudgeGhis,
Garuda,
Belias,
Jellies,
Tiamat,
EnterStilshrine,
Vinuskar,
Mateus,
JudgeBergan,
Mandragoras,
Ahriman,
Cid1,
Rafflesia,
Daedalus,
Tyrant,
Shemhazai,
Hydro,
Pandaemonium,
Slyt,
Fenrir,
Hashmal,
Cid2,
Gabranth,
TheUndying,
// added later
Judges,
DemonWall2,
Vossler,
Flans,
Sunstone,
AirCutterRemora,
Vayne,
VayneNovus,
LhusuMines,
LeaveEruytVillage,
OsmonePlain,
Salikawood,
PhonCoastTchitaUplands,
Archades,
EnterEruytVillage,
}
internal static class SplitIdExt {
internal static string Name(this SplitId id) => id switch {
SplitId.StartGame => "Start Game",
SplitId.Reks => "Reks",
SplitId.Rats => "Rats",
SplitId.RogueTomato => "Rogue Tomato",
SplitId.Dustia => "Dustia",
SplitId.Firemane => "Firemane",
SplitId.MimicQueen => "Mimic Queen",
SplitId.JudgeGhis => "Judge Ghis",
SplitId.Garuda => "Garuda",
SplitId.Belias => "Belias",
SplitId.Jellies => "Jellies",
SplitId.Tiamat => "Tiamat",
SplitId.EnterStilshrine => "Enter Stilshrine",
SplitId.Vinuskar => "Vinuskar",
SplitId.Mateus => "Mateus",
SplitId.JudgeBergan => "Judge Bergan",
SplitId.Mandragoras => "Mandragoras",
SplitId.Ahriman => "Ahriman",
SplitId.Cid1 => "Cid 1",
SplitId.Rafflesia => "Rafflesia",
SplitId.Daedalus => "Daedalus",
SplitId.Tyrant => "Tyrant",
SplitId.Shemhazai => "Shemhazai",
SplitId.Hydro => "Hydro",
SplitId.Pandaemonium => "Pandaemonium",
SplitId.Slyt => "Slyt",
SplitId.Fenrir => "Fenrir",
SplitId.Hashmal => "Hashmal",
SplitId.Cid2 => "Cid 2",
SplitId.Gabranth => "Gabranth",
SplitId.TheUndying => "The Undying",
SplitId.Judges => "Judges",
SplitId.DemonWall2 => "Demon Wall 2",
SplitId.Vossler => "Vossler",
SplitId.Flans => "Flans",
SplitId.AirCutterRemora => "Air Cutter Remora",
SplitId.Sunstone => "Sunstone",
SplitId.Vayne => "Vayne",
SplitId.VayneNovus => "Vayne Novus",
SplitId.LhusuMines => "Lhusu Mines",
SplitId.LeaveEruytVillage => "Leave Eruyt Village",
SplitId.OsmonePlain => "Osmone Plain",
SplitId.Salikawood => "Salikawood",
SplitId.PhonCoastTchitaUplands => "Phon Coast & Tchita Uplands",
SplitId.Archades => "Archades",
SplitId.EnterEruytVillage => "Enter Eruyt Village",
_ => throw new ArgumentOutOfRangeException(nameof(id), id, null),
};
}