Files
fgj-26/Scripts/Components/Health.cs
T
2026-01-31 23:25:02 +02:00

40 lines
859 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);
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);
}
}