finally make one-sided ladders fully-functional

This commit is contained in:
Haze Weathers 2024-07-07 19:33:42 -04:00
parent 36bac00ac8
commit 2790c238b1

View file

@ -267,11 +267,11 @@ func _on_Climbing_state_entered() -> void:
var input_dir = sign(Input.get_axis("move_left", "move_right") + get_stick_input(JOY_AXIS_0)) # sign() to normalize var input_dir = sign(Input.get_axis("move_left", "move_right") + get_stick_input(JOY_AXIS_0)) # sign() to normalize
var ladder_dir = sign(_attached_ladder.middle - global_position.x) var ladder_dir = sign(_attached_ladder.middle - global_position.x)
var flip = global_position.y - 1.0 <= _attached_ladder.global_position.y and input_dir == ladder_dir and is_on_floor() var flip = global_position.y - 1.0 <= _attached_ladder.global_position.y and input_dir == ladder_dir and is_on_floor()
if ladder_dir >= 0.0 != flip: if (ladder_dir >= 0.0 != flip or not _attached_ladder.can_climb_right) and _attached_ladder.can_climb_left:
global_position.x = _attached_ladder.left_snap global_position.x = _attached_ladder.left_snap
graphics.scale.x = 1.0 graphics.scale.x = 1.0
animation_player.play("climb") animation_player.play("climb")
else: elif _attached_ladder.can_climb_right:
global_position.x = _attached_ladder.right_snap global_position.x = _attached_ladder.right_snap
graphics.scale.x = -1.0 graphics.scale.x = -1.0
animation_player.play("climb") animation_player.play("climb")