neon-sprawl/docs/plans
VinPropane 453000d721 NEON-29: fix step-climb regression (snap Y floor + step assist snap)
Two independent root causes kept the player from climbing terrace steps:

1. snap_to_server used the raw surface Y from the server (e.g. 0.6 m for a
   platform) as global_position.y directly.  With capsule total half-height
   = 0.9 m this placed the bottom at -0.3 m underground.  The stale
   is_on_floor()==true + _floor_angle_loose_ticks==0 path skipped every
   move_and_slide(), so Jolt never resolved the penetration and the capsule
   froze at an intermediate Y.
   Fix: clamp global_position.y >= CAPSULE_HALF_HEIGHT + PLAYER_CAPSULE_RADIUS
   (0.9 m) in snap_to_server; force FLOOR_ANGLE_LOOSE_TICKS_AFTER_STOP
   corrective idle ticks afterwards.

2. Each _try_walk_step_assist() lift (0.11 m) was immediately undone by
   floor_snap_length = FLOOR_SNAP_MOVING = 0.32 m snapping the capsule back
   to the lower floor, which was only 0.11 m below the lifted bottom.
   Fix: add WALK_STEP_ASSIST_SNAP = 0.09 m constant and _step_assist_active
   bool.  While climbing, floor_snap_length uses the smaller constant in
   both _after_walk_move_and_slide() and the main physics loop.  The flag
   is cleared when the capsule lands cleanly (is_on_floor && !is_on_wall),
   or when the nav goal is cleared/snapped to server.

Also: is_on_wall() now counts as support in _step_assist_has_support() so
the assist fires while the capsule is floating but pressed against a step
face; _step_assist_active cleared on arrival, snap, and goal-clear; all
temporary DBG print() statements removed.
2026-04-11 22:15:24 -04:00
..
NEON-2-implementation-plan.md chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
NEON-3-implementation-plan.md chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
NEON-4-implementation-plan.md chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
NEON-5-implementation-plan.md chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
NEON-6-implementation-plan.md chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
NEON-7-implementation-plan.md chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
NEON-8-implementation-plan.md chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
NEON-14-implementation-plan.md chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
NEON-15-implementation-plan.md NEON-15: address review nits (shutdown token, plan verification note) 2026-04-08 22:09:12 -04:00
NEON-16-implementation-plan.md NEON-16: harden idle jitter follow-up 2026-04-10 00:46:53 -04:00
NEON-25-implementation-plan.md NEON-25: isometric follow camera, CameraState, tests, and docs 2026-04-07 23:46:04 -04:00
NEON-26-implementation-plan.md NEON-26: address code review follow-ups (zoom validation, docs) 2026-04-08 22:58:28 -04:00
NEON-27-implementation-plan.md NEON-27: address review suggestions — doc alignment pass 2026-04-08 23:52:46 -04:00
NEON-28-implementation-plan.md NEON-28: Dev obstacle smoke, nav reparent on hide, and docs 2026-04-10 23:55:50 -04:00
NEON-29-implementation-plan.md NEON-29: fix step-climb regression (snap Y floor + step assist snap) 2026-04-11 22:15:24 -04:00
NEON-30-implementation-plan.md NEON-30: address review — check AC boxes, add manual-check section to README 2026-04-09 23:03:17 -04:00
internal-content-authoring.md chore: Epic 2 E2.M1 stub, content CI validation, doc follow-ups 2026-04-03 21:27:52 -04:00