Beispiel #1
0
        public void MustHaveRaceThatMatchesNameToPass()
        {
            var racePrereq = new RacePrerequisite("human");
            var human      = CharacterTestTemplates.AverageBob().OfRace("human");
            var dwarf      = CharacterTestTemplates.AverageBob().OfRace("dwarf");
            var noRace     = CharacterTestTemplates.AverageBob();

            Assert.True(racePrereq.IsQualified(human.Components));
            Assert.False(racePrereq.IsQualified(dwarf.Components));
            Assert.False(racePrereq.IsQualified(noRace.Components));
        }
Beispiel #2
0
        /// <summary>
        /// Parses the yaml and find prerequisites
        /// </summary>
        /// <param name="yaml">Yaml Node to parse </param>
        private void ParseYaml(YamlNodeWrapper yaml)
        {
            foreach (var prereq in yaml.Children())
            {
                Prerequisite newreq = null;

                // TODO: This seems clunky and weird
                foreach (var key in this.prerequisiteKeyNames)
                {
                    var val = prereq.GetStringOptional(key);
                    if (val != null)
                    {
                        switch (key)
                        {
                        case "ability":
                            newreq = new AbilityPrerequisite(val);
                            break;

                        case "baseattackbonus":
                            newreq = new BaseAttackBonusPrerequisite(val);
                            break;

                        case "casterlevel":
                            newreq = new CasterLevelPrerequisite(val);
                            break;

                        case "classfeature":
                            newreq = new ClassFeaturePrerequisite(val);
                            break;

                        case "classlevel":
                            newreq = new ClassLevelPrerequisite(val);
                            break;

                        case "feat":
                            newreq = new FeatPrerequisite(val);
                            break;

                        case "proficiency":
                            newreq = new ProficiencyPrerequisite(val);
                            break;

                        case "race":
                            newreq = new RacePrerequisite(val);
                            break;

                        case "skillranks":
                            newreq = new SkillRankPrerequisite(val);
                            break;
                        }

                        break;
                    }
                }

                if (newreq != null)
                {
                    this.Add(newreq);
                }
            }
        }