]> Untitled Git - frog-ninja.git/blob - player/moves/dash.gd
cfdfa77296d2399957a94bfe66ccdcd2af1956d1
[frog-ninja.git] / player / moves / dash.gd
1 extends Move
2 class_name Dash
3
4 @export var dash_length := 10.0
5
6 @onready var timer: Timer = $Timer
7
8 var finished := false
9 var new_position: Vector3
10
11
12 func should_enter(input: InputPacket) -> String:
13         if finished:
14                 input.actions.sort_custom(moves_priority_sort)
15                 return input.actions[0]
16         return state_name
17
18
19 func update(_input: InputPacket, delta: float):
20         player.global_position = lerp(
21                 player.global_position,
22                 new_position,
23                 (player.dash_length / timer.wait_time) * delta
24         )
25
26
27 func on_enter_state():
28         new_position = player.global_position + player.last_movement_direction * dash_length
29         finished = false
30         timer.start()
31
32
33 func _on_timer_timeout() -> void:
34         finished = true