public void saveLevel(int hueco) { StreamWriter writer = new StreamWriter("Nivel" + hueco + ".txt"); writer.WriteLine("dificultad " + edificio.dificultad); List <Edificio.estructuraPisos> auxLista = edificio.getListaPisos(); for (int i = 0; i < edificio.objetivosMision.Count; i++) { switch (edificio.objetivosMision[i]) { case Edificio.condicionesVictoria.conseguirDocumentos: writer.WriteLine("objetivo" + i + " 0"); break; case Edificio.condicionesVictoria.conseguirPiezas: writer.WriteLine("objetivo" + i + " 1"); break; case Edificio.condicionesVictoria.desactivarTrampas: writer.WriteLine("objetivo" + i + " 2"); break; } } for (int pisoActual = 0; pisoActual < auxLista.Count; pisoActual++) { writer.WriteLine("NewFloor " + pisoActual); for (int habActual = 0; habActual < auxLista[pisoActual].habitaciones.Count; habActual++) { writer.WriteLine("NewRoom " + auxLista[pisoActual].habitaciones[habActual].id + " ------------"); writer.WriteLine("piso " + auxLista[pisoActual].habitaciones[habActual].piso); string auxStr = auxLista[pisoActual].habitaciones[habActual].estiloHabitacion == Edificio.listaEstilos.oficina ? "estilo 0" : "estilo 1"; writer.WriteLine(auxStr); switch (auxLista[pisoActual].habitaciones[habActual].tipoHabitacion) { case RoomController.tipo.Entrada: auxStr = "tipo 0"; break; case RoomController.tipo.HabitacionPrincipal: auxStr = "tipo 1"; break; case RoomController.tipo.Banyo: auxStr = "tipo 2"; break; } writer.WriteLine(auxStr); writer.WriteLine("nivel " + auxLista[pisoActual].habitaciones[habActual].nivel); writer.WriteLine("coordenadas " + auxLista[pisoActual].habitaciones[habActual].coordenadas.x + " " + auxLista[pisoActual].habitaciones[habActual].coordenadas.y); writer.WriteLine("tam " + auxLista[pisoActual].habitaciones[habActual].tam); auxStr = auxLista[pisoActual].habitaciones[habActual].hasTecho ? "techo 1" : "techo 0"; writer.WriteLine(auxStr); auxStr = auxLista[pisoActual].habitaciones[habActual].tall ? "tall 1" : "tall 0"; writer.WriteLine(auxStr); writer.WriteLine("camara " + auxLista[pisoActual].habitaciones[habActual].cameraPosition); writer.WriteLine("ocultos " + auxLista[pisoActual].habitaciones[habActual].cantSitiosOcultos); switch (auxLista[pisoActual].habitaciones[habActual].reward) { case ObjetoRecompensa.tipoRecompensa.ninguno: auxStr = "reward 0"; break; case ObjetoRecompensa.tipoRecompensa.documentos: auxStr = "reward 1"; break; case ObjetoRecompensa.tipoRecompensa.piezasSecretas: auxStr = "reward 2"; break; case ObjetoRecompensa.tipoRecompensa.conjuntoPuntos: auxStr = "reward 3"; break; } writer.WriteLine(auxStr); auxStr = "lateral"; for (int i = 0; i < 4; i++) { switch (auxLista[pisoActual].habitaciones[habActual].listaLaterales[i]) { case RoomController.tiposParedes.nada: auxStr += " 0"; break; case RoomController.tiposParedes.pared: auxStr += " 1"; break; case RoomController.tiposParedes.puerta: auxStr += " 2"; break; case RoomController.tiposParedes.trampilla: auxStr += " 3"; break; } } writer.WriteLine(auxStr); if (auxLista[pisoActual].habitaciones[habActual].listaTrampas != null) { if (auxLista[pisoActual].habitaciones[habActual].listaTrampas.Count > 0) { for (int i = 0; i < auxLista[pisoActual].habitaciones[habActual].listaTrampas.Count; i++) { auxStr = "trampa" + i; switch (auxLista[pisoActual].habitaciones[habActual].listaTrampas[i].tipo) { case GeneradorObjetos.tipo.Mina: auxStr += " 0 " + auxLista[pisoActual].habitaciones[habActual].listaTrampas[i].level; break; case GeneradorObjetos.tipo.Cepo: auxStr += " 1 " + auxLista[pisoActual].habitaciones[habActual].listaTrampas[i].level; break; case GeneradorObjetos.tipo.PlacaPresion: auxStr += " 2 " + auxLista[pisoActual].habitaciones[habActual].listaTrampas[i].level; break; case GeneradorObjetos.tipo.RedLaser: auxStr += " 3 " + auxLista[pisoActual].habitaciones[habActual].listaTrampas[i].level + " " + auxLista[pisoActual].habitaciones[habActual].listaTrampas[i].verticalSpeed; break; } } writer.WriteLine(auxStr); } } } } writer.Close(); goToMainMenu(); }