namespace NeonSprawl.Server.Game.Npc; /// Maps GET /game/world/npc-behavior-definitions (NEO-90). public static class NpcBehaviorDefinitionsWorldApi { public static WebApplication MapNpcBehaviorDefinitionsWorldApi(this WebApplication app) { app.MapGet( "/game/world/npc-behavior-definitions", (INpcBehaviorDefinitionRegistry registry) => { var defs = registry.GetDefinitionsInIdOrder(); var npcBehaviors = new List(defs.Count); foreach (var d in defs) { npcBehaviors.Add( new NpcBehaviorDefinitionJson { Id = d.Id, DisplayName = d.DisplayName, ArchetypeKind = d.ArchetypeKind, MaxHp = d.MaxHp, AggroRadius = d.AggroRadius, LeashRadius = d.LeashRadius, TelegraphWindupSeconds = d.TelegraphWindupSeconds, AttackDamage = d.AttackDamage, AttackCooldownSeconds = d.AttackCooldownSeconds, }); } return Results.Json( new NpcBehaviorDefinitionsListResponse { SchemaVersion = NpcBehaviorDefinitionsListResponse.CurrentSchemaVersion, NpcBehaviors = npcBehaviors, }); }); return app; } }