public void LopezReggaeAladoPlantaUnaMolotovSeMueveFueraDeSuAlcanceYLuegoDeQueLaBombaExplotaVuelveYPlantaOtra()
 {
     Punto PosicionDePlantado = new Punto(0, 1);
     LosLopezReggaeAlado personaje = new LosLopezReggaeAlado(PosicionDePlantado);
     Juego.Instancia().Ambiente.ObtenerCasilla(PosicionDePlantado).Transitar(personaje);
     personaje.LanzarExplosivo();
     personaje.Movimiento.CambiarADerecha();
     personaje.Mover();
     personaje.Mover();
     personaje.Mover();
     personaje.Mover();
     System.Threading.Thread.Sleep(3000);
     this.unJuego.AvanzarElTiempo();
     this.unJuego.AvanzarElTiempo();
     this.unJuego.AvanzarElTiempo();
     personaje.Movimiento.CambiarAIzquierda();
     personaje.Mover();
     personaje.Mover();
     personaje.Mover();
     personaje.Mover();
     personaje.LanzarExplosivo();
     Assert.IsInstanceOf(typeof(BombaMolotov), Juego.Instancia().Ambiente.ObtenerCasilla(PosicionDePlantado).Explosivo);
     Assert.IsFalse(personaje.Destruido());
 }
示例#2
0
 public void UnLopezReggaeAladoNoAtraviesaElLimiteSuperiorDelMapa()
 {
     IMovible otroMovil = new LosLopezReggaeAlado(new Punto(4, ALTOMAPA-1));
     this.unMapa.AgregarPersonaje(otroMovil);
     Punto posOriginal = otroMovil.Posicion.Clonar();
     otroMovil.Movimiento.CambiarAArriba();
     otroMovil.Mover();//choca con el limite superior
     Assert.IsTrue(otroMovil.Posicion.Equals(posOriginal));
 }
        public void CecilioPlantaUnaBombaEnUnaCasillaTransitadaPorVariosEnemigosYEstosMuerenTodosPorElloNoHayNadieTransitandoDespues()
        {
            Punto puntoTransito = new Punto(5,0);
            Cecilio unCecilio = new Cecilio(puntoTransito);
            Cecilio otroCecilio = new Cecilio(puntoTransito);
            Cecilio Cecilio = new Cecilio(puntoTransito);
            LosLopezReggaeAlado unLRA = new LosLopezReggaeAlado(puntoTransito);
            LosLopezReggaeAlado otroLRA = new LosLopezReggaeAlado(puntoTransito);
            LosLopezReggaeAlado LRA = new LosLopezReggaeAlado(puntoTransito);
            Casilla casillaTransitada = Juego.Instancia().Ambiente.ObtenerCasilla(puntoTransito);

            casillaTransitada.Transitar(unCecilio);
            casillaTransitada.Transitar(Cecilio);
            casillaTransitada.Transitar(otroCecilio);
            casillaTransitada.Transitar(unLRA);
            casillaTransitada.Transitar(LRA);
            casillaTransitada.Transitar(otroLRA);

            Assert.AreEqual(casillaTransitada.TransitandoEnCasilla.Count, 6);

            unCecilio.LanzarExplosivo();

            Assert.IsInstanceOf(typeof(BombaMolotov), casillaTransitada.Explosivo);
            System.Threading.Thread.Sleep(3000);
            this.unJuego.AvanzarElTiempo();
            this.unJuego.AvanzarElTiempo();
            this.unJuego.AvanzarElTiempo();

            Assert.IsTrue(unCecilio.Destruido());
            Assert.IsTrue(LRA.Destruido());
            Assert.IsTrue(otroCecilio.Destruido());
            Assert.IsTrue(Cecilio.Destruido());
            Assert.IsTrue(unLRA.Destruido());
            Assert.IsTrue(otroLRA.Destruido());

            Assert.AreEqual(casillaTransitada.TransitandoEnCasilla.Count, 0);
        }
示例#4
0
 public void UnLopezReggaeAladoAvanzaSobreUnObstaculoSuPosicionEsDistintaALaOriginal()
 {
     IMovible otroMovil = new LosLopezReggaeAlado(new Punto(1, 0));
     Punto posOriginal = otroMovil.Posicion.Clonar();
     this.unMapa.AgregarPersonaje(otroMovil);
     otroMovil.Movimiento.CambiarAArriba();
     otroMovil.Mover(); //se mueve donde hay un bloque de acero
     Assert.IsFalse(otroMovil.Posicion.Equals(posOriginal));
 }
