//Busca la mision public void LeeMision() { StreamReader file = new StreamReader((Application.dataPath + "/StreamingAssets/Misiones.txt"), System.Text.Encoding.UTF8); //Busca el nombre en clave y el numero string [] partes = new string[1]; do { partes = file.ReadLine().Split('-'); }while(!file.EndOfStream && ((partes[0] != nombrePersonaje) || (partes[0] == nombrePersonaje && int.Parse(partes[1]) != indiceMision) || (partes[0] == nombrePersonaje && int.Parse(partes[1]) == indiceMision && !(int.Parse(partes[3]) <= GameManager.instance.trimestre)))); if (!file.EndOfStream) { DecodificaMision(file, partes); } else { tipoDeMision = TipoDeMision.None; isAcepted = false; isComplete = false; } file.Close(); }
//Decodifica la mision void DecodificaMision(StreamReader file, string [] partes) { //Tipo de mision: None = 0, Espionaje = 1, DarObjeto = 2. tipoDeMision = (TipoDeMision)int.Parse(partes[2]); //Asignamos el titulo de la mision si la mision no es de tipo None if (tipoDeMision != TipoDeMision.None) { tituloDeLaMision = partes [4]; } else { tituloDeLaMision = null; } //Comenzamos decodificacion de los textos if (!file.EndOfStream) { //Depende del tipo de mision decofificamos de una forma u otra //Hasta que encuentre el final con "" string linea = file.ReadLine(); while (linea != "" && linea != null && !file.EndOfStream) { string[] aux; switch (linea) { //Usaremos # como marca de que empieza y termina la conversación //y ## como marca de que empiezan y terminan los pasos. case "#": linea = file.ReadLine(); do { conversacion.Enqueue(linea); linea = file.ReadLine(); } while(linea != "#"); break; //Para los pasos case "##": aux = file.ReadLine().Split(':'); do { Pasos p = new Pasos(); p.lineaPaso = aux [0]; p.tagObjeto = aux [1]; pasos.Enqueue(p); aux = file.ReadLine().Split(':'); //Si es de Espionaje, decodificará la conversación que se espia DecodConversacionEspia(ref aux, p, file); } while(aux [0] != "##"); break; case "###": linea = file.ReadLine(); do { finMision.Enqueue(linea); linea = file.ReadLine(); } while(linea != "###"); break; } linea = file.ReadLine(); } conversacion.Enqueue(null); finMision.Enqueue(null); pasos.Enqueue(null); } else { tipoDeMision = TipoDeMision.None; } }