Plan focus cone, head ring, and radial action menu; defer host sign-in
Document the next playable pass: WASD/look stop fighting action keys, cone focus with a billboarded head ring, doughnut HUD opened by LMB or Space (click or A/D then Space to confirm, Esc/RMB cancel). Emergency stays on R. Wand leaves W. NPC rigs stay procedural but get a face/hair/neck. Host REQUIRE_SIGNIN_VIEW follow-up deferred.
This commit is contained in:
1 parent
b704a8ed61
commit
5662baa14d
3 files changed
+193
No files matched your search
@@ -1,5 +1,54 @@
|
||||
# TODO
|
||||
|
||||
## Player control, focus ring, and radial action menu
|
||||
|
||||
Design is in `PLAN.md` → "Player Control, Focus, and Action Menu (next pass)". Distribution
|
||||
follow-up (host `REQUIRE_SIGNIN_VIEW`) is deferred.
|
||||
|
||||
### Locomotion
|
||||
|
||||
- [ ] Stop stealing WASD: wand off `W` (use wheel + optional `C`); allow/deny `A`/`D` only while
|
||||
inspect/wand is open; polite direction off `Q` as a required bind.
|
||||
- [ ] Accel/decel on walk; gravity only when airborne; `floor_snap_length` for the steps.
|
||||
- [ ] Mouse look only while captured and no modal UI is open. Freeze walk+look while the radial
|
||||
(and inspect/wand opened from it) is up. Recapture on close.
|
||||
- [ ] `Esc` closes the top modal first; with nothing open it still toggles mouse capture.
|
||||
|
||||
### Focus and head ring
|
||||
|
||||
- [ ] Replace the 8 m hairline ray as the primary picker with a focus cone (range ~10 m, head
|
||||
inside a ~90 px / 10° circle around the crosshair; closest to center wins; occluded heads
|
||||
skipped). Keep `Tab` as the 12 m cycle.
|
||||
- [ ] Small grace so walk-bob does not drop focus.
|
||||
- [ ] Billboarded ring on the focused avatar `Head`; gold idle, brighter while the radial is open;
|
||||
one at a time. Optional `display_name` under the ring. No internal type name in the world.
|
||||
|
||||
### Radial HUD
|
||||
|
||||
- [ ] New `src/game/ui/action_radial.gd` doughnut: open on LMB or `Space` when someone is focused.
|
||||
Opening click does not pick a slice. Slices (top, clockwise, de-escalation first): raise
|
||||
hand, point, head shake, polite direction, inspect, wand (grey if no wand), warning, block,
|
||||
radio assist. Emergency stays on `R` only.
|
||||
- [ ] Highlight by mouse angle, or `A`/`D` / arrows. Click slice or `Space` confirms. `Esc` / RMB
|
||||
closes with no action and no recorder event.
|
||||
- [ ] Inspect / wand / radio slices close the wheel then open the existing panels. Freeze until
|
||||
that panel closes.
|
||||
- [ ] Number keys `1`–`6` may remain as closed-menu shortcuts; they must not fire while the wheel
|
||||
is open.
|
||||
|
||||
### NPC display
|
||||
|
||||
- [ ] Procedural rig: neck, shoes, hair cap from seed, two eye spheres so the head has a front.
|
||||
Keep props, height variation, walk bob, notice-head-turn. Collision capsule matches height.
|
||||
Named `Head` node stays the attach point.
|
||||
|
||||
### Input, copy, tests
|
||||
|
||||
- [ ] Update `project.godot` input map (`action_menu`, `confirm`, `cancel` includes RMB, wand on
|
||||
`C`). Update `hud.controls` and the README table + smoke checklist.
|
||||
- [ ] Headless tests `src/test/tests/test_focus_and_radial.gd`: cone picks the centered head;
|
||||
highlight wrap; cancel writes no recorder event; `W` does not open wand.
|
||||
|
||||
## Distribution follow-up (findings + host config)
|
||||
|
||||
Verified via API+host credentials (2026-10-31):
|
||||
@@ -34,3 +83,9 @@ performance hardening only.
|
||||
- [ ] Profile the crowd: ensure textured materials and props hold target frame rate around a
|
||||
busy entrance.
|
||||
- [ ] Add LOD or culling for distant NPCs/props if the crowd grows.
|
||||
|
||||
## Generated Asset Integration
|
||||
|
||||
- [ ] Regenerate the AI asset set at role-specific aspect ratios and dimensions.
|
||||
- [ ] Audit, process, and wire every generated asset into the game runtime.
|
||||
- [ ] Add screenshot auditing and refresh the README screenshot gallery.
|
||||
Reference in new issue
Block a user