示例#1
0
        public static AutoCatHoursPlayed LoadFromXmlElement(XmlElement xElement)
        {
            string name           = XmlUtil.GetStringFromNode(xElement[XmlName_Name], TypeIdString);
            string filter         = XmlUtil.GetStringFromNode(xElement[XmlName_Filter], null);
            string prefix         = XmlUtil.GetStringFromNode(xElement[XmlName_Prefix], string.Empty);
            bool   includeUnknown = XmlUtil.GetBoolFromNode(xElement[XmlName_IncludeUnknown], false);

            XmlNodeList            rulesNodeList = xElement.SelectNodes(XmlName_Rule);
            List <HoursPlayedRule> rules         = new List <HoursPlayedRule>();

            if (rulesNodeList != null)
            {
                foreach (XmlNode node in rulesNodeList)
                {
                    string ruleName = XmlUtil.GetStringFromNode(node[XmlName_Rule_Text], string.Empty);
                    float  ruleMin  = XmlUtil.GetFloatFromNode(node[XmlName_Rule_MinHours], 0);
                    float  ruleMax  = XmlUtil.GetFloatFromNode(node[XmlName_Rule_MaxHours], 0);

                    rules.Add(new HoursPlayedRule(ruleName, ruleMin, ruleMax));
                }
            }

            AutoCatHoursPlayed result = new AutoCatHoursPlayed(name, filter, prefix, includeUnknown)
            {
                Rules = rules
            };

            return(result);
        }
示例#2
0
        public static AutoCatHltb LoadFromXmlElement(XmlElement xElement)
        {
            string name           = XmlUtil.GetStringFromNode(xElement[XmlName_Name], TypeIdString);
            string filter         = XmlUtil.GetStringFromNode(xElement[XmlName_Filter], null);
            string prefix         = XmlUtil.GetStringFromNode(xElement[XmlName_Prefix], string.Empty);
            bool   includeUnknown = XmlUtil.GetBoolFromNode(xElement[XmlName_IncludeUnknown], false);
            string unknownText    = XmlUtil.GetStringFromNode(xElement[XmlName_UnknownText], string.Empty);

            XmlNodeList rulesNodeList      = xElement.SelectNodes(XmlName_Rule);
            List <HowLongToBeatRule> rules = new List <HowLongToBeatRule>();

            if (rulesNodeList != null)
            {
                foreach (XmlNode node in rulesNodeList)
                {
                    string ruleName = XmlUtil.GetStringFromNode(node[XmlName_Rule_Text], string.Empty);
                    float  ruleMin  = XmlUtil.GetFloatFromNode(node[XmlName_Rule_MinHours], 0);
                    float  ruleMax  = XmlUtil.GetFloatFromNode(node[XmlName_Rule_MaxHours], 0);
                    string type     = XmlUtil.GetStringFromNode(node[XmlName_Rule_TimeType], string.Empty);

                    TimeType ruleTimeType;
                    switch (type)
                    {
                    case "Extras":
                        ruleTimeType = TimeType.Extras;
                        break;

                    case "Completionist":
                        ruleTimeType = TimeType.Completionist;
                        break;

                    default:
                        ruleTimeType = TimeType.Main;
                        break;
                    }

                    rules.Add(new HowLongToBeatRule(ruleName, ruleMin, ruleMax, ruleTimeType));
                }
            }

            AutoCatHltb result = new AutoCatHltb(name, filter, prefix, includeUnknown, unknownText)
            {
                Rules = rules
            };

            return(result);
        }