diff --git a/objects/player/player_scholar.gd b/objects/player/player_scholar.gd index ac27d2f..1c3a546 100644 --- a/objects/player/player_scholar.gd +++ b/objects/player/player_scholar.gd @@ -310,11 +310,20 @@ func _process_climbing(delta: float) -> void: elif Input.is_action_just_pressed("shoot"): global_position.x -= graphics.scale.x * 3.0 state_chart.send_event("ladder_detach") - if Input.is_action_pressed("ui_down") and is_on_floor(): - var horizontal_dir = sign(Input.get_axis("ui_left", "ui_right")) - if sign(_attached_ladder.middle - global_position.x) != horizontal_dir: - global_position.x -= graphics.scale.x * 2.0 - state_chart.send_event("ladder_detach") +# # auto-dismount on ground +# elif Input.is_action_pressed("ui_down") and is_on_floor(): +# var horizontal_dir = sign(Input.get_axis("ui_left", "ui_right")) +# if sign(_attached_ladder.middle - global_position.x) != horizontal_dir: +# global_position.x -= graphics.scale.x * 3.0 +# state_chart.send_event("ladder_detach")# + else: + var ladder_dir = sign(_attached_ladder.middle - global_position.x) + if ladder_dir >= 0.0: + global_position.x = _attached_ladder.left_snap + graphics.scale.x = 1.0 + else: + global_position.x = _attached_ladder.right_snap + graphics.scale.x = -1.0 func _process_jump(delta: float) -> void: if velocity.y >= 0.0: