Ejemplo n.º 1
0
    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();
    }