SchildDerStaerke/scripts/target.gd

30 lines
564 B
GDScript

class_name Target
extends RigidBody3D
const MAX_HEALTH: int = 10
var current_health: int = MAX_HEALTH
signal damaged(amount: int)
signal died()
func is_dead() -> bool:
return current_health <= 0
func take_damage(amount: int) -> void:
if amount <= 0:
return
if is_dead():
return
var was_alive := not is_dead()
current_health = max(0, current_health - amount)
emit_signal("damaged", amount)
if was_alive and is_dead():
emit_signal("died")
die()
func die() -> void:
# Optional: Explosion/Animation/Sound abspielen, dann entfernen
queue_free()