public void CanCreateBuildTemplate() { const string expected = "OwAT043A5JjsR0I3tp/m2mITAA"; var build = new NativeSkillBuild { PrimaryProfessionId = (int)ProfessionIndex.Monk, SecondaryProfessionId = (int)ProfessionIndex.None }; build.AddAttribute((int)AttributeIndex.HealingPrayers, 12); build.AddAttribute((int)AttributeIndex.ProtectionPrayers, 3); build.AddAttribute((int)AttributeIndex.DivineFavor, 12); build.AddSkill((int)SkillIndex.OrisonofHealing); build.AddSkill((int)SkillIndex.DwaynasKiss); build.AddSkill((int)SkillIndex.WordofHealing); build.AddSkill((int)SkillIndex.SignetofRejuvenation); build.AddSkill((int)SkillIndex.CureHex); build.AddSkill((int)SkillIndex.DismissCondition); build.AddSkill((int)SkillIndex.DivineSpirit); build.AddSkill((int)SkillIndex.Rebirth); var parser = new SkillBuildParser(); var result = parser.CreateTemplateCode(build); Assert.AreEqual(expected, result); }
// TODO : Consider where skills do not match the primary or secondary profession private SkillTemplate CreateTemplate(string templatePath, NativeSkillBuild nativeTemplate) { if (nativeTemplate == null) { return(CreateInvalidTemplate(templatePath)); } var primaryProfession = dataService.Professions.FirstOrDefault(i => i.TemplateId == nativeTemplate.PrimaryProfessionId); if (primaryProfession == null) { return(CreateInvalidTemplate(templatePath)); } var secondaryProfession = dataService.Professions.First(i => i.TemplateId == nativeTemplate.SecondaryProfessionId); if (secondaryProfession == null) { return(CreateInvalidTemplate(templatePath)); } return(new SkillTemplate( templatePath, primaryProfession, secondaryProfession, JoinSkillData(nativeTemplate).ToList(), JoinAttributedata(nativeTemplate), nativeTemplate.TemplateCode)); }
public void CannotAddDuplicateAttrbutes() { var build = new NativeSkillBuild(); build.AddAttribute((int)AttributeIndex.AirMagic, 5); build.AddAttribute((int)AttributeIndex.AirMagic, 1); }
private IEnumerable <AttributeValue> JoinAttributedata(NativeSkillBuild nativeItem) { // TODO : This will throw if the attribute does not exist return (from nativeAttribute in nativeItem.AttributeIdValuePairs let attribute = dataService.Attributes.First(i => i.TemplateId == nativeAttribute.Key) select new AttributeValue(attribute, nativeAttribute.Value)); }
public void CannotAddDuplicateSkills() { var build = new NativeSkillBuild(); build.AddSkill((int)SkillIndex.AbaddonsChosen); build.AddSkill((int)SkillIndex.AbaddonsChosen); Assert.AreEqual(1, build.SkillIds.Count()); }
private IEnumerable <ISkill> JoinSkillData(NativeSkillBuild nativeItem) { return (from nativeSkill in nativeItem.SkillIds join skill in dataService.Skills on nativeSkill equals skill.TemplateId into tempSkills from result in tempSkills.DefaultIfEmpty(dataService.InvalidSkill) select result); }
public void CannotParseBuildWithLessThanEightSkills() { var build = new NativeSkillBuild { PrimaryProfessionId = (int)ProfessionIndex.Dervish, SecondaryProfessionId = (int)ProfessionIndex.None }; var parser = new SkillBuildParser(); parser.CreateTemplateCode(build); }
public void CannotAddMoreThanEightSkills() { var build = new NativeSkillBuild(); build.AddSkill((int)SkillIndex.AbaddonsChosen); build.AddSkill((int)SkillIndex.AbaddonsConspiracy); build.AddSkill((int)SkillIndex.AbaddonsFavor); build.AddSkill((int)SkillIndex.AccumulatedPain); build.AddSkill((int)SkillIndex.AcidTrap); build.AddSkill((int)SkillIndex.AdventurersInsight); build.AddSkill((int)SkillIndex.Aegis); build.AddSkill((int)SkillIndex.AegisPvP); build.AddSkill((int)SkillIndex.AfflictedSoulExplosion); build.AddSkill((int)SkillIndex.Aftershock); }
public void CannotParseBuildWithoutPrimaryProfession() { var build = new NativeSkillBuild(); build.AddSkill((int)SkillIndex.OrisonofHealing); build.AddSkill((int)SkillIndex.DwaynasKiss); build.AddSkill((int)SkillIndex.WordofHealing); build.AddSkill((int)SkillIndex.SignetofRejuvenation); build.AddSkill((int)SkillIndex.CureHex); build.AddSkill((int)SkillIndex.DismissCondition); build.AddSkill((int)SkillIndex.DivineSpirit); build.AddSkill((int)SkillIndex.Rebirth); var parser = new SkillBuildParser(); parser.CreateTemplateCode(build); }