public void FeatTokensCanMatchByNameAsWell() { var feat = Feat.Named("Turtle Snapper"); var featToken = new FeatToken("Turtle Snapper"); Assert.True(featToken.Qualifies(feat)); }
public void IfFeatIsTaggedAsRequireSpecificTokenIgnoreEmptyToken() { var featToken = new FeatToken(); var specialFeat = Feat.Named("Foo"); specialFeat.Tags.Add("ignore-generic-token"); Assert.False(featToken.Qualifies(specialFeat)); }
public void IgnoringPrerequisitesStillRequiresUniqueFeats() { var feat = Feat.Named("Testing"); var copy = feat.Copy(); var character = CharacterTestTemplates.AverageBob(); character.Add(feat); Assert.False(copy.IsQualifiedIgnorePrerequisites(character)); }
public void CanReceiveAListOfFeats() { var featToken = new FeatToken(new string[] { "Dodge", "Mobility" }); var dodge = Feat.Named("Dodge"); var mobility = Feat.Named("Mobility"); Assert.True(featToken.Qualifies(dodge)); Assert.True(featToken.Qualifies(mobility)); }
public void IfFeatHasPrerequisitesTheyCanBeBypassed() { var CombatExpertise = Feat.Named("Combat Expertise"); CombatExpertise.Prerequisites.Add(new AbilityPrerequisite(AbilityScoreTypes.Intelligence, 13)); var character = CharacterTestTemplates.AverageBob(); Assert.False(CombatExpertise.IsQualified(character)); Assert.True(CombatExpertise.IsQualifiedIgnorePrerequisites(character)); }
public void IfFeatIsAlreadySelectedItCannotBeSelectedAgain() { var character = new CharacterSheet(CharacterStrategy.Default()); var cr1 = Feat.Named("Combat Reflexes"); var cr2 = Feat.Named("Combat Reflexes"); Assert.True(cr2.IsQualified(character)); character.Add(cr1); Assert.False(cr2.IsQualified(character)); }
public void EmptyFeatTokenCanBeUsedForAnyFeat() { var f = Feat.Named("Combat Reflexes"); f.Tags.Add("combat"); var featToken = new FeatToken(); Assert.True(featToken.Qualifies(f)); }
public void FeatTokensKnowWhetherAFeatMatches() { var combatFeat = Feat.Named("Power Attack"); combatFeat.Tags.Add("combat"); combatFeat.Tags.Add("critical"); var magicFeat = Feat.Named("Create Potion"); magicFeat.Tags.Add("item creation"); var featToken = new FeatToken("combat"); Assert.True(featToken.Qualifies(combatFeat)); Assert.False(featToken.Qualifies(magicFeat)); }
public void FeatsKnowWhetherYouQualify() { var smartCharacter = CharacterTestTemplates.AverageBob(); smartCharacter.AbilityScores.SetScore(AbilityScoreTypes.Intelligence, 15); var dumbCharacter = CharacterTestTemplates.AverageBob(); dumbCharacter.AbilityScores.SetScore(AbilityScoreTypes.Intelligence, 5); var CombatExpertise = Feat.Named("Combat Expertise"); CombatExpertise.Prerequisites.Add(new AbilityPrerequisite(AbilityScoreTypes.Intelligence, 13)); Assert.True(CombatExpertise.IsQualified(smartCharacter)); Assert.False(CombatExpertise.IsQualified(dumbCharacter)); }
public FeatSelectorTests() { powerattack = Feat.Named("Power Attack"); cleave = Feat.Named("Cleave"); cleave.Prerequisites.Add(new SpecialAbilityPrerequisite("power attack")); empowerspell = Feat.Named("Empower Spell"); empowerspell.Tags.Add("metamagic"); var list = new List <Feat>(); list.Add(powerattack); list.Add(cleave); list.Add(empowerspell); gateway = EntityGateway <Feat> .LoadFromList(list); selector = new FeatSelector(gateway); }