public void CuandoEnOtroMapaAgrego2PersonajesEliminoAlUnicoEnemigoYSeActivaLaSalida() { // agrego articulo Tablero otroMapa = Juego.Instancia().Ambiente; Punto pUnaSalida = new Punto(3, 3); Punto pUnCecilio = new Punto(2, 1); Punto pUnaBombaMolotov = new Punto(2, 0); Punto pBombita = new Punto(4, 4); Casilla unaCasillaDeSalida = Juego.Instancia().Ambiente.ObtenerCasilla(pUnaSalida); unaCasillaDeSalida.agregarSalida(Juego.Instancia().Salida); Cecilio unCecil = new Cecilio(pUnCecilio); Bombita unBombita = new Bombita(pBombita); BombaMolotov unaBomba = new BombaMolotov(pUnaBombaMolotov, 0); otroMapa.AgregarPersonaje(unBombita); otroMapa.AgregarPersonaje(unCecil); Juego.Instancia().EnemigosVivos.Add(unCecil); Casilla casillaBomba = otroMapa.ObtenerCasilla(pUnaBombaMolotov); Juego.Instancia().AlojarExplosivo(unaBomba); System.Threading.Thread.Sleep(3000); Juego.Instancia().AvanzarElTiempo(); Juego.Instancia().AvanzarElTiempo(); Juego.Instancia().AvanzarElTiempo(); Assert.AreEqual(0, Juego.Instancia().CantidadEnemigosVivos()); Assert.IsTrue(Juego.Instancia().Ambiente.ObtenerCasilla(pUnaSalida).ArticuloContenido.EstaActivo ); }
public void AgarroUnArticuloBombaToleToleConBombitaYDestruyoUnBloqueDeAcero() { Punto posInicio = new Punto(0, 0); Personaje unBombita = new Bombita(posInicio); //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. unJuego.Ambiente.AgregarPersonaje(unBombita); unBombita.Movimiento.CambiarADerecha(); unBombita.Mover(); // 1,0, como articulo. unBombita.LanzarExplosivo(); // lanzo tole tole unBombita.Movimiento.CambiarAIzquierda(); unBombita.Mover(); // 0,0 unBombita.Movimiento.CambiarAArriba(); unBombita.Mover(); // 0,1. System.Threading.Thread.Sleep(5000);//Pasan 5 segundos unJuego.AvanzarElTiempo(); //explota tole tole unBombita.Movimiento.CambiarADerecha(); unBombita.Mover(); // 1,1 Punto puntoFinal = new Punto(1, 1); Assert.AreEqual(puntoFinal.X, unBombita.Posicion.X); Assert.AreEqual(puntoFinal.Y, unBombita.Posicion.Y); }
public void BombitaAgarraUnArticuloBombaToleToleYAniquilaACecilio() { Punto posInicio = new Punto(3, 0); Punto posInicioCecilio = new Punto(6, 2); Personaje unBombita = new Bombita(posInicio); Personaje unEnemigo = new Cecilio(posInicioCecilio); //Agrego articulo Punto posicionCasillaArt = new Punto(4, 0); Casilla CasillaConArticulo = 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); unJuego.AgregarEnemigo(unEnemigo); unBombita.Movimiento.CambiarADerecha(); unBombita.Mover(); // 4,0, como articulo. unBombita.Movimiento.CambiarAArriba(); unBombita.Mover(); // 4,1 unBombita.Mover(); // 4,2 unBombita.LanzarExplosivo(); unBombita.Movimiento.CambiarAIzquierda(); unBombita.Mover(); // 3,2 unBombita.Mover(); // 2,2 unEnemigo.Movimiento.CambiarAAbajo(); unBombita.Mover(); // 2,1 bombita se oculta System.Threading.Thread.Sleep(5000);//Pasan 5 segundos unJuego.AvanzarElTiempo(); Assert.IsTrue(unEnemigo.Destruido()); }
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 TransitarCasillaHaceQueUnPersonajeDeLaMismaClaseTransiteEsaCasilla() { Personaje unBombita = new Bombita(new Punto(0, 0)); Casilla unaCas = Juego.Instancia().Ambiente.ObtenerCasilla(new Punto(0, 0)); unaCas.Transitar(unBombita); Assert.IsTrue(unaCas.TransitaEnCasillaUn(new Bombita(new Punto(0, 0)))); }
public void AlLanzarUnaBombaLaDebeAgregarEnListaDeLosQueEsperanParaExplotar() { Punto posicionBombita1 = new Punto(3, 0); int cantDependeTiempo = Juego.Instancia().DependientesDelTiempo.Count; Bombita movil = new Bombita(posicionBombita1); Casilla casillaBomba1 = Juego.Instancia().Ambiente.ObtenerCasilla(posicionBombita1); casillaBomba1.Transitar(movil); movil.LanzarExplosivo(); movil.LanzarExplosivo(); movil.LanzarExplosivo(); movil.LanzarExplosivo(); movil.LanzarExplosivo(); Assert.AreEqual((cantDependeTiempo+1), Juego.Instancia().DependientesDelTiempo.Count); }
public void BombitaAvanzaPorTodoElMapaYNoCambiaDePosCuandoChocaConElLimiteDerechoDelMapa() { IMovible otroMovil = new Bombita(new Punto(10, 1)); this.unMapa.AgregarPersonaje(otroMovil); otroMovil.Movimiento.CambiarAAbajo(); otroMovil.Mover();//fue a 10,0 otroMovil.Movimiento.CambiarADerecha(); otroMovil.Mover();//fue a 11,0 otroMovil.Mover();//fue a 12,0 otroMovil.Mover();//fue a 13,0 otroMovil.Mover();//fue a 14,0 otroMovil.Mover();//fue a 15,0 otroMovil.Mover();//fue a 16,0, esta en el limite! otroMovil.Mover(); //choca con el limite Punto posFinal = new Punto(ANCHOMAPA -1, 0); Assert.IsTrue(otroMovil.Posicion.Equals(posFinal)); }
public void BombitaPlantaUnaMolotovSeMueveFueraDeSuAlcanceYLuegoDeQueLaBombaExplotaVuelveYPlantaOtraMolotov() { Punto PosicionDePlantado=new Punto(7,0); Bombita bombita = new Bombita(PosicionDePlantado); this.unJuego.Ambiente.ObtenerCasilla(PosicionDePlantado).Transitar(bombita); bombita.LanzarExplosivo(); bombita.Movimiento.CambiarADerecha(); 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.LanzarExplosivo(); Assert.IsInstanceOf( typeof(BombaMolotov),Juego.Instancia().Ambiente.ObtenerCasilla(PosicionDePlantado).Explosivo); }
public void CuandoEnOtroMapaAgrego3PersonajesEliminoSoloUnEnemigoYNoSeActivaLaSalida() { // agrego articulo Tablero otroMapa = Juego.Instancia().Ambiente; Punto pUnaSalida = new Punto(3, 3); Punto pUnCecilio = new Punto(2, 1); Punto pUnaBombaMolotov = new Punto(2, 0); Punto pBombita = new Punto(4, 4); Punto pLopez = new Punto(4, 3); Casilla unaCasillaDeSalida = Juego.Instancia().Ambiente.ObtenerCasilla(pUnaSalida); Salida salida = new Salida(); unaCasillaDeSalida.agregarSalida(salida); Assert.IsInstanceOf(typeof(Salida), Juego.Instancia().Ambiente.ObtenerCasilla(pUnaSalida).ArticuloContenido); Cecilio unCecil = new Cecilio(pUnCecilio); Bombita unBombita = new Bombita(pBombita); BombaMolotov unaBomba = new BombaMolotov(pUnaBombaMolotov, 0); LosLopezReggae lopez = new LosLopezReggae(pLopez); otroMapa.AgregarPersonaje(unBombita); otroMapa.AgregarPersonaje(unCecil); Juego.Instancia().EnemigosVivos.Add(unCecil); otroMapa.AgregarPersonaje(lopez); Juego.Instancia().EnemigosVivos.Add(lopez); Juego.Instancia().AlojarExplosivo(unaBomba); System.Threading.Thread.Sleep(3000); Juego.Instancia().AvanzarElTiempo(); Juego.Instancia().AvanzarElTiempo(); Juego.Instancia().AvanzarElTiempo(); Assert.AreEqual(Juego.Instancia().CantidadEnemigosVivos(),1); Assert.IsFalse(Juego.Instancia().Ambiente.ObtenerCasilla(pUnaSalida).ArticuloContenido.EstaActivo); }
public void ExplotoUnObstaculoQueContieneUnArticuloBombaToleToleYLuegoLoComeBombita() { Punto posInicio = new Punto(14,7); //Posision del articulo Bomba ToleTole (14,8) Personaje unBombita = new Bombita(posInicio); //Muevo a bombita para dejarlo cerca de un Bloque y explotarlo. this.unJuego.Ambiente.AgregarPersonaje(unBombita); unBombita.LanzarExplosivo(); //Pongo a bombita lejos de la explosion unBombita.Movimiento.CambiarAAbajo(); unBombita.Mover();//fue a 14,6 unBombita.Movimiento.CambiarADerecha(); unBombita.Mover();//fue a 15,6 System.Threading.Thread.Sleep(3000); Juego.Instancia().AvanzarElTiempo(); Juego.Instancia().AvanzarElTiempo(); Juego.Instancia().AvanzarElTiempo(); unBombita.Movimiento.CambiarAIzquierda(); unBombita.Mover(); //fue a 14,6 unBombita.Movimiento.CambiarAArriba(); unBombita.Mover(); //fue a 14,7 unBombita.Mover(); //fue a 14,8 come el item Assert.IsInstanceOf(typeof(LanzadorToleTole), unBombita.Lanzador); }
public void CuandoBombitaSeParaArribaDeUnPasilloConTimerOcultoNOComeElItem() { 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(); unArticulo.EstaOculto = true; destino.ArticuloContenido = unArticulo; Personaje unBombita = new Bombita(posOrigen); int retardo = 0; destino.Transitar(unBombita); Assert.AreEqual(retardo, unBombita.Lanzador.RetardoExplosion); }
public void ExplotoUnObstaculoQueContieneUnTimerYLuegoLoComeBombita() { Punto posInicio = new Punto(12, 6); Personaje unBombita = new Bombita(posInicio); //Muevo a bombita para dejarlo cerca de un Bloque y explotarlo. this.unJuego.Ambiente.AgregarPersonaje(unBombita); float velocidad = unBombita.Movimiento.Velocidad; unBombita.Movimiento.CambiarAIzquierda(); unBombita.LanzarExplosivo(); //Pongo a bombita lejos de la explosion unBombita.Movimiento.CambiarADerecha(); unBombita.Mover(); //fue a 13,6 unBombita.Mover();//fue a 14,6 unBombita.Movimiento.CambiarAArriba(); unBombita.Mover();//fue a 14,7 System.Threading.Thread.Sleep(3000); Juego.Instancia().AvanzarElTiempo(); Juego.Instancia().AvanzarElTiempo(); Juego.Instancia().AvanzarElTiempo(); unBombita.Movimiento.CambiarAAbajo(); unBombita.Mover(); //fue a 14,6 unBombita.Movimiento.CambiarAIzquierda(); unBombita.Mover(); //fue a 13,6 unBombita.Mover();//fue a 12,6 unBombita.Mover();// come timer en 11,6. Assert.AreEqual(15, unBombita.Lanzador.RetardoExplosion); }
public void BombitaNoCambiaDePosCuandoChocaConElLimiteInferiorDelMapa() { IMovible otroMovil = new Bombita(new Punto(3, 0)); Punto posOriginal = otroMovil.Posicion.Clonar(); this.unMapa.AgregarPersonaje(otroMovil); otroMovil.Movimiento.CambiarAAbajo(); otroMovil.Mover(); //choca con el limite inferior Assert.IsTrue(otroMovil.Posicion.Equals(posOriginal)); }
public void UnMovilDespuesDeMoverseEnDireccionAUnObstaculoSuPosicionEsIgualALaOriginal() { IMovible otroMovil = new Bombita(new Punto(1, 0)); Punto posOriginal = otroMovil.Posicion.Clonar(); this.unMapa.AgregarPersonaje(otroMovil); otroMovil.Movimiento.CambiarAArriba(); otroMovil.Mover(); Assert.IsTrue(posOriginal.Equals(otroMovil.Posicion)); }
public void UnMovilDespuesDeMoverseEnDireccionAUnPasilloSuPosicionNoEsIgualALaOriginal() { IMovible otroMovil = new Bombita(new Punto(0, 0)); Punto posOriginal = otroMovil.Posicion.Clonar(); this.unMapa.AgregarPersonaje(otroMovil); otroMovil.Movimiento.CambiarADerecha(); otroMovil.Mover(); Assert.IsFalse(posOriginal.Equals(otroMovil.Posicion)); }
public void CuandoGeneroUnMapaNuevoYElimino1EnemigoConToleToleRestaUnEnemigoVivo() { int cantEnemigos = this.unJuego.CantidadEnemigosVivos(); Punto p = new Punto(2, 2); Personaje bombita = new Bombita(p); this.unJuego.Ambiente.AgregarPersonaje(bombita); Cecilio unCeci = new Cecilio(p); this.unJuego.AgregarEnemigo(unCeci); bombita.CambiarLanzadorAToleTole(); bombita.LanzarExplosivo(); bombita.Movimiento.CambiarADerecha(); bombita.Mover(); bombita.Mover(); bombita.Movimiento.CambiarAAbajo(); bombita.Mover(); System.Threading.Thread.Sleep(5000);//Pasan 5 segundos this.unJuego.AvanzarElTiempo(); this.unJuego.AvanzarElTiempo(); this.unJuego.AvanzarElTiempo(); this.unJuego.AvanzarElTiempo(); this.unJuego.AvanzarElTiempo(); Assert.AreEqual(this.unJuego.CantidadEnemigosVivos(), cantEnemigos); }
public void BombitaAgarraUnArticuloBombaToleToleYAniquilaALosLopezReggae() { Punto posInicio = new Punto(0, 0); Punto posLR = new Punto(0, 1); Personaje unBombita = new Bombita(posInicio); Personaje unEnemigo = new LosLopezReggae(posLR); //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. unJuego.Ambiente.AgregarPersonaje(unBombita); unJuego.Ambiente.AgregarPersonaje(unEnemigo); unBombita.Movimiento.CambiarADerecha(); unBombita.Mover(); // 1,0, como articulo. Assert.IsInstanceOf(typeof(Bombita), Juego.Instancia().Ambiente.ObtenerCasilla(posicionCasillaArt).TransitandoEnCasilla[0]); Assert.IsInstanceOf(typeof(LanzadorToleTole), unBombita.Lanzador); unBombita.Movimiento.CambiarAIzquierda(); unBombita.Mover(); // 0,0 unBombita.LanzarExplosivo(); System.Threading.Thread.Sleep(5000);//Pasan 5 segundos unJuego.AvanzarElTiempo(); Assert.IsTrue(unEnemigo.Destruido()); }
public void TestSetup() { pos = new Punto(3, 4); c = FabricaDeCasillas.FabricarPasillo(pos); unBombita = new Bombita(pos); }
public void ExplotoUnObstaculoQueContieneUnaChalaYLuegoLoComeBombita() { int AnchoYLargo = 5; Tablero unMapa = new Tablero(AnchoYLargo, AnchoYLargo); Punto posInicio = new Punto(0, 0); Punto posFinal = new Punto(1, 1); Personaje unBombita = new Bombita(posInicio); //Pongo un BombaToleTole en el pasillo para agarrarlo con bombita y poder romper el bloque de acero donde esta la Chala Punto posicionCasillaArt = new Punto(0, 1); Casilla CasillaConArticulo = Juego.Instancia().Ambiente.ObtenerCasilla(posicionCasillaArt); Articulo unArticulo = new ArticuloBombaToleTole(); CasillaConArticulo.ArticuloContenido = unArticulo; //Agrego articulo posicionCasillaArt = new Punto(1, 1); CasillaConArticulo = this.unJuego.Ambiente.ObtenerCasilla(posicionCasillaArt); unArticulo = new Chala(); CasillaConArticulo.agregarArticulo(unArticulo); //Muevo a bombita para dejarlo cerca de un Bloque y explotarlo. this.unJuego.Ambiente.AgregarPersonaje(unBombita); float velocidad = unBombita.Movimiento.Velocidad; unBombita.Movimiento.CambiarAArriba(); unBombita.Mover();//fue a 0,1 unBombita.LanzarExplosivo(); //Pongo a bombita lejos de la explosion unBombita.Movimiento.CambiarAAbajo(); unBombita.Mover();//fue a 0,0 unBombita.Movimiento.CambiarADerecha(); unBombita.Mover(); //fue a 0,1 System.Threading.Thread.Sleep(5000);//Pasan 5 segundos unJuego.AvanzarElTiempo(); unBombita.Movimiento.CambiarAArriba(); unBombita.Mover(); //fue a 1,1; come item. Assert.AreEqual(2 * velocidad, unBombita.Movimiento.Velocidad); }
public void obstaculoDeLadrilloNoEsTransitablePorUnPersonajeNoAlado() { Punto unPunto = new Punto(0, 0); Personaje unPersonaje = new Bombita(unPunto); Assert.IsFalse(obstaculoLadrillo.TransitablePor(unPersonaje)); }
public void CuandoBombitaSeParaArribaDeUnPasilloConTimerComeElItemYLoOculta() { 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 unBombita = new Bombita(posOrigen); destino.Transitar(unBombita); Assert.IsTrue(destino.ArticuloContenido.EstaOculto); }
public void CuandoBombitaSeParaArribaDeUnPasilloConChalaOcultaNOComeElItem() { 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(); unArticulo.EstaOculto = true; destino.ArticuloContenido = unArticulo; Personaje unBombita = new Bombita(posOrigen); float velocidad = unBombita.Movimiento.Velocidad; destino.Transitar(unBombita); Assert.AreEqual(velocidad, unBombita.Movimiento.Velocidad); }
public void CuandoBombitaSeParaArribaDeUnPasilloConArticuloBombaToleToleOcultoNOComeElItem() { 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(); unArticulo.EstaOculto = true; destino.ArticuloContenido = unArticulo; Personaje unBombita = new Bombita(posOrigen); destino.Transitar(unBombita); Assert.IsInstanceOf(typeof(LanzadorMolotov), unBombita.Lanzador); }
public void CuandoBombitaSeParaArribaDeUnPasilloConArticuloBombaToleToleComeElItemYLoModificaCorrectamente() { 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 unBombita = new Bombita(posOrigen); destino.Transitar(unBombita); Assert.IsInstanceOf(typeof(LanzadorToleTole), unBombita.Lanzador); }
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 noEsTransitablePorUnPersonajeNoAlado() { Punto unPunto = new Punto(0, 0); Personaje unPersonaje = new Bombita(unPunto); Assert.IsFalse(this.unObstaculo.TransitablePor(unPersonaje)); }
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 esTransitablePorUnPersonaje() { Personaje unPersonaje = new Bombita(unaPosicion); Assert.IsTrue(this.unaCasillaVacia.PermiteTransitarUn(unPersonaje)); }
public Tablero ContinuarPartidaGuardada(string pathName) { Casilla casillaActual = null; Punto posActual = null; Tablero tableroNuevo = new Tablero(); try { StreamReader lector = new StreamReader(pathName); //Uso reflection a full String xmlString = lector.ReadToEnd(); Type tipo; int res; XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreWhitespace = true; using (XmlReader reader = XmlReader.Create(new StringReader(xmlString), settings)) { //leo el inicio del mapa while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: //Es el tablero if (reader.Name == "Tablero") { tipo = Type.GetType("BombermanModel.Mapa." + reader.Name); tableroNuevo = Activator.CreateInstance(tipo) as Tablero; if (reader.HasAttributes) //deberia entrar, tiene 2 attr { tableroNuevo.DimensionHorizontal = Convert.ToInt32(reader.GetAttribute("ancho")); tableroNuevo.DimensionVertical = Convert.ToInt32(reader.GetAttribute("alto")); tableroNuevo.NroNivel = Convert.ToInt32(reader.GetAttribute("nivel")); tableroNuevo.StageName = reader.GetAttribute("mapa"); if (reader.AttributeCount > 4) { elJuego.CantDeVidas = Convert.ToInt32(reader.GetAttribute("vidas")); } } elJuego.Ambiente = tableroNuevo; } else { //es una casilla if (reader.Name == "Casilla") { int x, y; //leo coordenadas x e y x = Convert.ToInt32(reader.GetAttribute("x")); y = Convert.ToInt32(reader.GetAttribute("y")); if (reader.IsEmptyElement) { casillaActual = FabricaDeCasillas.FabricarPasillo(new Punto(x, y)); tableroNuevo.AgregarCasilla(casillaActual); } else { posActual = new Punto(x, y); } } else { //es algun obstaculo if ((reader.Name.Length >= 6) && (reader.Name.Substring(0, 6).Equals("Bloque"))) { res = Convert.ToInt32(reader.GetAttribute("resistencia")); switch (reader.Name) { case "BloqueLadrillo": casillaActual = FabricaDeCasillas.FabricarCasillaConBloqueLadrillos(posActual); break; case "BloqueCemento": casillaActual = FabricaDeCasillas.FabricarCasillaConBloqueCemento(posActual); break; case "BloqueAcero": casillaActual = FabricaDeCasillas.FabricarCasillaConBloqueAcero(posActual); break; } casillaActual.Estado.UnidadesDeResistencia = res; tableroNuevo.AgregarCasilla(casillaActual); } else //es un personaje o un articulo { if (!tableroNuevo.ExisteCasillaEnPosicion(posActual)) { casillaActual = FabricaDeCasillas.FabricarPasillo(posActual); tableroNuevo.AgregarCasilla(casillaActual); } if (reader.HasAttributes) //es personaje { int vel = Convert.ToInt32(reader.GetAttribute("velocidad")); res = Convert.ToInt32(reader.GetAttribute("resistencia")); Personaje.Personaje p = null; if (reader.Name == "Bombita") { p = new Bombita(posActual); if (reader.AttributeCount > 2) //si el lanzador se guardo en el mapa { string lanz = reader.GetAttribute("lanzador"); tipo = Type.GetType("BombermanModel.Arma." + lanz); Arma.Lanzador l = Activator.CreateInstance(tipo) as Arma.Lanzador; p.Lanzador = l; } casillaActual.Transitar(p); elJuego.Protagonista = p; tableroNuevo.PosicionInicial = posActual; } else //es algun enemigo { tipo = Type.GetType("BombermanModel.Personaje." + reader.Name); p = Activator.CreateInstance(tipo, new object[] { posActual }) as Personaje.Personaje; elJuego.AgregarEnemigo(p); } p.Movimiento.Velocidad = vel; p.UnidadesDeResistencia = res; } else //es articulo { tipo = Type.GetType("BombermanModel.Articulo." + reader.Name); Articulo.Articulo a = Activator.CreateInstance(tipo) as Articulo.Articulo; casillaActual.ArticuloContenido = a; if (reader.Name == "Salida") elJuego.Salida = (Articulo.Salida)a; } } } } break; } } return tableroNuevo; } } catch (FileNotFoundException) { throw new BombermanModel.Excepciones.NoExisteMapaArchivoException("No pudo abrirse el archivo " + pathName); } catch (Exception) { throw new BombermanModel.Excepciones.FormatoMapaXMLInvalidoException("Archivo de mapa " + pathName+" tiene formato invalido" ); } }