Mystery setup

This commit is contained in:
2026-05-25 00:23:10 -05:00
parent bceff701bf
commit 3fae7e5b4c
7 changed files with 70 additions and 22 deletions

View File

@@ -14,28 +14,16 @@
public class SeedController : Controller {
public SeedController(
RandomizeService randomizeService,
MysteryRandomizer mysteryRandomizer,
SeedService seedService,
ILogger<SeedController> logger) {
this.RandomizeService = randomizeService;
this.MysteryRandomizer = mysteryRandomizer;
this.SeedService = seedService;
this.Logger = logger;
this.YamlSerializer =
new SerializerBuilder()
.WithNamingConvention(UnderscoredNamingConvention.Instance)
.WithTypeConverter(new YamlStringEnumConverter())
.WithTypeConverter(new RandomizableWeightsYamlConverters())
.ConfigureDefaultValuesHandling(DefaultValuesHandling.OmitNull | DefaultValuesHandling.OmitEmptyCollections)
.Build();
}
private RandomizeService RandomizeService { get; }
private MysteryRandomizer MysteryRandomizer { get; }
private SeedService SeedService { get; }
private ILogger<SeedController> Logger { get; }
private ISerializer YamlSerializer { get; }
[Route("/generate")]
[HttpPost]
@@ -43,6 +31,7 @@
if (!ModelState.IsValid) {
return BadRequest(ModelState);
}
try {
var id = await this.RandomizeService.RandomizeSeed(settings);
var url = string.Format("/seed/{0}", id);
@@ -54,15 +43,24 @@
[Route("/mystery/{randomizer}")]
[HttpPost]
public ActionResult RollMystery([FromBody] MysterySettings mysterySettings, RandomizerInstance randomizer) {
public async Task<ObjectResult> RollMystery([FromBody] MysterySettings mysterySettings, RandomizerInstance randomizer, bool race) {
if (!ModelState.IsValid) {
return BadRequest(ModelState);
}
var seedSettings = new SeedSettings() { Randomizer = randomizer };
this.MysteryRandomizer.Roll(mysterySettings, seedSettings);
var baseSettings = new SeedSettings() {
Randomizer = randomizer,
Race = race ? RaceMode.Race : RaceMode.Normal,
Mystery = MysteryMode.Mystery,
};
return StatusCode(200, this.YamlSerializer.Serialize(mysterySettings));
try {
var id = await this.RandomizeService.RandomizeMystery(mysterySettings, baseSettings);
var url = string.Format("/seed/{0}", id);
return Accepted(url, id);
} catch (InvalidSettingsException ex) {
return BadRequest(ex.Message);
}
}
[Route("/multiworld")]