extends Node

func _ready() -> void:
  EventBus.heal_requested.connect(_on_heal_requested)

func _on_heal_requested(_healer: Node, target: Node, amount: float) -> void:
  if target == _get_player():
    var health: float = min(PlayerData.health + amount, PlayerData.max_health)
    PlayerData.set_health(health)
  elif target.is_in_group("boss"):
    var health: float = BossData.get_stat(target, "health")
    var max_health: float = BossData.get_stat(target, "max_health")
    health = min(health + amount, max_health)
    BossData.set_health(target, health)
  elif target.is_in_group("enemies"):
    var health: float = EnemyData.get_stat(target, "health")
    var max_health: float = EnemyData.get_stat(target, "max_health")
    health = min(health + amount, max_health)
    EnemyData.set_health(target, health)

func _get_player() -> Node:
  return get_tree().get_first_node_in_group("player")
