From 88b0911c6cf5faec08257079677ccf9548e01e2c Mon Sep 17 00:00:00 2001 From: Minimata Date: Fri, 13 Feb 2026 15:00:25 +0100 Subject: [PATCH] removed wall run tutorial and fixed wall run leave auto dash --- maps/levels/tuto_movement.tscn | 153 ++++++++---------- .../player_controller/PlayerController.tscn | 9 +- .../scripts/PlayerController.cs | 26 +-- 3 files changed, 85 insertions(+), 103 deletions(-) diff --git a/maps/levels/tuto_movement.tscn b/maps/levels/tuto_movement.tscn index 1a31b175..d7c3ec13 100644 --- a/maps/levels/tuto_movement.tscn +++ b/maps/levels/tuto_movement.tscn @@ -20,9 +20,6 @@ size = Vector3(10.5, 12.5, 7.5) [sub_resource type="BoxShape3D" id="BoxShape3D_hocby"] size = Vector3(3, 12.5, 7.5) -[sub_resource type="BoxShape3D" id="BoxShape3D_ovxxa"] -size = Vector3(3, 12.5, 6) - [sub_resource type="BoxShape3D" id="BoxShape3D_5ibpd"] size = Vector3(3.5, 7, 10.5) @@ -37,11 +34,6 @@ size = Vector3(3, 6.5, 5.5) [node name="DirectionalLight3D" parent="." index="5" unique_id=1357990191] transform = Transform3D(-0.1772511, 0.44628847, 0.87715954, 0.49540228, -0.72966087, 0.4713508, 0.85038733, 0.51809436, -0.09175911, 0, 0, 0) -[node name="Player" parent="." index="6" unique_id=1309399929] -transform = Transform3D(0.99999994, 0, 0, 0, 1, 0, 0, 0, 0.99999994, -0.5, 0.4102497, 0.5415039) -HasSword = false -HasParry = false - [node name="Greybox" type="CSGCombiner3D" parent="." index="7" unique_id=2082385716] use_collision = true collision_layer = 256 @@ -78,9 +70,9 @@ size = Vector3(38, 16.5, 2) material = ExtResource("2_lpm4c") [node name="CSGBox3D10" type="CSGBox3D" parent="Greybox" index="5" unique_id=427936811] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.25, 8.5, -35) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.25, 8.5, -35) use_collision = true -size = Vector3(21.5, 17, 2) +size = Vector3(19.5, 17, 2) material = ExtResource("2_lpm4c") [node name="CSGBox3D3" type="CSGBox3D" parent="Greybox" index="6" unique_id=1254886602] @@ -198,9 +190,9 @@ size = Vector3(6.5, 2.5, 11.5) material = ExtResource("2_lpm4c") [node name="CSGBox3D11" type="CSGBox3D" parent="Greybox" index="15" unique_id=316945013] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.75, 6.5, -35.25) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 6.5, -34) use_collision = true -size = Vector3(10.5, 1, 13.5) +size = Vector3(11, 1, 16) material = ExtResource("2_lpm4c") [node name="CSGBox3D23" type="CSGBox3D" parent="Greybox" index="16" unique_id=1942257779] @@ -222,117 +214,117 @@ size = Vector3(25, 7.5, 41) material = ExtResource("2_lpm4c") [node name="CSGBox3D12" type="CSGBox3D" parent="Greybox" index="19" unique_id=1227474775] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.5, 10.25, -37.75) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.5, 10.25, -37.75) use_collision = true size = Vector3(2, 13.5, 7.5) material = ExtResource("2_lpm4c") -[node name="CSGBox3D13" type="CSGBox3D" parent="Greybox" index="20" unique_id=1383851577] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.5, 8, -31.5) +[node name="CSGBox3D13" type="CSGBox3D" parent="Greybox" index="20" unique_id=110274826] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 9.75, -27.25) use_collision = true -size = Vector3(2, 16, 5) -material = ExtResource("5_r26ni") - -[node name="CSGBox3D15" type="CSGBox3D" parent="Greybox" index="21" unique_id=238418660] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.5, 8, -31.5) -use_collision = true -size = Vector3(2, 16, 5) -material = ExtResource("5_r26ni") - -[node name="CSGBox3D14" type="CSGBox3D" parent="Greybox" index="22" unique_id=437211444] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 8, -27) -use_collision = true -size = Vector3(7, 16, 4) +size = Vector3(3, 5.5, 4.5) material = ExtResource("2_lpm4c") -[node name="CSGBox3D20" type="CSGBox3D" parent="Greybox" index="23" unique_id=1913472587] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 16.5, -8.5) +[node name="CSGBox3D15" type="CSGBox3D" parent="Greybox" index="21" unique_id=2074031011] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 8.25, -28.75) use_collision = true -size = Vector3(9, 1, 39) +size = Vector3(4, 2.5, 7.5) material = ExtResource("2_lpm4c") -[node name="CSGBox3D30" type="CSGBox3D" parent="Greybox" index="24" unique_id=1594042498] +[node name="CSGBox3D22" type="CSGBox3D" parent="Greybox" index="22" unique_id=1005993604] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 7.5, -30) +use_collision = true +size = Vector3(7, 1, 10) +material = ExtResource("2_lpm4c") + +[node name="CSGBox3D14" type="CSGBox3D" parent="Greybox" index="23" unique_id=437211444] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 8, -25.5) +use_collision = true +size = Vector3(7, 16, 1) +material = ExtResource("2_lpm4c") + +[node name="CSGBox3D20" type="CSGBox3D" parent="Greybox" index="24" unique_id=1913472587] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 16.5, -7) +use_collision = true +size = Vector3(9, 1, 36) +material = ExtResource("2_lpm4c") + +[node name="CSGBox3D30" type="CSGBox3D" parent="Greybox" index="25" unique_id=1594042498] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 16.5, 17.5) use_collision = true size = Vector3(5, 1, 3) material = ExtResource("2_lpm4c") -[node name="CSGBox3D54" type="CSGBox3D" parent="Greybox" index="25" unique_id=157354874] +[node name="CSGBox3D54" type="CSGBox3D" parent="Greybox" index="26" unique_id=157354874] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 15.5, 22.5) use_collision = true size = Vector3(5, 7, 3) material = ExtResource("2_lpm4c") -[node name="CSGBox3D38" type="CSGBox3D" parent="Greybox" index="26" unique_id=348698998] +[node name="CSGBox3D38" type="CSGBox3D" parent="Greybox" index="27" unique_id=348698998] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 18.5, 17.5) use_collision = true size = Vector3(1, 1, 13) material = ExtResource("3_u8sr4") -[node name="CSGBox3D39" type="CSGBox3D" parent="Greybox" index="27" unique_id=850320525] +[node name="CSGBox3D39" type="CSGBox3D" parent="Greybox" index="28" unique_id=850320525] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 13.75, 17.5) use_collision = true size = Vector3(7, 10.5, 14) material = ExtResource("2_lpm4c") -[node name="CSGBox3D60" type="CSGBox3D" parent="Greybox" index="28" unique_id=177087863] +[node name="CSGBox3D60" type="CSGBox3D" parent="Greybox" index="29" unique_id=177087863] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 22, 17.5) use_collision = true size = Vector3(1, 1, 13) material = ExtResource("3_u8sr4") -[node name="CSGBox3D61" type="CSGBox3D" parent="Greybox" index="29" unique_id=16972982] +[node name="CSGBox3D61" type="CSGBox3D" parent="Greybox" index="30" unique_id=16972982] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -38, 17.25, 14.5) use_collision = true size = Vector3(7, 10.5, 20) material = ExtResource("2_lpm4c") -[node name="CSGBox3D37" type="CSGBox3D" parent="Greybox" index="30" unique_id=1733162117] +[node name="CSGBox3D37" type="CSGBox3D" parent="Greybox" index="31" unique_id=1733162117] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.75, 9.5, 17.75) use_collision = true size = Vector3(22.5, 1, 14.5) material = ExtResource("2_lpm4c") -[node name="CSGBox3D56" type="CSGBox3D" parent="Greybox" index="31" unique_id=790895849] +[node name="CSGBox3D56" type="CSGBox3D" parent="Greybox" index="32" unique_id=790895849] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.25, 11.5, 17.75) use_collision = true size = Vector3(24.5, 1, 14.5) material = ExtResource("2_lpm4c") -[node name="CSGBox3D34" type="CSGBox3D" parent="Greybox" index="32" unique_id=2008368941] +[node name="CSGBox3D34" type="CSGBox3D" parent="Greybox" index="33" unique_id=2008368941] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 12.5, 14.75) use_collision = true size = Vector3(6, 7, 8.5) material = ExtResource("2_lpm4c") -[node name="CSGBox3D43" type="CSGBox3D" parent="Greybox" index="33" unique_id=1975028151] +[node name="CSGBox3D43" type="CSGBox3D" parent="Greybox" index="34" unique_id=1975028151] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 12.5, 17.5) use_collision = true size = Vector3(4, 7, 3) material = ExtResource("2_lpm4c") -[node name="CSGBox3D44" type="CSGBox3D" parent="Greybox" index="34" unique_id=177387693] +[node name="CSGBox3D44" type="CSGBox3D" parent="Greybox" index="35" unique_id=177387693] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 10.5, 17.25) use_collision = true size = Vector3(3, 3, 13.5) material = ExtResource("2_lpm4c") -[node name="CSGBox3D35" type="CSGBox3D" parent="Greybox" index="35" unique_id=570122850] +[node name="CSGBox3D35" type="CSGBox3D" parent="Greybox" index="36" unique_id=570122850] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11, 16.5, 17.25) use_collision = true size = Vector3(5, 1, 13.5) material = ExtResource("2_lpm4c") -[node name="CSGBox3D21" type="CSGBox3D" parent="Greybox" index="36" unique_id=2094633204] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 16.5, -29.5) -use_collision = true -size = Vector3(1, 1, 9) -material = ExtResource("2_lpm4c") - [node name="CSGBox3D24" type="CSGBox3D" parent="Greybox" index="37" unique_id=761197989] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 18.75, -29.5) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 14.25, -29.5) use_collision = true -size = Vector3(1, 5.5, 9) +size = Vector3(1, 14.5, 9) material = ExtResource("2_lpm4c") [node name="CSGBox3D26" type="CSGBox3D" parent="Greybox" index="38" unique_id=258581541] @@ -504,33 +496,33 @@ size = Vector3(3, 1, 6.5) material = ExtResource("5_u8sr4") [node name="CSGBox3D25" type="CSGBox3D" parent="Greybox" index="66" unique_id=1000059913] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16, 18.75, -29.5) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16, 14, -29.5) use_collision = true -size = Vector3(1, 5.5, 9) +size = Vector3(1, 15, 9) material = ExtResource("2_lpm4c") -[node name="CSGBox3D22" type="CSGBox3D" parent="Greybox" index="67" unique_id=1623594342] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, 16.5, -29.5) +[node name="CSGBox3D16" type="CSGBox3D" parent="Greybox" index="67" unique_id=1660129006] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 16.5, -25.5) use_collision = true -size = Vector3(1, 1, 9) -material = ExtResource("2_lpm4c") - -[node name="CSGBox3D16" type="CSGBox3D" parent="Greybox" index="68" unique_id=1660129006] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 16.5, -28.5) -use_collision = true -size = Vector3(5, 1, 1) +size = Vector3(7, 1, 1) material = ExtResource("3_u8sr4") -[node name="CSGBox3D18" type="CSGBox3D" parent="Greybox" index="69" unique_id=528606233] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 16.5, -31.5) +[node name="CSGBox3D18" type="CSGBox3D" parent="Greybox" index="68" unique_id=410504645] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 13, -27.75) use_collision = true -size = Vector3(1, 1, 5) +size = Vector3(3, 1, 3.5) material = ExtResource("3_u8sr4") -[node name="CSGBox3D19" type="CSGBox3D" parent="Greybox" index="70" unique_id=533984919] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 16.5, -31.5) +[node name="CSGBox3D19" type="CSGBox3D" parent="Greybox" index="69" unique_id=1692291429] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 10, -29.25) use_collision = true -size = Vector3(1, 1, 5) +size = Vector3(4, 1, 6.5) +material = ExtResource("3_u8sr4") + +[node name="CSGBox3D21" type="CSGBox3D" parent="Greybox" index="70" unique_id=16284901] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 7.5, -35.5) +use_collision = true +size = Vector3(7, 1, 1) material = ExtResource("3_u8sr4") [node name="CSGBox3D36" type="CSGBox3D" parent="Greybox" index="71" unique_id=1460670998] @@ -937,17 +929,7 @@ tuto_text = "Double jump" transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.25, -1.75) shape = SubResource("BoxShape3D_hocby") -[node name="TutoTrigger4" parent="Tutorials" index="3" unique_id=903897281 instance=ExtResource("7_r26ni")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 7.5, -30.5) -first_input_texture = ExtResource("8_6c6r2") -complex_input_text = "against wall" -tuto_text = "Wall jump" - -[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorials/TutoTrigger4" index="1" unique_id=1224334781] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.25, -1) -shape = SubResource("BoxShape3D_ovxxa") - -[node name="TutoTrigger5" parent="Tutorials" index="4" unique_id=1703929757 instance=ExtResource("7_r26ni")] +[node name="TutoTrigger5" parent="Tutorials" index="3" unique_id=1703929757 instance=ExtResource("7_r26ni")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.5, 18.5, -30.5) first_input_texture = ExtResource("9_v7818") complex_input_text = "with speed" @@ -957,7 +939,7 @@ tuto_text = "Slide" transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.75, 0.5, 12.25) shape = SubResource("BoxShape3D_5ibpd") -[node name="TutoTrigger6" parent="Tutorials" index="5" unique_id=1739438130 instance=ExtResource("7_r26ni")] +[node name="TutoTrigger6" parent="Tutorials" index="4" unique_id=1739438130 instance=ExtResource("7_r26ni")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 19, 19) first_input_texture = ExtResource("8_6c6r2") complex_input_text = "double tap during mantle" @@ -967,7 +949,7 @@ tuto_text = "Improved jump" transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.25, -1.5) shape = SubResource("BoxShape3D_6rkcg") -[node name="TutoTrigger7" parent="Tutorials" index="6" unique_id=1993844947 instance=ExtResource("7_r26ni")] +[node name="TutoTrigger7" parent="Tutorials" index="5" unique_id=1993844947 instance=ExtResource("7_r26ni")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.5, 21, 24) first_input_texture = ExtResource("8_6c6r2") complex_input_text = "double tap during mantle" @@ -977,7 +959,7 @@ tuto_text = "Try to wall run" transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.25, 0.25, -1.5) shape = SubResource("BoxShape3D_6rkcg") -[node name="TutoTrigger8" parent="Tutorials" index="7" unique_id=540710346 instance=ExtResource("7_r26ni")] +[node name="TutoTrigger8" parent="Tutorials" index="6" unique_id=540710346 instance=ExtResource("7_r26ni")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 25, 10) first_input_texture = ExtResource("10_hocby") tuto_text = "dash" @@ -986,7 +968,7 @@ tuto_text = "dash" transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, -3.75) shape = SubResource("BoxShape3D_p8dgc") -[node name="TutoTrigger9" parent="Tutorials" index="8" unique_id=2062889854 instance=ExtResource("7_r26ni")] +[node name="TutoTrigger9" parent="Tutorials" index="7" unique_id=2062889854 instance=ExtResource("7_r26ni")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 25, -6) first_input_texture = ExtResource("10_hocby") tuto_text = "dash" @@ -994,3 +976,8 @@ tuto_text = "dash" [node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorials/TutoTrigger9" index="1" unique_id=192598019] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, -3.75) shape = SubResource("BoxShape3D_p8dgc") + +[node name="Player" parent="." index="11" unique_id=1309399929] +transform = Transform3D(0.99999994, 0, 0, 0, 1, 0, 0, 0, 0.99999994, -0.5, 0.4102497, 0.5415039) +HasSword = false +HasParry = false diff --git a/scenes/player_controller/PlayerController.tscn b/scenes/player_controller/PlayerController.tscn index 1b085c49..15ff3e2f 100644 --- a/scenes/player_controller/PlayerController.tscn +++ b/scenes/player_controller/PlayerController.tscn @@ -159,6 +159,7 @@ WallHugDownwardMaxSpeed = 4.0 WallHugHorizontalDeceleration = 1.0 WallRunUpwardVelocityFactor = 0.5 MinimumWallRunUpwardSpeed = 4.0 +MinimumWallRunHorizontalSpeed = 8.0 WallRunAltitudeLossSpeed = 8.0 WallRunSpeedThreshold = 1.0 @@ -1119,7 +1120,7 @@ delay_in_seconds = "0.0" [node name="OnJump" type="Node" parent="StateChart/Root/Movement/OnWall" unique_id=342055859] script = ExtResource("28_n7qhm") -to = NodePath("../../Jump/SimpleJump") +to = NodePath("../../Jump/DoubleJump") event = &"wall_jump" delay_in_seconds = "0.0" @@ -1156,6 +1157,12 @@ script = ExtResource("27_34snm") [node name="Running" type="Node" parent="StateChart/Root/Movement/OnWall" unique_id=766545186] script = ExtResource("27_34snm") +[node name="OnJump" type="Node" parent="StateChart/Root/Movement/OnWall/Running" unique_id=1699673966] +script = ExtResource("28_n7qhm") +to = NodePath("../../../Jump/SimpleJump") +event = &"wall_jump" +delay_in_seconds = "0.0" + [node name="OnLeaveWall" type="Node" parent="StateChart/Root/Movement/OnWall/Running" unique_id=73239479] script = ExtResource("28_n7qhm") to = NodePath("../../../Airborne/CoyoteEnabled") diff --git a/scenes/player_controller/scripts/PlayerController.cs b/scenes/player_controller/scripts/PlayerController.cs index 7be5fc99..5cac2901 100644 --- a/scenes/player_controller/scripts/PlayerController.cs +++ b/scenes/player_controller/scripts/PlayerController.cs @@ -360,6 +360,7 @@ public partial class PlayerController : CharacterBody3D, private Transition _onJumpFromWall; private Transition _onJumpFromWallFalling; + private Transition _onJumpFromWallRunning; private Transition _onLeaveWallFromRun; private Transition _onAirborneToGrounded; @@ -502,6 +503,7 @@ public partial class PlayerController : CharacterBody3D, _mantling = StateChartState.Of(GetNode("StateChart/Root/Movement/Mantling")); _onJumpFromWall = Transition.Of(GetNode("StateChart/Root/Movement/OnWall/OnJump")); _onJumpFromWallFalling = Transition.Of(GetNode("StateChart/Root/Movement/Airborne/Falling/OnWallJump")); + _onJumpFromWallRunning = Transition.Of(GetNode("StateChart/Root/Movement/OnWall/Running/OnJump")); _onWall = StateChartState.Of(GetNode("StateChart/Root/Movement/OnWall")); _onWallHugging = StateChartState.Of(GetNode("StateChart/Root/Movement/OnWall/Hugging")); _onWallHanging = StateChartState.Of(GetNode("StateChart/Root/Movement/OnWall/Hanging")); @@ -629,6 +631,7 @@ public partial class PlayerController : CharacterBody3D, _onJumpFromWall.Taken += OnJumpFromWall; _onJumpFromWallFalling.Taken += OnJumpFromWall; + _onJumpFromWallRunning.Taken += OnJumpFromWall; _onLeaveWallFromRun.Taken += OnLeaveWallFromRun; _onAirborneToGrounded.Taken += OnAirborneToGrounded; @@ -1192,7 +1195,7 @@ public partial class PlayerController : CharacterBody3D, // return; var newWallNormal = WallHugSystem.WallHugNormal.UnwrapOr(Vector3.Up); - // if (newWallNormal.AngleTo(_wallHugStartNormal) > Mathf.Pi/4) return; + if (newWallNormal.AngleTo(_wallHugStartNormal) > Mathf.Pi/4 && _onWall.Active) return; _wallHugStartNormal = newWallNormal; } @@ -1296,7 +1299,6 @@ public partial class PlayerController : CharacterBody3D, public bool ShouldStartWallRun() { - GD.Print(_wallHugStartNormal); if (_wallHugStartNormal.Length() < Mathf.Epsilon) { // GD.Print("No wall normal"); @@ -1365,7 +1367,7 @@ public partial class PlayerController : CharacterBody3D, public bool IsInputForwardOrTowardsWall() { - return GetInputLocalHDirection().Z < -0.2f || IsInputTowardsWall(_wallHugStartNormal); + return IsPlayerInputtingForward() || IsInputTowardsWall(_wallHugStartNormal); } public bool CanKeepWallRun() @@ -1440,12 +1442,7 @@ public partial class PlayerController : CharacterBody3D, } - if (_onWallRunning.Active || _onWallHanging.Active) // Always allow jumping out of wall run and hang - { - _playerState.SendEvent("wall_jump"); - return; - } - if (_onWallHugging.Active && _isWallJumpAvailable) // Limit number of jumps doable when hugging + if (_onWall.Active) // Always allow jumping out of wall run and hang { _playerState.SendEvent("wall_jump"); return; @@ -1547,19 +1544,10 @@ public partial class PlayerController : CharacterBody3D, SetHorizontalVelocity(currentHorizontalVelocity + wallJumpHorizontalVelocity); } - - public bool IsOnWallForLongEnough() - { - return _timeOnWall >= 0.1f; - } public void OnJumpFromWall() { - // if (!IsFacingWall() || (!_isWallJumpAvailable && IsFacingWall())) - // { - // ComputeJumpFromWallHSpeed(WallJumpStartVelocity); - // } - if (IsOnWallForLongEnough() || _onWallRunning.Active) + if (!IsFacingWall() || (!_isWallJumpAvailable && IsFacingWall()) || _onWallRunning.Active) ComputeJumpFromWallHSpeed(WallJumpStartVelocity); // OnJumpStarted(DoubleJumpStartVelocity);