public void AbilityIsNotQualifiedIfNotExceedingScore() { var pre = new AbilityPrerequisite(AbilityScoreTypes.Intelligence, 13); var c = CharacterTestTemplates.AverageBob(); c.AbilityScores.SetScore(AbilityScoreTypes.Intelligence, 11); Assert.False(pre.IsQualified(c.Components)); }
public CutYourLosses() { var strength = new AbilityPrerequisite(new Dictionary <Attributes, int> { { Attributes.Strength, 13 } }); var acrobatics = new SkillRankPrerequisite(Skills.Acrobatics, 1); Prerequisite = new ComplexPrerequisite(strength, acrobatics); }
/// <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); } } }