コード例 #1
0
        public void Steel_Medium_Masterwork()
        {
            // Arrange
            var armor = new ScaleMail(SizeCategory.Medium, ScaleMailMaterial.Steel)
            {
                IsMasterwork = true
            };

            // Assert
            Assert.IsTrue(armor.IsMasterwork);
            Assert.IsTrue(armor.MasterworkIsToggleable);
            Assert.AreEqual(3, armor.ArmorCheckPenalty());
            Assert.AreEqual(200, armor.GetMarketPrice());
            Assert.AreEqual("Masterwork Scale Mail", armor.ToString());
        }
コード例 #2
0
        public void Adamantine_Small_Default()
        {
            // Arrange
            var armor = new ScaleMail(SizeCategory.Small, ScaleMailMaterial.Adamantine);

            // Assert
            Assert.IsTrue(armor.IsMasterwork);
            Assert.IsFalse(armor.MasterworkIsToggleable);
            Assert.AreEqual(5, armor.GetArmorBonus());
            Assert.AreEqual(3, armor.ArmorCheckPenalty());
            Assert.AreEqual(3, armor.MaximumDexterityBonus());
            Assert.AreEqual(10_050, armor.GetMarketPrice());
            Assert.AreEqual(15, armor.GetWeight());
            Assert.AreEqual(0.25, armor.SpeedPenalty);
            Assert.AreEqual("Adamantine Scale Mail", armor.ToString());
        }
コード例 #3
0
        public void Steel_Large()
        {
            // Arrange
            var armor = new ScaleMail(SizeCategory.Large, ScaleMailMaterial.Steel);

            // Assert
            Assert.IsFalse(armor.IsMasterwork);
            Assert.IsTrue(armor.MasterworkIsToggleable);
            Assert.AreEqual(5, armor.GetArmorBonus());
            Assert.AreEqual(4, armor.ArmorCheckPenalty());
            Assert.AreEqual(3, armor.MaximumDexterityBonus());
            Assert.AreEqual(100, armor.GetMarketPrice());
            Assert.AreEqual(60, armor.GetWeight());
            Assert.AreEqual(.25, armor.SpeedPenalty);
            Assert.AreEqual("Scale Mail", armor.ToString());
        }
コード例 #4
0
        public void Mithral_Medium()
        {
            // Arrange
            var armor = new ScaleMail(SizeCategory.Medium, ScaleMailMaterial.Mithral);

            // Assert
            Assert.IsTrue(armor.IsMasterwork);
            Assert.IsFalse(armor.MasterworkIsToggleable);
            Assert.AreEqual(5, armor.GetArmorBonus());
            Assert.AreEqual(1, armor.ArmorCheckPenalty());
            Assert.AreEqual(5, armor.MaximumDexterityBonus());
            Assert.AreEqual(4050, armor.GetMarketPrice());
            Assert.AreEqual(15, armor.GetWeight());
            Assert.AreEqual(0, armor.SpeedPenalty);
            Assert.AreEqual("Mithral Scale Mail", armor.ToString());
        }
コード例 #5
0
        public void CreateDefaultCharacter(string name)
        {
            Greatsword greatSword = new Greatsword();
            ScaleMail  scaleMail  = new ScaleMail();

            Level               = 1;
            Name                = name;
            _class              = new Fighter();
            Weapon              = greatSword;
            Armor               = scaleMail;
            Strength            = 16;
            Dexterity           = 14;
            Constitution        = 12;
            Intelligence        = 8;
            Wisdom              = 10;
            Charisma            = 11;
            MaxHeathPoints      = (byte)(_class.hitDie + ConstitutionModifier);
            CurrentHealthPoints = MaxHeathPoints;
        }
コード例 #6
0
        public void Adamantine_ApplyTo_DamageReduction()
        {
            // Arrange
            var damageReductionTracker = Mock.Of <IDamageReductionTracker>();
            var mockCharacter          = new Mock <ICharacter>();

            mockCharacter.Setup(c => c.DamageReduction)
            .Returns(damageReductionTracker);
            var armor = new ScaleMail(SizeCategory.Medium, ScaleMailMaterial.Adamantine);

            // Act
            armor.ApplyTo(mockCharacter.Object);

            // Assert
            Mock.Get(damageReductionTracker)
            .Verify(drt => drt.Add(It.Is <Func <byte> >(calc => 2 == calc()),
                                   It.Is <String>(bpb => "—" == bpb)),
                    "Equipping an adamantine scale mail should bestow DR 2/— on the character wearing it.");
        }
