class_name Item extends Node3D @export var unit_name: String @export var maximum_health := 10 @export var health := maximum_health signal name_changed(unit_name: String) signal health_changed(current_health: int, maximum_health: int) signal item_destroyed func _ready() -> void: name_changed.emit(unit_name) health_changed.emit(health, maximum_health) func take_damage(damage_amount: int) -> void: health -= damage_amount clampi(health, 0, maximum_health) health_changed.emit(health, maximum_health) if health <= 0: destroyed() func destroyed() -> void: print(unit_name + " destroyed!") item_destroyed.emit()