diff --git a/.dockerignore b/.dockerignore index 2ee22a9..44acb7c 100644 --- a/.dockerignore +++ b/.dockerignore @@ -6,5 +6,7 @@ ALttPRandomizer/[Bb]in */__pycache__ */.github */_vendor -ALttPDoorRandomizer/DR_* -ALttPDoorRandomizer/data/base2current.json +*/DR_* +*/ER_* +*/OR_* +*/data/base2current.json diff --git a/ALttPRandomizer/JsonOptions.cs b/ALttPRandomizer/JsonOptions.cs index 7c2781d..ee0ecd6 100644 --- a/ALttPRandomizer/JsonOptions.cs +++ b/ALttPRandomizer/JsonOptions.cs @@ -5,10 +5,11 @@ public static class JsonOptions { public static JsonSerializerOptions Default = new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower, + NumberHandling = JsonNumberHandling.Strict, }.WithStringEnum(); public static JsonSerializerOptions WithStringEnum(this JsonSerializerOptions options) { - options.Converters.Add(new JsonStringEnumConverter(JsonNamingPolicy.SnakeCaseLower)); + options.Converters.Add(new JsonStringEnumConverter(JsonNamingPolicy.SnakeCaseLower, false)); return options; } } diff --git a/ALttPRandomizer/Model/SeedSettings.cs b/ALttPRandomizer/Model/SeedSettings.cs index 16eeb81..a6e2444 100644 --- a/ALttPRandomizer/Model/SeedSettings.cs +++ b/ALttPRandomizer/Model/SeedSettings.cs @@ -16,6 +16,7 @@ public EntryRequirement CrystalsGanon { get; set; } = EntryRequirement.Crystals7; [CommonValue("crystals_gt")] + [JsonPropertyName("crystals_gt")] public EntryRequirement CrystalsGT { get; set; } = EntryRequirement.Crystals7; public EntranceShuffle EntranceShuffle { get; set; } = EntranceShuffle.Vanilla; @@ -73,14 +74,14 @@ } 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, + [JsonStringEnumMemberName("0")] [CommonValue("0")] Crystals0 = 0, + [JsonStringEnumMemberName("1")] [CommonValue("1")] Crystals1 = 1, + [JsonStringEnumMemberName("2")] [CommonValue("2")] Crystals2 = 2, + [JsonStringEnumMemberName("3")] [CommonValue("3")] Crystals3 = 3, + [JsonStringEnumMemberName("4")] [CommonValue("4")] Crystals4 = 4, + [JsonStringEnumMemberName("5")] [CommonValue("5")] Crystals5 = 5, + [JsonStringEnumMemberName("6")] [CommonValue("6")] Crystals6 = 6, + [JsonStringEnumMemberName("7")] [CommonValue("7")] Crystals7 = 7, Random, } diff --git a/ALttPRandomizer/Program.cs b/ALttPRandomizer/Program.cs index 4df6875..5670cfe 100644 --- a/ALttPRandomizer/Program.cs +++ b/ALttPRandomizer/Program.cs @@ -26,7 +26,9 @@ builder.Services.Configure(builder.Configuration.GetSection("ALttPRandomizer")); - builder.Services.AddLogging(lb => lb.AddConsole()); + builder.Services.AddLogging(logger => { + logger.AddConsole(); + }); var provider = builder.Services.BuildServiceProvider(); var settings = provider.GetRequiredService>().CurrentValue!; diff --git a/ALttPRandomizer/Randomizer.cs b/ALttPRandomizer/Randomizer.cs index 6f2fd76..ba88699 100644 --- a/ALttPRandomizer/Randomizer.cs +++ b/ALttPRandomizer/Randomizer.cs @@ -59,6 +59,9 @@ this.AddArgs(args, this.SettingsProcessor.GetSettingPair(settings.Weapons)); this.AddArgs(args, this.SettingsProcessor.GetSettingPair(settings.Goal)); + this.AddArgs(args, this.SettingsProcessor.GetSettingPair(nameof(SeedSettings.CrystalsGanon), settings.CrystalsGanon)); + this.AddArgs(args, this.SettingsProcessor.GetSettingPair(nameof(SeedSettings.CrystalsGT), settings.CrystalsGT)); + this.AddArgs(args, this.SettingsProcessor.GetSettingPair(nameof(SeedSettings.SmallKeys), settings.SmallKeys)); this.AddArgs(args, this.SettingsProcessor.GetSettingPair(nameof(SeedSettings.BigKeys), settings.BigKeys)); this.AddArgs(args, this.SettingsProcessor.GetSettingPair(nameof(SeedSettings.Maps), settings.Maps)); diff --git a/ALttPRandomizer/Service/RandomizeService.cs b/ALttPRandomizer/Service/RandomizeService.cs index c26785e..e7316ae 100644 --- a/ALttPRandomizer/Service/RandomizeService.cs +++ b/ALttPRandomizer/Service/RandomizeService.cs @@ -1,17 +1,22 @@ using ALttPRandomizer.Model; +using Microsoft.Extensions.Logging; namespace ALttPRandomizer.Service { public class RandomizeService { - public RandomizeService(IdGenerator idGenerator, Randomizer randomizer) { + public RandomizeService(IdGenerator idGenerator, Randomizer randomizer, ILogger logger) { this.IdGenerator = idGenerator; this.Randomizer = randomizer; + this.Logger = logger; } + private ILogger Logger { get; } + private IdGenerator IdGenerator { get; } private Randomizer Randomizer { get; } public string RandomizeSeed(SeedSettings settings) { var id = this.IdGenerator.GenerateId(); + this.Logger.LogInformation("Generating seed {seedId} with settings {@settings}", id, settings); this.Randomizer.Randomize(id, settings); return id; }