private void Attack() { var enemy = CloseEnemies.First(); // foreach (var enemy in CloseEnemies.ToArray()){ if (enemy != null) { this.FireProjectile(enemy); } // } }
public void On_Area_Entered(Node body) { if (body.IsInGroup("Enemies")) { Enemy enemy = body.GetOwner <Enemy>(); CloseEnemies.Add(WeakRef(enemy)); enemy.Connect("EnemyDied", this, nameof(this.RemoveEnemy)); if (CloseEnemies.Count > 0 && !Attacking) { Attacking = true; this.Attack(); AttackTimer.Start(AttackDelay); } } }
public void RemoveEnemy(WeakRef enemy) { CloseEnemies.RemoveAll(e => e.GetRef() == enemy.GetRef()); }