protected override void OnShotsFired() { var bulletList = new List <Bullet>(); foreach (EnemyBulletData data in bullets.FindAll(b => b.LaunchTime < currentTime)) { bulletList.Add(BulletFactory.GenerateEnemyBulletFromData(position, data)); } bullets.RemoveAll(b => b.LaunchTime < currentTime); OnShotsFired(new EnemyShootingEventArgs(bulletList)); }