class_name Flute var scene_node = null var balle_scenes = [ preload("res://scenes/attaques/Balle1.tscn"), preload("res://scenes/attaques/Balle2.tscn"), preload("res://scenes/attaques/Balle3.tscn") ] var current_balle_index = 0 @export var cooldown = 0.15 # Durée du cooldown en secondes var is_on_cooldown = false # Indique si le cooldown est en cours func set_scene_parent(node: Node) -> void: scene_node = node # Si scene_node est défini pour la première fois, on ajoute un Timer if not scene_node.has_node("TirCooldownTimer"): var cooldown_timer = Timer.new() cooldown_timer.name = "TirCooldownTimer" cooldown_timer.one_shot = true cooldown_timer.wait_time = cooldown cooldown_timer.connect("timeout", Callable(self, "_on_cooldown_timeout")) scene_node.add_child(cooldown_timer) func _process(delta) -> void: pass # Cette fonction est requise pour que delta fonctionne correctement func jouer_melodie(player_position: Vector2, direction_balle: Vector2, angle: float) -> void: if not is_on_cooldown: # Vérifiez si nous pouvons tirer spawn_balle(player_position, direction_balle, angle) func spawn_balle(player_position: Vector2, direction_balle: Vector2, angle: float) -> void: if scene_node == null: print("Erreur : Aucun nœud parent défini pour ajouter la balle.") return var current_balle_scene = balle_scenes[current_balle_index] var balle = current_balle_scene.instantiate() if balle: balle.position = player_position balle.initial_direction = direction_balle balle.rotation = deg_to_rad(angle) scene_node.add_child(balle) # Basculer vers la prochaine balle pour le prochain tir current_balle_index = (current_balle_index + 1) % len(balle_scenes) # Démarrez le cooldown après ce tir start_cooldown() else: print("Erreur : la création de la balle a échoué.") # Démarrer le timer pour le cooldown func start_cooldown() -> void: is_on_cooldown = true var cooldown_timer = scene_node.get_node("TirCooldownTimer") cooldown_timer.start() func _on_cooldown_timeout() -> void: is_on_cooldown = false # Réinitialisez l'état de cooldown après expiration du Timer