public void CanBeUsedAnExtraTimeADayEveryTwoDruidLevelsAfterFourth() { var wildShape = new WildShape(); var donna = CharacterTestTemplates.DruidDonna(); donna.Add(wildShape); donna.SetLevel(6); Assert.Equal(2, wildShape.UsesPerDay); donna.SetLevel(8); Assert.Equal(3, wildShape.UsesPerDay); donna.SetLevel(12); Assert.Equal(5, wildShape.UsesPerDay); donna.SetLevel(13); Assert.Equal(5, wildShape.UsesPerDay); donna.SetLevel(17); Assert.Equal(7, wildShape.UsesPerDay); donna.SetLevel(18); Assert.Equal(8, wildShape.UsesPerDay); Assert.Equal("Wild Shape (8/day)", wildShape.DisplayString()); }
public void CanBeUsed1TimeADayAtFourthDruidLevel() { var wildShape = new WildShape(); var donna = CharacterTestTemplates.DruidDonna(); donna.SetLevel(4); donna.Add(wildShape); Assert.Equal(1, wildShape.UsesPerDay); }
public void NoSpellCastingNoQualification() { var character = CharacterTestTemplates.DruidDonna(); character.SetLevel(10); var prereq = new CasterLevelPrerequisite("3"); Assert.False(prereq.IsQualified(character.Components)); }
public void CanBeUsedAtWillAtTwentiethDruidLevel() { var wildShape = new WildShape(); var donna = CharacterTestTemplates.DruidDonna(); donna.Add(wildShape); donna.SetLevel(20); Assert.Equal(int.MaxValue, wildShape.UsesPerDay); Assert.Equal("Wild Shape (at will)", wildShape.DisplayString()); }
public void RequiresASpellCastingAbilityWithCorrectCasterLevel() { var character = CharacterTestTemplates.DruidDonna().WithDivineCasting(); var spellCasting = character.Get <ISpellCasting>(); var prereq = new CasterLevelPrerequisite("3"); Assert.False(prereq.IsQualified(character.Components)); character.SetLevel(3); Assert.Equal(3, spellCasting.CasterLevel); Assert.True(prereq.IsQualified(character.Components)); }
public void SelectsFromALimitedListOfDomains() { var airDomain = DomainTemplates.AirDomain(); var configure = new MemoryStore(); configure.SetValue("domain-options", new string[] { "Air" }); var chooser = new SelectNaturesBond(configure, EntityGateway <Domain> .LoadWithSingleItem(airDomain)); var donna = CharacterTestTemplates.DruidDonna(); chooser.ExecuteStep(donna); Assert.Equal(airDomain, donna.Get <Domain>()); }