public Terreno ClonarProfundo() { return(new Terreno { Largo = Largo, Ancho = Ancho, TipoSuelo = TipoSuelo, Arboles = Arboles.Select(x => x.ClonarProfundo()).ToList(), Rocas = Rocas.Select(x => x.ClonarProfundo()).ToList(), Camara = Camara.ClonarProfundo() }); }
public void CargarMapa(string nombre) { List <string> lineas; int actualX, actualY; try { lineas = new List <string>(File.ReadAllLines(nombre)); } catch (Exception e) { lineas = new List <string>(); } Sprite aux = new Sprite(); for (int i = 0; i < lineas.Count; i++) { string linea = lineas[i]; actualY = i * aux.height; for (int j = 0; j < linea.Length; j++) { actualX = j * aux.width; switch (linea[j]) { case 'A': Arbol a = new Arbol("data/tree.png"); a.MoveTo(actualX, actualY); Arboles.Add(a); break; case 'E': Edificio e = new Edificio("data/casa_amarilla.png"); e.MoveTo(actualX, actualY); Edificios.Add(e); break; case 'H': Hierba h = new Hierba("data/hierba_alta.png"); h.MoveTo(actualX, actualY); Hierbas.Add(h); break; case 'N': Npc n = CargarNpc(); n.MoveTo(actualX, actualY); Npcs.Add(n); break; case 'F': Enfermera ef = new Enfermera( new string[4][] { new string[] { "data/npcs/enfermera/enfermeraRightBase.png" }, new string[] { "data/npcs/enfermera/enfermeraLeftBase.png" }, new string[] { "data/npcs/enfermera/enfermeraUpBase.png" }, new string[] { "data/npcs/enfermera/enfermeraDownBase.png" } }); ef.Dialogo.Add("Tus pokemons han sido curados"); ef.MoveTo(actualX, actualY); Npcs.Add(ef); break; case 'P': Pc p = new Pc("data/pc.png"); p.MoveTo(actualX, actualY); Pcs.Add(p); break; } } } }