Beispiel #1
0
        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());
        }
Beispiel #2
0
        public void CanBeUsed1TimeADayAtFourthDruidLevel()
        {
            var wildShape = new WildShape();
            var donna     = CharacterTestTemplates.DruidDonna();

            donna.SetLevel(4);
            donna.Add(wildShape);
            Assert.Equal(1, wildShape.UsesPerDay);
        }
Beispiel #3
0
        public void NoSpellCastingNoQualification()
        {
            var character = CharacterTestTemplates.DruidDonna();

            character.SetLevel(10);
            var prereq = new CasterLevelPrerequisite("3");

            Assert.False(prereq.IsQualified(character.Components));
        }
Beispiel #4
0
        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());
        }
Beispiel #5
0
        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));
        }
Beispiel #6
0
        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>());
        }