Files

47 lines
1021 B
C#

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);
}
}