Big settings refactor

This commit is contained in:
2026-01-24 15:22:20 -06:00
parent f5f8e6a9d0
commit e5fd52376e
16 changed files with 171 additions and 141 deletions

View File

@@ -26,20 +26,24 @@
public Goal Goal { get; set; } = Goal.Ganon;
[SettingName("crystals_ganon")]
[IgnoreSetting(Apr2025)]
public EntryRequirement CrystalsGanon { get; set; } = EntryRequirement.Crystals7;
[SettingName("bosses_ganon")]
[NoSettingName([Apr2025, Base])]
[IgnoreSetting(Apr2025, Base)]
public BossRequirement BossesGanon { get; set; } = BossRequirement.Bosses8of10;
[NoSettingName]
[IgnoreSetting(Apr2025)]
public TriforceRequirement TriforcePieces { get; set; } = TriforceRequirement.Triforce20of30;
[SettingName("crystals_gt")]
[JsonPropertyName("crystals_gt")]
[NoSettingName([Apr2025])]
[IgnoreSetting(Apr2025)]
public EntryRequirement CrystalsGT { get; set; } = EntryRequirement.Crystals7;
[SettingName("ganon_item")]
[RequiredSetting([Apr2025], GanonItem.Silver)]
[NoSettingName([Apr2025])]
[IgnoreSetting(Apr2025)]
public GanonItem GanonItem { get; set; } = GanonItem.Silver;
[SettingName("shuffle")]
@@ -47,32 +51,27 @@
public EntranceShuffle EntranceShuffle { get; set; } = EntranceShuffle.Vanilla;
[NoSettingName]
[RequiredSetting([Apr2025], LinksHouse.Vanilla)]
[IgnoreSetting(Apr2025)]
public LinksHouse LinksHouse { get; set; } = LinksHouse.Vanilla;
[SettingName("skullwoods")]
[RequiredSetting([Apr2025], SkullWoodsShuffle.Original)]
[NoSettingName([Apr2025])]
public SkullWoodsShuffle SkullWoods { get; set; } = SkullWoodsShuffle.Original;
[IgnoreSetting(Apr2025)]
public SkullWoodsShuffle SkullWoods { get; set; } = SkullWoodsShuffle.Default;
[SettingName("linked_drops")]
[RequiredSetting([Apr2025], LinkedDrops.Unset)]
[NoSettingName([Apr2025])]
public LinkedDrops LinkedDrops { get; set; } = LinkedDrops.Unset;
[IgnoreSetting(Apr2025)]
public LinkedDrops LinkedDrops { get; set; } = LinkedDrops.Default;
[SettingName("shufflebosses")]
[RequiredSetting([Apr2025], BossShuffle.Vanilla)]
[NoSettingName([Apr2025])]
[IgnoreSetting(Apr2025)]
public BossShuffle BossShuffle { get; set; } = BossShuffle.Vanilla;
[SettingName("shuffleenemies")]
[RequiredSetting([Apr2025], EnemyShuffle.Vanilla)]
[NoSettingName([Apr2025])]
[IgnoreSetting(Apr2025)]
public EnemyShuffle EnemyShuffle { get; set; } = EnemyShuffle.Vanilla;
[SettingName("shuffle_damage_table")]
[RequiredSetting([Apr2025], DamageTableShuffle.Vanilla)]
[NoSettingName([Apr2025])]
[IgnoreSetting(Apr2025)]
public DamageTableShuffle DamageTableShuffle { get; set; } = DamageTableShuffle.Vanilla;
[SettingName("keyshuffle")]
@@ -81,44 +80,37 @@
public KeyLocations SmallKeys { get; set; } = KeyLocations.Dungeon;
[SettingName("bigkeyshuffle")]
[RequiredSetting([Apr2025], DungeonItemLocations.Dungeon)]
[NoSettingName([Apr2025])]
[IgnoreSetting(Apr2025)]
public DungeonItemLocations BigKeys { get; set; } = DungeonItemLocations.Dungeon;
[SettingName("mapshuffle")]
[RequiredSetting([Apr2025], DungeonItemLocations.Dungeon)]
[NoSettingName([Apr2025])]
[IgnoreSetting(Apr2025)]
public DungeonItemLocations Maps { get; set; } = DungeonItemLocations.Dungeon;
[SettingName("compassshuffle")]
[RequiredSetting([Apr2025], DungeonItemLocations.Dungeon)]
[NoSettingName([Apr2025])]
[IgnoreSetting(Apr2025)]
public DungeonItemLocations Compasses { get; set; } = DungeonItemLocations.Dungeon;
[SettingName("showloot")]
[RequiredSetting([Apr2025, Base], ShowLoot.Never)]
[NoSettingName([Apr2025, Base])]
[IgnoreSetting(Apr2025, Base)]
public ShowLoot ShowLoot { get; set; } = ShowLoot.Never;
[SettingName("showmap")]
[RequiredSetting([Apr2025, Base], ShowMap.Map)]
[NoSettingName([Apr2025, Base])]
[IgnoreSetting(Apr2025, Base)]
public ShowMap ShowMap { get; set; } = ShowMap.Map;
[NoSettingName]
[RequiredSetting([Apr2025], ShopShuffle.Vanilla)]
[IgnoreSetting(Apr2025)]
public ShopShuffle ShopShuffle { get; set; } = ShopShuffle.Vanilla;
[RequiredSetting([Apr2025], DropShuffle.Vanilla)]
[NoSettingName([Apr2025])]
[IgnoreSetting(Apr2025)]
public DropShuffle DropShuffle { get; set; } = DropShuffle.Vanilla;
[RequiredSetting([Apr2025], Pottery.Vanilla)]
[NoSettingName([Apr2025])]
public Pottery Pottery { get; set; } = Pottery.Vanilla;
[SettingName("pottery")]
[IgnoreSetting(Apr2025)]
public PotShuffle PotShuffle { get; set; } = PotShuffle.Vanilla;
[RequiredSetting([Apr2025], PrizeShuffle.Vanilla)]
[NoSettingName([Apr2025])]
[IgnoreSetting(Apr2025)]
public PrizeShuffle PrizeShuffle { get; set; } = PrizeShuffle.Vanilla;
[NoSettingName]
@@ -126,57 +118,55 @@
public BootsSettings Boots { get; set; } = BootsSettings.Normal;
[NoSettingName]
[RequiredSetting([Apr2025], FluteSettings.Normal)]
[IgnoreSetting(Apr2025)]
public FluteSettings Flute { get; set; } = FluteSettings.Normal;
[SettingName("dark_rooms")]
[RequiredSetting([Apr2025], DarkRoomSettings.RequireLamp)]
[NoSettingName([Apr2025])]
[IgnoreSetting(Apr2025)]
public DarkRoomSettings DarkRooms { get; set; } = DarkRoomSettings.RequireLamp;
[NoSettingName]
[RequiredSetting([Apr2025], BombSettings.Normal)]
[IgnoreSetting(Apr2025)]
public BombSettings Bombs { get; set; } = BombSettings.Normal;
[NoSettingName]
[RequiredSetting([Apr2025], BookSettings.Normal)]
[IgnoreSetting(Apr2025)]
public BookSettings Book { get; set; } = BookSettings.Normal;
[NoSettingName]
[RequiredSetting([Apr2025], MirrorSettings.Normal)]
[IgnoreSetting(Apr2025)]
public MirrorSettings Mirror { get; set; } = MirrorSettings.Normal;
[SettingName("door_shuffle")]
[RequiredSetting([Apr2025], DoorShuffle.Vanilla)]
[NoSettingName([Apr2025])]
[IgnoreSetting(Apr2025)]
public DoorShuffle DoorShuffle { get; set; } = DoorShuffle.Vanilla;
[SettingName("intensity")]
[NoSettingName([Apr2025])]
[IgnoreSetting(Apr2025)]
public DoorLobbies Lobbies { get; set; } = DoorLobbies.Vanilla;
[SettingName("door_type_mode")]
[NoSettingName([Apr2025])]
[IgnoreSetting(Apr2025)]
public DoorTypeMode DoorTypeMode { get; set; } = DoorTypeMode.Big;
[SettingName("trap_door_mode")]
[NoSettingName([Apr2025])]
public TrapDoorMode TrapDoorMode { get; set; } = TrapDoorMode.Optional;
[IgnoreSetting(Apr2025)]
public TrapDoorMode TrapDoorMode { get; set; } = TrapDoorMode.Some;
[NoSettingName]
[RequiredSetting([Apr2025], FollowerShuffle.Vanilla)]
[IgnoreSetting(Apr2025)]
public FollowerShuffle FollowerShuffle { get; set; } = FollowerShuffle.Vanilla;
[SettingName("ow_fluteshuffle")]
[NoSettingName([Apr2025])]
[IgnoreSetting(Apr2025)]
public FluteShuffle FluteShuffle { get; set; } = FluteShuffle.Vanilla;
[NoSettingName]
[RequiredSetting([Apr2025], TileSwap.Vanilla)]
[IgnoreSetting(Apr2025)]
public TileSwap TileSwap { get; set; } = TileSwap.Vanilla;
[SettingName("damage_challenge")]
[NoSettingName([Apr2025])]
[IgnoreSetting(Apr2025)]
public DamageChallengeMode DamageChallenge { get; set; } = DamageChallengeMode.Normal;
[NoSettingName]
@@ -187,7 +177,7 @@
{
[RandomizerName(BaseRandomizer.Name)] Base,
[RandomizerName(Apr2025Randomizer.Name)] Apr2025,
[RandomizerName(BaseRandomizer.DungeonMapName)] DungeonMap,
[RandomizerName(BaseRandomizer.BetaName)] Beta,
}
public enum RaceMode {
@@ -234,6 +224,14 @@
Random,
}
public enum TriforceRequirement {
[JsonStringEnumMemberName("8of10")] [AdditionalSetting("--triforce_goal=8", "--triforce_pool=10")] Triforce8of10,
[JsonStringEnumMemberName("20of30")] [AdditionalSetting("--triforce_goal=20", "--triforce_pool=30")] Triforce20of30,
[JsonStringEnumMemberName("67of100")] [AdditionalSetting("--triforce_goal=67", "--triforce_pool=100")] Triforce67of100,
[JsonStringEnumMemberName("125of175")] [AdditionalSetting("--triforce_goal=125", "--triforce_pool=175")] Triforce125of175,
[JsonStringEnumMemberName("400of500")] [AdditionalSetting("--triforce_goal=400", "--triforce_pool=500")] Triforce400of500,
}
public enum BossRequirement {
[JsonStringEnumMemberName("0of10")] [SettingName("0")] Bosses0of10,
[JsonStringEnumMemberName("1of10")] [SettingName("1")] Bosses1of10,
@@ -294,14 +292,14 @@
}
public enum SkullWoodsShuffle {
Original,
Restricted,
[SettingName("original")] Default,
[SettingName("restricted")] VanillaDrops,
Loose,
FollowLinked,
[SettingName("follow_linked")] Chaos,
}
public enum LinkedDrops {
Unset,
[SettingName("unset")] Default,
Linked,
Independent,
}
@@ -349,7 +347,7 @@
Underworld,
}
public enum Pottery {
public enum PotShuffle {
[SettingName("none")] Vanilla,
[AdditionalSetting("--colorizepots")] Keys,
[AdditionalSetting("--colorizepots")] Cave,
@@ -358,7 +356,7 @@
[AdditionalSetting("--colorizepots")] Clustered,
[AdditionalSetting("--colorizepots")] NonEmpty,
[AdditionalSetting("--colorizepots")] Dungeon,
Lottery,
[SettingName("lottery")] All,
}
public enum PrizeShuffle {
@@ -405,7 +403,7 @@
[SettingName("always_light_cone")] AlwaysLightCone,
[SettingName("no_dark_rooms")] NoDarkRooms,
[SettingName("require_lamp")] [AddStartingItems("Lamp")] StartingLamp,
[SettingName("always_in_logic")] AlwaysInLogic,
[SettingName("always_in_logic")] DarkInLogic,
}
public enum BombSettings {
@@ -440,7 +438,7 @@
public enum TrapDoorMode {
Vanilla,
Optional,
[SettingName("optional")] Some,
Boss,
[SettingName("oneway")] RemoveAll,
}