Esempio n. 1
0
    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();
    }
Esempio n. 2
0
    // 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));
    }
Esempio n. 3
0
    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);
    }