public Casilla(Punto pos) { this.posicion = pos; articuloContenido = null; transitandoEnCasilla = new List<IMovible>(); explosivo = null; }
public BombaVista(Vector2 pos, Explosivo bomba) : base(pos) { explosivo = bomba; setSpriteName(); vivo = true; }
public ProyectilVista(Vector2 pos, float rot, Explosivo bomba) : base(pos) { explosivo = (Proyectil)bomba; spriteIndex = MapaVista.Instancia().ProyectilSprite; rotacion = rot; velocidad = 0.5f; vivo = true; }
public void AlojarExplosivo(Explosivo exp) { this.Ambiente.ObtenerCasilla(exp.Posicion).PlantarExplosivo(exp); this.dependientesDelTiempo.Add(exp); }
public void QuitarExplosivo() { this.explosivo = null; }
public void PlantarExplosivo(Explosivo unExplosivo) { this.explosivo=unExplosivo; }
private List<Punto> CalcularCasillerosExplotados(Explosivo explosivo) { List<Punto> listaDevolucion = new List<Punto>(); listaDevolucion.Add(explosivo.Posicion); this.AgregarCasilleros(listaDevolucion, explosivo.OndaExpansiva, explosivo.Posicion, DERECHA); this.AgregarCasilleros(listaDevolucion, explosivo.OndaExpansiva, explosivo.Posicion, IZQUIERDA); this.AgregarCasilleros(listaDevolucion, explosivo.OndaExpansiva, explosivo.Posicion, ARRIBA); this.AgregarCasilleros(listaDevolucion, explosivo.OndaExpansiva, explosivo.Posicion, ABAJO); return listaDevolucion; }
public void ManejarExplosion(Explosivo explosivo) { List<Punto> puntosAfectados = CalcularCasillerosExplotados(explosivo); this.ObtenerCasilla(explosivo.Posicion).QuitarExplosivo(); for (int i = 0; i < (puntosAfectados.Count); i++) { Casilla.Casilla casillaAux = this.ObtenerCasilla(puntosAfectados[i]); explosivo.Daniar(casillaAux.Estado); if (casillaAux.Estado.Destruido()) casillaAux.Estado = new Pasillo(); for (int j = 0; j < casillaAux.TransitandoEnCasilla.Count; j++) { if (casillaAux.TransitandoEnCasilla[j].EsDaniable()) explosivo.Daniar((IDaniable)casillaAux.TransitandoEnCasilla[j]); } int iterador = casillaAux.TransitandoEnCasilla.Count; while (--iterador >= 0) { if ((casillaAux.TransitandoEnCasilla[iterador].EsDaniable())) { if (((IDaniable)casillaAux.TransitandoEnCasilla[iterador]).Destruido()) casillaAux.TransitandoEnCasilla.RemoveAt(iterador); } } } }