extends KinematicBody2D

const ACCELERATION = 1000
const MAX_SPEED = 120
const FRICTION = 1000

var velocity: Vector2 = Vector2.ZERO
var isDash = false
var counter = 0


func _physics_process(delta) -> void:
	var input_vector: Vector2 = Vector2.ZERO

	input_vector.x = Input.get_action_strength('player_right') - Input.get_action_strength('player_left')
	input_vector.y = Input.get_action_strength('player_down') - Input.get_action_strength('player_up')
	input_vector = input_vector.normalized()

	if input_vector != Vector2.ZERO:
		$AnimationTree.set('parameters/Idle/blend_position', input_vector)
		velocity = velocity.move_toward(input_vector * MAX_SPEED, ACCELERATION * delta)
	else:
		velocity = velocity.move_toward(Vector2.ZERO, FRICTION * delta)
	
	# if dashing, increase velocity by 4 for one frame	
	if Input.is_action_just_pressed("player_dash") and input_vector != Vector2.ZERO and isDash == false:
		velocity = velocity * 4
		isDash = true
	
	# If the dash was previously pressed, start a counter	
	if isDash:
		counter += 1
		
		# wait time before you can dash again
		if counter > 60:
			counter = 0
			isDash = false
		

	velocity = move_and_slide(velocity)
	return
