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

3.4 KiB
Raw Blame History

NEO-122 — Manual QA checklist

Field Value
Key NEO-122
Title E7M1-11: Client quest progress + accept HUD (Godot)
Linear https://linear.app/neon-sprawl/issue/NEO-122/e7m1-11-client-quest-progress-accept-hud-godot
Plan docs/plans/NEO-122-implementation-plan.md
Branch NEO-122-client-quest-progress-accept-hud

Preconditions

  • Fresh dev player: stop any running server, then start a new instance so in-memory quest progress resets.
  • No Bruno/curl for this checklist — accept and progress use Godot Q / Shift+Q and gameplay actions only.
  • NEO-119 quest-progress GET, NEO-120 accept POST, and NEO-115 quest-definitions GET landed on main.

Expected quest HUD progression

After QuestProgressLabel QuestAcceptFeedbackLabel
Boot All four quests not started (display names when defs loaded) Quest accept: — (Q gather / Shift+Q next)
Q accept gather Intro: Salvage Run: active step 1 Quest accept: Intro: Salvage Run accepted
Gather scrap (R on resource node ×3) Gather objective counter increases (e.g. gather_intro_obj_scrap=3) unchanged
Gather quest completes Intro: Salvage Run: completed unchanged
Shift+Q accept refine (after gather complete) Intro: Refine Stock: active step 1 Quest accept: Intro: Refine Stock accepted
Craft refine_scrap_standard (Economy HUD) Refine quest completes when recipe succeeds unchanged
Duplicate Q on gather Gather row stays completed Quest accept: denied — already_completed (or already_active)

Checklist

  1. Start server: cd server/NeonSprawl.Server && dotnet run.
  2. Run Godot main scene (F5). Confirm QuestProgressLabel shows four not started lines and QuestAcceptFeedbackLabel shows the idle hint (below encounter loot labels).
  3. Press Q. Verify gather intro becomes active step 1 and accept feedback shows success.
  4. Gather scrap until gather quest completes (resource node R). Verify counter updates on QuestProgressLabel after each successful gather (may lag one GET).
  5. Press Shift+Q before gather is complete — verify Quest accept: denied — prerequisite_incomplete for refine (or no eligible quest if refine is not yet eligible).
  6. After gather completes, press Shift+Q. Verify refine quest becomes active.
  7. Craft refine_scrap_standard with Economy HUD open. Verify refine quest completed after successful craft.
  8. Press Q again on already-completed gather. Verify deny feedback on QuestAcceptFeedbackLabel without Bruno.
  9. Optional: stop server while Godot running, press Q — verify Quests: error — … or accept failed — … visible on HUD.

Notes

  • Combat intro (prototype_quest_combat_intro) has no prerequisites — Shift+Q may offer it before refine if gather is still active; server deny is authoritative when prerequisites block accept.
  • Full four-quest chain capstone: NEO-123 manual QA.
  • Encounter progress HUD regression: NEO-110 manual QA.

Acceptance

  • Steps 18 completable in one session without Bruno/curl.
  • Quest status visible after Q accept and updates after gather/craft without manual refresh key.
  • Failed GET/accept shows visible HUD error copy.