public void BombitaPlantaUnaMolotovSeMueveFueraDeSuAlcanceAgarraArticuloYLuegoDeQueLaBombaExplotaVuelveYPlantaUnaToleTole()
 {
     Punto PosicionDePlantado = new Punto(8, 2);
     Bombita bombita = new Bombita(PosicionDePlantado);
     Casilla unaCasilla = this.unJuego.Ambiente.ObtenerCasilla(PosicionDePlantado);
     Casilla casillaBloqueConArticulo = this.unJuego.Ambiente.ObtenerCasilla(new Punto(7, 2));
     unaCasilla.Transitar(bombita);
     bombita.LanzarExplosivo();
     bombita.Movimiento.CambiarADerecha();
     bombita.Mover();
     bombita.Mover();
     bombita.Movimiento.CambiarAArriba();
     bombita.Mover();
     System.Threading.Thread.Sleep(3000);
     this.unJuego.AvanzarElTiempo();
     this.unJuego.AvanzarElTiempo();
     this.unJuego.AvanzarElTiempo();
     bombita.Movimiento.CambiarAAbajo();
     bombita.Mover();
     bombita.Movimiento.CambiarAIzquierda();
     bombita.Mover();
     bombita.Mover();
     bombita.Mover(); //come articulo BombaToleToe
     bombita.LanzarExplosivo();
     Assert.IsInstanceOf(typeof(BombaToleTole), this.unJuego.Ambiente.ObtenerCasilla(new Punto(7, 2)).Explosivo);
     Assert.IsFalse(bombita.Destruido());
 }
 public void BombitaPlantaUnaMolotovSeMueveFueraDeSuAlcanceYNoEsDaniadoPorLaBomba()
 {
     Punto PosicionDePlantado = new Punto(1,0);
     Bombita bombita = new Bombita(PosicionDePlantado);
     this.unJuego.Ambiente.ObtenerCasilla(PosicionDePlantado).Transitar(bombita);
     bombita.LanzarExplosivo();
     bombita.Movimiento.CambiarAIzquierda();
     bombita.Mover();
     bombita.Movimiento.CambiarAArriba();
     bombita.Mover();
     System.Threading.Thread.Sleep(3000);
     this.unJuego.AvanzarElTiempo();
     this.unJuego.AvanzarElTiempo();
     this.unJuego.AvanzarElTiempo();
     Assert.IsFalse(bombita.Destruido());
 }
        public void CuandoCecilioPlantaUnaMolotovDestruyendoABombitaYSafa()
        {
            Punto pBombita = new Punto(0, 0);
            Punto pCecil = new Punto(0, 1);

            Bombita bombita = new Bombita(pBombita);
            Cecilio unCecil = new Cecilio(pCecil);
            Juego.Instancia().Ambiente.AgregarPersonaje(bombita);
            Juego.Instancia().Ambiente.AgregarPersonaje(unCecil);

            unCecil.LanzarExplosivo();
            unCecil.Movimiento.CambiarAAbajo();
            unCecil.Mover();
            unCecil.Movimiento.CambiarADerecha();
            unCecil.Mover();

            //escapa Cecilio antes de que explote
            System.Threading.Thread.Sleep(3000);
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();

            Assert.IsFalse(unCecil.Destruido());
            Assert.IsTrue(bombita.Destruido());
        }
        public void CuandoLopezReggaePlantaUnaMolotovDestruyendoABombitaYSafa()
        {
            Punto pBombita = new Punto(1, 0);
            Punto pReggaeAlado = new Punto(0, 0);

            Bombita bombita = new Bombita(pBombita);
            LosLopezReggaeAlado lRA = new LosLopezReggaeAlado(pReggaeAlado);
            Juego.Instancia().Ambiente.AgregarPersonaje(bombita);
            Juego.Instancia().Ambiente.AgregarPersonaje(lRA);

            lRA.LanzarExplosivo();
            lRA.Movimiento.CambiarAArriba();
            lRA.Mover();
            lRA.Mover();
            lRA.Mover();
            lRA.Mover();
            System.Threading.Thread.Sleep(3000);
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            //escapa el alado

            Assert.IsFalse(lRA.Destruido());
            Assert.IsTrue(bombita.Destruido());
        }
        public void CuandoCecilioPlantaUnaMolotovDestruyendoABombitaYASiMismo()
        {
            Punto pBombita = new Punto(1, 0);
            Punto pCecil = new Punto(0, 0);

            Bombita bombita = new Bombita(pBombita);
            Cecilio unCecil = new Cecilio(pCecil);
            Juego.Instancia().Ambiente.AgregarPersonaje(bombita);
            Juego.Instancia().Ambiente.AgregarPersonaje(unCecil);

            unCecil.LanzarExplosivo();
            System.Threading.Thread.Sleep(3000);
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();

            Assert.IsTrue(unCecil.Destruido());
            Assert.IsTrue(bombita.Destruido());
        }
        public void CuandoBombmitaPlantaUnaToleToleYNoDestruyeACecilioUbicadoDetrasDeUnBloqueDeAcero()
        {
            Punto pBombita = new Punto(1, 0);
            Punto pCecil = new Punto(1, 2);         //Cecil ubicado detras del bloque
            Punto pBloqueAcero = new Punto(1, 1);

            Bombita bombita = new Bombita(pBombita);
            Cecilio unCecil = new Cecilio(pCecil);
            Juego.Instancia().Ambiente.AgregarPersonaje(bombita);
            Juego.Instancia().Ambiente.AgregarPersonaje(unCecil);
            bombita.CambiarLanzadorAToleTole();
            bombita.LanzarExplosivo();
            System.Threading.Thread.Sleep(5000);//Pasan 5 segundos
            unJuego.AvanzarElTiempo();

            Assert.IsFalse(unCecil.Destruido());
            Assert.IsTrue(bombita.Destruido());
            Assert.IsInstanceOf(typeof(Pasillo), Juego.Instancia().Ambiente.ObtenerCasilla(pBloqueAcero).Estado);
        }
        public void CuandoBombmitaPlantaUnaToleToleDestruyendoATodosLosPersonajesYObstaculosDentroDeSuAlcancePeroNoLosQueEstanAtrasDeUnBloque()
        {
            Punto pBombita = new Punto(1, 0);
            Punto pLopezReggae = new Punto(1, 2);
            Punto pLopezReggaeAlado = new Punto(2, 0);
            Punto pCecil = new Punto(1, 3);

            Punto pBloqueAcero = new Punto(1, 1);

            Bombita bombita = new Bombita(pBombita);
            Cecilio unCecil = new Cecilio(pCecil);
            LosLopezReggae lRG = new LosLopezReggae(pLopezReggae);
            LosLopezReggaeAlado lRGA = new LosLopezReggaeAlado(pLopezReggaeAlado);

            Juego.Instancia().Ambiente.AgregarPersonaje(bombita);
            Juego.Instancia().Ambiente.AgregarPersonaje(lRG);
            Juego.Instancia().Ambiente.AgregarPersonaje(lRGA);
            Juego.Instancia().Ambiente.AgregarPersonaje(unCecil);

            bombita.CambiarLanzadorAToleTole();
            bombita.LanzarExplosivo();

            System.Threading.Thread.Sleep(5000);//Pasan 5 segundos
            unJuego.AvanzarElTiempo();

            Assert.IsFalse(unCecil.Destruido());
            Assert.IsTrue(bombita.Destruido());
            Assert.IsTrue(lRGA.Destruido());
            Assert.IsFalse(lRG.Destruido());
            Assert.IsInstanceOf(typeof(Pasillo), Juego.Instancia().Ambiente.ObtenerCasilla(pBloqueAcero).Estado);
        }
        public void CuandoBombitaPlantaUnaMolotovDestruyendoAUnLosLopezRaggaeAlado()
        {
            Punto pBombita = new Punto(0,3);
            Punto pLopezRaggaeAlado = new Punto(0, 4);

            Bombita bombita = new Bombita(pBombita);
            LosLopezReggaeAlado unLRA = new LosLopezReggaeAlado(pLopezRaggaeAlado);
            Juego.Instancia().Ambiente.AgregarPersonaje(bombita);
            Juego.Instancia().Ambiente.AgregarPersonaje(unLRA);

            bombita.LanzarExplosivo();
            bombita.Movimiento.CambiarAArriba();
            bombita.Mover();
            bombita.Movimiento.CambiarADerecha();
            bombita.Mover();
            System.Threading.Thread.Sleep(3000);
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            Assert.IsTrue(unLRA.UnidadesDeResistencia == 0); //chau chau Adios loslopezreggae
            Assert.IsFalse(bombita.Destruido()); //safo bombitaaa
        }
        public void CuandoBombitaPlanta2MolotovDestruyendoALosLopezReggae()
        {
            Punto pBombita = new Punto(5, 0);
            Punto pLopezRaggae = new Punto(6, 1);

            Bombita bombita = new Bombita(pBombita);
            LosLopezReggae unLR = new LosLopezReggae(pLopezRaggae);
            unJuego.Ambiente.AgregarPersonaje(bombita);
            unJuego.AgregarEnemigo(unLR);
            bombita.Movimiento.CambiarADerecha();
            bombita.Mover();  // pos Bombita = (6,0)
            bombita.LanzarExplosivo();
            bombita.Mover(); // 7,0 le hace la gran Jay Jay Ococha y lo deja encerrado con la bomba
            bombita.Mover(); // 8,0
            bombita.Movimiento.CambiarAArriba();
            bombita.Mover(); // pos Bombita = (8,1) tiene que safar de la explosion para no morir
            System.Threading.Thread.Sleep(3000);
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            Assert.IsFalse(unLR.UnidadesDeResistencia == 0); //le quedan 5 puntos de vida
            Assert.IsFalse(bombita.Destruido()); //safo bombitaaa
            // como no lo mato vuelve
            bombita.Movimiento.CambiarAAbajo();
            bombita.Mover();
            bombita.Movimiento.CambiarAIzquierda();
            bombita.Mover();
            bombita.Mover();
            bombita.LanzarExplosivo();
            //no pudo escapar
            System.Threading.Thread.Sleep(3000);
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            Assert.IsTrue(unLR.UnidadesDeResistencia == 0); //le quedan 0 puntos de vida
            Assert.IsTrue(bombita.Destruido()); //esta vez no safo
        }