Files
GameJam2023/Enemies/Scripts/MeleeEnemy.cs
2023-09-14 19:13:54 -07:00

25 lines
729 B
C#

using Godot;
using System.Linq;
public partial class MeleeEnemy : BasicEnemy
{
[Export]
private float _speed = 0.4f;
private bool _targetingPlayer = false;
[Export]
private double _distanceToPlayer = 3;
public override void _PhysicsProcess(double delta)
{
var players = GetTree().GetNodesInGroup("Player").Cast<Character>();
if (players.Any())
{
var target = players.OrderBy(x => Position.DistanceTo(x.Position)).FirstOrDefault();
if (_targetingPlayer || Position.DistanceTo(target.Position) < _distanceToPlayer)
{
Position = Position.MoveToward(target.Position, _speed * (float)delta);
_targetingPlayer = true;
}
}
}
}