RAIDER_GameJam/components/healthcomponent.gd
Felix Kaiser 3f62e5e31d blergh
2025-02-17 16:46:19 +01:00

26 lines
660 B
GDScript

extends Area3D
class_name HealthComponent
@export var max_health : float = 100
@onready var current_health : float = max_health
@export var signal_name : String
signal start_dying
func damage(value: float):
if current_health > 0:
current_health -= value
if signal_name:
HudSignalBus.emit_signal(signal_name, current_health, max_health)
if current_health <= 0:
start_dying.emit()
func _on_area_entered(area: Area3D) -> void:
if area is HealthPickup:
current_health = current_health + area.value
current_health = clamp(current_health, 0, max_health)
HudSignalBus.emit_signal(signal_name, current_health, max_health)
area.queue_free()