24 lines
647 B
C#
24 lines
647 B
C#
using Godot;
|
|
using System.Linq;
|
|
|
|
public partial class RangedEnemy : BasicEnemy
|
|
{
|
|
public override void _Process(double delta)
|
|
{
|
|
var players = GetTree().GetNodesInGroup("Player");
|
|
if (players.Any())
|
|
{
|
|
GD.Print("Fire at player");
|
|
var convertedPlayers = players.Select(x => (Node3D)x);
|
|
var target = convertedPlayers.OrderBy(x => Position.DistanceTo(x.Position)).FirstOrDefault();
|
|
var area = GetChildren().OfType<Area3D>().Single();
|
|
area.LookAt(target.Position, Vector3.Up);
|
|
}
|
|
}
|
|
public void OnHit(Node node)
|
|
{
|
|
GD.Print("Hit detected");
|
|
QueueFree();
|
|
}
|
|
}
|