// se aplica la estrategia solo si el aplicador esta a una distancia
 // valida para disparar y no ser daniado por el proyectil
 public void Aplicar()
 {
     Casilla posicionDelProyectil = this.aplicador.Posicion();
     int[] direccionDelProyectil = this.aplicador.Direccion();
     int rangoDelProyectil = Proyectil.RANGO;
     try
     {
        Casilla posicionAdyacente = posicionDelProyectil.CasillaAdyacenteEnLaDireccion(direccionDelProyectil);
        bool puedeAplicarse = true;
        while (rangoDelProyectil >= 0 && puedeAplicarse)
        {
             if (!posicionAdyacente.EstaVacia())
                 puedeAplicarse = false;
             rangoDelProyectil--;
             posicionAdyacente = posicionAdyacente.CasillaAdyacenteEnLaDireccion(direccionDelProyectil);
        }
        if (puedeAplicarse)
        {
             Proyectil proyectil = new Proyectil();
             Tablero.GetInstancia().AgregarEntidad(proyectil, posicionDelProyectil.X, posicionDelProyectil.Y);
             proyectil.Direccionar(this.aplicador.Direccion());
             proyectil.CuandoPaseElTiempo(this.aplicador.PorcentajeDeRetardo());
             proyectil.AnotarLanzador(this.aplicador);
         }
         else
             this.aplicador.NotificarExplosion(true);
     }
     catch (CasillaFueraDeRangoError e)
     {
         e.NoHacerNada();
         this.aplicador.NotificarExplosion(true);
     }
 }
 public override void DaniarPorProyectil(Proyectil bomba)
 {
     this.capturado = true;
 }
 public override void DaniarPorProyectil(Proyectil bomba)
 {
     this.resistencia = this.resistencia - bomba.GetDanio();
 }
 public override void DaniarPorProyectil(Proyectil bomba)
 {
     this.durabilidad = this.durabilidad - bomba.GetDanio();
 }
 public abstract override void DaniarPorProyectil(Proyectil bomba);
 public override void DaniarPorProyectil(Proyectil bomba) { }
Example #7
0
 public override void DaniarPorProyectil(Proyectil bomba)
 {
     this.vidas--;
 }
Example #8
0
 public abstract void DaniarPorProyectil(Proyectil proyectil);