Beispiel #1
0
		public static SkillTree ParseSkillTree(string filepath) {
			SkillTree tree = new SkillTree();

			SkillTreeJob job = null;
			SkillTreeJobSkill skill = null;
			using (XmlReader xml = XmlReader.Create(filepath)) {
				while (xml.Read() == true) {
					if (xml.NodeType != XmlNodeType.Element) {
						continue;
					}
					string name = xml.Name;

					if (name == "Job") {
						if (job != null) {
							if (skill != null) {
								job.Add(skill.ID, skill);
								skill = null;
							}

							tree.Add(job.ID, job);
							job = null;
						}

						job = new SkillTreeJob {
							ID = int.Parse(xml.GetAttribute("ID"))
						};
					} else if (name == "Skill") {
						if (skill != null) {
							job.Add(skill.ID, skill);
							skill = null;
						}

						skill = new SkillTreeJobSkill {
							ID = int.Parse(xml.GetAttribute("ID")),
							MaxLevel = int.Parse(xml.GetAttribute("Max")),
							JobLevel = int.Parse(xml.GetAttribute("MinLv"))
						};
					} else if (name == "Require") {
						SkillTreeJobSkillRequirement r = new SkillTreeJobSkillRequirement {
							ID = int.Parse(xml.GetAttribute("ID")),
							Level = int.Parse(xml.GetAttribute("Level"))
						};
						skill.Add(r.ID, r);
					}

				} // while

				// Add last skill to last job
				if (job != null && skill != null) {
					job.Add(skill.ID, skill);
				}
				// Add last job to tree
				if (job != null) {
					tree.Add(job.ID, job);
				}
			} // using


			return tree;
		}
        public static SkillTree ParseSkillTree(string filepath)
        {
            SkillTree tree = new SkillTree();

            SkillTreeJob      job   = null;
            SkillTreeJobSkill skill = null;

            using (XmlReader xml = XmlReader.Create(filepath)) {
                while (xml.Read() == true)
                {
                    if (xml.NodeType != XmlNodeType.Element)
                    {
                        continue;
                    }
                    string name = xml.Name;

                    if (name == "Job")
                    {
                        if (job != null)
                        {
                            if (skill != null)
                            {
                                job.Add(skill.ID, skill);
                                skill = null;
                            }

                            tree.Add(job.ID, job);
                            job = null;
                        }

                        job = new SkillTreeJob {
                            ID = int.Parse(xml.GetAttribute("ID"))
                        };
                    }
                    else if (name == "Skill")
                    {
                        if (skill != null)
                        {
                            job.Add(skill.ID, skill);
                            skill = null;
                        }

                        skill = new SkillTreeJobSkill {
                            ID       = int.Parse(xml.GetAttribute("ID")),
                            MaxLevel = int.Parse(xml.GetAttribute("Max")),
                            JobLevel = int.Parse(xml.GetAttribute("MinLv"))
                        };
                    }
                    else if (name == "Require")
                    {
                        SkillTreeJobSkillRequirement r = new SkillTreeJobSkillRequirement {
                            ID    = int.Parse(xml.GetAttribute("ID")),
                            Level = int.Parse(xml.GetAttribute("Level"))
                        };
                        skill.Add(r.ID, r);
                    }
                }                 // while

                // Add last skill to last job
                if (job != null && skill != null)
                {
                    job.Add(skill.ID, skill);
                }
                // Add last job to tree
                if (job != null)
                {
                    tree.Add(job.ID, job);
                }
            }             // using


            return(tree);
        }