fix ladder jump bug (closes #132)

This commit is contained in:
Haze Weathers 2023-07-04 12:11:51 -04:00
parent f2ff65807a
commit 311528e6ed
2 changed files with 11 additions and 4 deletions

View file

@ -231,8 +231,6 @@ func _on_Climbing_state_entered() -> void:
var input_dir = sign(Input.get_axis("ui_left", "ui_right"))
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()
print(ladder_dir)
print(flip)
if ladder_dir >= 0.0 != flip:
global_position.x = _attached_ladder.left_snap
graphics.scale.x = 1.0
@ -358,20 +356,24 @@ func _process_climbing(delta: float) -> void:
ladder_detector.force_raycast_update()
if ladder_detector.get_collider() != _attached_ladder:
if input_dir == -1.0:
state_chart.send_event("ladder_jump")
state_chart.send_event("ladder_peak")
return
else:
state_chart.send_event("ladder_detach")
return
else:
if Input.is_action_just_pressed("jump"):
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_jump")
return
elif Input.is_action_just_pressed("shoot"):
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")
return
# # 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"))