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 Execute(Utility.ComponentContainer components) { var combatStyle = components.Get <CombatStyle>(); var rangerLevel = components.Get <ClassLevel>(); var token = new FeatToken(combatStyle.GetFeats(rangerLevel.Level), true); components.Add(token); }
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)); }
private bool FeatIsValid(Feat feat, FeatToken token, CharacterSheet character) { if (token.IgnorePrerequisites) { return(feat.IsQualifiedIgnorePrerequisites(character) && token.Qualifies(feat)); } return(feat.IsQualified(character) && token.Qualifies(feat)); }
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 Initialize(ComponentContainer components) { var alignment = components.Get <CharacterAlignment>(); var good = new FeatToken("Turn Undead", true); var evil = new FeatToken("Command Undead", true); if (alignment.IsGood()) { components.Add(good); } else if (alignment.IsEvil()) { components.Add(evil); } else { components.Add(new FeatToken[] { good, evil }.ChooseOne()); } }
private void FilterPreferredFeats(CharacterSheet character, WeightedOptionTable <string> preferredFeats, FeatToken token) { foreach (var entry in preferredFeats.All) { var f = feats.Find(entry.Option); if (FeatIsValid(f, token, character)) { preferredFeats.Enable(entry.Option); } else { preferredFeats.Disable(entry.Option); ShortLog.DebugFormat("Preferred Feat [{0}] Token [{1}]- Not meeting requirements", f.Name, token.ToString()); } } }