using System.Linq; using Godot; public partial class FireAtPlayer : Timer { [Export] private Area3D _enemy; [Export] private PackedScene _fireProjectile; public void OnFireAtPlayer() { var players = GetTree().GetNodesInGroup("Player"); if (players.Any()) { var convertedPlayers = players.Select(x => (Node3D)x); var target = convertedPlayers.OrderBy(x => _enemy.Position.DistanceTo(x.Position)).FirstOrDefault(); var projectile = _fireProjectile.Instantiate() as EnemyBullet; projectile.Rotation = new Vector3(0, _enemy.Rotation.Y, 0); projectile.Position = _enemy.Position; GetParent().AddChild(projectile); } } }