public void GetSkillTree() { ResponseCache.Clear(); SkillTree skillTree = EveApi.GetSkillTree(); SkillTree.Skill skill = findSkill(3368, skillTree); Assert.AreEqual("Ethnic Relations", skill.TypeName); Assert.AreEqual(266, skill.GroupId); Assert.AreEqual(3368, skill.TypeId); Assert.AreEqual("Skill at operating multiracial", skill.Description.Substring(0, 30)); Assert.AreEqual(2, skill.Rank); Assert.AreEqual(2, skill.RequiredSkills.Length); Assert.AreEqual(3363, skill.RequiredSkills[0].TypeId); Assert.AreEqual(2, skill.RequiredSkills[0].SkillLevel); Assert.AreEqual(3355, skill.RequiredSkills[1].TypeId); Assert.AreEqual(3, skill.RequiredSkills[1].SkillLevel); Assert.AreEqual(SkillTree.AttributeType.Memory, skill.PrimaryAttribute); Assert.AreEqual(SkillTree.AttributeType.Charisma, skill.SecondaryAttribute); Assert.AreEqual(1, skill.SkillBonuses.Length); Assert.AreEqual("nonRaceCorporationMembersBonus", skill.SkillBonuses[0].BonusType); Assert.AreEqual(20, skill.SkillBonuses[0].BonusValue); Assert.AreEqual("Corporation Management", skillTree.SkillGroups[0].GroupName); Assert.AreEqual(266, skillTree.SkillGroups[0].GroupId); }
public static SkillTree.Skill getSkillById(int skillId) { SkillTree.Skill skill = (from s in skillList where s.TypeId == skillId select s).Single(); return(skill); }
/// <summary> /// Display a skill and its required skills /// </summary> public static void SkillTreeExample() { SkillTree skillTree = EveApi.GetSkillTree(); // Get skill 3344 and display its name SkillTree.Skill targetSkill = GetSkillByTypeId(3344, skillTree); Console.WriteLine("Skill Name: {0}", targetSkill.TypeName); // Display the name and level of each required skill foreach (SkillTree.RequiredSkill requiredSkill in targetSkill.RequiredSkills) { SkillTree.Skill requiredSkillInfo = GetSkillByTypeId(requiredSkill.TypeId, skillTree); Console.WriteLine("Required Skill: {0} Level: {1}", requiredSkillInfo.TypeName, requiredSkill.SkillLevel); } }
public void PersistSkillTree() { ResponseCache.Clear(); SkillTree skillTree = EveApi.GetSkillTree(); ResponseCache.Save("ResponseCache.xml"); ResponseCache.Clear(); ResponseCache.Load("ResponseCache.xml"); SkillTree cached = EveApi.GetSkillTree(); Assert.AreEqual(skillTree.CachedUntilLocal, cached.CachedUntilLocal); // Skill Groups for (int i = 0; i < skillTree.SkillGroups.Length; i++) { Assert.AreEqual(skillTree.SkillGroups[i].GroupName, cached.SkillGroups[i].GroupName); Assert.AreEqual(skillTree.SkillGroups[i].GroupId, cached.SkillGroups[i].GroupId); } // Skills for (int i = 0; i < skillTree.Skills.Length; i++) { SkillTree.Skill skill = skillTree.Skills[i]; SkillTree.Skill cskill = cached.Skills[i]; Assert.AreEqual(skill.TypeName, cskill.TypeName); Assert.AreEqual(skill.GroupId, cskill.GroupId); Assert.AreEqual(skill.TypeId, cskill.TypeId); Assert.AreEqual(skill.Description, cskill.Description); Assert.AreEqual(skill.Rank, cskill.Rank); Assert.AreEqual(skill.PrimaryAttribute, cskill.PrimaryAttribute); Assert.AreEqual(skill.SecondaryAttribute, cskill.SecondaryAttribute); for (int j = 0; j < skill.RequiredSkills.Length; j++) { Assert.AreEqual(skill.RequiredSkills[j].TypeId, cskill.RequiredSkills[j].TypeId); Assert.AreEqual(skill.RequiredSkills[j].SkillLevel, cskill.RequiredSkills[j].SkillLevel); } for (int j = 0; j < skill.SkillBonuses.Length; j++) { Assert.AreEqual(skill.SkillBonuses[j].BonusType, cskill.SkillBonuses[j].BonusType); Assert.AreEqual(skill.SkillBonuses[j].BonusType, cskill.SkillBonuses[j].BonusType); } } }
public SkillTree Parse(XmlDocument xmlDocument) { this.CheckVersion(xmlDocument); SkillTree skillTree = new SkillTree(); skillTree.ResponseXml = xmlDocument; // Skill Groups List <SkillTree.SkillGroup> parsedSkillGroups = new List <SkillTree.SkillGroup>(); foreach (XmlNode row in xmlDocument.SelectNodes("//rowset[@name='skillGroups']/row")) { SkillTree.SkillGroup skillGroup = new SkillTree.SkillGroup(); skillGroup.GroupName = row.Attributes["groupName"].InnerText; skillGroup.GroupId = Convert.ToInt32(row.Attributes["groupID"].InnerText); parsedSkillGroups.Add(skillGroup); } skillTree.SkillGroups = parsedSkillGroups.ToArray(); // Skills List <SkillTree.Skill> parsedSkills = new List <SkillTree.Skill>(); foreach (XmlNode row in xmlDocument.SelectNodes("//rowset[@name='skills']/row")) { SkillTree.Skill skill = new SkillTree.Skill(); skill.TypeName = row.Attributes["typeName"].InnerText; skill.GroupId = Convert.ToInt32(row.Attributes["groupID"].InnerText, CultureInfo.InvariantCulture); skill.TypeId = Convert.ToInt32(row.Attributes["typeID"].InnerText, CultureInfo.InvariantCulture); skill.Description = row.SelectSingleNode("description").InnerText; skill.Rank = Convert.ToInt32(row.SelectSingleNode("rank").InnerText, CultureInfo.InvariantCulture); XmlNode requiredSkillNode = row.SelectSingleNode("requiredAttributes/primaryAttribute"); if (requiredSkillNode != null) { skill.PrimaryAttribute = MapStringToAttributeType(requiredSkillNode.InnerText); } requiredSkillNode = row.SelectSingleNode("requiredAttributes/secondaryAttribute"); if (requiredSkillNode != null) { skill.SecondaryAttribute = MapStringToAttributeType(requiredSkillNode.InnerText); } // Required Skills List <SkillTree.RequiredSkill> parsedRequiredSkills = new List <SkillTree.RequiredSkill>(); foreach (XmlNode requiredNode in row.SelectNodes("rowset[@name='requiredSkills']/row")) { SkillTree.RequiredSkill requiredSkill = new SkillTree.RequiredSkill(); requiredSkill.TypeId = Convert.ToInt32(requiredNode.Attributes["typeID"].InnerText, CultureInfo.InvariantCulture); requiredSkill.SkillLevel = Convert.ToInt32(requiredNode.Attributes["skillLevel"].InnerText, CultureInfo.InvariantCulture); parsedRequiredSkills.Add(requiredSkill); } skill.RequiredSkills = parsedRequiredSkills.ToArray(); // Skill Bonuses List <SkillTree.SkillBonus> parsedSkillBonuses = new List <SkillTree.SkillBonus>(); foreach (XmlNode bonusNode in row.SelectNodes("rowset[@name='skillBonusCollection']/row")) { SkillTree.SkillBonus skillBonus = new SkillTree.SkillBonus(); skillBonus.BonusType = bonusNode.Attributes["bonusType"].InnerText; skillBonus.BonusValue = Convert.ToDouble(bonusNode.Attributes["bonusValue"].InnerText, CultureInfo.InvariantCulture); parsedSkillBonuses.Add(skillBonus); } skill.SkillBonuses = parsedSkillBonuses.ToArray(); parsedSkills.Add(skill); } skillTree.Skills = parsedSkills.ToArray(); return(skillTree); }