using Godot; using System.Linq; 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 = _enemy.Rotation; projectile.Position = _enemy.Position; GetParent().AddChild(projectile); } } private void OnDied() { Stop(); } }