]> Untitled Git - frog-ninja.git/blobdiff - player/moves/walk.gd
Made Model its own scene
[frog-ninja.git] / player / moves / walk.gd
index 8d92aa7765b92fc34c73660fd6fe50e82c516203..75d440304925e06de5f73d9ee7dc3f4e3e25c174 100644 (file)
@@ -2,13 +2,20 @@ extends Move
 class_name Walk
 
 
-const skin_lean_limit := PI/4
+const skin_lean_limit := PI/8
 
 
 func update(input: InputPacket, delta: float):
-       player.velocity = get_new_velocity_from_input(input, delta)
+       player.velocity = get_new_velocity_from_input(input, delta, player.walk_speed)
        player.move_and_slide()
-       
+       update_skin(delta)
+
+
+func on_enter_state():
+       player.skin.transition_move()
+
+
+func update_skin(delta: float):
        # update skin rotation
        var skin_target_angle := Vector3.BACK.signed_angle_to(
                player.last_movement_direction, 
@@ -35,11 +42,7 @@ func update(input: InputPacket, delta: float):
        player.skin.set_walking_speed(player.velocity.length())
 
 
-func on_enter_state():
-       player.skin.transition_move()
-
-
-func get_new_velocity_from_input(input: InputPacket, delta: float) -> Vector3:
+func get_new_velocity_from_input(input: InputPacket, delta: float, speed: float) -> Vector3:
        # Get the XZ input direction based on player's input relative to the camera
        var forward := camera.global_basis.z
        var right := camera.global_basis.x
@@ -56,7 +59,7 @@ func get_new_velocity_from_input(input: InputPacket, delta: float) -> Vector3:
        player.floor_normal = player.get_floor_normal()
        player.ground_slope_input = (PI / 2) - player.velocity.angle_to(player.floor_normal)
        var new_velocity = player.velocity.move_toward(
-               movement_direction * (player.walk_speed + player.ground_slope_input * player.walk_speed),
+               movement_direction * (speed + player.ground_slope_input * speed),
                player.acceleration * delta
                )