示例#5
0
 public void UnLopezReggaeAladoNoAtraviesaElLimiteIzquierdoDelMapa()
 {
     IMovible otroMovil = new LosLopezReggaeAlado(new Punto(0, 0));
     this.unMapa.AgregarPersonaje(otroMovil);
     Punto posOriginal = otroMovil.Posicion.Clonar();
     otroMovil.Movimiento.CambiarAIzquierda();
     otroMovil.Mover();//choca con el limite izquierdo
     Assert.IsTrue(otroMovil.Posicion.Equals(posOriginal));
 }
示例#6
0
        public void CuandoExplotaUnaBombaMolotovYTieneUnCasilleroAbajoConLopezReggaeAladoLoDestruye()
        {
            Punto posicionBomba = new Punto(2, 3);
            Punto posicionAlado = new Punto(2, 2);
            LosLopezReggaeAlado alado = new LosLopezReggaeAlado(posicionAlado);

            Casilla casillaAlado = unMapa.ObtenerCasilla(posicionAlado);
            Casilla casillaBomba = unMapa.ObtenerCasilla(posicionBomba);

            Bomba unaBomba = new BombaMolotov(posicionBomba, 0);
            casillaAlado.Transitar(alado);
            casillaBomba.PlantarExplosivo(unaBomba);
            unaBomba.Explotar();
            Assert.AreEqual(alado.UnidadesDeResistencia, 0);
        }
示例#7
0
 public void UnLopezReggaeAladoAtraviesaObstaculos()
 {
     IMovible otroMovil = new LosLopezReggaeAlado(new Punto(0, 0));
     this.unMapa.AgregarPersonaje(otroMovil);
     otroMovil.Movimiento.CambiarAArriba();
     otroMovil.Mover();//fue a 0,1
     otroMovil.Movimiento.CambiarADerecha();
     otroMovil.Mover();//fue a 1,1 (esta sobre un bloque de acero)
     otroMovil.Mover(); //fue a 2,1 (esta sobre pasillo)
     otroMovil.Mover();//fue a 3,1 (esta sobre un bloque de acero)
     otroMovil.Movimiento.CambiarAArriba();
     otroMovil.Mover(); //fue a 3,2 (esta sobre pasillo)
     otroMovil.Mover();//fue a 3,3 (esta sobre un bloque de acero)
     otroMovil.Mover(); //fue a 3,4
     Punto posFinal = new Punto(3, 4);
     Assert.IsTrue(otroMovil.Posicion.Equals(posFinal));
 }
示例#8
0
        public void CuandoLosLopezReggaeAladoSeParaArribaDeUnPasilloConChalaNOComeElItem()
        {
            Punto posDestino = new Punto(1, 1);
            Punto posOrigen = new Punto(0, 1);
            Casilla destino = FabricaDeCasillas.FabricarPasillo(posDestino);
            Casilla origen = FabricaDeCasillas.FabricarPasillo(posOrigen);
            Articulo unArticulo = new Chala();
            destino.ArticuloContenido = unArticulo;
            Personaje unEnemigo = new LosLopezReggaeAlado(posOrigen);
            float velocidad = unEnemigo.Movimiento.Velocidad;

            destino.Transitar(unEnemigo);

            Assert.AreEqual(velocidad, unEnemigo.Movimiento.Velocidad);
        }
示例#9
0
        public void CuandoLosLopezReggaeAladoSeParaArribaDeUnPasilloConTimerNOComeElItem()
        {
            Punto posDestino = new Punto(1, 1);
            Punto posOrigen = new Punto(0, 1);
            Casilla destino = FabricaDeCasillas.FabricarPasillo(posDestino);
            Casilla origen = FabricaDeCasillas.FabricarPasillo(posOrigen);
            Articulo unArticulo = new Timer();
            destino.ArticuloContenido = unArticulo;
            Personaje unEnemigo = new LosLopezReggaeAlado(posOrigen);
            int retardo = 0;

            destino.Transitar(unEnemigo);

            Assert.AreEqual(retardo, unEnemigo.Lanzador.RetardoExplosion);
        }
示例#10
0
 public void AgregarUnMovilEnUnaCasillaDentroDelRangoNoCreadaEnElMapaLanzaNoExisteCasillaException()
 {
     pos = new Punto(3, 4);
     IMovible movil = new LosLopezReggaeAlado(pos);
     try
     {
         otroMapa.AgregarPersonaje(movil);
         Assert.Fail();
     }
     catch (NoExisteCasillaException)
     {
         Assert.Pass("Exception correcta fue lanzada.");
     }
     catch (System.Exception)
     {
         Assert.Fail();
     }
 }
