2024-02-22 06:22:22 +11:00
|
|
|
class_name Health extends Node
|
2023-11-08 14:28:55 +11:00
|
|
|
|
|
|
|
signal health_depleted
|
2024-02-22 06:22:22 +11:00
|
|
|
signal health_changed(health: int)
|
2023-11-08 14:28:55 +11:00
|
|
|
|
2024-02-22 06:22:22 +11:00
|
|
|
@export var damage_particle_scene: PackedScene
|
|
|
|
@export var max_health: int = 10
|
2023-11-08 14:28:55 +11:00
|
|
|
|
2024-02-22 06:22:22 +11:00
|
|
|
var current_health: int
|
2023-11-08 14:28:55 +11:00
|
|
|
|
2024-02-22 06:22:22 +11:00
|
|
|
func take_damage(damage: int) -> void:
|
2023-11-08 14:28:55 +11:00
|
|
|
current_health -= damage
|
|
|
|
health_changed.emit(current_health)
|
|
|
|
if current_health <= 0:
|
|
|
|
health_depleted.emit()
|
|
|
|
|
|
|
|
|
2024-02-22 06:22:22 +11:00
|
|
|
func heal_damage(healing: int) -> void:
|
2023-11-08 14:28:55 +11:00
|
|
|
current_health += healing
|
|
|
|
if current_health > max_health:
|
|
|
|
current_health = max_health
|
2023-11-13 19:36:35 +11:00
|
|
|
health_changed.emit(current_health)
|