diff --git a/project/objects/player.tscn b/project/objects/player.tscn index 1a62f626..0039b162 100644 --- a/project/objects/player.tscn +++ b/project/objects/player.tscn @@ -274,6 +274,7 @@ resource_name = "PlayerWallRunAction" script/source = "extends PlayerAction @export var gravity_scale : float +@export var max_upward_velocity : float @export var drag : float @export var blend_in_time : float @export var min_ground_speed : float @@ -292,12 +293,14 @@ func _enter() -> int: if Input.is_action_just_pressed(\"jump\") and run_time > min_run_time: var wall_flat := Vector3(body.get_wall_normal().x, 0, body.get_wall_normal().z) body.velocity = wall_flat * jump_normal_force + (ground_velocity + blackboard.get_world_move_input()).normalized() * jump_input_force * ground_velocity.length() - body.velocity.y = max(0, body.velocity.y) + jump_vertical_force - blackboard.character.look_at(blackboard.character.global_position + ground_velocity) + body.velocity.y = jump_vertical_force + blackboard.character.look_at(blackboard.character.global_position + Vector3(body.velocity.x, 0, body.velocity.z)) + blackboard.anim.set(\"parameters/AirTime/blend_amount\", 0.0) else: run_time += get_process_delta_time() body.velocity *= 1 - drag body.velocity += body.get_gravity() * get_process_delta_time() * gravity_scale + body.velocity.y = min(max_upward_velocity, body.velocity.y) blackboard.character.look_at(blackboard.character.global_position + body.velocity) blackboard.anim.set(\"parameters/WallAction/blend_amount\", 1.0) blackboard.anim.property_move_toward(\"parameters/Wall/blend_amount\", 1.0, get_process_delta_time() * blend_in_time) @@ -466,6 +469,7 @@ process_mode = 1 [node name="WallRun" type="PlayerAction" parent="PlayerBehaviourTree/BehaviourRepeater/ActionSelector" unique_id=2090512639] script = SubResource("GDScript_3rfka") gravity_scale = 0.169 +max_upward_velocity = 2.0 drag = 0.013 blend_in_time = 50.0 min_ground_speed = 5.0