示例#11
0
        public void CuandoLosLopezReggaeAladoSeParaArribaDeUnPasilloConArticuloBombaToleToleNOComeElItem()
        {
            Punto posDestino = new Punto(1, 1);
            Punto posOrigen = new Punto(0, 1);
            Casilla destino = FabricaDeCasillas.FabricarPasillo(posDestino);
            Casilla origen = FabricaDeCasillas.FabricarPasillo(posOrigen);
            Articulo unArticulo = new ArticuloBombaToleTole();
            destino.ArticuloContenido = unArticulo;
            Personaje unEnemigo = new LosLopezReggaeAlado(posOrigen);

            destino.Transitar(unEnemigo);

            Assert.IsInstanceOf(typeof(LanzadorMolotov), unEnemigo.Lanzador);
        }
示例#12
0
        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());
        }
示例#13
0
        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);
        }
示例#14
0
        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
        }
示例#15
0
        public void BombitaIntentaSalirDelJuegoPeroNoPuedePorqueLeQuedanEnemigos()
        {
            Punto posInicio = new Punto(0, 0);
            Punto posLRA = new Punto(4, 4);
            Personaje unBombita = new Bombita(posInicio);
            Personaje unEnemigo = new LosLopezReggaeAlado(posLRA);

            //Agrego articulo
            Punto posicionCasillaArt = new Punto(1, 0);
            Casilla CasillaConArticulo = this.unJuego.Ambiente.ObtenerCasilla(posicionCasillaArt);
            Articulo unArticulo = new ArticuloBombaToleTole();
            CasillaConArticulo.ArticuloContenido = unArticulo; //Pongo un articulo en el pasillo para agarrarlo con bombita.

            Punto posSalida = new Punto(1, 1);
            Casilla casillaConSalida = this.unJuego.Ambiente.ObtenerCasilla(posSalida);

            Salida salida = new Salida();
            casillaConSalida.agregarSalida(salida);

            unJuego.Ambiente.AgregarPersonaje(unBombita);
            unJuego.Ambiente.AgregarPersonaje(unEnemigo);

            unBombita.Movimiento.CambiarADerecha();
            unBombita.Mover(); // 1,0, como articulo.
            unBombita.Mover(); // 2,0.
            unBombita.Movimiento.CambiarAArriba();
            unBombita.Mover(); // 2,1

            unBombita.LanzarExplosivo();
            unBombita.Mover(); // 2,2
            unBombita.Movimiento.CambiarAIzquierda();
            unBombita.Mover(); // 1,2

            unEnemigo.Movimiento.CambiarAAbajo(); //4,4

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

            unBombita.Movimiento.CambiarAAbajo();
            unBombita.Mover();//1,1

            Assert.IsFalse(unJuego.Ambiente.NivelGanado);
            Assert.IsFalse(unJuego.Ambiente.NivelTerminado);
        }
示例#16
0
        public void BombitaAgarraUnArticuloBombaToleToleYAniquilaALosLopezReggaeAlado()
        {
            Punto posInicio = new Punto(0, 3);
            Punto posLRA = new Punto(4, 4);
            Personaje unBombita = new Bombita(posInicio);
            Personaje unEnemigo = new LosLopezReggaeAlado(posLRA);

            //Agrego articulo
            Punto posicionCasillaArt = new Punto(0, 4);
            Casilla CasillaConArticulo = this.unJuego.Ambiente.ObtenerCasilla(posicionCasillaArt);
            Articulo unArticulo = new ArticuloBombaToleTole();
            CasillaConArticulo.ArticuloContenido = unArticulo; //Pongo un articulo en el pasillo para agarrarlo con bombita.

            unJuego.Ambiente.AgregarPersonaje(unBombita);
            unJuego.Ambiente.AgregarPersonaje(unEnemigo);

            unBombita.Movimiento.CambiarAArriba();
            unBombita.Mover(); // 0,4, como articulo.
            unBombita.Movimiento.CambiarADerecha();
            unBombita.Mover(); // 1,4.
            unBombita.LanzarExplosivo();
            unBombita.Movimiento.CambiarAIzquierda();
            unBombita.Mover(); // 0,4
            unBombita.Movimiento.CambiarAAbajo();
            unBombita.Mover(); // 0,3

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

            Assert.IsTrue(unEnemigo.Destruido());
        }