newlon/scripts/zombies/RuntimeZombieData.cs
2025-07-11 22:35:36 +05:00

53 lines
1.1 KiB
C#

using Godot;
namespace Newlon.Components.Zombies;
public partial class RuntimeZombieData : Entity
{
[Export]
private Armor _armor;
[Export]
private AudioStream garlicSound;
[Export]
private AudioStream freezeSound;
public bool AbleToEat = true;
public override void Heal(float amount, Node origin)
{
if (_armor != null)
{
HP += _armor.Heal(amount);
}
else
HP += amount;
EmitSignal(SignalName.OnHPChanged, amount, origin);
if (HP > MaxHP)
{
HP = MaxHP;
}
}
public override void TakeDamage(float amount, Node origin)
{
if (_armor != null)
{
HP -= _armor.RecieveDamage(amount);
}
else
HP -= amount;
EmitSignal(SignalName.OnHPChanged, -amount, origin);
EmitSignal(SignalName.OnDamaged);
if (HP <= 0)
{
KillByDamage();
}
}
#region Death sequence
public override void KillByDamage()
{
AbleToEat = false;
}
#endregion
}