示例#1
0
        private void Attack()
        {
            var enemy = CloseEnemies.First();

            // foreach (var enemy in CloseEnemies.ToArray()){
            if (enemy != null)
            {
                this.FireProjectile(enemy);
            }
            // }
        }
示例#2
0
        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);
                }
            }
        }
示例#3
0
 public void RemoveEnemy(WeakRef enemy)
 {
     CloseEnemies.RemoveAll(e => e.GetRef() == enemy.GetRef());
 }