extends Node2D signal health_changed(new_value: int) const MAX_HEALTH = 10 @export var health: int = 10: set(new_value): var new_health = clampi(new_value, 0, MAX_HEALTH) if new_health != health: health = new_health health_changed.emit(new_health) @onready var foreground: AnimatedSprite2D = $Foreground func _ready() -> void: update_foreground() func _on_health_changed(_new_value: int) -> void: update_foreground() func update_foreground(): if health != 0: foreground.frame = MAX_HEALTH - health foreground.visible = true else: foreground.visible = false