public static MissionRuleData ParseFromDictionary(System.Collections.Generic.Dictionary <string, object> ruleDict)
    {
        MissionRuleData ruleData = new MissionRuleData();

        if (ruleDict.ContainsKey("id"))
        {
            ruleData.Id = Convert.ToString(ruleDict["id"]);
        }
        if (ruleDict.ContainsKey("score"))
        {
            ruleData.Score = Convert.ToInt32(ruleDict["score"]);
        }
        if (ruleDict.ContainsKey("target"))
        {
            ruleData.Target = Convert.ToInt32(ruleDict["target"]);
        }
        if (ruleDict.ContainsKey("achieved"))
        {
            ruleData.Achieved = Convert.ToBoolean(ruleDict["achieved"]);
        }
        if (ruleDict.ContainsKey("variable"))
        {
            ruleData.Variable = Convert.ToString(ruleDict["variable"]);
        }
        if (ruleDict.ContainsKey("kind"))
        {
            ruleData.Kind = (MissionRuleType)Enum.Parse(typeof(MissionRuleType), Convert.ToString(ruleDict["kind"]));
        }
        if (ruleDict.ContainsKey("metadata"))
        {
            System.Collections.Generic.Dictionary <string, object> ruleMetadataDict = ruleDict["metadata"] as System.Collections.Generic.Dictionary <string, object>;
            ruleData.Metadata = MissionRuleMetadata.ParseFromDictionary(ruleMetadataDict);
        }
        return(ruleData);
    }
    public override void Create(System.Collections.Generic.Dictionary <string, object> dataDict)
    {
        Debug.Log("IgniteMission:Create");

        base.Create(dataDict);

        if (dataDict.ContainsKey("metadata"))
        {
            System.Collections.Generic.Dictionary <string, object> missionMetadataDict = dataDict["metadata"] as System.Collections.Generic.Dictionary <string, object>;
            this.Metadata = MissionMetadata.ParseFromDictionary(missionMetadataDict);
        }
        if (dataDict.ContainsKey("rules"))
        {
            this.Rules = new System.Collections.Generic.Dictionary <string, MissionRuleData>();
            System.Collections.Generic.List <object> rulesList = dataDict["rules"] as System.Collections.Generic.List <object>;
            foreach (object rule in rulesList)
            {
                System.Collections.Generic.Dictionary <string, object> ruleDict = rule as System.Collections.Generic.Dictionary <string, object>;
                MissionRuleData ruleData = MissionRuleData.ParseFromDictionary(ruleDict);
                this.Rules.Add(ruleData.Id, ruleData);
            }
        }
    }
 public static MissionRuleData ParseFromDictionary( System.Collections.Generic.Dictionary<string,object> ruleDict )
 {
     MissionRuleData ruleData = new MissionRuleData();
     if( ruleDict.ContainsKey("id") ) {
         ruleData.Id = Convert.ToString( ruleDict["id"] );
     }
     if( ruleDict.ContainsKey("score") ) {
         ruleData.Score = Convert.ToInt32( ruleDict["score"] );
     }
     if( ruleDict.ContainsKey("target") ) {
         ruleData.Target = Convert.ToInt32( ruleDict["target"] );
     }
     if( ruleDict.ContainsKey("achieved") ) {
         ruleData.Achieved = Convert.ToBoolean( ruleDict["achieved"] );
     }
     if( ruleDict.ContainsKey("variable") ) {
         ruleData.Variable = Convert.ToString( ruleDict["variable"] );
     }
     if( ruleDict.ContainsKey("kind") ) {
         ruleData.Kind = (MissionRuleType) Enum.Parse( typeof(MissionRuleType) , Convert.ToString( ruleDict["kind"] ) );
     }
     if( ruleDict.ContainsKey( "metadata" ) ) {
         System.Collections.Generic.Dictionary<string,object> ruleMetadataDict = ruleDict["metadata"] as System.Collections.Generic.Dictionary<string,object>;
         ruleData.Metadata = MissionRuleMetadata.ParseFromDictionary(ruleMetadataDict);
     }
     return ruleData;
 }