private void nextWave()
        {
            wave++;
            invaderDirection = Direction.Right;
            if (wave < 7)
            {
                framesSkipped = 6 - wave;
            }
            else
            {
                framesSkipped = 0;
            }

            int currentInvaderYSpace = 0;

            for (int x = 0; x < 5; x++)
            {
                ShipType currentInvaderType = (ShipType)x;
                currentInvaderYSpace += INVADERYSPACING;

                int currentInavderXSpace = 0;
                for (int y = 0; y < 5; y++)
                {
                    currentInavderXSpace += INVADERXSPACING;
                    Point    newInvaderPoint = new Point(currentInavderXSpace, currentInvaderYSpace);
                    Invaders newInvader      = new Invaders(currentInvaderType, newInvaderPoint, 10);
                    invaders.Add(newInvader);
                }
            }
        }
        private void returnFire()
        {
            if (invaderShots.Count == wave)
            {
                return;
            }
            if (random.Next(10) < (10 - wave))
            {
                return;
            }

            var invaderColumns = from invader in invaders
                                 group invader by invader.Location.X into columns
                                 select columns;

            int randomColumnNumber = random.Next(invaderColumns.Count());
            var randomColumn       = invaderColumns.ElementAt(randomColumnNumber);

            var invaderRow = from invader in randomColumn
                             orderby invader.Location.Y descending
                             select invader;
            Invaders shooter         = invaderRow.First();
            Point    newShotLocation = new Point(shooter.Location.X + (shooter.Area.Width / 2), shooter.Location.Y + shooter.Area.Height);

            Shot newShot = new Shot(newShotLocation, Direction.Down, formArea);

            invaderShots.Add(newShot);
        }