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));
 }
예제 #3
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));
 }
예제 #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 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));
 }
예제 #6
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());
        }