extends Sprite3D @onready var viewport: SubViewport = $SubViewport @onready var health_bar: ProgressBar = $SubViewport/HealthBar @onready var shield_bar: ProgressBar = $SubViewport/ShieldBar @onready var border: ColorRect = $SubViewport/Border @onready var health: Node = get_parent().get_node("Health") @onready var shield: Node = get_parent().get_node("Shield") func _ready() -> void: texture = viewport.get_texture() health_bar.max_value = health.max_health shield_bar.max_value = shield.max_shield border.visible = false EventBus.target_changed.connect(_on_target_changed) func _process(_delta: float) -> void: health_bar.value = health.current_health shield_bar.value = shield.current_shield func _on_target_changed(_player: Node, target: Node) -> void: border.visible = (target == get_parent())