extends Move class_name Dash @onready var timer: Timer = $Timer var finished := false var new_position: Vector3 func should_enter(input: InputPacket) -> String: if finished: input.actions.sort_custom(moves_priority_sort) return input.actions[0] return "dash" func update(_input: InputPacket, delta: float): player.global_position = lerp( player.global_position, new_position, (player.dash_length / timer.wait_time) * delta ) func on_enter_state(): player.skin.transition_dash() new_position = player.global_position + player.last_movement_direction * player.dash_length finished = false timer.start() func _on_timer_timeout() -> void: finished = true