50 lines
1.1 KiB
C#
50 lines
1.1 KiB
C#
using Godot;
|
|
using Newlon.Components.Plants;
|
|
|
|
|
|
namespace Newlon.Components.Zombies;
|
|
|
|
public partial class EatBox : Area2D
|
|
{
|
|
// Rewrite this class completely when field system will be introduced.
|
|
|
|
[Export] public FloatModifiers _damage;
|
|
[Export]
|
|
private AudioStream biteSound = ResourceLoader.Load<AudioStream>("uid://dyid55nhflwyn");
|
|
private RuntimePlantData plant;
|
|
|
|
public bool isEating = false;
|
|
|
|
public void Bite()
|
|
{
|
|
if (GetParent<RuntimeZombieData>().AbleToEat)
|
|
{
|
|
plant?.TakeDamage((int)_damage.GetValue(), GetParent());
|
|
AudioSequencer.Play("bite", biteSound);
|
|
}
|
|
|
|
}
|
|
|
|
public void OnAreaEntered(Area2D area)
|
|
{
|
|
var parent = area.GetParent();
|
|
|
|
if (parent != null && parent is RuntimePlantData plantData)
|
|
{
|
|
plant = plantData;
|
|
isEating = true;
|
|
|
|
}
|
|
}
|
|
|
|
public void OnAreaExited(Area2D area)
|
|
{
|
|
var parent = area.GetParent();
|
|
|
|
if (parent == plant)
|
|
{
|
|
plant = null;
|
|
isEating = false;
|
|
}
|
|
}
|
|
}
|