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); [Signal] public delegate void DamagedEventHandler(); public override void _EnterTree() { // CurHP = MaxHP = _baseMaxHp * Mathf.Pow(GameController.Instance.Wave, 1.067f); Reset(); } public void Substract(float v) { v = Mathf.Abs(v); CurHP -= v; EmitSignalDamaged(); 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(1.075f, GameController.Instance.Wave); GD.Print("Curhp"); GD.Print(CurHP); } }