From 085433e1084c3340eec1af9898c838e170e5a445 Mon Sep 17 00:00:00 2001 From: Kara Alexandra Date: Sun, 2 Mar 2025 14:00:40 -0600 Subject: [PATCH] Add settings for ganon crystals and GT crystals --- ALttPRandomizer/JsonOptions.cs | 2 +- ALttPRandomizer/Model/SeedSettings.cs | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/ALttPRandomizer/JsonOptions.cs b/ALttPRandomizer/JsonOptions.cs index e9f7dae..7c2781d 100644 --- a/ALttPRandomizer/JsonOptions.cs +++ b/ALttPRandomizer/JsonOptions.cs @@ -8,7 +8,7 @@ }.WithStringEnum(); public static JsonSerializerOptions WithStringEnum(this JsonSerializerOptions options) { - options.Converters.Add(new JsonStringEnumConverter()); + options.Converters.Add(new JsonStringEnumConverter(JsonNamingPolicy.SnakeCaseLower)); return options; } } diff --git a/ALttPRandomizer/Model/SeedSettings.cs b/ALttPRandomizer/Model/SeedSettings.cs index 7bd704c..16eeb81 100644 --- a/ALttPRandomizer/Model/SeedSettings.cs +++ b/ALttPRandomizer/Model/SeedSettings.cs @@ -1,6 +1,7 @@ namespace ALttPRandomizer.Model { using ALttPRandomizer.Settings; using System.ComponentModel.DataAnnotations; + using System.Text.Json.Serialization; public class SeedSettings { public const string Omit = ""; @@ -11,6 +12,12 @@ public Goal Goal { get; set; } = Goal.Ganon; + [CommonValue("crystals_ganon")] + public EntryRequirement CrystalsGanon { get; set; } = EntryRequirement.Crystals7; + + [CommonValue("crystals_gt")] + public EntryRequirement CrystalsGT { get; set; } = EntryRequirement.Crystals7; + public EntranceShuffle EntranceShuffle { get; set; } = EntranceShuffle.Vanilla; public SkullWoodsShuffle SkullWoods { get; set; } = SkullWoodsShuffle.Original; public LinkedDrops LinkedDrops { get; set; } = LinkedDrops.Unset; @@ -65,6 +72,18 @@ Completionist, } + public enum EntryRequirement { + [JsonStringEnumMemberName("7")] [CommonValue("7")] Crystals7, + [JsonStringEnumMemberName("6")] [CommonValue("6")] Crystals6, + [JsonStringEnumMemberName("5")] [CommonValue("5")] Crystals5, + [JsonStringEnumMemberName("4")] [CommonValue("4")] Crystals4, + [JsonStringEnumMemberName("3")] [CommonValue("3")] Crystals3, + [JsonStringEnumMemberName("2")] [CommonValue("2")] Crystals2, + [JsonStringEnumMemberName("1")] [CommonValue("1")] Crystals1, + [JsonStringEnumMemberName("0")] [CommonValue("0")] Crystals0, + Random, + } + [CommonValue("shuffle")] public enum EntranceShuffle { Vanilla,