neon-sprawl/docs/manual-qa/NEO-63.md

2.5 KiB
Raw Blame History

Manual QA — NEO-63 (gather via interact → inventory)

Reference: implementation plan, NEO-62 implementation plan gather engine, NEO-55 inventory GET.

Preconditions

  • Run NeonSprawl.Server from server/NeonSprawl.Server (dotnet run; default http://localhost:5253).
  • Player dev-local-1 (default seed).
BASE=http://localhost:5253
ID=dev-local-1

Happy path — gather → inventory + XP

Move in range of prototype_resource_node_alpha (anchor 12, 6; stand at 10, 6):

curl -sS -i -X POST "${BASE}/game/players/${ID}/move" \
  -H "Content-Type: application/json" \
  -d '{"schemaVersion":1,"target":{"x":10,"y":0.9,"z":-6}}'

Interact:

curl -sS -i -X POST "${BASE}/game/players/${ID}/interact" \
  -H "Content-Type: application/json" \
  -d '{"schemaVersion":1,"interactableId":"prototype_resource_node_alpha"}'

Expect HTTP 200, allowed: true.

Inventory should show scrap_metal_bulk quantity 1 (or +1 per repeat):

curl -sS "${BASE}/game/players/${ID}/inventory"

Skill progression should show salvage xp +10 per successful gather:

curl -sS "${BASE}/game/players/${ID}/skill-progression"

Depletion deny

Uses prototype_urban_bulk_delta (anchor 18, 0) so earlier Bruno interaction requests on alpha do not pre-deplete capacity in the shared CI Postgres store. Move in range (16, 0), exhaust with 10 successful interacts on delta, then interact again:

curl -sS -i -X POST "${BASE}/game/players/${ID}/move" \
  -H "Content-Type: application/json" \
  -d '{"schemaVersion":1,"target":{"x":16,"y":0.9,"z":0}}'

(Repeat interact on prototype_urban_bulk_delta ten times with allowed: true, then:)

curl -sS -i -X POST "${BASE}/game/players/${ID}/interact" \
  -H "Content-Type: application/json" \
  -d '{"schemaVersion":1,"interactableId":"prototype_urban_bulk_delta"}'

Expect HTTP 200, allowed: false, reasonCode: node_depleted. Inventory and XP totals unchanged on that denied request.

Control — terminal

Move near prototype_terminal, interact with prototype_terminal: allowed: true; no scrap_metal_bulk added; no gather XP from terminal alone.

Bruno

Run folder bruno/neon-sprawl-server/interaction/Post interact gather then get inventory.bru and Post interact depleted node deny.bru.