1extends Node 2 3signal dead 4signal health_changed(life) 5 6export var life = 0 7export var max_life = 10 8export var base_armor = 0 9var armor = 0 10 11func _ready(): 12 armor = base_armor 13 14 15func take_damage(damage): 16 life = life - damage + armor 17 if life <= 0: 18 emit_signal("dead") 19 else: 20 emit_signal("health_changed", life) 21 22 23func heal(amount): 24 life += amount 25 life = clamp(life, life, max_life) 26 emit_signal("health_changed", life) 27 28 29func get_health_ratio(): 30 return life / max_life 31