47 lines
942 B
C#
47 lines
942 B
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;
|
|
private RuntimePlantData plant;
|
|
|
|
public bool isEating = false;
|
|
|
|
public void Bite()
|
|
{
|
|
if (GetParent<RuntimeZombieData>().AbleToEat)
|
|
{
|
|
plant?.TakeDamage((int)_damage.GetValue(), GetParent());
|
|
}
|
|
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|
|
}
|