// remueve la entidad pasada public void RemoverEntidad(Entidad entidad) { entidad.Destruir(); this.entidades.Remove(entidad); }
// agrega una entidad a la casilla public void AgregarEntidad(Entidad entidad) { this.entidades.Add(entidad); }
public virtual void CargarseGuardado(Casilla posicionBombita, Entidad ObstaculoDeSalida, List<Entidad> listaEntidades) { this.tablero.Reiniciar(); this.tablero = new Tablero(); this.bombita.Reiniciar(); this.bombita = new Bombita(); this.tablero.AgregarEntidad(bombita, posicionBombita.X, posicionBombita.Y); this.inicializarGuardado(ObstaculoDeSalida, listaEntidades); }
private void inicializarGuardado(Entidad ObstaculoDeSalida, List<Entidad> listaEntidades) { foreach (Entidad entidad in listaEntidades) { if (entidad is Cecilio && this.tablero.Casillas[entidad.PosicionActual.X,entidad.PosicionActual.Y].Entidades != null ) this.tablero.AgregarEntidad(new Cecilio(), entidad.PosicionActual.X, entidad.PosicionActual.Y); else if (!entidad.EsBombita()) this.tablero.AgregarEntidad(entidad, entidad.PosicionActual.X, entidad.PosicionActual.Y); } this.tablero.AgregarEntidad(ObstaculoDeSalida,ObstaculoDeSalida.PosicionActual.X,ObstaculoDeSalida.PosicionActual.Y); this.tablero.ObstaculoQueOcultaSalida = ObstaculoDeSalida; }
// remueve la entidad pasada de la casilla pasada public void RemoverEntidad(Entidad entidad) { entidad.Destruir(); int X = entidad.Posicion().X; int Y = entidad.Posicion().Y; Casilla posicionAModificar = this.Casilla(X, Y); posicionAModificar.RemoverEntidad(entidad); this.entidades.Remove(entidad); }
// este metodo genera posiciones aleatorias para la entidad pasada // hasta que la misma es posicionada en una casilla vacia private void GenerarPosicionPara(Entidad entidad) { bool fueUbicado = false; while(!fueUbicado) { try { Casilla casilla = this.Casilla(this.FilaSorteada(), this.ColumnaSorteada()); if(casilla.EstaVacia()) { entidad.PosicionarEn(casilla); fueUbicado = true; } } catch (CasillaFueraDeRangoError e) { e.NoHacerNada(); } } }
// agrega la salida public void AgregarSalida() { if (!seAgregoLaSalida) { if (this.obstaculoQueOcultaSalida.FueDestruido()) { this.seAgregoLaSalida = true; int X = this.obstaculoQueOcultaSalida.PosicionActual.X; int Y = this.obstaculoQueOcultaSalida.PosicionActual.Y; this.AgregarEntidad(new Salida(), X, Y); this.obstaculoQueOcultaSalida = null; } } }
// agrega la salida que estara oculta por un obstaculo de ladrillo o de cemento public void AgregarObstaculoQueOcultaSalida() { Random rand = new Random(); int prioridadDeSalida = rand.Next(OBSTACULOS_QUE_ADMITEN_SALIDA); Entidad obstaculoQueOcultaSalida = null; if (prioridadDeSalida == SALIDA_DE_LADRILLO) obstaculoQueOcultaSalida = new ObstaculoDeLadrillo(true); if (prioridadDeSalida == SALIDA_DE_CEMENTO) obstaculoQueOcultaSalida = new ObstaculoDeCemento(true); this.AgregarEntidad(obstaculoQueOcultaSalida); this.obstaculoQueOcultaSalida = obstaculoQueOcultaSalida; }
// permite agregar una entidad al tablero // Se agrega a la entidad en la casilla correspondiente a las coordenadas pasadas public void AgregarEntidad(Entidad entidad, int fila, int columna) { try { entidad.PosicionarEn(this.Casilla(fila, columna)); this.entidades.Add(entidad); } catch (CasillaFueraDeRangoError e) { e.NoHacerNada(); } }
// agrega la entidad en una posicion generada aleatoriamente public void AgregarEntidad(Entidad entidad) { this.GenerarPosicionPara(entidad); this.entidades.Add(entidad); }
// retorna si esta en la misma posicion que la entidad pasada public bool MismaPosicionQue(Entidad entidad) { return (this.posicion == entidad.Posicion()); }