NEON-29: Stair descent — tighter continuation probe + stronger vertical accel

Lower WALK_CONTINUATION_MAX_BELOW_FEET to 0.078 m (under ~0.104 m treads) so
the next tread is not treated as forward walk support; ledge peel runs on
descents and pulls down onto each step instead of gliding with weak air gravity.

Raise PLAYER_VERTICAL_ACCEL_MULTIPLIER to 9× for peel, walk-air, and idle-air.
pull/41/head
VinPropane 2026-04-12 18:47:38 -04:00
parent b924707202
commit 33b6db979e
1 changed files with 8 additions and 8 deletions

View File

@ -75,11 +75,12 @@ const WALK_STEP_ASSIST_MAX_SURFACE_DELTA: float = 0.35
## Down-ray length under the capsule foot disk while walking (~[member NavigationMesh.agent_max_climb]).
const WALK_SUPPORT_PROBE_DEPTH: float = 0.32
const WALK_SUPPORT_PROBE_MIN_UP_DOT: float = 0.42
## Ignore ray hits farther below the feet than this (m). Prototype tread rise is ~0.104 m; without
## this cap, a probe over a **void** still reaches the **main floor** (~0.3 m down from a gold step)
## and reads as “forward support”, so snap + lip [code]is_on_floor()[/code] keep the capsule skating
## at deck height until XZ arrival.
const WALK_CONTINUATION_MAX_BELOW_FEET: float = 0.14
## Ignore ray hits farther below the feet than this (m). Must stay **below** approach tread rise
## (~0.104 m in [code]main.tscn[/code]): if the next tread counts as “continuation”, [method _walk_has_close_floor_probe_below]
## stays true on stairs while [code]is_on_floor()[/code] flickers — ledge peel never runs and the capsule
## glides horizontally with only weak airborne gravity. Still below a full gold→floor drop (~0.3 m) so
## void probes toward the slab reject the lower hit.
const WALK_CONTINUATION_MAX_BELOW_FEET: float = 0.078
## If capsule feet are farther above the clicks surface Y than this, always use walk gravity + zero
## moving snap (rays can still read “support” while [method CharacterBody3D.is_on_floor] hugs a lip).
## ~0.42 m: **TerracePlatformB** top (~0.6 m) → floor (0) qualifies; **TerraceStepB** (~0.3 m) → floor does
@ -87,9 +88,8 @@ const WALK_CONTINUATION_MAX_BELOW_FEET: float = 0.14
const WALK_DEEP_DESCENT_FEET_ABOVE_GOAL: float = 0.42
## [method get_gravity] can be ~0 with missing/odd project defaults; ledge peel + airborne walk still need a pull.
const WALK_FALLBACK_GRAVITY_Y: float = -9.81
## Multiplier on project gravity for walk ledge peel, walk-airborne, and idle-airborne — snappier than
## real-world 9.81 m/s² for prototype feel; also offsets move_and_collide step coarseness at 120 Hz.
const PLAYER_VERTICAL_ACCEL_MULTIPLIER: float = 2.45
## Multiplier on project gravity for walk ledge peel, walk-airborne, and idle-airborne (arcade descent).
const PLAYER_VERTICAL_ACCEL_MULTIPLIER: float = 9.0
## CapsuleShape3D in scene: height = 1.0 (cylinder portion), radius = 0.4.
## Total half-height from body origin to physical bottom = 0.5 + 0.4 = 0.9
## (`CAPSULE_HALF_HEIGHT + PLAYER_CAPSULE_RADIUS`).