rudimentary clamber
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user