docs(scope): update D-053 with client throttle and input model

Document client-side movement throttle rates per stance, hold-to-move
input model with composite diagonals, and crouch ticks-per-move value.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-16 23:26:34 +01:00
co-authored by Claude Opus 4.6
parent 3a02fd0d2a
commit 855dc72b58
+4 -2
View File
@@ -147,12 +147,14 @@ What we're building: game concept, design pillars, prototype definition, map spe
### D-053: Movement as stance toggle system
- **Date:** 2026-02-13
- **Decision:** Movement uses a stance toggle ladder: Sprint / Walk / Careful / Crouch / (Prone future). Toggle-based, not hold-to-activate. Each archetype has a default stance via MovementProfile component (e.g., smuggler defaults to Walk, detective defaults to Walk). All characters have access to all stances. Prone: toggle out only in normal play (must explicitly stand up); future combat allows "hit the deck" quick-entry.
- **Stance values:**
- **Stance values (server — ticks per move):**
- Sprint: 1 tile/1 tick. Monologue at 40% rate (urgent only). Loud footsteps. Interaction buffer cleared ([D-055](architecture.md#d-055-sprint-explicitly-suppresses-interaction-buffer)).
- Walk: 1 tile/2 ticks. Monologue at 100% rate. Normal footsteps. Default stance.
- Careful: 1 tile/3 ticks. Monologue at 150% rate + "tell notice bonus." Quiet footsteps. Enhanced eavesdropping via ListeningFocus (stationary_ticks accumulation).
- Crouch: TBD speed. Very quiet footsteps. Uses Prone/Seated occupancy layer ([D-054](architecture.md#d-054-tile-based-movement-with-same-tile-occupancy)).
- Crouch: 1 tile/4 ticks. Very quiet footsteps. Uses Prone/Seated occupancy layer ([D-054](architecture.md#d-054-tile-based-movement-with-same-tile-occupancy)).
- Prone: Future. Minimal noise. Toggle-out only.
- **Client throttle (ms between commands):** Sprint=200ms (5/s), Walk=400ms (2.5/s), Careful=600ms (~1.7/s), Crouch=800ms (1.25/s). Prevents input flooding; server cooldown remains authoritative. Tuned via playtesting: 5 tiles/sec feels like a flat-out sprint, 2.5/sec is a comfortable walk.
- **Input model:** Hold-to-move (polled each frame), discrete actions on press. Composite diagonals via simultaneous keys (W+D → northeast). See `client/scripts/autoloads/input_mapper.gd`.
- **Perception coupling:** Sprint suppresses interpretation (monologue), not data (overlays still render). Careful enhances observation. Composable via multiplicative formula: `movement_modifier * perception_load_modifier`. All stances: NO vision cone change — perception change is cognitive, not sensory.
- **Emergent tactics:** Sprint ahead to get position → Careful to wait and observe → Walk when target passes. Speed modes compose into surveillance patterns.
- **v0.1:** Sprint, Walk, Careful, Crouch. Prone deferred.