class_name Tambour var scene_node = null @export var cooldown = 0.9 # Durée du cooldown en secondes var is_on_cooldown = false # Indique si le cooldown est actif 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("TambourCooldownTimer2"): # Changement du nom du Timer unique pour le Tambour var cooldown_timer = Timer.new() cooldown_timer.name = "TambourCooldownTimer2" # Nom unique pour éviter les conflits 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 jouer_melodie(player_position: Vector2) -> void: if not is_on_cooldown: # Vérifiez si nous sommes en cooldown spawn_onde(player_position) func spawn_onde(player_position: Vector2) -> void: if scene_node == null: print("Erreur : Aucun nœud parent défini pour ajouter l'onde.") return var onde_scene = preload("res://scenes/attaques/Onde.tscn") # Chargez la scène de l'onde var onde = onde_scene.instantiate() if onde: onde.position = player_position scene_node.add_child(onde) # Démarrez le cooldown après avoir ajouté l'onde start_cooldown() else: print("Erreur : Impossible de créer l'onde.") # Démarrer le Timer pour le cooldown func start_cooldown() -> void: is_on_cooldown = true var cooldown_timer = scene_node.get_node("TambourCooldownTimer2") # Assurez-vous que le Timer est bien trouvé if cooldown_timer: cooldown_timer.start() else: print("Erreur : Timer introuvable.") func _on_cooldown_timeout() -> void: is_on_cooldown = false # Réinitialiser le cooldown lorsque le Timer se termine print("Cooldown terminé.")