diff --git a/objects/player/player.gd b/objects/player/player.gd index 3e14a2c..e70a4da 100644 --- a/objects/player/player.gd +++ b/objects/player/player.gd @@ -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 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() - 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 graphics.scale.x = 1.0 animation_player.play("climb") - else: + elif _attached_ladder.can_climb_right: global_position.x = _attached_ladder.right_snap graphics.scale.x = -1.0 animation_player.play("climb")