diff --git a/client/scripts/ground_pick.gd b/client/scripts/ground_pick.gd index 7bef4c8..3dee890 100644 --- a/client/scripts/ground_pick.gd +++ b/client/scripts/ground_pick.gd @@ -1,14 +1,14 @@ extends Node3D ## NS-16: walkable ground ray pick. Emits world target for MoveCommand; camera wired from main. -## NS-19: ignores hits on **steep** surfaces (e.g. pedestal **walls**) so players cannot chain small -## vertical steps up a vertical face; only **floor-like** normals (high dot with UP) count. +## NS-19: reject vertical faces (pedestal). Bump slopes ~39–45° (dot UP ~0.71–0.78). +## 0.82 rejected slope-first picks when leaving plateau; use 0.64. Walls stay ~0. ## (No `class_name` so headless/CI can load the project before `.godot` import exists.) signal target_chosen(world: Vector3) ## Minimum `hit_normal.dot(Vector3.UP)` to accept a pick (0 = vertical wall, 1 = flat floor). -const MIN_WALKABLE_NORMAL_DOT_UP: float = 0.82 +const MIN_WALKABLE_NORMAL_DOT_UP: float = 0.64 ## Fallback when `Viewport.get_camera_3d()` is null (e.g. some editor setups). Set from `main.gd` ## in `_ready`.