// Chamada por AcoesJogador.cs, ao escolher uma das opcoes ao encontrar um NPC public void GetAction(string npcName, GameObject eventTrigger) { for (int i = 0; i < listaDados.Count; i++) { if (listaDados[i].nome == npcName) { dialogoRecente = listaDados[i]; foreach (XmlNode eventoInfo in listaDados[i].eventos) { XmlNodeList conteudoEventos = eventoInfo.ChildNodes; bool condicaoSatisfeita = false; foreach (XmlNode noEvento in conteudoEventos) // levels itens nodes. { if (noEvento.Name == "condicoes") { XmlNodeList condicoes = noEvento.ChildNodes; foreach (XmlNode condicao in condicoes) { condicaoSatisfeita = VerificaCondicao(condicao); /*if(condicao.Attributes["tipo"].Value == "variavel") * { * string valor = GetVariavel(int.Parse(listaDados[i].fase),condicao.Attributes["nome"].Value,condicao.Attributes["valor"].Value); * * print ("Valor condicao encontrada : " + valor + " valor real da condicao: " + condicao.Attributes["valor"].Value); * if(condicao.Attributes["valor"].Value == valor) condicaoSatisfeita = true; * else * { * print ("nao satisfeita"); * condicaoSatisfeita = false; * break; * } * }*/ } } else if ((noEvento.Name == "acoes") && condicaoSatisfeita) { XmlNodeList acoes = noEvento.ChildNodes; RealizarAcoes(acoes, eventTrigger); } } } } } }
public Preferences(string sData) { XmlDocument cXmlDocument = new XmlDocument(); cXmlDocument.LoadXml(sData); XmlNode cXmlNode = cXmlDocument.NodeGet("data"); DataXML cSourceData = new DataXML(cXmlNode); _aWeatherItems = Data.WeatherItem.LoadItems(cSourceData.cYandexData); if (_aWeatherItems.Count < 2) { throw new Exception("There are must be more than 1 weather items. Add some other cities"); } _cRoll = new Roll(cXmlNode.NodeGet("roll")); _ahItems = Item.DictionaryGet(cXmlNode); }
public void SaveData(string filename, DataXML saveData) { var documentsPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); var filePath = Path.Combine(documentsPath, filename); var serializer = new SharpSerializer(); Stream fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None); BinaryFormatter formatter = new BinaryFormatter(); try { serializer.Serialize(saveData, fileStream); } catch (Exception e) { Console.WriteLine("Failed to serialize. Reason: " + e.Message); throw; } finally { fileStream.Close(); } }
public void ReadAllXmlData() { for (int i = 0; i < nomesArquivos.Length; i++) { //XmlReaderSettings readerSettings = new XmlReaderSettings(); //readerSettings.IgnoreComments = true; /*using (XmlReader reader = XmlReader.Create(nomesArquivos[i], readerSettings)) * { * XmlDocument xmlDoc = new XmlDocument(); * xmlDoc.Load(reader);*/ TextAsset textAsset = (TextAsset)Resources.Load(nomesArquivos[i], typeof(TextAsset)); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(textAsset.text); DataXML data = new DataXML(); XmlNodeList propriedades = xmlDoc.GetElementsByTagName("propriedades"); foreach (XmlNode nosPropriedades in propriedades) { foreach (XmlNode propriedade in nosPropriedades) { if (propriedade.Name == "cor_texto") { int red = 0; int green = 0; int blue = 0; foreach (XmlNode tipoCor in propriedade) { if (tipoCor.Name == "red") { red = int.Parse(tipoCor.InnerText); } else if (tipoCor.Name == "green") { green = int.Parse(tipoCor.InnerText); } else if (tipoCor.Name == "blue") { blue = int.Parse(tipoCor.InnerText); } } /*float redF = red / 255f; * float greenF = green / 255f; * float blueF = blue / 255f;*/ data.corTexto = new Color(red, green, blue, 255); } else if (propriedade.Name == "nome") { data.nome = propriedade.InnerText; } else if (propriedade.Name == "fase") { data.fase = propriedade.InnerText; } } } data.dialogos = xmlDoc.GetElementsByTagName("dialogo"); data.eventos = xmlDoc.GetElementsByTagName("interacao"); listaDados.Add(data); // etc... //} } }