public void Steel_Medium_Masterwork()
        {
            // Arrange
            var armor = new HalfPlate(SizeCategory.Medium, HalfPlateMaterial.Steel)
            {
                IsMasterwork = true
            };

            // Assert
            Assert.IsTrue(armor.IsMasterwork);
            Assert.IsTrue(armor.MasterworkIsToggleable);
            Assert.AreEqual(6, armor.ArmorCheckPenalty());
            Assert.AreEqual(750, armor.GetMarketPrice());
            Assert.AreEqual("Masterwork Half-Plate", armor.ToString());
        }
        public void Adamantine_Small_Default()
        {
            // Arrange
            var armor = new HalfPlate(SizeCategory.Small, HalfPlateMaterial.Adamantine);

            // Assert
            Assert.IsTrue(armor.IsMasterwork);
            Assert.IsFalse(armor.MasterworkIsToggleable);
            Assert.AreEqual(8, armor.GetArmorBonus());
            Assert.AreEqual(6, armor.ArmorCheckPenalty());
            Assert.AreEqual(0, armor.MaximumDexterityBonus());
            Assert.AreEqual(15_600, armor.GetMarketPrice());
            Assert.AreEqual(25, armor.GetWeight());
            Assert.AreEqual(0.25, armor.SpeedPenalty);
            Assert.AreEqual("Adamantine Half-Plate", armor.ToString());
        }
        public void Dragonhide_Large()
        {
            // Arrange
            var armor = new HalfPlate(SizeCategory.Large, DragonhideColor.Red);

            // Assert
            Assert.IsTrue(armor.IsMasterwork);
            Assert.IsFalse(armor.MasterworkIsToggleable);
            Assert.AreEqual(6, armor.ArmorCheckPenalty());
            Assert.AreEqual(0, armor.MaximumDexterityBonus());
            Assert.AreEqual(.25, armor.SpeedPenalty);
            Assert.AreEqual(100, armor.GetWeight());
            Assert.AreEqual(2700, armor.MundaneMarketPrice());
            Assert.AreEqual(Dragonhide.Hardness, armor.Hardness.MaterialHardness);
            Assert.AreEqual("Red Dragonhide Half-Plate", armor.ToString());
        }
        public void Steel_Large()
        {
            // Arrange
            var armor = new HalfPlate(SizeCategory.Large, HalfPlateMaterial.Steel);

            // Assert
            Assert.IsFalse(armor.IsMasterwork);
            Assert.IsTrue(armor.MasterworkIsToggleable);
            Assert.AreEqual(8, armor.GetArmorBonus());
            Assert.AreEqual(7, armor.ArmorCheckPenalty());
            Assert.AreEqual(0, armor.MaximumDexterityBonus());
            Assert.AreEqual(1200, armor.GetMarketPrice());
            Assert.AreEqual(100, armor.GetWeight());
            Assert.AreEqual(.25, armor.SpeedPenalty);
            Assert.AreEqual("Half-Plate", armor.ToString());
        }
        public void Mithral_Medium()
        {
            // Arrange
            var armor = new HalfPlate(SizeCategory.Medium, HalfPlateMaterial.Mithral);

            // Assert
            Assert.IsTrue(armor.IsMasterwork);
            Assert.IsFalse(armor.MasterworkIsToggleable);
            Assert.AreEqual(8, armor.GetArmorBonus());
            Assert.AreEqual(4, armor.ArmorCheckPenalty());
            Assert.AreEqual(2, armor.MaximumDexterityBonus());
            Assert.AreEqual(9_600, armor.GetMarketPrice());
            Assert.AreEqual(25, armor.GetWeight());
            Assert.AreEqual(0.25, armor.SpeedPenalty);
            Assert.AreEqual("Mithral Half-Plate", armor.ToString());
        }