Exemple #1
0
        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));
        }
Exemple #3
0
        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));
 }
Exemple #5
0
        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);
 }
Exemple #7
0
        public void CannotParseBuildWithLessThanEightSkills()
        {
            var build = new NativeSkillBuild
            {
                PrimaryProfessionId   = (int)ProfessionIndex.Dervish,
                SecondaryProfessionId = (int)ProfessionIndex.None
            };

            var parser = new SkillBuildParser();

            parser.CreateTemplateCode(build);
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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);
        }