Close the 0.9.3 UI polish milestone
Add deterministic captures 14-21 for the remaining screen-design states, fix the panel/button layout issues they exposed, and record 21/21 compare and judge results. Bump the source to 0.9.3 and move the completed milestone to DONE.md.
This commit is contained in:
1 parent
e805a91ad3
commit
c1cd4898e8
32 files changed
+440
-160
No files matched your search
@@ -1660,3 +1660,78 @@ redesign.
|
||||
blocks a build.
|
||||
|
||||
Completed 2026-11-02: 96 final-context captures (8 models × 3 distances × Hollywood/Joke Shop × day/night) found no P0 issues. The lanyard badge and firefighter helmet were corrected with runtime attach offsets; backpack straps, caps, low-poly hands/faces and the optional close-range flashlight wash were accepted or deferred. The 24-NPC budget is 6.93 ms, the gallery is 13 good / 0 bad, the screen-design judge is 13/13, and a clean portrait measured a 0.732 vision gap against the photoreal concept. No build, version bump or tag was created.
|
||||
|
||||
## Patch 0.9.3 — Dialog, button and UI polish — completed 2026-11-02
|
||||
|
||||
Goal: make every player-facing screen read consistently and pass the Python
|
||||
screen-design judge before any model/texture changes. No gameplay rules change.
|
||||
|
||||
### Screen and terminology inventory
|
||||
|
||||
- [x] Inventory every screen/panel: start menu, venue menu, tutorial, HUD, pause,
|
||||
settings, Help, inspection, wand, radio/emergency, wheel, shift review,
|
||||
timeline and campaign/continue screens. Recorded in `docs/ui-copy.md`.
|
||||
- [x] Record the canonical terms for admit/refuse, warning/blocking,
|
||||
assistance/emergency, body camera, shift review and campaign; the current
|
||||
inspection/wand/radio/review labels use them (see `docs/ui-copy.md`).
|
||||
- [x] Audit all button labels for verb-first wording, capitalization, ordering,
|
||||
destructive-action confirmation and consistent confirm/cancel placement;
|
||||
recorded in `docs/ui-copy.md` and fixed Quit/Apply wording.
|
||||
- [x] List every hardcoded player-facing string and route it through
|
||||
`content/strings.en.json`; remaining UI literals are numeric/debug-only or
|
||||
dynamic data. Placeholder validation covers the new keys.
|
||||
- [x] Review NPC/door-staff/radio/tutorial/help/review/campaign dialogue for
|
||||
repetition, ambiguity, tone and localization length. (Reason contexts,
|
||||
door-staff lines, radio/tutorial/help copy and length findings recorded in
|
||||
`docs/ui-copy.md`; longest dialogue line is 56 characters.)
|
||||
|
||||
### Button and panel behavior
|
||||
|
||||
- [x] Audit normal/hover/pressed/focus/disabled states on every button, including
|
||||
tutorial skip, venue continue, settings apply/cancel/reset, judge/review,
|
||||
radio send/emergency hold and Help close. (Shared `UiStyles` states applied;
|
||||
timeline boundary disabling and the keyboard-only F1 skip are documented in
|
||||
`docs/ui-copy.md`.)
|
||||
- [x] Verify keyboard-only and gamepad-only navigation: focus order, wrapping,
|
||||
default focus, confirm/cancel behavior and no focus traps. (Focus rings,
|
||||
gamepad A/B UI bindings, default focus and per-modal cancel behavior are
|
||||
recorded in `docs/ui-copy.md`.)
|
||||
- [x] Verify every modal closes with Esc/right-click where documented, recaptures
|
||||
the mouse, and does not leave the guard frozen or the menu visible. (Single
|
||||
top-modal close path, menu/settings return handling and pointer recapture are
|
||||
recorded in `docs/ui-copy.md`; session smoke covers menu Settings, Help
|
||||
right-click and pause Settings.)
|
||||
- [x] Test buttons at minimum/maximum HUD font scale and with 1.5–2× longer
|
||||
strings; fix clipping, overflow and overlapping layouts. (Target chip now
|
||||
measures/caps scaled text, HUD top labels clip, and action buttons ellipsize;
|
||||
regression checks are in `test_accessibility.gd` and `test_ui_buttons.gd`.)
|
||||
- [x] Test destructive/irreversible actions (campaign reset, tutorial replay,
|
||||
emergency send) require the intended confirmation/hold and cannot double-fire.
|
||||
(Reset/replay share one guarded confirmation dialog; emergency hold submits
|
||||
once and ignores the post-submit release. Covered by session/radio tests.)
|
||||
- [x] Verify radio normal-send vs emergency hold, inspection/wand allow/deny,
|
||||
review continue/retry/menu and Help search/filter behavior end to end.
|
||||
(`smoke_ui_flows.gd` covers inspection, radio, Help, wand and review;
|
||||
`smoke_campaign.gd` covers review continue/checkpoint resume.)
|
||||
|
||||
### Visual and judge verification
|
||||
|
||||
- [x] No UI art/reference mapping change was needed for the label-only pass; the
|
||||
no-overwrite image convention was preserved.
|
||||
- [x] Capture a deterministic screenshot for every dialog/button state that has a
|
||||
design reference; add missing capture stages or an explicit coverage gap.
|
||||
(`src/test/capture_ui_states.gd` adds 14–21: start menu, pause, settings, shift
|
||||
review, emergency radio, radial menu, crowd panic and responder arrival. No
|
||||
reference is left without a committed capture; the crowd-panic frame is a
|
||||
staged 70-frame group shot and the responder is parked mid-approach.)
|
||||
- [x] Ran `tools/check_screenshots.sh` and `screen_designs.py compare`: 21 good,
|
||||
0 bad.
|
||||
- [x] Ran the judge with automatic model selection: 21/21 match, 0 review, 0 diff.
|
||||
- [x] Recorded the judge model and result in `docs/screen-design-report.md`; the
|
||||
generated captures remain local/gitignored.
|
||||
- [x] Add a short UI copy/button checklist to `docs/smoke-checklist.md`.
|
||||
- [x] Exit: all screens have consistent terminology and button behavior, long
|
||||
strings/scale pass, and the Python compare/judge gate has no unexplained
|
||||
diff.
|
||||
|
||||
Completed 2026-11-02: all 0.9.3 UI checks are closed. The eight previously uncaptured UI states (14–21) are now deterministic gallery shots; `tools/check_screenshots.sh` reports 21 good / 0 bad and the automatic judge 21/21 match, 0 diff. The source version is now 0.9.3; no release build or tag has been produced for it yet.
|
||||
Reference in new issue
Block a user