diff --git a/objects/player/player_scholar.gd b/objects/player/player_scholar.gd index aa938e4..e85dbab 100644 --- a/objects/player/player_scholar.gd +++ b/objects/player/player_scholar.gd @@ -280,19 +280,21 @@ func _process_climbing(delta: float) -> void: # global_position.x = _attached_ladder.left_snap # graphics.scale.x = 1.0 - if Input.is_action_just_pressed("jump"): - global_position.x -= graphics.scale.x * 3.0 - state_chart.send_event("jump") - if Input.is_action_just_pressed("shoot"): - global_position.x -= graphics.scale.x * 3.0 - state_chart.send_event("ladder_detach") - # check if still on ladder if ladder_detector.get_collider() != _attached_ladder: if input_dir == -1.0: - state_chart.send_event("jump") + state_chart.send_event("ladder_jump") else: state_chart.send_event("ladder_detach") + 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") + if Input.is_action_just_pressed("shoot"): + global_position.x -= graphics.scale.x * 3.0 + state_chart.send_event("ladder_detach") func _process_jump(delta: float) -> void: if velocity.y >= 0.0: diff --git a/objects/player/player_scholar.tscn b/objects/player/player_scholar.tscn index 1f59a8c..bc030af 100644 --- a/objects/player/player_scholar.tscn +++ b/objects/player/player_scholar.tscn @@ -1087,10 +1087,10 @@ __meta__ = { "_editor_description_": "stuck to ladder" } -[node name="On Jump" type="Node" parent="StateChart/Root/Movement/Climbing"] +[node name="On LadderJump" type="Node" parent="StateChart/Root/Movement/Climbing"] script = ExtResource( 10 ) to = NodePath("../../Airborne/Jump/LadderJump") -event = "jump" +event = "ladder_jump" [node name="On LadderDetach" type="Node" parent="StateChart/Root/Movement/Climbing"] script = ExtResource( 10 ) @@ -1143,6 +1143,7 @@ guard_expression = "can_respawn" layer = 128 [node name="StateChartDebug" type="Tree" parent="StateDebugLayer"] +visible = false anchor_left = 1.0 anchor_right = 1.0 margin_left = -147.0