コード例 #1
0
ファイル: StatParser.cs プロジェクト: majeretft/Talented
        /// <summary>
        /// Fill stat dependency data
        /// </summary>
        /// <param name="element">Stat node from Xml configuration</param>
        /// <param name="stat">Stat instance</param>
        protected void FillDependency(XElement element, Stat stat)
        {
            if (element == null)
                throw new ArgumentNullException("element");
            if (stat == null)
                throw new ArgumentNullException("stat");

            string value;

            value = element.Element("dependency").Value;
            stat.Dependency = (StatDependencyEnum)Enum.Parse(typeof(StatDependencyEnum), value, true);

            value = element.Element("valueAdditional").Value;
            stat.ValueAdditional = double.Parse(value, CultureInfo.InvariantCulture);
        }
コード例 #2
0
ファイル: StatParser.cs プロジェクト: majeretft/Talented
        /// <summary>
        /// Parse Xml configuration
        /// </summary>
        /// <param name="element">Stat node from Xml configuration</param>
        /// <returns>Stat instance</returns>
        public Stat ParseTalentStat(XElement element)
        {
            if (element == null)
                throw new ArgumentNullException("element");

            var dependencyType = StatDependencyEnum.None;
            var dependencyElement = element.Element("dependency");
            if (dependencyElement != null && !string.IsNullOrEmpty(dependencyElement.Value))
                dependencyType = (StatDependencyEnum)Enum.Parse(typeof(StatDependencyEnum), dependencyElement.Value, true);

            switch (dependencyType)
            {
                case StatDependencyEnum.None:
                case StatDependencyEnum.Time:
                case StatDependencyEnum.Score:
                    {
                        var stat = new Stat();
                        FillStat(element, stat);

                        if (dependencyType != StatDependencyEnum.None)
                            FillDependency(element, stat);

                        return stat;
                    }

                case StatDependencyEnum.Terrain:
                    {
                        var stat = new StatTerrain();
                        FillStat(element, stat);
                        FillDependency(element, stat);
                        FillStatTerrain(element, stat);
                        return stat;
                    }

                default: throw new NotSupportedException(string.Format("{0} is not supported!", dependencyType.ToString()));
            }
        }
コード例 #3
0
ファイル: StatParser.cs プロジェクト: majeretft/Talented
        /// <summary>
        /// Fill stat data
        /// </summary>
        /// <param name="element">Stat node from Xml configuration</param>
        /// <param name="stat">Stat instance</param>
        protected void FillStat(XElement element, Stat stat)
        {
            if (element == null)
                throw new ArgumentNullException("element");
            if (stat == null)
                throw new ArgumentNullException("stat");

            var value = element.Attribute("growType").Value;
            stat.GrowType = (Stat.GrowTypeEnum)Enum.Parse(typeof(Stat.GrowTypeEnum), value, true);

            value = element.Element("type").Value;
            stat.Type = (StatTypeEnum)Enum.Parse(typeof(StatTypeEnum), value, true);

            value = element.Element("valueInitial").Value;
            stat.ValueInitial = double.Parse(value, CultureInfo.InvariantCulture);

            value = element.Element("grow").Value;
            stat.Grow = double.Parse(value, CultureInfo.InvariantCulture);
        }