rudimentary clamber

This commit is contained in:
derek
2025-06-17 10:32:31 -05:00
parent 7c76c791f2
commit 4047a1c9a8
13 changed files with 98 additions and 16 deletions

View File

@@ -65,6 +65,9 @@ var wall_run_direction
# Ladder
var current_ladder
# Clamber
var clamber_point
## GUNS AND AMMO
var gun : Node
var holstered_gun_id : int
@@ -136,6 +139,9 @@ var controlled_elsewhere = false
@onready var weapon_select_menu: Control = $Head/Recoil/Camera3D/WeaponSelect
@onready var wall_jump_timer: Timer = $WallJumpTimer
@onready var remaining_stamina : float = level_control.gamemode.max_stamina
@onready var clamber_max_ray: RayCast3D = $ClamberMaxRay
@onready var clamber_check_ray: RayCast3D = $ClamberCheckRay
@onready var clamber_point_ray: RayCast3D = $ClamberPointRay
func _ready():
level_control.player = self
@@ -385,6 +391,31 @@ func speed_modifiers():
return speed_multiplier
func can_clamber():
var clamber_ray_collided = false
const CHECK_RESOLUTION = .1
const MAX_RAY_POSITION = .607
const MIN_RAY_POSITION = -.9
while clamber_check_ray.position.y > MIN_RAY_POSITION:
if clamber_check_ray.is_colliding():
clamber_ray_collided = true
break
clamber_check_ray.position.y -= CHECK_RESOLUTION
clamber_check_ray.position.y = MAX_RAY_POSITION
if clamber_ray_collided and !clamber_max_ray.is_colliding():
return true
else:
return false
func get_clamber_point():
if clamber_point_ray.is_colliding():
return clamber_point_ray.get_collision_point()
else:
return clamber_point_ray.global_position
func joypad_walk():
# Joypad right stick look control
var dir_out = Vector2(0,0)