class_name HideDuringBattle extends Node #fait disparaitre un element de l'interface pendant un combat et le remet a la fin. #usage : ajoute ce node comme ENFANT de l'element a cacher (minimap, indicateur de visee, suivi de quete, #message d'interaction...). Par defaut c'est son parent qui est cache ; sinon, assigne "target". #marche avec tout node qui a une propriete "visible" : Control, CanvasLayer, Node3D... # #si l'element etait deja cache avant le combat, il le reste apres. @export var target : Node #vide = le parent de ce node var _was_visible : bool = true var _hidden_by_us : bool = false func _ready() -> void: process_mode = Node.PROCESS_MODE_ALWAYS if target == null: target = get_parent() GameData.battle_started.connect(_on_battle_started) GameData.battle_finished.connect(_on_battle_finished) if GameData.in_battle: _on_battle_started() #cree pendant un combat func _on_battle_started() -> void: if _hidden_by_us or !is_instance_valid(target) or !("visible" in target): return _was_visible = target.visible target.visible = false _hidden_by_us = true func _on_battle_finished(_outcome : int, _battle_target : Node) -> void: if !_hidden_by_us: return _hidden_by_us = false if is_instance_valid(target) and _was_visible: target.visible = true