Win and loose conditions

This commit is contained in:
Rendo 2025-07-20 04:23:22 +05:00
commit b551c7f012
15 changed files with 193 additions and 122 deletions

View file

@ -15,20 +15,32 @@ public partial class Entity : Node2D
public virtual void TakeDamage(float amount, Node origin)
{
HP -= amount;
EmitSignal(SignalName.OnHPChanged, -amount, origin);
EmitSignal(SignalName.OnDamaged);
if (HP <= 0)
if (HP - amount <= 0)
{
EmitSignal(SignalName.OnHPChanged, -HP, origin);
HP = 0;
KillByDamage();
}
else
{
HP -= amount;
EmitSignal(SignalName.OnHPChanged, -amount, origin);
}
}
public virtual void Heal(float amount, Node origin)
{
EmitSignal(SignalName.OnHPChanged, amount, origin);
HP += amount;
if (HP > MaxHP) HP = MaxHP;
if (HP + amount > MaxHP)
{
EmitSignal(SignalName.OnHPChanged, MaxHP - HP, origin);
HP = MaxHP;
}
else
{
HP += amount;
EmitSignal(SignalName.OnHPChanged, amount, origin);
}
}
public virtual void KillByDamage()