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