private IInvader GetRandomInvader()
        {
            IInvader xInvader;
            double rng = Random.NextDouble();

            switch (Difficulty)
            {
                case Difficulty.VeryEasy:
                    xInvader = new BasicInvader(MapPath);
                    break;
                case Difficulty.Easy:
                    if (rng <= 0.2)
                        xInvader = new FastInvader(MapPath);
                    else
                        xInvader = new BasicInvader(MapPath);
                    break;
                case Difficulty.Medium:
                    if (rng <= 0.2)
                    {
                        if (rng <= 0.09)
                            xInvader = new StrongInvader(MapPath);
                        else
                            xInvader = new FastInvader(MapPath);
                    }
                    else
                        xInvader = new BasicInvader(MapPath);
                    break;
                case Difficulty.Hard:
                    if (rng <= 0.2)
                    {
                        if (rng <= 0.06)
                            xInvader = new ShieldedInvader(MapPath);
                        else if (rng <= 0.125)
                            xInvader = new StrongInvader(MapPath);
                        else
                            xInvader = new FastInvader(MapPath);
                    }
                    else
                        xInvader = new BasicInvader(MapPath);
                    break;
                case Difficulty.Brutal:
                    if (rng <= 0.2)
                    {
                        if (rng <= 0.04)
                            xInvader = new ResurrectingInvader(MapPath);
                        else if (rng <= 0.09)
                            xInvader = new ShieldedInvader(MapPath);
                        else if (rng <= 0.14)
                            xInvader = new StrongInvader(MapPath);
                        else
                            xInvader = new FastInvader(MapPath);
                    }
                    else
                        xInvader = new BasicInvader(MapPath); break;
                default:
                    xInvader = new BasicInvader(MapPath);
                    break;
            }
            return xInvader;
        }
 public ResurrectingInvader(Path path)
 {
     _incarnation1 = new BasicInvader(path);
     _incarnation2 = new StrongInvader(path);
 }