diff --git a/assets/player.tscn b/assets/player.tscn index ce573e5..0f03b46 100644 --- a/assets/player.tscn +++ b/assets/player.tscn @@ -170,7 +170,7 @@ script = ExtResource("7_2asft") [node name="Stunned" type="Node" parent="StateMachine"] -[node name="Clamber" type="Node" parent="StateMachine"] +[node name="Ledge Grab" type="Node" parent="StateMachine"] script = ExtResource("8_iwgew") [node name="On Ladder" type="Node" parent="StateMachine"] @@ -378,7 +378,7 @@ target_position = Vector3(0, 0, 1) one_shot = true [node name="ClamberMaxRay" type="RayCast3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.11641, -0.391445) +transform = Transform3D(1, 0, 0, 0, 0.965926, -0.258819, 0, 0.258819, 0.965926, 0, 0.968505, -0.391) target_position = Vector3(0, 0, -1) collision_mask = 33 diff --git a/project.godot b/project.godot index 0f0d656..96ba459 100644 --- a/project.godot +++ b/project.godot @@ -12,7 +12,7 @@ config_version=5 config/name="First Person Test" config/tags=PackedStringArray("fps") -run/main_scene="uid://dsw00ml8rv6xo" +run/main_scene="uid://c6fykssf7paft" config/features=PackedStringArray("4.4", "Forward Plus") config/icon="uid://6svuq1l83al5" diff --git a/scripts/PlayerStates.gd b/scripts/PlayerStates.gd index 41a33de..171a68f 100644 --- a/scripts/PlayerStates.gd +++ b/scripts/PlayerStates.gd @@ -21,7 +21,7 @@ func standard_jump(): if Input.is_action_just_pressed("jump"): #first check for clamber, otherwise jump if character.can_clamber(): - Transitioned.emit(self,"clamber") + Transitioned.emit(self,"ledge grab") else: if character.jumps_remaining > 0: character.jumps_remaining -= 1 diff --git a/scripts/player_clamber.gd b/scripts/player_clamber.gd index de28bce..9dcebda 100644 --- a/scripts/player_clamber.gd +++ b/scripts/player_clamber.gd @@ -5,14 +5,15 @@ var clamber_point func Enter(): clamber_point = character.get_clamber_point() - character.standing_collision.disabled = true - character.crouching_collision.disabled = true - + func Physics_Update(delta): character.velocity = Vector3.ZERO - character.global_position = clamber_point + Vector3(0,1,0) - Transitioned.emit(self,"on foot") - -func Exit(): - character.standing_collision.disabled = false - character.crouching_collision.disabled = false + + character.global_position.y = lerp(character.global_position.y,clamber_point.y,delta * 2) + + if Input.is_action_just_pressed("jump"): + jump_with_weight_mod() + Transitioned.emit(self,"in air") + + if Input.is_action_just_pressed("crouch"): + Transitioned.emit(self,"in air")