VinPropane
48bca98467
NEO-134: fail-fast faction catalog load with E7M3 quest gates
...
Add Game/Factions loader, registry, and CI-parity prototype rules; extend
quest catalog to parse faction gates/rep grants and cross-check at startup.
2026-06-15 20:08:46 -04:00
VinPropane
2a8fe31b14
NEO-126: add IRewardDeliveryStore for quest completion rewards
...
In-memory RewardDeliveryEvent store with idempotent TryRecord,
grant summaries for future HTTP projection, DI registration, and tests.
2026-06-07 17:31:45 -04:00
VinPropane
2fa2e35ca6
NEO-120: Add quest accept POST API, tests, and Bruno spine.
...
Wire QuestStateOperations.TryAccept at POST /game/players/{id}/quests/{questId}/accept
with shared quest row projection, integration tests, and Bruno accept flows.
2026-06-07 12:18:51 -04:00
VinPropane
066d1ff981
NEO-119: Add GET quest-progress API with inventory refresh hook.
2026-06-07 11:56:28 -04:00
VinPropane
395b70c030
NEO-116: Add player quest state store with Postgres persistence.
...
Introduces IPlayerQuestStateStore (in-memory + V008 Postgres), QuestStepState
snapshots, DI wiring, AAA unit tests, and docs for E7M1-05 before NEO-117 ops.
2026-06-03 23:04:50 -04:00
VinPropane
31cd67725d
NEO-115: add GET /game/world/quest-definitions API and tests.
...
Expose read-only v1 quest projection from IQuestDefinitionRegistry with
flat objective fields, Bruno collection, and integration coverage.
2026-06-03 22:14:37 -04:00
VinPropane
b841b64581
NEO-113: add fail-fast quest catalog load and loader tests.
2026-05-31 22:33:43 -04:00
VinPropane
c1fd2053d0
NEO-108: Add GET encounter-progress API and integration tests.
...
Projects progress, completion, and event stores into versioned per-player
rows with inactive/active/completed state and commit-time grant summary.
2026-05-31 18:37:42 -04:00
VinPropane
9b48ec5f39
NEO-103: Add GET /game/world/encounter-definitions API.
...
Expose schema v1 encounter list with nested completionCriteria and
rewardTable summary via encounter and reward-table registries.
2026-05-31 15:40:12 -04:00
VinPropane
f921095fb0
NEO-101: Fail-fast encounter and reward-table catalog load at startup.
...
Adds Game/Encounters loaders mirroring validate_content.py E5M3 gates, DI registration with reward-tables-before-encounters load order, 19 AAA tests, and server README catalog sections.
2026-05-31 00:05:57 -04:00
VinPropane
cb1692ce85
NEO-95: add player combat HP store and NPC attack resolve
...
Wire telegraph-complete damage into AdvanceAll and expose GET
/game/players/{id}/combat-health for session player HP read model.
2026-05-28 23:42:18 -04:00
VinPropane
a68d8aa782
NEO-94: Add GET /game/world/npc-runtime-snapshot with lazy AdvanceAll.
...
Expose versioned NPC runtime rows and nested activeTelegraph DTOs for client poll; wire route, AAA integration tests, Bruno smoke, and docs.
2026-05-28 23:17:57 -04:00
VinPropane
48813998d7
NEO-93: Add NPC runtime state machine and lazy tick advance.
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-27 22:02:39 -04:00
VinPropane
843abf7126
NEO-92: Add threat store and aggro acquire/leash-clear wiring.
...
Introduce IThreatStateStore with first-hit acquire on damaging casts
and deterministic leash clears on player move and pre-acquire checks.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-27 21:45:57 -04:00
VinPropane
d3e765fb8f
NEO-90: add GET /game/world/npc-behavior-definitions projection.
...
Expose read-only npcBehaviors envelope backed by INpcBehaviorDefinitionRegistry,
with integration tests, Bruno smoke, and doc reconciliation.
2026-05-25 17:49:01 -04:00
VinPropane
83282e76f0
NEO-88: Fail-fast NPC behavior catalog load at server startup.
...
Mirror NEO-77 ability loader: JsonSchema.Net validation, E5M2 three-id
gate, leash > aggro numeric gate, DI singleton, Bruno health smoke, and
16 AAA loader/host tests.
2026-05-25 17:08:40 -04:00
VinPropane
71a6761f3c
NEO-44: Grant gig XP on combat defeat via dedicated store.
...
Add IPlayerGigProgressionStore (in-memory + Postgres V007), GET
/gig-progression snapshot, and CombatDefeatGigXpGrant on cast accept
when targetDefeated — 25 XP to breach, outside E2.M2 skill XP.
Includes tests, Bruno, README, manual QA, and plan reconciliation.
2026-05-25 12:04:40 -04:00
VinPropane
ea13b05196
NEO-83: Fix Bruno CI combat-targets HP state pollution.
...
Add dev combat-targets fixture reset endpoint, Bruno pre-request helper, and enable fixture in CI Bruno step so combat-targets tests run after ability-cast defeat spine.
2026-05-25 11:28:13 -04:00
VinPropane
52b1d4d206
NEO-83: Add GET /game/world/combat-targets HP snapshot.
...
Wire CombatTargetsWorldApi backed by ICombatEntityHealthStore, Bruno happy + cast defeat spine, integration tests, README and module tracking docs.
2026-05-25 11:20:13 -04:00
VinPropane
44e0056b37
NEO-78: Add GET /game/world/ability-definitions HTTP projection.
...
Expose versioned read-only ability catalog via IAbilityDefinitionRegistry,
with integration tests, Bruno folder, and docs alignment.
2026-05-24 22:22:48 -04:00
VinPropane
619089ca40
NEO-77: Add fail-fast ability catalog load at server startup.
...
Load content/abilities/*_abilities.json with CI-parity validation, E5M1
four-id gate, DI registration, AAA loader/host tests, and Bruno health check.
2026-05-24 21:40:58 -04:00
VinPropane
46393b8ca5
NEO-70: Add craft POST HTTP, Bruno spine, and docs.
...
Wire POST /game/players/{id}/craft to CraftOperations with CraftResponse DTOs,
integration tests, gather→refine→make Bruno folder, and module/README updates.
2026-05-24 17:57:55 -04:00
VinPropane
1636fdc2cb
NEO-68: Add GET /game/world/recipe-definitions HTTP projection.
...
Wire RecipeDefinitionsWorldApi over IRecipeDefinitionRegistry with schema v1
DTOs, Bruno folder, manual QA, and FrozenEightInIdOrder integration test.
2026-05-24 17:08:15 -04:00
VinPropane
f209636e7e
NEO-66: Fail-fast server recipe catalog load at startup.
...
Add Game/Crafting loader, Slice 3 gate rules, DI registration, and AAA tests
mirroring item/resource-node catalog patterns; cross-check item and skill ids.
2026-05-24 16:41:48 -04:00
VinPropane
97f8f31682
NEO-60: add GET /game/world/resource-node-definitions endpoint
...
Versioned read-only projection backed by IResourceNodeDefinitionRegistry
with nested yield DTOs, integration test, Bruno, manual QA, and docs.
2026-05-24 14:47:23 -04:00
VinPropane
0384b63046
NEO-58: add fail-fast resource-node catalog load at startup
...
Loader, Slice 2 gates, DI registration, AAA tests, README and plan updates.
Cross-checks yield itemIds against ItemDefinitionCatalog loaded first.
2026-05-24 14:01:29 -04:00
VinPropane
69327f50b4
NEO-55: player inventory GET/POST HTTP, Bruno, and docs
...
Versioned snapshot read and mutationKind add/remove POST backed by
PlayerInventoryOperations; AAA API tests; Bruno happy path + deny case.
2026-05-23 22:45:27 -04:00
VinPropane
08428c4da4
NEO-53: GET world item-definitions, Bruno, docs, and tests
...
Registry-backed read model at /game/world/item-definitions; Bruno
collection, manual QA checklist, README and module alignment updates.
2026-05-23 19:09:46 -04:00
VinPropane
2ba129dca1
NEO-51: Fail-fast item catalog load at server startup.
...
Mirror NEO-34/validate_content.py: *_items.json schema validation,
Slice 1 gate, ItemDefinitionCatalog DI, loader/host tests, Bruno health smoke.
2026-05-17 21:56:09 -04:00
VinPropane
ffdbed26f2
NEO-48: dev mastery-fixture API for Bruno state setup
...
Replace fixture player ids with POST …/__dev/mastery-fixture (resetPerkState,
absolute skillXp). Bruno deny tests set state in pre-request on dev-local-1.
Gated to Development/Testing or Game:EnableMasteryFixtureApi.
2026-05-17 20:31:26 -04:00
VinPropane
39c54c3881
NEO-48: perk-state HTTP, Bruno, tests, and docs
...
GET/POST /game/players/{id}/perk-state with versioned JSON, engine-backed
branch selection, PerkStateApiTests, Bruno collection, README, and E2.M3 alignment.
2026-05-17 20:10:31 -04:00
VinPropane
38774a5b39
NEO-47: perk unlock engine, PerkState persistence, and tests
...
Add V004 perk tables, in-memory/Postgres stores, PerkUnlockEngine (tier-1 branch
pick, path-auto tier-2 unlocks), level-up hook in skill XP grants, and AAA tests.
Bruno docs note internal perk reevaluation on level-up (HTTP in NEO-48).
2026-05-17 18:38:41 -04:00
VinPropane
174c390aa4
NEO-46: fail-fast mastery catalog load at server startup.
...
Mirror validate_content.py gates in MasteryCatalogLoader, expose IMasteryCatalogRegistry, cross-check skillIds against the skill catalog, and enforce tierIndex 1..N per track.
2026-05-17 18:06:50 -04:00
VinPropane
236040a5c2
NEO-39: add data-driven level curve with startup schema validation
...
Replace placeholder XP level math with content-backed thresholds validated in CI and at server boot, and update docs/manual QA/review artifacts to reflect NEO-39 delivery and follow-up fixes.
2026-05-06 23:10:06 -04:00
VinPropane
33b2e917e4
NEO-38: skill XP POST grant, persistence, level-up response
2026-05-06 22:17:02 -04:00
VinPropane
9cd96a72c3
NEO-37: add skill progression snapshot GET API, tests, Bruno, docs
2026-05-06 21:48:17 -04:00
VinPropane
ab597ff350
NEO-36: expose GET /game/world/skill-definitions with tests, Bruno, QA doc
2026-05-04 20:36:06 -04:00
VinPropane
1a9088c77c
NEO-34: fail-fast skill catalog load at server startup
...
Register SkillDefinitionCatalog from content/skills with JsonSchema.Net validation
mirroring validate_content.py and the prototype Slice 1 gate. Resolve paths via
Content:SkillsDirectory or discovery from AppContext.BaseDirectory. Eager-load
after WebApplication build so bad catalogs block startup. Add unit and host
tests, pin test factories to repo skills, document config in server/README, add
manual QA checklist, and extend Bruno GET /health smoke tests.
2026-05-02 19:44:10 -04:00
VinPropane
361a6800d2
NEO-32: cooldown snapshot API, on_cooldown deny, client HUD sync
2026-04-30 21:19:32 -04:00
VinPropane
7e97eb4c1d
NEO-31: ability cast POST, client hotbar keys, tests, Bruno
2026-04-27 20:17:57 -04:00
VinPropane
acde9e8145
NEO-29: add HotbarLoadout v1 contract and hydration path
...
Ship a server-owned hotbar loadout API with Postgres-or-memory persistence so slot bindings survive reconnects in configured environments. Wire client boot hydration and add tests/docs/manual QA to keep the prototype contract and policy explicit.
2026-04-25 22:29:52 -04:00
VinPropane
ce54fcc44f
NEO-25: world interactables GET, registry rows, fetch-driven Godot props + glow
2026-04-24 20:36:15 -04:00
VinPropane
465c4b14eb
NEO-23: add targeting HTTP API (TargetState v1, select intent)
2026-04-17 21:06:59 -04:00
VinPropane
0792da702a
chore: disable ASP.NET HttpLogging; update client project.godot
2026-04-10 22:27:35 -04:00
VinPropane
b043e8ac45
NS-18: InteractionRequest, client prototype, Postgres test UX
...
Server: POST /game/players/{id}/interact, HorizontalReach, prototype registry, DTOs, tests; default spawn (-5,0.9,-5); dev HttpLogging.
Client: terminal, radius glow preview, interaction_request_client (interact/E), main wiring; obstacle moved off center.
Tests: postgres.runsettings, launchSettings, Docker compose auto-start/teardown harness, async-safe init.
Docs: plan AC, E1.M1 snapshot, alignment table, server/client README, code review 2026-04-04.
2026-04-04 20:19:33 -04:00
VinPropane
f7bfd7cb32
NS-15 implement position state api
2026-03-29 23:08:17 -04:00
don
09a4106543
Update README and documentation to reflect project rebranding to "Neon Sprawl". Revise links to vision plan and adjust references in tech stack and decomposition documents. Enhance README with repository layout and instructions for running the server and client.
2026-03-29 17:23:00 -04:00