コード例 #7
0
ファイル: ItemSpawner.cs プロジェクト: roxacarv/Solid-Rascal
        public Item GetItem(int id)
        {
            Item nextItem;

            switch (id)
            {
            case 100:
                nextItem = new Mace();
                return(nextItem);

            case 101:
                nextItem = new Dagger();
                return(nextItem);

            case 102:
                nextItem = new Spear();
                return(nextItem);

            case 103:
                nextItem = new Longsword();
                return(nextItem);

            case 150:
                nextItem = new LeatherA();
                return(nextItem);

            case 151:
                nextItem = new ChainMail();
                return(nextItem);

            case 152:
                nextItem = new ScaleMail();
                return(nextItem);

            case 153:
                nextItem = new BandedMail();
                return(nextItem);

            case 154:
                nextItem = new PlateMail();
                return(nextItem);

            case 200:
                nextItem = new Health_Potion();
                return(nextItem);

            case 201:
                nextItem = new STR_Potion();
                return(nextItem);

            case 202:
                nextItem = new DEF_Potion();
                return(nextItem);

            case 250:
                nextItem = new Food();
                return(nextItem);

            case 251:
                nextItem = new Scroll_Ident();
                return(nextItem);

            case 252:
                nextItem = new Diamond();
                return(nextItem);

            default:
                nextItem = new Mace();
                return(nextItem);
            }
        }
コード例 #8
0
ファイル: Generate.cs プロジェクト: krisfiction/TrialByCombat
        public static void Armor()
        {
            int _slot = random.Next(0, 8);

            string[] gearSlot = new string[8];
            gearSlot[0] = "Head"; //helmet
            gearSlot[1] = "Shoulders";
            gearSlot[2] = "Chest";
            gearSlot[3] = "Waist"; // belt
            gearSlot[4] = "Arms";  // bracer
            gearSlot[5] = "Hands"; // gloves
            gearSlot[6] = "Legs";  // pants
            gearSlot[7] = "Feet";  // boots

            string prefixName;
            int    prefixValue;
            string prefixStat;

            (prefixName, prefixStat, prefixValue) = Prefix.Generate("Armor");

            string suffixName;
            string suffixStat;
            int    suffixValue;

            (suffixName, suffixStat, suffixValue) = Suffix.Generate("Armor");


            int _armorType = random.Next(1, 11);

            switch (_armorType)
            {
            case 1:
                Rags rags = new Rags(gearSlot[_slot], prefixName, prefixStat, prefixValue, suffixName, suffixStat, suffixValue);
                rags.ArmorAddToInventory();
                break;

            case 2:
                Quilted cloak = new Quilted(gearSlot[_slot], prefixName, prefixStat, prefixValue, suffixName, suffixStat, suffixValue);
                cloak.ArmorAddToInventory();
                break;

            case 3:
                Leather leather = new Leather(gearSlot[_slot], prefixName, prefixStat, prefixValue, suffixName, suffixStat, suffixValue);
                leather.ArmorAddToInventory();
                break;

            case 4:
                HardLeather hardLeather = new HardLeather(gearSlot[_slot], prefixName, prefixStat, prefixValue, suffixName, suffixStat, suffixValue);
                hardLeather.ArmorAddToInventory();
                break;

            case 5:
                StuddedLeather studdedLeather = new StuddedLeather(gearSlot[_slot], prefixName, prefixStat, prefixValue, suffixName, suffixStat, suffixValue);
                studdedLeather.ArmorAddToInventory();
                break;

            case 6:
                RingMail ringMail = new RingMail(gearSlot[_slot], prefixName, prefixStat, prefixValue, suffixName, suffixStat, suffixValue);
                ringMail.ArmorAddToInventory();
                break;

            case 7:
                ChainMail chainMail = new ChainMail(gearSlot[_slot], prefixName, prefixStat, prefixValue, suffixName, suffixStat, suffixValue);
                chainMail.ArmorAddToInventory();
                break;

            case 8:
                ScaleMail scaleMail = new ScaleMail(gearSlot[_slot], prefixName, prefixStat, prefixValue, suffixName, suffixStat, suffixValue);
                scaleMail.ArmorAddToInventory();
                break;

            case 9:
                FieldPlate fieldPlate = new FieldPlate(gearSlot[_slot], prefixName, prefixStat, prefixValue, suffixName, suffixStat, suffixValue);
                fieldPlate.ArmorAddToInventory();
                break;

            case 10:
                GothicPlate gothicPlate = new GothicPlate(gearSlot[_slot], prefixName, prefixStat, prefixValue, suffixName, suffixStat, suffixValue);
                gothicPlate.ArmorAddToInventory();
                break;
            }
        }