public void QueElBloqueSeaDañandoPorUnaToleToleYSeaDestruido()
        {
            BloqueDeCemento bloque = new BloqueDeCemento(new Casillero(1, 1));

            ToleTole toleTole = new ToleTole();

            bloque.DaniarConToleTole(toleTole);

            Assert.IsTrue(bloque.FueDestruido());
        }
        public void QueElBloqueSeaDañandoPorUnaToleToleYSeaDestruido()
        {
            BloqueDeLadrillos bloque = new BloqueDeLadrillos();

            ToleTole toleTole = new ToleTole();

            bloque.DaniarConToleTole(toleTole);

            Assert.IsTrue(bloque.FueDestruido());
        }
        public void QueElBloqueSeaDañandoPorUnaToleToleYSeaDestruido()
        {
            BloqueDeAcero bloque = new BloqueDeAcero(new Casillero(1,1));
            int resistenciaAnterior = bloque.Resistencia;

            ToleTole toleTole = new ToleTole();

            bloque.DaniarConToleTole(toleTole);

            Assert.IsTrue(bloque.FueDestruido());
            Assert.AreNotEqual(resistenciaAnterior, bloque.Resistencia);
        }
        public void PruebaQueUnaToleToleCuandoSeActivaLuegoDeQuePaseUnTiempo5EsteDestruida()
        {
            Tablero tablero = new Tablero();
            ToleTole bomba = new ToleTole();
            tablero.AgregarEntidadEnCasillero(bomba, 0, 0);

            bomba.ActivarBomba();

            bomba.CuandoPaseElTiempo(2);

            Assert.IsFalse(bomba.FueDestruido());

            bomba.CuandoPaseElTiempo(3);

            Assert.IsTrue(bomba.FueDestruido());
        }
 // Deja una bomba activada en el lugar donde estaba
 public void LanzarBomba()
 {
     if (bomba.FueDestruido())//Le permite agregar otra bomba si la anterior ya ha explotado
     {
         if (poseeBombaToleTole)
         {
             bomba = new ToleTole();
         }
         else
         {
             bomba = new Molotov();
         }
         bomba.RetardoAdquirido = porcentajeDeRetardo;
         bomba.Duenio = this;
     }
     else if (bomba.EstaActivada)
     {
         return;
     }
     this.tablero.AgregarEntidadEnCasillero(bomba, posicion.Fila, posicion.Columna);
     tablero.AgregarBomba(bomba);
     bomba.ActivarBomba();
 }
 public override void DaniarConToleTole(ToleTole toleTole)
 {
     DaniarConBomba();
 }
        public void TratarDeSeguirDaniandoAUnBloqueDestruidoLanceUnaExcepcion()
        {
            BloqueDeCemento bloque = new BloqueDeCemento(new Casillero(1, 1));
            ToleTole toleTole = new ToleTole();
            bloque.DaniarConToleTole(toleTole); //Ya lo destruyo

            Assert.Throws<EntidadYaDestruidaException>(() => bloque.DaniarConToleTole(toleTole));
        }
        public void TratarDeSeguirDaniandoALopezRDestruidoLanceUnaExcepcion()
        {
            LopezR lopez = new LopezR();
            ToleTole toleTole = new ToleTole();
            lopez.DaniarConToleTole(toleTole); //Ya lo destruyo

            Assert.Throws<EntidadYaDestruidaException>(() => lopez.DaniarConToleTole(toleTole));
        }
        public void QueLopezRSeaDañandoPorUnaToleToleLeQuiteUnaVida()
        {
            LopezR lopez = new LopezR();

            ToleTole toleTole = new ToleTole();

            lopez.DaniarConToleTole(toleTole);

            Assert.IsTrue(lopez.FueDestruido());
        }
        public void TratarDeSeguirDaniandoACecilioDestruidoLanceUnaExcepcion()
        {
            Cecilio cecilio = new Cecilio();
            ToleTole toleTole = new ToleTole();
            cecilio.DaniarConToleTole(toleTole); //Ya lo destruyo

            Assert.Throws<EntidadYaDestruidaException>(() => cecilio.DaniarConToleTole(toleTole));
        }
        public void QueCecilioSeaDañandoPorUnaToleToleLeQuiteUnaVida()
        {
            Cecilio cecilio = new Cecilio();

            ToleTole toleTole = new ToleTole();

            cecilio.DaniarConToleTole(toleTole);

            Assert.IsTrue(cecilio.FueDestruido());
        }
        public void TratarDeSeguirDaniandoAUnBombitaDestruidoLanceUnaExcepcion()
        {
            Bombita bombita = new Bombita();
            ToleTole toleTole = new ToleTole();

            for (int i = 0; i < 3; i++)
            {
                bombita.DaniarConToleTole(toleTole);
            }

            Assert.Throws<EntidadYaDestruidaException>(() => bombita.DaniarConToleTole(toleTole));
        }
        public void QueBombitaSeaDañandoPorUnaToleToleLeQuiteUnaVida()
        {
            Bombita bombita = new Bombita();

            ToleTole toleTole = new ToleTole();

            bombita.DaniarConToleTole(toleTole);

            Assert.Less(bombita.Vidas, 3);
        }
        public void QueABombitaNoLeQuedenMasVidasYQueEsteDestruido()
        {
            Bombita bombita = new Bombita();
            ToleTole toleTole = new ToleTole();

            for (int i = 0; i < 3; i++)
            {
                bombita.DaniarConToleTole(toleTole);
            }

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