diff --git a/scripts/managers/player_movement_manager.gd b/scripts/managers/player_movement_manager.gd index 25143a8..fee8c12 100644 --- a/scripts/managers/player_movement_manager.gd +++ b/scripts/managers/player_movement_manager.gd @@ -533,8 +533,11 @@ func _is_path_blocked_by_physics(from_grid: Vector2i, to_grid: Vector2i) -> bool var path_result = space_state.intersect_ray(path_query) if path_result: if path_result.collider != player: - # This correctly hits thin walls placed on tile boundaries - return true + # Ghost mode can bypass physical thin walls like Safe Zone walls + if player.get("is_invisible") and (path_result.collider.is_in_group("SafeZoneWalls") or path_result.collider.name.begins_with("Wall")): + pass + else: + return true # 2. Target tile occupancy check: Block if a static object is in the middle of the tile var target_from = Vector3(to_grid.x + 0.5, 1.0, to_grid.y + 0.5)