30 lines
757 B
C#
30 lines
757 B
C#
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<Projectile>() as EnemyBullet;
|
|
projectile.Rotation = _enemy.Rotation;
|
|
projectile.Position = _enemy.Position;
|
|
GetParent().AddChild(projectile);
|
|
}
|
|
}
|
|
|
|
private void OnDied()
|
|
{
|
|
Stop();
|
|
}
|
|
}
|