public void BombitaAgarreUnTimerYSusBombasTardenMasEnExplotar()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 0, 0);// Arranca en (0,0)
            Timer articulo = new Timer();
            tablero.AgregarEntidadEnCasillero(articulo, 0, 1);

            bombita.MoverAbajo();
            bombita.LanzarBomba();
            bombita.MoverDerecha();
            bombita.MoverAbajo();

            bombita.Bomba.CuandoPaseElTiempo(1);
            Assert.IsTrue(bombita.Bomba.FueDestruido());

            bombita.MoverArriba();
            bombita.MoverArriba();
            Assert.AreEqual(0.85,bombita.PorcentajeDeRetardo);
            bombita.MoverDerecha();
            bombita.LanzarBomba();
            bombita.MoverDerecha();
            bombita.MoverAbajo();
            bombita.Bomba.CuandoPaseElTiempo(0.9);

            Assert.IsTrue(bombita.Bomba.FueDestruido());

            Assert.AreEqual(3, bombita.Vidas);
        }
        public void BombitaAgarreUnBombaToleToleYCambieElTipoDeBombaQueLanza()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 0, 0);// Arranca en (0,0)
            BombaToleTole articulo = new BombaToleTole();
            tablero.AgregarEntidadEnCasillero(articulo, 0, 1);

            bombita.MoverAbajo();
            bombita.LanzarBomba();
            bombita.MoverDerecha();
            bombita.MoverAbajo();

            bombita.Bomba.CuandoPaseElTiempo(1);
            Assert.IsInstanceOf<Molotov>(bombita.Bomba);

            bombita.MoverArriba();
            bombita.MoverArriba();
            bombita.MoverDerecha();
            bombita.LanzarBomba();
            bombita.MoverDerecha();
            bombita.MoverAbajo();
            bombita.Bomba.CuandoPaseElTiempo(10);
            Assert.IsTrue(bombita.Bomba.FueDestruido());
            Assert.IsInstanceOf<ToleTole>(bombita.Bomba);

            bombita.LanzarBomba();
            bombita.MoverDerecha();
            bombita.MoverAbajo();
            bombita.Bomba.CuandoPaseElTiempo(5);
            Assert.IsInstanceOf<ToleTole>(bombita.Bomba);
        }
        public void PruebaQueCuandoBombitaLoAgarrePaseDeNivel()
        {
            Tablero tablero = new Tablero();
            Salida salida = new Salida();
            tablero.AgregarEntidadEnCasillero(salida, 5, 5);
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 6, 5);

            bombita.MoverArriba();

            Assert.AreEqual(2, tablero.NivelActual);
        }
        public void CreaUnTableroConBombitaYUnLopezRYLosMueveHastaChocarseYQueBombitaPierdaUnaVida()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 0, 0);// Arranca en (0,0)
            LopezR lopez = new LopezR();
            tablero.AgregarEntidadEnCasillero(lopez, 0, 3);

            bombita.MoverAbajo();
            lopez.MoverIzquierda();
            lopez.MoverIzquierda();
            lopez.MoverIzquierda();
            bombita.MoverArriba();

            Assert.IsTrue(bombita.Vidas == 2);
            Assert.AreEqual(0, lopez.Posicion.Fila);
            Assert.AreEqual(0, lopez.Posicion.Columna);
            Assert.AreEqual(1, bombita.Posicion.Fila);//bombita pierde una vida y no avanza
            Assert.AreEqual(0, bombita.Posicion.Columna);
        }
        public void CreaUnTableroConBombitaYUnLopezRAladoYLosMueveHastaChocarseYQueBombitaPierdaUnaVida()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 29, 29);// Arranca en (0,0)
            LopezRAlado lopez = new LopezRAlado();
            tablero.AgregarEntidadEnCasillero(lopez, 1, 29);

            for (int i = 0; i < 28; i++)
            {
                bombita.MoverArriba();
            }
            lopez.MoverAbajo();

            Assert.IsTrue(bombita.Vidas == 2);
            Assert.AreEqual(1, lopez.Posicion.Fila);
            Assert.AreEqual(29, lopez.Posicion.Columna);
            Assert.AreEqual(2, bombita.Posicion.Fila);
            Assert.AreEqual(29, bombita.Posicion.Columna);
        }
        public void CreaUnEnemigoYUnBombitaYLanzaDosBombasYLoDestruye()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 0, 0);// Arranca en (0,0)
            LopezR enemigo = new LopezR();
            tablero.AgregarEntidadEnCasillero(enemigo, 0, 2);
            Bomba bomba1 = bombita.Bomba;

            bombita.LanzarBomba();

            bombita.MoverAbajo();
            bombita.MoverDerecha();

            bomba1.CuandoPaseElTiempo(5);

            bombita.MoverArriba();
            bombita.LanzarBomba();
            Bomba bomba2 = bombita.Bomba;
            bombita.MoverAbajo();
            bombita.MoverIzquierda();

            bomba2.CuandoPaseElTiempo(5);

            Assert.IsTrue(enemigo.FueDestruido());
        }
        public void CuandoSeMueveBombitaArribaCambiaSuPosicionEnElTablero()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 0, 0);

            bombita.MoverAbajo();
            bombita.MoverAbajo();
            bombita.MoverArriba();

            Assert.AreEqual(0, bombita.Posicion.Columna);
            Assert.AreEqual(1, bombita.Posicion.Fila);
        }
        public void IntentarMoverseAUnaPosicionInvalidaDejaABombitaEnElLugarQueEstaba()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 0, 0);

            bombita.MoverArriba();

            Assert.AreEqual(0, bombita.Posicion.Columna);
            Assert.AreEqual(0, bombita.Posicion.Fila);
        }