extends Node

export (PackedScene) var Ennemi
var score

func _ready():
	var file = File.new()
	var difficulty = "0.2"
	file.open("res://settings_difficulty.txt", File.WRITE)
	file.store_string(difficulty)
	file.close()
	$TimerEnnemi.set_wait_time(float(difficulty))
	file.open("res://settings_music.txt", File.WRITE)
	file.store_string("on")
	file.close()
	randomize()

func perdu():
	$TimerScore.stop()
	$TimerEnnemi.stop()
	get_tree().call_group("ennemis", "queue_free") # supprime tous les ennemis restants dans le groupe "ennemis"
	$AudioStreamPlayer.stop()
	var file = File.new()
	file.open("res://settings_difficulty.txt", File.READ)
	var content_music = file.get_as_text()
	file.close()
	if content_music == "on":
		$AudioGameOver.play()
	$Menu.show_partie_perdue()
	$TextureRect.texture = load("res://imgs/background.png")

func nouvelle_partie():
	score = 0
	$Joueur.start($PositionDebut.position)
	$TimerDebut.start()
	$Menu.update_score(score)
	var file_music = File.new()
	file_music.open("res://settings_music.txt", File.READ)
	var content_music = file_music.get_as_text()
	file_music.close()
	if content_music == "on":
		$AudioStreamPlayer.play()
	$AudioGameOver.stop()
	$Menu.show_message("Des ennemis arrivent...")
	$TextureRect.texture = load("res://imgs/background_ig.png")
	# lecture des paramètres
	
	var file = File.new()
	file.open("res://settings_difficulty.txt", File.READ)
	var content = file.get_as_text()
	file.close()
	$TimerEnnemi.set_wait_time(float(content))

func _on_TimerEnnemi_timeout():
	$Path2D/SpawnEnnemi.offset = randi() # Choisi un endroit aléatoire sur Path2D (autour de l'écran)
	var ennemi = Ennemi.instance() # créer une instance d'un ennemi
	add_child(ennemi) # ajout de l'ennemi à la scène
	var direction = $Path2D/SpawnEnnemi.rotation + PI / 2 # direction de l'ennemi perpendiculaire à sa trajectoire
	ennemi.position = $Path2D/SpawnEnnemi.position # fait spawn l'ennemi à l'endroit aléatoire
	"""if ennemi.position.x <= 200:
		print(ennemi)
	else:
		ennemi.queue_free()"""
	direction += rand_range(-deg2rad(45), deg2rad(45)) # ajout d'un aléatoire de 90° dans la direction
	ennemi.linear_velocity = Vector2(rand_range(ennemi.min_vitesse, ennemi.max_vitesse), 0) # vitesse de l'ennemi
	ennemi.linear_velocity = ennemi.linear_velocity.rotated(direction) # direction de l'ennemi
	$Menu.update_score(score)

func _on_TimerDebut_timeout(): # démarre les autres timers
	$TimerEnnemi.start()
	$TimerScore.start()

func _on_TimerScore_timeout(): # augmente le score de 1 toutes les secondes (correspond au wait time)
	score += 1
