extends CharacterBody2D

const move_speed = 400
const acceleration = 0.25
const max_boost_speed = 800

var previous_direction = Vector2.ZERO
var boost_speed = 0


func _physics_process(delta: float) -> void:
	move_and_slide()

func _process(delta: float) -> void:
	var direction : Vector2 = Vector2.ZERO
	direction.x = Input.get_action_raw_strength("BOUGER_DROITE") - Input.get_action_raw_strength("BOUGER_GAUCHE")
	direction.y = Input.get_action_raw_strength("BOUGER_BAS") - Input.get_action_raw_strength("BOUGER_HAUT")
	

	if direction != Vector2.ZERO:
		if direction.normalized() == previous_direction.normalized():
			if direction.x != 0 and direction.y != 0:
				boost_speed = min(boost_speed + acceleration / 8, (max_boost_speed - move_speed) / 8)
			else:
				boost_speed = min(boost_speed + acceleration, max_boost_speed - move_speed)
		else:
			boost_speed = 0
			
	previous_direction = direction
	velocity = direction * (move_speed + boost_speed)
	print(velocity)
	pass