Exemple #1
0
        public FlurryOfBlowsTests()
        {
            monk = CharacterTestTemplates.MarkyMonk();
            var strike = new MonkUnarmedStrike();

            monk.Add(strike);
        }
Exemple #2
0
        public void ProvidesImmunityToPoison()
        {
            var monk = CharacterTestTemplates.MarkyMonk();

            monk.Add(new DiamondBody());
            AssertCharacter.IsImmuneTo("poison", monk);
        }
Exemple #3
0
        public void AdjustDamageToMeetCharacterSize()
        {
            var monk = CharacterTestTemplates.MarkyMonk();

            monk.Size.SetSize(CharacterSize.Small, 0, 0);
            monk.Add(unarmedStrike);
            Assert.Equal("1d4", unarmedStrike.Attack.Damage.ToString());
        }
Exemple #4
0
        public void AddsUnarmedMeleeAttackToOffenseStats()
        {
            var monk = CharacterTestTemplates.MarkyMonk();

            monk.Add(unarmedStrike);
            Assert.Contains(unarmedStrike.Attack, monk.Offense.Attacks());
            Assert.Equal("1d6", unarmedStrike.Attack.Damage.ToString());
        }
Exemple #5
0
        public void DamageIncreasesWithCharacterLevel()
        {
            var monk = CharacterTestTemplates.MarkyMonk();

            monk.Add(unarmedStrike);
            monk.SetLevel(2);
            Assert.Contains(unarmedStrike.Attack, monk.Offense.Attacks());
            Assert.Equal("1d8", unarmedStrike.Attack.Damage.ToString());
        }
Exemple #6
0
        public void AddsDamageResistance()
        {
            var monk = CharacterTestTemplates.MarkyMonk();

            monk.Add(new PerfectSelf());
            var defense = monk.Get <DefenseStats>();
            var dr      = defense.EnergyResistance.First();

            Assert.Equal(10, dr.Amount);
            Assert.Equal("chaotic", dr.DamageType);
        }
Exemple #7
0
        public void SaveDCIsBasedOnLevelAndWisdom()
        {
            var monk   = CharacterTestTemplates.MarkyMonk();
            var quiver = new QuiveringPalm();

            monk.Add(quiver);
            monk.AbilityScores.SetScore(AbilityScoreTypes.Wisdom, 16);
            Assert.Equal(13, quiver.SaveDC);
            monk.SetLevel(10);
            Assert.Equal(18, quiver.SaveDC);
        }
Exemple #8
0
        public void SlowFallCanBeSetToUnlimited()
        {
            var dataTable = new DataTable("monk abilities");

            dataTable.SetColumns(new string[] { "slow-fall" });
            dataTable.AddRow("1", new string[] { "Unlimited" });
            var slowFall = new SlowFall(dataTable);
            var monk     = CharacterTestTemplates.MarkyMonk();

            monk.Add(slowFall);
            Assert.Equal("Slow Fall (Unlimited ft)", slowFall.DisplayString());
        }
Exemple #9
0
        public void ImprovesArmorClassWithLevelUps()
        {
            var monk      = CharacterTestTemplates.MarkyMonk();
            var oldAC     = monk.Defense.ArmorClass.TotalValue;
            var dataTable = new DataTable("monk abilities");

            dataTable.SetColumns(new string[] { "ac-bonus" });
            dataTable.AddRow("1", new string[] { "0" });
            dataTable.AddRow("2", new string[] { "1" });
            monk.Add(new MonkArmorClassBonus(dataTable));
            monk.SetLevel(2);
            Assert.Equal(oldAC + 1, monk.Defense.ArmorClass.TotalValue);
        }
Exemple #10
0
        public void AddsWisdomModifierIfPositiveToArmorClassIfNotWearingArmor()
        {
            var monk = CharacterTestTemplates.MarkyMonk();

            monk.AbilityScores.SetScore(AbilityScoreTypes.Wisdom, 18); //+4 modifier
            var oldAC = monk.Defense.ArmorClass.TotalValue;

            monk.Add(new MonkArmorClassBonus());
            Assert.Equal(oldAC + 4, monk.Defense.ArmorClass.TotalValue);

            var anyArmor = new Armor();

            monk.Inventory.EquipItem(anyArmor);
            Assert.Equal(oldAC, monk.Defense.ArmorClass.TotalValue);
        }
Exemple #11
0
        public void MonksMoveFasterAsLevelsIncrease()
        {
            var monk      = CharacterTestTemplates.MarkyMonk();
            var dataTable = new DataTable("monk abilities");

            dataTable.SetColumns(new string[] { "fast-movement" });
            dataTable.AddRow("1", new string[] { "10" });
            dataTable.AddRow("2", new string[] { "20" });
            var fastMove = new MonkFastMovement(dataTable);
            var oldSpeed = monk.Movement.MovementSpeed;

            monk.Add(fastMove);
            Assert.Equal(oldSpeed + 10, monk.Movement.MovementSpeed);
            monk.SetLevel(2);
            Assert.Equal(oldSpeed + 20, monk.Movement.MovementSpeed);
        }
Exemple #12
0
        public void SlowFallImprovesWithLevels()
        {
            var dataTable = new DataTable("monk abilities");

            dataTable.SetColumns(new string[] { "slow-fall" });
            dataTable.AddRow("1", new string[] { "10" });
            dataTable.AddRow("2", new string[] { "25" });

            var slowFall = new SlowFall(dataTable);

            var monk = CharacterTestTemplates.MarkyMonk();

            monk.Add(slowFall);

            Assert.Equal("Slow Fall (10 ft)", slowFall.DisplayString());
            monk.SetLevel(2);
            Assert.Equal("Slow Fall (25 ft)", slowFall.DisplayString());
        }