public void SaveSlave(SM4Slave sm4Slave, string path) { FileStream stream = new FileStream(Path.Combine(path, sm4Slave.slaveName + ".xml"), FileMode.Create); XmlSerializer xmlSerializer = new XmlSerializer(typeof(SM4Slave)); xmlSerializer.Serialize(stream, sm4Slave); stream.Close(); }
// Example: <if gender = '2+'> // key = "gender" // value = "2+" public bool CheckAttribute(string key, string value) { string[] keyParts = key.Split('-'); string restOfKey; object keyItem = null; //Retrieve Key Item switch (keyParts[0]) { case "sm": restOfKey = key.Remove(0, keyParts[0].Length + 1); keyItem = this.slaveMaker.GetItemByValue(restOfKey); break; case "slave": SM4Slave slave = this.GetSlaveByID(keyParts[1]); if (slave == null) { return(false); } restOfKey = key.Remove(0, keyParts[0].Length + keyParts[1].Length + 2); keyItem = slave.GetItemByValue(restOfKey); break; case "npc": SM4Character npc = this.GetNPCByID(keyParts[1]); if (npc == null) { return(false); } restOfKey = key.Remove(0, keyParts[0].Length + keyParts[1].Length + 2); keyItem = npc.GetItemByValue(restOfKey); break; case "event": //CheckAttributeEvent(keyParts, value, checkIsTrue); break; case "item": //CheckAttributeItem(keyParts, value, checkIsTrue); break; default: ErrorLogger.LogErrorInFile("Key not recognized: " + key); break; } //If failed to retrieve key, the event is not valid. if (keyItem == null) { return(false); } //Compare Key to Value return(CompareKeyToValue(keyItem, value)); }
public void LoadSlave(string path, string slaveName) { try { FileStream stream = new FileStream(Path.Combine(path, slaveName + ".xml"), FileMode.Open); XmlSerializer xmlSerializer = new XmlSerializer(typeof(SM4Slave)); sm4Slave = xmlSerializer.Deserialize(stream) as SM4Slave; stream.Close(); } catch { Debug.Log("Error in SlaveContainer Load with " + path.ToString() + "/" + slaveName.ToString() + ".xml"); // SM4Slave sm4Slave = new SM4Slave(); // sm4Slave.slaveName = slaveName + "new"; // SaveSlave(sm4Slave, path); } LoadSlaveEvents(path); }