3.3 KiB
3.3 KiB
NEO-142 — Manual QA checklist
| Field | Value |
|---|---|
| Key | NEO-142 |
| Title | E7M3-10: Client faction standing + gate feedback HUD (Godot) |
| Linear | https://linear.app/neon-sprawl/issue/NEO-142/e7m3-10-client-faction-standing-gate-feedback-hud-godot |
| Plan | docs/plans/NEO-142-implementation-plan.md |
| Branch | NEO-142-client-faction-standing-gate-hud |
Preconditions
- Fresh dev player: stop any running server, then start a new instance so quest progress, faction standing, and reward delivery reset.
- No Bruno/curl for this checklist — use Godot gameplay only.
- NEO-139
GET /game/players/{id}/faction-standingand NEO-140 quest HTTP rep/gate projections landed onmain. - NEO-122 quest HUD + NEO-131 reward HUD landed on
main.
Expected HUD progression
| After | FactionStandingLabel |
QuestAcceptFeedbackLabel |
|---|---|---|
| Boot | Grid Operators: 0, Rust Collective: 0 |
idle accept hint |
| Operator chain completes | Grid Operators: 15 |
unchanged |
| Accept grid contract before rep (after chain complete, standing still 0) | still 0 until chain rep lands |
readable gate deny with required standing |
| Accept grid contract at standing 15 | unchanged | accept succeeds |
Checklist
- Start server:
cd server/NeonSprawl.Server && dotnet run. - Run Godot main scene (F5). Confirm
FactionStandingLabelappears belowQuestRewardDeliveryLabelwith both factions at 0. - Follow NEO-123 through
prototype_quest_operator_chaincompletion (or use the operator-chain segment from NEO-131 step 6). - Verify
FactionStandingLabelupdates toGrid Operators: 15(Rust Collective still 0) — may lagQuestRewardDeliveryLabelrep line by one faction-standing GET round-trip; confirm both within a moment after operator-chain completion. - Verify
QuestRewardDeliveryLabelon operator-chain completion includesGrid Operators +15 rep(alongside item/skill lines when present). - Verify readable
faction_gate_blockedcopy via GdUnit (client/test/faction_standing_hud_test.gd) — normal Godot gameplay completes operator chain with +15 rep atomically, so live accept ofprototype_quest_grid_contractsucceeds at standing 15 rather than denying. Optional server dev setup:POST …/__dev/quest-fixturewithcompletedQuestIds: [prototype_quest_operator_chain]and faction reset (see Bruno seq 10) then attempt grid-contract accept in Godot — expectGrid Operators standing 15 required (have 0)onQuestAcceptFeedbackLabel. - Accept
prototype_quest_grid_contractwhenGrid Operators: 15. Verify accept succeeds. - Optional: stop server while Godot running; confirm
FactionStandingLabelshowserror — …while quest labels keep NEO-122 sync error behavior.
Regression spot-check
- NEO-122 — quest progress + accept HUD unchanged except new label below reward label.
- NEO-131 — reward label transition-only behavior unchanged except rep grant lines.
Full-flow capstone: NEO-143 extends NEO-132 with end-to-end Slice 3 faction reputation verification (operator chain +15 → grid contract +10 → idempotency). Gate deny remains component QA here (step 6).