namespace NeonSprawl.Server.Game.Combat; /// Maps GET /game/world/ability-definitions (NEO-78). public static class AbilityDefinitionsWorldApi { public static WebApplication MapAbilityDefinitionsWorldApi(this WebApplication app) { app.MapGet( "/game/world/ability-definitions", (IAbilityDefinitionRegistry registry) => { var defs = registry.GetDefinitionsInIdOrder(); var abilities = new List(defs.Count); foreach (var d in defs) { abilities.Add( new AbilityDefinitionJson { Id = d.Id, DisplayName = d.DisplayName, BaseDamage = d.BaseDamage, CooldownSeconds = d.CooldownSeconds, MaxRange = d.MaxRange, AbilityKind = d.AbilityKind, }); } return Results.Json( new AbilityDefinitionsListResponse { SchemaVersion = AbilityDefinitionsListResponse.CurrentSchemaVersion, Abilities = abilities, }); }); return app; } }