using Godot; using System; public partial class Health : Node { [Export] private Node2D _parent; [Export] private float _baseMaxHp; public float MaxHP { get; private set; } public float CurHP { get; private set; } [Signal] public delegate void DeathEventHandler(Node2D node); public override void _EnterTree() { CurHP = MaxHP = _baseMaxHp * Mathf.Pow(GameController.Instance.Wave, 1.067f); } public void Substract(float v) { v = Mathf.Abs(v); CurHP -= v; if (CurHP <= 0) { EmitSignalDeath(_parent); } } public void Add(float v) { v = Mathf.Abs(v); CurHP = Math.Clamp(CurHP + v, 0f, MaxHP); } public void Reset() { CurHP = MaxHP = _baseMaxHp * Mathf.Pow(GameController.Instance.Wave, 1.067f); } }