/// <summary> /// Get new toon instance from Xml /// </summary> /// <param name="document">Xml configuration</param> /// <returns>Toon instance</returns> public Toon ParseToon(XDocument document) { if (document == null) throw new ArgumentNullException("document"); var element = document.Root; var result = new Toon(); var value = element.Attribute("id").Value; result.Id = Guid.Parse(value); value = element.Element("mainStat").Value; result.MainAttackStat = (StatTypeEnum)Enum.Parse(typeof(StatTypeEnum), value, true); value = element.Element("attackModifier").Value; result.AttackModifier = double.Parse(value, CultureInfo.InvariantCulture); var initialStats = new List<ToonStat>(); var statParser = new StatParser(); var statElements = element.Element("stats").Elements().ToList(); statElements.ForEach(x => initialStats.Add(statParser.ParseToonStat(x))); result.InitialStats = initialStats; return result; }
/// <summary> /// Get new talent instance from Xml /// </summary> /// <param name="document">Xml configuration</param> /// <returns>Talent instance</returns> public Talent ParseTalent(XDocument document) { if (document == null) throw new ArgumentNullException("document"); var element = document.Root; var result = new Talent(); var value = element.Attribute("id").Value; result.Id = Guid.Parse(value); value = element.Element("mightInitial").Value; result.MightInitial = int.Parse(value); value = element.Element("tier").Value; result.Tier = int.Parse(value); result.Stats = new List<Stat>(); var statParser = new StatParser(); var statElements = element.Element("stats").Elements().ToList(); statElements.ForEach(x => result.Stats.Add(statParser.ParseTalentStat(x))); return result; }