Exemple #1
0
        public Criterion(XmlNode node, Advancement advancement)
        {
            //initialize members from xml
            ParentID = advancement.ID;
            ID       = node.Attributes["id"]?.Value;
            var    idParts = ID.Split(':');
            string shortID = idParts.Length > 0 ? idParts[idParts.Length - 1] : null;

            Name = node.Attributes["name"]?.Value ?? new CultureInfo("en-US", false).TextInfo.ToTitleCase(shortID.Replace('_', ' '));
            Icon = node.Attributes["icon"]?.Value ?? shortID.Replace(' ', '_').ToLower();
        }
Exemple #2
0
        public HashSet <string> GetCompletedCriteriaFor(Advancement advancement)
        {
            var     completed = new HashSet <string>();
            dynamic criteria  = json?[advancement.ID]?["criteria"];

            if (criteria != null)
            {
                //advancement has criteria. add them
                foreach (string line in criteria.ToString().Split('\n'))
                {
                    string[] tokens = line.Trim().Split('"');
                    if (tokens.Length > 1)
                    {
                        string criterion = tokens[1];
                        if (advancement.Criteria.ContainsKey(criterion))
                        {
                            completed.Add(criterion);
                        }
                    }
                }
            }
            return(completed);
        }