fix some ladder bugs

This commit is contained in:
Haze Weathers 2023-05-29 10:18:12 -04:00
parent 19638bb520
commit b5d985c834

View file

@ -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: