35 lines
763 B
C#
35 lines
763 B
C#
using Godot;
|
|
using System.Linq;
|
|
|
|
public partial class MeleeEnemy : BasicEnemy
|
|
{
|
|
[Export]
|
|
private float _speed = 0.4f;
|
|
|
|
public override void _PhysicsProcess(double delta)
|
|
{
|
|
var players = GetTree().GetNodesInGroup("Player");
|
|
if (players.Any())
|
|
{
|
|
var convertedPlayers = players.Select(x => (Node3D)x);
|
|
var target = convertedPlayers.OrderBy(x => Position.DistanceTo(x.Position)).FirstOrDefault();
|
|
Position = Position.MoveToward(target.Position, _speed * (float)delta);
|
|
//MoveAndSlide();
|
|
}
|
|
}
|
|
}
|
|
|
|
public partial class BasicEnemy : Node3D
|
|
{
|
|
public void OnHit(Node3D node)
|
|
{
|
|
QueueFree();
|
|
}
|
|
|
|
private void DebugOnHit()
|
|
{
|
|
var node = new Node3D();
|
|
OnHit(node);
|
|
}
|
|
}
|