Пример #1
0
        public SoulboundPirateRaider()
            : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Name = "a soulbound pirate raider";
            Body = 0x190;
            Hue = Utility.RandomSkinHue();
            Utility.AssignRandomHair(this);

            SetStr(150, 200);
            SetDex(125, 150);
            SetInt(95, 110);

            SetHits(200, 250);

            SetDamage(15, 25);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 45, 55);
            SetResistance(ResistanceType.Fire, 45, 55);
            SetResistance(ResistanceType.Cold, 45, 55);
            SetResistance(ResistanceType.Poison, 45, 55);
            SetResistance(ResistanceType.Energy, 45, 55);

            SetSkill(SkillName.MagicResist, 50.0, 75.5);
            SetSkill(SkillName.Archery, 90.0, 105.5);
            SetSkill(SkillName.Tactics, 90.0, 105.5);
            SetSkill(SkillName.Anatomy, 90.0, 105.5);

            Fame = 2000;
            Karma = -2000;

            AddItem(new TricorneHat());
            AddItem(new LeatherArms());
            AddItem(new FancyShirt());
            AddItem(new ShortPants());
            AddItem(new Cutlass());
            AddItem(new Boots(Utility.RandomNeutralHue()));
            AddItem(new GoldEarrings());

            Item bow;

            switch (Utility.Random(4))
            {
                default:
                case 0: bow = new CompositeBow(); PackItem(new Arrow(25)); break;
                case 1: bow = new Crossbow(); PackItem(new Bolt(25)); break;
                case 2: bow = new Bow(); PackItem(new Arrow(25)); break;
                case 3: bow = new HeavyCrossbow(); PackItem(new Bolt(25)); break;
            }

            AddItem(bow);
        }
Пример #2
0
        public PirateCrew() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, .2, .4)
        {
            Name = NameList.RandomName("orc");
            Body = Utility.RandomList(17, 182, 7, 138, 140);

            bool mage = 0.33 > Utility.RandomDouble();

            SetStr(100, 125);
            SetDex(125, 150);
            SetInt(250, 400);
            SetHits(250, 400);
            SetDamage(15, 25);

            if (mage)
            {
                ChangeAIType(AIType.AI_Mage);
                SetSkill(SkillName.Magery, 100.0, 120.0);
                SetSkill(SkillName.EvalInt, 100.0, 120.0);
                SetSkill(SkillName.Meditation, 100.0, 120.0);
                SetSkill(SkillName.MagicResist, 100.0, 120.0);
            }

            SetSkill(SkillName.Archery, 100.0, 120.0);
            SetSkill(SkillName.Tactics, 100.0, 120.0);
            SetSkill(SkillName.Wrestling, 100.0, 120.0);
            SetSkill(SkillName.Anatomy, 100.0, 120.0);

            SetDamageType(ResistanceType.Physical, 70);
            SetResistance(ResistanceType.Physical, 45, 55);
            SetResistance(ResistanceType.Fire, 45, 55);
            SetResistance(ResistanceType.Cold, 45, 55);
            SetResistance(ResistanceType.Poison, 45, 55);
            SetResistance(ResistanceType.Energy, 45, 55);

            Item bow;

            switch (Utility.Random(4))
            {
                default:
                case 0: bow = new CompositeBow(); PackItem(new Arrow(25)); break;
                case 1: bow = new Crossbow(); PackItem(new Bolt(25)); break;
                case 2: bow = new Bow(); PackItem(new Arrow(25)); break;
                case 3: bow = new HeavyCrossbow(); PackItem(new Bolt(25)); break;
            }

            AddItem(bow);

            Fame = 8000;
            Karma = -8000;
        }
        public IguanaCoveTreasureChest1() : base(0xE43)
        {
            Name    = "a treasure chest -40-";
            Movable = true;
            Weight  = 1000.0;

            TrapPower = 0;
            Locked    = true;

            RequiredSkill = 40;
            LockLevel     = 40;
            MaxLockLevel  = 80;

/////////////////////////////////// Gold
            if (Utility.RandomDouble() < 0.25)
            {
                DropItem(new Gold(Utility.Random(20, 300)));
            }

/////////////////////////////////////// Supplies

            switch (Utility.Random(19))
            {
            case 0: DropItem(new Board(70)); break;

            case 1: DropItem(new BoltOfCloth(70)); break;

            case 2: DropItem(new Bottle(70)); break;

            case 3: DropItem(new CopperWire(70)); break;

            case 4: DropItem(new Cotton(70)); break;

            case 5: DropItem(new DarkYarn(70)); break;

            case 6: DropItem(new Feather(70)); break;

            case 7: DropItem(new Flax(70)); break;

            case 8: DropItem(new Gears(70)); break;

            case 9: DropItem(new GoldWire(70)); break;

            case 10: DropItem(new IronIngot(70)); break;

            case 11: DropItem(new IronWire(70)); break;

            case 12: DropItem(new Leather(70)); break;

            case 13: DropItem(new LightYarn(70)); break;

            case 14: DropItem(new Shaft(70)); break;

            case 15: DropItem(new SilverWire(70)); break;

            case 16: DropItem(new SpoolOfThread(70)); break;

            case 17: DropItem(new Springs(70)); break;

            case 18: DropItem(new Wool(70)); break;
            }

            switch (Utility.Random(5))
            {
            case 0: DropItem(new ArcaneStone(15)); break;

            case 1: DropItem(new BeetleEgg(15)); break;

            case 2: DropItem(new DragonScale(15)); break;

            case 3: DropItem(new FishScale(15)); break;

            case 4: DropItem(new SerpentScale(15)); break;
            }

            Item ReagentLoot = Loot.RandomReagent();

            ReagentLoot.Amount = Utility.RandomMinMax(5, 10);
            DropItem(ReagentLoot);

            if (Utility.RandomDouble() < 0.05)
            {
                DropItem(new SackFlour());
            }

/////////////////////////////////////// Rare Items

            if (Utility.RandomDouble() < 0.01)
            {
                DropItem(new DyeTub());
            }

/////////////////////////////////////// LV 20-30
            if (Utility.RandomDouble() < 0.10)
            {
                BaseWeapon weapon = Loot.RandomWeapon(true);
                switch (Utility.Random(31))
                {
                case 0: weapon = new DoubleAxe(); break;                      // Lv20

                case 1: weapon = new TwoHandedAxe(); break;                   // Lv25

                case 2: weapon = new WarAxe(); break;                         // Lv30

                case 3: weapon = new CompositeBow(); break;                   // Lv20

                case 4: weapon = new EbonyCrossbow(); break;                  // Lv20

                case 5: weapon = new FireBow(); break;                        // Lv25

                case 6: weapon = new GrassBow(); break;                       // Lv25

                case 7: weapon = new IceBow(); break;                         // Lv25

                case 8: weapon = new LightningBow(); break;                   // Lv25

                case 9: weapon = new EbonyWarBow(); break;                    // Lv30

                case 10: weapon = new PistolCrossbow(); break;                // Lv30

                case 11: weapon = new EbonyDualDaggers(); break;              // Lv20

                case 12: weapon = new Tekagi(); break;                        // Lv25

                case 13: weapon = new ElvenSpellblade(); break;               // Lv30

                case 14: weapon = new WarMace(); break;                       // Lv20

                case 15: weapon = new Tessen(); break;                        // Lv25

                case 16: weapon = new HammerPick(); break;                    // Lv30

                case 17: weapon = new Spear(); break;                         // Lv20

                case 18: weapon = new BoneSpear(); break;                     // Lv25

                case 19: weapon = new BubbleStaff(); break;                   // Lv25

                case 20: weapon = new CrystalStaff(); break;                  // Lv25

                case 21: weapon = new EnergyStaff(); break;                   // Lv25

                case 22: weapon = new FireStaff(); break;                     // Lv25

                case 23: weapon = new VineStaff(); break;                     // Lv25

                case 24: weapon = new BlackStaff(); break;                    // Lv30

                case 25: weapon = new VikingSword(); break;                   // Lv20

                case 26: weapon = new Wakizashi(); break;                     // Lv20

                case 27: weapon = new Daisho(); break;                        // Lv30

                case 28: weapon = new EbonyScimitar(); break;                 // Lv30

                case 29: weapon = new RuneBlade(); break;                     // Lv30

                default: weapon = new Longsword(); break;                     // Lv20
                }

                BaseRunicTool.ApplyAttributesTo(weapon, 2, 5, 50);
                DropItem(weapon);
            }

/////////////////////////////////////// LV 18-27
            if (Utility.RandomDouble() < 0.10)
            {
                BaseArmor armor = Loot.RandomArmor(true);
                switch (Utility.Random(18))
                {
                case 0: armor = new HideFemaleChest(); break;                   // Lv18

                case 1: armor = new HideGloves(); break;                        // Lv18

                case 2: armor = new HideGorget(); break;                        // Lv18

                case 3: armor = new HidePants(); break;                         // Lv18

                case 4: armor = new HidePauldrons(); break;                     // Lv18

                case 5: armor = new StuddedDo(); break;                         // Lv21

                case 6: armor = new StuddedHaidate(); break;                    // Lv21

                case 7: armor = new StuddedHiroSode(); break;                   // Lv21

                case 8: armor = new StuddedMempo(); break;                      // Lv21

                case 9: armor = new StuddedSuneate(); break;                    // Lv21

                case 10: armor = new VikingStuddedArms(); break;                // Lv24

                case 11: armor = new VikingStuddedCap(); break;                 // Lv24

                case 12: armor = new VikingStuddedChest(); break;               // Lv24

                case 13: armor = new VikingStuddedLegs(); break;                // Lv24

                case 14: armor = new ChainChest(); break;                       // Lv27

                case 15: armor = new ChainCoif(); break;                        // Lv27

                case 16: armor = new ChainLegs(); break;                        // Lv27

                default: armor = new HideChest(); break;                        // Lv18
                }

                BaseRunicTool.ApplyAttributesTo(armor, 3, 5, 50);
                DropItem(armor);
            }

            if (Utility.RandomDouble() < 0.05)
            {
                BaseHat hat = Loot.RandomHat(true);
                BaseRunicTool.ApplyAttributesTo(hat, 3, 12, 15);
                DropItem(hat);
            }
            if (Utility.RandomDouble() < 0.05)
            {
                BaseClothing clothing = Loot.RandomClothing(true);
                BaseRunicTool.ApplyAttributesTo(clothing, 3, 12, 15);
                DropItem(clothing);
            }

            if (Utility.RandomDouble() < 0.05)
            {
                BaseShield shield1 = new Buckler();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(shield1, 3, 5, 50);
                }
                DropItem(shield1);
            }
            if (Utility.RandomDouble() < 0.05)
            {
                BaseShield shield2 = new WoodenShield();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(shield2, 3, 5, 50);
                }
                DropItem(shield2);
            }
            if (Utility.RandomDouble() < 0.05)
            {
                BaseShield shield3 = new AmmoniteShield();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(shield3, 3, 5, 50);
                }
                DropItem(shield3);
            }
            if (Utility.RandomDouble() < 0.05)
            {
                BaseShield shield4 = new BronzeShield();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(shield4, 3, 5, 50);
                }
                DropItem(shield4);
            }
            if (Utility.RandomDouble() < 0.05)
            {
                BaseShield shield5 = new MetalShield();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(shield5, 3, 5, 50);
                }
                DropItem(shield5);
            }
            if (Utility.RandomDouble() < 0.05)
            {
                BaseShield shield6 = new WoodenKiteShield();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(shield6, 3, 5, 50);
                }
                DropItem(shield6);
            }

            if (Utility.RandomDouble() < 0.05)
            {
                BaseJewel bracelet = new SilverBracelet();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(bracelet, 3, 12, 15);
                }
                DropItem(bracelet);
            }
            if (Utility.RandomDouble() < 0.05)
            {
                BaseJewel earrings = new SilverEarrings();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(earrings, 3, 12, 15);
                }
                DropItem(earrings);
            }
            if (Utility.RandomDouble() < 0.05)
            {
                BaseJewel necklace = new SilverNecklace();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(necklace, 3, 12, 15);
                }
                DropItem(necklace);
            }
            if (Utility.RandomDouble() < 0.05)
            {
                BaseJewel ring = new SilverRing();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(ring, 3, 12, 15);
                }
                DropItem(ring);
            }
        }
Пример #4
0
        public MongbatHideoutTreasureChest2() : base(0xE43)
        {
            Name    = "a treasure chest -50-";
            Movable = true;
            Weight  = 1000.0;

            TrapPower = 0;
            Locked    = true;

            RequiredSkill = 50;
            LockLevel     = 50;
            MaxLockLevel  = 80;

/////////////////////////////////// Gold
            if (Utility.RandomDouble() < 0.25)
            {
                DropItem(new Gold(Utility.Random(20, 300)));
            }

/////////////////////////////////////// Supplies

            switch (Utility.Random(18))
            {
            case 0: DropItem(new Board(70)); break;

            case 1: DropItem(new BoltOfCloth(70)); break;

            case 2: DropItem(new Bottle(70)); break;

            case 3: DropItem(new CopperWire(70)); break;

            case 4: DropItem(new Cotton(70)); break;

            case 5: DropItem(new DarkYarn(70)); break;

            case 6: DropItem(new Feather(70)); break;

            case 7: DropItem(new Flax(70)); break;

            case 8: DropItem(new Gears(70)); break;

            case 9: DropItem(new GoldWire(70)); break;

            case 10: DropItem(new IronIngot(70)); break;

            case 11: DropItem(new IronWire(70)); break;

            case 12: DropItem(new Leather(70)); break;

            case 13: DropItem(new LightYarn(70)); break;

            case 14: DropItem(new Shaft(70)); break;

            case 15: DropItem(new SilverWire(70)); break;

            case 16: DropItem(new SpoolOfThread(70)); break;

            case 17: DropItem(new Springs(70)); break;

            case 18: DropItem(new Wool(70)); break;
            }

            switch (Utility.Random(5))
            {
            case 0: DropItem(new BeetleEgg(25)); break;

            case 1: DropItem(new FishScale(25)); break;

            case 2: DropItem(new Nirnroot(25)); break;

            case 3: DropItem(new SerpentScale(25)); break;

            case 4: DropItem(new ThunderStone(25)); break;
            }

            Item ReagentLoot = Loot.RandomReagent();

            ReagentLoot.Amount = Utility.RandomMinMax(10, 15);
            DropItem(ReagentLoot);

            if (Utility.RandomDouble() < 0.05)
            {
                DropItem(new SackFlour());
            }

/////////////////////////////////////// Rare Items

            if (Utility.RandomDouble() < 0.01)
            {
                DropItem(new DyeTub());
            }

/////////////////////////////////////// LV 10-20
/////////////////////////////////////// LV 10-25 for staves
            if (Utility.RandomDouble() < 0.10)
            {
                BaseWeapon weapon = Loot.RandomWeapon(true);
                switch (Utility.Random(28))
                {
                case 0: weapon = new BattleAxe(); break;                   // Lv10

                case 1: weapon = new DoubleAxe(); break;                   // Lv20

                case 2: weapon = new MagicalShortbow(); break;             // Lv10

                case 3: weapon = new RepeatingCrossbow(); break;           // Lv10

                case 4: weapon = new ButcherKnife(); break;                // Lv10

                case 5: weapon = new CompositeBow(); break;                // Lv20

                case 6: weapon = new EbonyCrossbow(); break;               // Lv20

                case 7: weapon = new EbonyDagger(); break;                 // Lv10

                case 8: weapon = new Sai(); break;                         // Lv15

                case 9: weapon = new EbonyDualDaggers(); break;            // Lv20

                case 10: weapon = new Maul(); break;                       // Lv10

                case 11: weapon = new Scepter(); break;                    // Lv15

                case 12: weapon = new WarMace(); break;                    // Lv20

                case 13: weapon = new Pilum(); break;                      // Lv10

                case 14: weapon = new Pike(); break;                       // Lv15

                case 15: weapon = new Spear(); break;                      // Lv20

                case 16: weapon = new QuarterStaff(); break;               // Lv10

                case 17: weapon = new ReptilianStaff(); break;             // Lv15

                case 18: weapon = new BubbleStaff(); break;                // Lv25

                case 19: weapon = new CrystalStaff(); break;               // Lv25

                case 20: weapon = new EnergyStaff(); break;                // Lv25

                case 21: weapon = new FireStaff(); break;                  // Lv25

                case 22: weapon = new VineStaff(); break;                  // Lv25

                case 23: weapon = new EbonyRapier(); break;                // Lv10

                case 24: weapon = new Scimitar(); break;                   // Lv10

                case 25: weapon = new Longsword(); break;                  // Lv20

                case 26: weapon = new VikingSword(); break;                // Lv20

                default: weapon = new Wakizashi(); break;                  // Lv20
                }

                switch (Utility.Random(14))
                {
                case 0: weapon.Attributes.AttackChance = Utility.RandomMinMax(1, 5); break;

                case 1: weapon.Attributes.DefendChance = Utility.RandomMinMax(1, 5); break;

                case 2: weapon.Attributes.Luck = Utility.RandomMinMax(1, 10); break;

                case 3: weapon.Attributes.WeaponSpeed = Utility.RandomMinMax(1, 25); break;

                case 4: weapon.WeaponAttributes.HitDispel = Utility.RandomMinMax(2, 10); break;

                case 5: weapon.WeaponAttributes.HitFireball = Utility.RandomMinMax(2, 10); break;

                case 6: weapon.WeaponAttributes.HitHarm = Utility.RandomMinMax(2, 10); break;

                case 7: weapon.WeaponAttributes.HitLeechHits = Utility.RandomMinMax(2, 10); break;

                case 8: weapon.WeaponAttributes.HitLeechMana = Utility.RandomMinMax(2, 10); break;

                case 9: weapon.WeaponAttributes.HitLeechStam = Utility.RandomMinMax(2, 10); break;

                case 10: weapon.WeaponAttributes.HitLightning = Utility.RandomMinMax(2, 10); break;

                case 11: weapon.WeaponAttributes.HitLowerAttack = Utility.RandomMinMax(2, 10); break;

                case 12: weapon.WeaponAttributes.HitLowerDefend = Utility.RandomMinMax(2, 10); break;

                default: weapon.Attributes.WeaponDamage = Utility.RandomMinMax(1, 10); break;
                }

                switch (Utility.Random(14))
                {
                case 0: weapon.Attributes.AttackChance = Utility.RandomMinMax(1, 5); break;

                case 1: weapon.Attributes.DefendChance = Utility.RandomMinMax(1, 5); break;

                case 2: weapon.Attributes.Luck = Utility.RandomMinMax(1, 10); break;

                case 3: weapon.Attributes.WeaponSpeed = Utility.RandomMinMax(1, 25); break;

                case 4: weapon.WeaponAttributes.HitDispel = Utility.RandomMinMax(2, 10); break;

                case 5: weapon.WeaponAttributes.HitFireball = Utility.RandomMinMax(2, 10); break;

                case 6: weapon.WeaponAttributes.HitHarm = Utility.RandomMinMax(2, 10); break;

                case 7: weapon.WeaponAttributes.HitLeechHits = Utility.RandomMinMax(2, 10); break;

                case 8: weapon.WeaponAttributes.HitLeechMana = Utility.RandomMinMax(2, 10); break;

                case 9: weapon.WeaponAttributes.HitLeechStam = Utility.RandomMinMax(2, 10); break;

                case 10: weapon.WeaponAttributes.HitLightning = Utility.RandomMinMax(2, 10); break;

                case 11: weapon.WeaponAttributes.HitLowerAttack = Utility.RandomMinMax(2, 10); break;

                case 12: weapon.WeaponAttributes.HitLowerDefend = Utility.RandomMinMax(2, 10); break;

                default: weapon.Attributes.WeaponDamage = Utility.RandomMinMax(1, 10); break;
                }

                DropItem(weapon);
            }

/////////////////////////////////////// LV 12-18
            if (Utility.RandomDouble() < 0.10)
            {
                BaseArmor armor = Loot.RandomArmor(true);
                switch (Utility.Random(19))
                {
                case 0: armor = new ChitinArms(); break;                         // Lv12

                case 1: armor = new ChitinChest(); break;                        // Lv12

                case 2: armor = new ChitinGloves(); break;                       // Lv12

                case 3: armor = new ChitinGorget(); break;                       // Lv12

                case 4: armor = new ChitinHelmet(); break;                       // Lv12

                case 5: armor = new ChitinLegs(); break;                         // Lv12

                case 6: armor = new FemaleStuddedChest(); break;                 // Lv15

                case 7: armor = new StuddedArms(); break;                        // Lv15

                case 8: armor = new StuddedBustierArms(); break;                 // Lv15

                case 9: armor = new StuddedChest(); break;                       // Lv15

                case 10: armor = new StuddedGloves(); break;                     // Lv15

                case 11: armor = new StuddedGorget(); break;                     // Lv15

                case 12: armor = new StuddedLegs(); break;                       // Lv15

                case 13: armor = new HideFemaleChest(); break;                   // Lv18

                case 14: armor = new HideGloves(); break;                        // Lv18

                case 15: armor = new HideGorget(); break;                        // Lv18

                case 16: armor = new HidePants(); break;                         // Lv18

                case 17: armor = new HidePauldrons(); break;                     // Lv18

                default: armor = new HideChest(); break;                         // Lv18
                }

                BaseRunicTool.ApplyAttributesTo(armor, 3, 5, 50);
                DropItem(armor);
            }

            if (Utility.RandomDouble() < 0.10)
            {
                BaseHat hat = Loot.RandomHat(true);
                BaseRunicTool.ApplyAttributesTo(hat, 3, 5, 10);
                DropItem(hat);
            }
            if (Utility.RandomDouble() < 0.10)
            {
                BaseClothing clothing = Loot.RandomClothing(true);
                BaseRunicTool.ApplyAttributesTo(clothing, 3, 5, 10);
                DropItem(clothing);
            }

            if (Utility.RandomDouble() < 0.05)
            {
                BaseShield shield1 = new MetalShield();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(shield1, 3, 5, 50);
                }
                DropItem(shield1);
            }
            if (Utility.RandomDouble() < 0.05)
            {
                BaseShield shield2 = new WoodenKiteShield();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(shield2, 3, 5, 50);
                }
                DropItem(shield2);
            }
            if (Utility.RandomDouble() < 0.05)
            {
                BaseShield shield3 = new MetalKiteShield();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(shield3, 3, 5, 50);
                }
                DropItem(shield3);
            }

            if (Utility.RandomDouble() < 0.10)
            {
                BaseJewel bracelet = new SilverBracelet();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(bracelet, 3, 5, 10);
                }
                DropItem(bracelet);
            }
            if (Utility.RandomDouble() < 0.10)
            {
                BaseJewel earrings = new SilverEarrings();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(earrings, 3, 5, 10);
                }
                DropItem(earrings);
            }
            if (Utility.RandomDouble() < 0.10)
            {
                BaseJewel necklace = new SilverNecklace();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(necklace, 3, 5, 10);
                }
                DropItem(necklace);
            }
            if (Utility.RandomDouble() < 0.10)
            {
                BaseJewel ring = new SilverRing();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(ring, 3, 5, 10);
                }
                DropItem(ring);
            }
        }
		public override void OnResponse( NetState state, RelayInfo info ) //Function for GumpButtonType.Reply Buttons
		{
			Mobile from = state.Mobile;
			PlayerMobile pm = from as PlayerMobile;
			PlayerModule module = pm.PlayerModule;

			m_cost = 50;//MOD COST OF WEAPON HERE!!
			Item wep = from.FindItemOnLayer( Layer.FirstValid );
			Item weps = from.FindItemOnLayer( Layer.TwoHanded );
			Container pack = from.Backpack;
			
			if ( wep !=null )
				pack.TryDropItem( from, wep, false );
			
			if ( weps !=null )
				pack.TryDropItem( from, weps, false );

			switch ( info.ButtonID )
			{
				case 0: //Cancel
					{
						from.SendMessage( "You decide against spending your skill points." );
						//from.SendGump( new LevelGump( from ) );
						break;
					}
				case 1: //Katana
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Katana kat = new Katana();
							( ( Item )kat ).Name = "Katana [Level Item]";
							kat.Identified = true;//Prevents others from being used in the upgrading!
							kat.LootType = LootType.Blessed;
							from.EquipItem( kat );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 2: //Broad Sword
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Broadsword bs = new Broadsword();
							bs.Identified = true;
							bs.Name = "Broadsword";
							bs.LootType = LootType.Blessed;
							from.EquipItem( bs );
							from.SendMessage( 102, "You chose a Broadsword" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 3: //Scimitar
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Scimitar sc = new Scimitar();
							sc.Identified = true;
							sc.Name = "Scimitar";
							sc.LootType = LootType.Blessed;
							from.EquipItem( sc );
							from.SendMessage( 102, "You chose a Scimitar" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 4: //Viking sword
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							VikingSword vs = new VikingSword();
							vs.Identified = true;
							vs.Name = "Vikingsword";
							vs.LootType = LootType.Blessed;
							from.EquipItem( vs );
							from.SendMessage( 102, "You chose a Viking Sword" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 5: //Halberd
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Halberd hb = new Halberd();
							hb.Identified = true;
							hb.Name = "Halberd";
							hb.LootType = LootType.Blessed;
							from.EquipItem( hb );
							from.SendMessage( 102, "You chose a Halberd" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 6: //Bardiche
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Bardiche bd = new Bardiche();
							bd.Identified = true;
							bd.Name = "Bardiche";
							bd.LootType = LootType.Blessed;
							from.EquipItem( bd );
							from.SendMessage( 102, "You chose a Bardiche" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 7: //Double Axe
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							DoubleAxe da = new DoubleAxe();
							da.Identified = true;
							da.Name = "Double Axe";
							da.LootType = LootType.Blessed;
							from.EquipItem( da );
							from.SendMessage( 102, "You chose a Double Axe" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 8: //Large Battle Axe
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							LargeBattleAxe lba = new LargeBattleAxe();
							lba.Identified = true;
							lba.Name = "Large Battle Axe";
							lba.LootType = LootType.Blessed;
							from.EquipItem( lba );
							from.SendMessage( 102, "You chose a Large Battle Axe" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 9: //Axe
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Axe a = new Axe();
							a.Identified = true;
							a.Name = "Axe";
							a.LootType = LootType.Blessed;
							from.EquipItem( a );
							from.SendMessage( 102, "You chose an Axe" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 10: //Kryss
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Kryss k = new Kryss();
							k.Identified = true;
							k.Name = "Kryss";
							k.LootType = LootType.Blessed;
							from.EquipItem( k );
							from.SendMessage( 102, "You chose a Kryss" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 11: //War Fork
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							WarFork wf = new WarFork();
							wf.Identified = true;
							wf.Name = "War Fork";
							wf.LootType = LootType.Blessed;
							from.EquipItem( wf );
							from.SendMessage( 102, "You chose a War Fork" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 12: //Dagger
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Dagger d = new Dagger();
							d.Identified = true;
							d.Name = "Dagger";
							d.LootType = LootType.Blessed;
							from.EquipItem( d );
							from.SendMessage( 102, "You chose a Dagger" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 13: //Pike
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Pike p = new Pike();
							p.Identified = true;
							p.Name = "Pike";
							p.LootType = LootType.Blessed;
							from.EquipItem( p );
							from.SendMessage( 102, "You chose a Pike" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 14: //Short Spear
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							ShortSpear ss = new ShortSpear();
							ss.Identified = true;
							ss.Name = "Short Spear";
							ss.LootType = LootType.Blessed;
							from.EquipItem( ss );
							from.SendMessage( 102, "You chose a Short Spear" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 15: //Long Spear
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Spear ls = new Spear();
							ls.Identified = true;
							ls.Name = "Long Spear";
							ls.LootType = LootType.Blessed;
							from.EquipItem( ls );
							from.SendMessage( 102, "You chose a Long Spear" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 16: //Pitchfork
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Pitchfork p = new Pitchfork();
							p.Identified = true;
							p.Name = "Pitchfork";
							p.LootType = LootType.Blessed;
							from.EquipItem( p );
							from.SendMessage( 102, "You chose a Pitchfork" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 17: //lance
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Lance l = new Lance();
							l.Identified = true;
							l.Name = "Lance";
							l.LootType = LootType.Blessed;
							from.EquipItem( l );
							from.SendMessage( 102, "You chose a Lance" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 18: //Sai's
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Sai s = new Sai();
							s.Identified = true;
							s.Name = "Sai";
							s.LootType = LootType.Blessed;
							from.EquipItem( s );
							from.SendMessage( 102, "You chose Sai's" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 19: //War Mace
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							WarMace wm = new WarMace();
							wm.Identified = true;
							wm.Name = "War Mace";
							wm.LootType = LootType.Blessed;
							from.EquipItem( wm );
							from.SendMessage( 102, "You chose a War Mace" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 20: //War Hammer
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							WarHammer wh = new WarHammer();
							wh.Identified = true;
							wh.Name = "War Hammer";
							wh.LootType = LootType.Blessed;
							from.EquipItem( wh );
							from.SendMessage( 102, "You chose a War Hammer" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 21: //Maul
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Maul w = new Maul();
							w.Identified = true;
							w.Name = "Maul";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Maul" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 22: //Club
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Club w = new Club();
							w.Identified = true;
							w.Name = "Club";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Club" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 23: //Q Staff
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							QuarterStaff w = new QuarterStaff();
							w.Identified = true;
							w.Name = "Quarter Staff";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Quarter Staff" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 24: //G Staff
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							GnarledStaff w = new GnarledStaff();
							w.Identified = true;
							w.Name = "Gnarled Staff";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Gnarled Staff" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 25: //B Staff
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							BlackStaff w = new BlackStaff();
							w.Identified = true;
							w.Name = "BlackStaff";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Black Staff" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 26: //Hammer Pick
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							HammerPick w = new HammerPick();
							w.Identified = true;
							w.Name = "Hammer Pick";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Hammer Pick" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 27: //War Axe
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							WarAxe w = new WarAxe();
							w.Identified = true;
							w.Name = "War Axe";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a War Axe" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 28: //Bow
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Bow w = new Bow();
							w.Identified = true;
							w.Name = "Bow";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Bow" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 29: //Composite Bow
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							CompositeBow w = new CompositeBow();
							w.Identified = true;
							w.Name = "Composite Bow";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Composite Bow" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 30: //Crossbow
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Crossbow w = new Crossbow();
							w.Identified = true;
							w.Name = "Crossbow";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Crossbow" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 31: //Heavy Crossbow
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							HeavyCrossbow w = new HeavyCrossbow();
							w.Identified = true;
							w.Name = "Heavy Crossbow";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Heavy Crossbow" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 32: //Repeating Crossbow
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							RepeatingCrossbow w = new RepeatingCrossbow();
							w.Identified = true;
							w.Name = "Repeating Crossbow";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Repeating Crossbow" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 33: //Yumi
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Yumi w = new Yumi();
							w.Identified = true;
							w.Name = "Yumi";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Yumi" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
			}
		}
Пример #6
0
		public override void InitOutfit()
		{
			AddItem( new Backpack() );			
			AddItem( new Boots( 0x1BB ) );
						
			Item item;
			
			item = new LeatherLegs();
			item.Hue = 0x6C8;
			AddItem( item );
			
			item = new LeatherGloves();
			item.Hue = 0x1BB;
			AddItem( item );
			
			item = new LeatherChest();
			item.Hue = 0x1BB;
			AddItem( item );
			
			item = new LeatherArms();
			item.Hue = 0x4C7;
			AddItem( item );			
			
			item = new CompositeBow();
			item.Hue = 0x5DD;
			AddItem( item );
		}
Пример #7
0
        /// <summary>
        /// This is the function gives weaponry to players.
        /// </summary>
        private static void ArmPlayer(CTFPlayerGameData pgd)
        {
            Mobile m = pgd.Mob;

            if (!m.Alive)
                m.Resurrect();

            for (int i = m.Items.Count - 1; i >= 0; --i)
            {
                Item item = (Item)m.Items[i];
                if (item.Layer == Layer.OuterTorso)
                {
                    item.Delete();
                    break;
                }
            }

            List<Item> armthis = new List<Item>();

            if(GiveRobe)
                armthis.Add(new CTFRobe(pgd.Team));

            Item rankedCloth = null;
            CTFTeam team = pgd.Team;

            // 21 Ranks
            switch (CTFData.GetRank(m))
            {
                default:
                case 0: rankedCloth = new JesterHat(team.Hue); break;
                case 1: rankedCloth = new TallStrawHat(team.Hue); break;
                case 2: rankedCloth = new FloppyHat(team.Hue); break;
                case 3: rankedCloth = new WideBrimHat(team.Hue); break;
                case 4: rankedCloth = new Cap(team.Hue); break;
                case 5: rankedCloth = new SkullCap(team.Hue); break;
                case 6: rankedCloth = new FlowerGarland(team.Hue); break;
                case 7: rankedCloth = new StrawHat(team.Hue); break;
                case 8: rankedCloth = new FeatheredHat(team.Hue); break;
                case 9: rankedCloth = new TricorneHat(team.Hue); break;
                case 10: rankedCloth = new TribalMask(team.Hue); break;
                case 11: rankedCloth = new HornedTribalMask(team.Hue); break;
                case 12: rankedCloth = new BearMask(team.Hue); break;
                case 13: rankedCloth = new DeerMask(team.Hue); break;
                case 14: rankedCloth = new OrcishKinMask(team.Hue); break;
                case 15: rankedCloth = new SavageMask(team.Hue); break;
                case 16: rankedCloth = new WizardsHat(team.Hue); break;
                case 17: rankedCloth = new Bandana(team.Hue); break;
                case 18: rankedCloth = new ClothNinjaHood(team.Hue); break;
                case 19: rankedCloth = new Kasa(team.Hue); break;
                case 20:
                    rankedCloth = new BoneHelm();
                    rankedCloth.Hue = team.Hue;
                    ((BaseArmor)rankedCloth).ArmorAttributes.MageArmor = 1;
                    break;
            }
            if (rankedCloth != null)
            {
                rankedCloth.Movable = false;
                armthis.Add(rankedCloth);
            }

            //Alchemy removed by Blady
            /* 			if (m.Skills[SkillName.Alchemy].Value >= (m_MinSupplySkill + 15)) //80 Alchemy req - by Blady
            {
                for (int i = 0; i < 6; i++) //Amount reduced to 6 by Blady - used to be 10
                {
                    armthis.Add(new ExplosionPotion());
                    armthis.Add(new GreaterHealPotion());
                    armthis.Add(new GreaterCurePotion());
                    armthis.Add(new GreaterAgilityPotion());
                    armthis.Add(new RefreshPotion());
                    armthis.Add(new GreaterStrengthPotion());
                }
            } */

            if (m.Skills[SkillName.Chivalry].Value >= m_MinSupplySkill)
            {
                BookOfChivalry book = new BookOfChivalry();
                book.Content = 1023;//all spells
                armthis.Add(book);
            }

            if (m.Skills[SkillName.Necromancy].Value >= m_MinSupplySkill)
            {
                NecromancerSpellbook book = new NecromancerSpellbook();
                book.Content = 0x1FFFF;
                armthis.Add(book);
            }

            if (m.Skills[SkillName.Magery].Value >= m_MinSupplySkill)
            {
                GnarledStaff gs = new GnarledStaff();
                gs.Attributes.SpellChanneling = 1;
                gs.WeaponAttributes.MageWeapon = 20;
                armthis.Add(gs);

                Spellbook book = new Spellbook();
                book.Content = ulong.MaxValue;
                armthis.Add(book);
            }

            if (m.Skills[SkillName.Healing].Value >= m_MinSupplySkill)
                armthis.Add(new Bandage(1000));

            if (m.Skills[SkillName.Fencing].Value >= m_MinSupplySkill)
            {
                Spear sp = new Spear();
                sp.Attributes.SpellChanneling = 1;
                armthis.Add(sp);

                ShortSpear ssp = new ShortSpear();
                ssp.Attributes.SpellChanneling = 1;
                armthis.Add(ssp);

                WarFork wf = new WarFork();
                wf.Attributes.SpellChanneling = 1;
                armthis.Add(wf);

                Kryss k = new Kryss();
                k.Attributes.SpellChanneling = 1;
                armthis.Add(k);
            }

            if (m.Skills[SkillName.Swords].Value >= m_MinSupplySkill)
            {
                if (m.Skills[SkillName.Lumberjacking].Value >= m_MinSupplySkill)
                {
                    ExecutionersAxe ea = new ExecutionersAxe();
                    ea.Attributes.SpellChanneling = 1;
                    armthis.Add(ea);
                }

                Katana k = new Katana();
                k.Attributes.SpellChanneling = 1;
                armthis.Add(k);

                Longsword ls = new Longsword();
                ls.Attributes.SpellChanneling = 1;
                armthis.Add(ls);

                Cleaver c = new Cleaver();
                c.Attributes.SpellChanneling = 1;
                armthis.Add(c);

                BoneHarvester bh = new BoneHarvester();
                bh.Attributes.SpellChanneling = 1;
                armthis.Add(bh);
            }

            if (m.Skills[SkillName.Macing].Value >= m_MinSupplySkill)
            {
                WarAxe wa = new WarAxe();
                wa.Attributes.SpellChanneling = 1;
                armthis.Add(wa);

                HammerPick hp = new HammerPick();
                hp.Attributes.SpellChanneling = 1;
                armthis.Add(hp);

                QuarterStaff qs = new QuarterStaff();
                qs.Attributes.SpellChanneling = 1;
                armthis.Add(qs);
            }

            if (m.Skills[SkillName.Archery].Value >= m_MinSupplySkill)
            {
                Bow b = new Bow();
                b.Attributes.SpellChanneling = 1;
                armthis.Add(b);

                Crossbow xb = new Crossbow();
                xb.Attributes.SpellChanneling = 1;
                armthis.Add(xb);

                CompositeBow cb = new CompositeBow();
                cb.Attributes.SpellChanneling = 1;
                armthis.Add(cb);

                armthis.Add(new Arrow(150));
                armthis.Add(new Bolt(150));
            }

            if (m.Skills[SkillName.Poisoning].Value >= m_MinSupplySkill)
            {
                for (int i = 0; i < 2; i++)
                    armthis.Add(new GreaterPoisonPotion());
            }

            if (m.Skills[SkillName.Parry].Value >= m_MinSupplySkill)
            {
                MetalKiteShield ks = new MetalKiteShield();
                ks.Attributes.SpellChanneling = 1;
                armthis.Add(ks);
            }

            SunnySystem.ArmPlayer(m, armthis);
        }
Пример #8
0
        public ArcherPeacemaker() : base(AIType.AI_Archer, 8)
        {
            SetStr(70, 90);
            SetDex(100, 150);
            SetInt(20, 35);

            Item weapon;
            switch (Utility.Random(4))
            {
                case 0: weapon = new BarbedLongbow(); break;
                case 1: weapon = new CompositeBow(); break;
                case 2: weapon = new JukaBow(); break;
                default: weapon = new Bow(); break;
            }
            AddItem(weapon);

            AddItem(new Quiver());

            Container pack = new Backpack();
            pack.Movable = false;
            pack.DropItem(new Arrow(50));

            SetSkill(SkillName.Tactics, 70.1, 95.0);
            SetSkill(SkillName.Archery, 70.1, 100.0);
            SetSkill(SkillName.Fencing, 65.1, 100.0);
            SetSkill(SkillName.MagicResist, 80.1, 110.0);
            SetSkill(SkillName.Macing, 75.1, 100.0);
            SetSkill(SkillName.Wrestling, 65.1, 100.0);
            SetSkill(SkillName.Healing, 65.1, 75.0);
            SetSkill(SkillName.Anatomy, 80.1, 90.0);
        }
Пример #9
0
        public override void InitOutfit()
        {
            this.AddItem(new Backpack());			
            this.AddItem(new Boots(0x1BB));
						
            Item item;
			
            item = new LeatherLegs();
            item.Hue = 0x901;
            this.AddItem(item);
			
            item = new LeatherGloves();
            item.Hue = 0x1BB;
            this.AddItem(item);
			
            item = new LeatherChest();
            item.Hue = 0x1BB;
            this.AddItem(item);
			
            item = new LeatherArms();
            item.Hue = 0x901;
            this.AddItem(item);			
			
            item = new CompositeBow();
            item.Hue = 0x606;
            this.AddItem(item);
        }
        public TownChestBowyer() : base(0xE43)
        {
            Name    = "a metal chest -20-";
            Movable = true;
            Weight  = 1000.0;

            Hue = 83;

            TrapPower = 0;
            Locked    = true;

            RequiredSkill = 20;
            LockLevel     = 20;
            MaxLockLevel  = 25;

            // Gold
            if (Utility.RandomDouble() < 0.25)
            {
                DropItem(new Gold(Utility.Random(1, 50)));
            }

            // Supplies

            if (Utility.RandomDouble() < 0.15)
            {
                DropItem(new Bow());
            }

            if (Utility.RandomDouble() < 0.15)
            {
                DropItem(new Crossbow());
            }

            if (Utility.RandomDouble() < 0.08)
            {
                DropItem(new HeavyCrossbow());
            }

            if (Utility.RandomDouble() < 0.08)
            {
                DropItem(new CompositeBow());
            }

            if (Utility.RandomDouble() < 0.08)
            {
                DropItem(new RepeatingCrossbow());
            }

            if (Utility.RandomDouble() < 0.08)
            {
                DropItem(new ElvenCompositeLongbow());
            }

            if (Utility.RandomDouble() < 0.08)
            {
                DropItem(new MagicalShortbow());
            }

            if (Utility.RandomDouble() < 0.25)
            {
                DropItem(new Arrow(Utility.Random(50, 100)));
            }

            if (Utility.RandomDouble() < 0.25)
            {
                DropItem(new Bolt(Utility.Random(50, 100)));
            }

/////////////////////////////////////// Rare Items

            if (Utility.RandomDouble() < 0.25)
            {
                BaseWeapon weapon = Loot.RandomWeapon(true);
                switch (Utility.Random(4))
                {
                case 0: weapon = new CompositeBow(); break;

                case 1: weapon = new ElvenCompositeLongbow(); break;

                case 2: weapon = new MagicalShortbow(); break;

                default: weapon = new Bow(); break;
                }
                BaseRunicTool.ApplyAttributesTo(weapon, 5, 10, 15);

                DropItem(weapon);
            }

            if (Utility.RandomDouble() < 0.25)
            {
                BaseWeapon crossbow = Loot.RandomWeapon(true);
                switch (Utility.Random(3))
                {
                case 0: crossbow = new HeavyCrossbow(); break;

                case 1: crossbow = new RepeatingCrossbow(); break;

                default: crossbow = new Crossbow(); break;
                }
                BaseRunicTool.ApplyAttributesTo(crossbow, 5, 10, 15);

                DropItem(crossbow);
            }
        }
        public GuardiansChestWeaponsmith() : base(0xE43)
        {
            Name    = "a metal chest -20-";
            Movable = true;
            Weight  = 1000.0;

            Hue = 83;

            TrapPower = 0;
            Locked    = true;

            RequiredSkill = 20;
            LockLevel     = 20;
            MaxLockLevel  = 25;

            // Gold
            if (Utility.RandomDouble() < 0.25)
            {
                DropItem(new Gold(Utility.Random(1, 50)));
            }

            // Supplies

            if (Utility.RandomDouble() < 0.05)
            {
                DropItem(new CrescentBlade());
            }

            if (Utility.RandomDouble() < 0.10)
            {
                DropItem(new Scepter());
            }

            if (Utility.RandomDouble() < 0.05)
            {
                DropItem(new Scythe());
            }

            if (Utility.RandomDouble() < 0.10)
            {
                DropItem(new Arrow(Utility.Random(25, 30)));
            }

/////////////////////////////////////// Rare Items

            if (Utility.RandomDouble() < 0.15)
            {
                BaseWeapon weapon = Loot.RandomWeapon(true);
                switch (Utility.Random(11))
                {
                case 0: weapon = new BladedStaff(); break;

                case 1: weapon = new BoneHarvester(); break;

                case 2: weapon = new CompositeBow(); break;

                case 3: weapon = new CrescentBlade(); break;

                case 4: weapon = new DoubleBladedStaff(); break;

                case 5: weapon = new Lance(); break;

                case 6: weapon = new PaladinSword(); break;

                case 7: weapon = new Pike(); break;

                case 8: weapon = new RepeatingCrossbow(); break;

                case 9: weapon = new Scepter(); break;

                default: weapon = new Scythe(); break;
                }
                BaseRunicTool.ApplyAttributesTo(weapon, 5, 15, 20);

                DropItem(weapon);
            }
        }
Пример #12
0
        public static string MakeThisTask()
        {
            string task = null;

            switch (Utility.RandomMinMax(1, 10))
            {
            case 1: task = "Repair"; break;

            case 2: task = "Fix"; break;

            case 3: task = "Enhance"; break;

            case 4: task = "Modify"; break;

            case 5: task = "Restring"; break;

            case 6: task = "Engrave"; break;

            case 7: task = "Adjust"; break;

            case 8: task = "Improve"; break;

            case 9: task = "Align"; break;

            case 10: task = "Balance"; break;
            }

            if (Utility.RandomMinMax(1, 5) == 1)
            {
                Item item = null;

                switch (Utility.RandomMinMax(1, 7))
                {
                case 1: item = new Bow(); break;

                case 2: item = new Crossbow(); break;

                case 3: item = new HeavyCrossbow(); break;

                case 4: item = new RepeatingCrossbow(); break;

                case 5: item = new CompositeBow(); break;

                case 6: item = new MagicalShortbow(); break;

                case 7: item = new ElvenCompositeLongbow(); break;
                }

                bool evil   = false;
                bool orient = false;

                switch (Utility.RandomMinMax(1, 8))
                {
                case 1: evil = true; break;

                case 2: orient = true; break;
                }

                string sAdjective = "unusual";
                string eAdjective = "might";

                sAdjective = Server.LootPackEntry.MagicItemAdj("start", orient, evil, item.ItemID);
                eAdjective = Server.LootPackEntry.MagicItemAdj("end", orient, evil, item.ItemID);

                string name  = "item";
                string xName = ContainerFunctions.GetOwner("property");

                if (item.Name != null && item.Name != "")
                {
                    name = item.Name.ToLower();
                }
                if (name == "item")
                {
                    name = MorphingItem.AddSpacesToSentence((item.GetType()).Name).ToLower();
                }

                switch (Utility.RandomMinMax(0, 5))
                {
                case 0: name = sAdjective + " " + name + " of " + xName;        break;

                case 1: name = name + " of " + xName;                                           break;

                case 2: name = sAdjective + " " + name;                                         break;

                case 3: name = sAdjective + " " + name + " of " + xName;        break;

                case 4: name = name + " of " + xName;                                           break;

                case 5: name = sAdjective + " " + name;                                         break;
                }

                item.Delete();

                task = task + " their " + name;
            }
            else
            {
                string[] sWoods = new string[] { " ", " ash wood ", " cherry wood ", " ebony wood ", " golden oak ", " hickory ", " mahogany ", " oak ", " pine ", " ghost wood ", " rosewood ", " walnut wood ", " petrified wood ", " diftwood ", " elven wood " };
                string   sWood  = sWoods[Utility.RandomMinMax(0, (sWoods.Length - 1))];

                task = task + " their" + sWood;

                switch (Utility.RandomMinMax(1, 8))
                {
                case 1: task = task + "bow"; break;

                case 2: task = task + "crossbow"; break;

                case 3: task = task + "longbow"; break;

                case 4: task = task + "shortbow"; break;

                case 5: task = task + "repeating crossbow"; break;

                case 6: task = task + "heavy crossbow"; break;

                case 7: task = task + "composite longbow"; break;

                case 8: task = task + "composite shortbow"; break;
                }
            }

            return(task);
        }
        public DarkSentinel()
            : base(AIType.AI_Stealth, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Body = 0x191;
            Name = NameList.RandomName( "female" );
            RangePerception = 10;

            SetStr( 125, 130 );
            SetDex( 100, 125 );
            SetInt( 80, 90 );

            SetHits( 120, 145 );
            SetMana( 150, 160 );

            SetDamage( 10, 23 );

            SetDamageType( ResistanceType.Physical, 60 );
            SetDamageType( ResistanceType.Poison, 40 );

            SetResistance( ResistanceType.Physical, 35, 40 );
            SetResistance( ResistanceType.Fire, 35, 40 );
            SetResistance( ResistanceType.Cold, 35, 40 );
            SetResistance( ResistanceType.Poison, 35, 40 );
            SetResistance( ResistanceType.Energy, 35, 40 );

            SetSkill( SkillName.MagicResist, 80.1, 95.0 );
            SetSkill( SkillName.Tactics, 100.1, 105.0 );
            SetSkill( SkillName.Anatomy, 100.1, 105.0 );
            SetSkill( SkillName.Archery, 100.1, 110.0 );
            SetSkill( SkillName.Meditation, 95.1, 100.0 );
            SetSkill( SkillName.Focus, 90.1, 100.0 );
            SetSkill( SkillName.SpiritSpeak, 90.1, 100.0 );
            SetSkill( SkillName.Hiding, 95.1, 100.0 );

            Fame = 9000;
            Karma = -9000;

            VirtualArmor = 18;

            AddItem( new Sandals() );
            AddItem( new FemaleLeatherChest() );
            AddItem( new LeatherShorts() );
            AddItem( new LeatherGloves() );
            AddItem( new LeatherGorget() );
            AddItem( new LeatherCap() );
            AddItem( new LeatherArms() );

            CompositeBow weapon = new CompositeBow();

            weapon.Movable = false;
            weapon.Attributes.WeaponDamage = 40;
            weapon.Attributes.WeaponSpeed = 15;
            weapon.Attributes.AttackChance = 10;
            weapon.WeaponAttributes.HitLightning = 50;
            weapon.WeaponAttributes.HitFireball = 50;
            weapon.WeaponAttributes.HitMagicArrow = 50;
            weapon.WeaponAttributes.HitDispel = 100;

            weapon.Hue = 15;

            AddItem( weapon );
        }
        public IguanaCoveBossChest() : base(0xE43)
        {
            Name    = "a treasure chest -50-";
            Movable = true;
            Weight  = 1000.0;

            TrapPower = 0;
            Locked    = true;

            RequiredSkill = 50;
            LockLevel     = 50;
            MaxLockLevel  = 80;

/////////////////////////////////// Gold
            if (Utility.RandomDouble() < 0.25)
            {
                DropItem(new Gold(Utility.Random(250, 400)));
            }

/////////////////////////////////////// Jewelry

            if (Utility.RandomDouble() < 0.04)
            {
                DropItem(new Agate());
            }
            if (Utility.RandomDouble() < 0.04)
            {
                DropItem(new Beryl());
            }
            if (Utility.RandomDouble() < 0.04)
            {
                DropItem(new ChromeDiopside());
            }
            if (Utility.RandomDouble() < 0.04)
            {
                DropItem(new FireOpal());
            }
            if (Utility.RandomDouble() < 0.04)
            {
                DropItem(new MoonstoneCustom());
            }
            if (Utility.RandomDouble() < 0.04)
            {
                DropItem(new Onyx());
            }
            if (Utility.RandomDouble() < 0.04)
            {
                DropItem(new Opal());
            }
            if (Utility.RandomDouble() < 0.04)
            {
                DropItem(new Pearl());
            }
            if (Utility.RandomDouble() < 0.04)
            {
                DropItem(new TurquoiseCustom());
            }

            if (Utility.RandomDouble() < 0.03)
            {
                DropItem(new Bloodstone());
            }
            if (Utility.RandomDouble() < 0.03)
            {
                DropItem(new Citrine());
            }
            if (Utility.RandomDouble() < 0.03)
            {
                DropItem(new Demantoid());
            }
            if (Utility.RandomDouble() < 0.03)
            {
                DropItem(new Jasper());
            }
            if (Utility.RandomDouble() < 0.03)
            {
                DropItem(new Lolite());
            }
            if (Utility.RandomDouble() < 0.03)
            {
                DropItem(new Lupis());
            }
            if (Utility.RandomDouble() < 0.03)
            {
                DropItem(new Peridot());
            }
            if (Utility.RandomDouble() < 0.03)
            {
                DropItem(new Tsavorite());
            }
            if (Utility.RandomDouble() < 0.03)
            {
                DropItem(new Zircon());
            }

            if (Utility.RandomDouble() < 0.02)
            {
                DropItem(new Amber());
            }
            if (Utility.RandomDouble() < 0.02)
            {
                DropItem(new Amethyst());
            }
            if (Utility.RandomDouble() < 0.02)
            {
                DropItem(new Andalusite());
            }
            if (Utility.RandomDouble() < 0.02)
            {
                DropItem(new Chrysoberyl());
            }
            if (Utility.RandomDouble() < 0.02)
            {
                DropItem(new Garnet());
            }
            if (Utility.RandomDouble() < 0.02)
            {
                DropItem(new Jade());
            }
            if (Utility.RandomDouble() < 0.02)
            {
                DropItem(new Mandarin());
            }
            if (Utility.RandomDouble() < 0.02)
            {
                DropItem(new Morganite());
            }
            if (Utility.RandomDouble() < 0.02)
            {
                DropItem(new Paraiba());
            }
            if (Utility.RandomDouble() < 0.02)
            {
                DropItem(new TigerEye());
            }
            if (Utility.RandomDouble() < 0.02)
            {
                DropItem(new Tourmaline());
            }

            if (Utility.RandomDouble() < 0.01)
            {
                DropItem(new Alexandrite());
            }
            if (Utility.RandomDouble() < 0.01)
            {
                DropItem(new Ametrine());
            }
            if (Utility.RandomDouble() < 0.01)
            {
                DropItem(new Kunzite());
            }
            if (Utility.RandomDouble() < 0.01)
            {
                DropItem(new Ruby());
            }
            if (Utility.RandomDouble() < 0.01)
            {
                DropItem(new Sapphire());
            }
            if (Utility.RandomDouble() < 0.01)
            {
                DropItem(new Tanzanite());
            }
            if (Utility.RandomDouble() < 0.01)
            {
                DropItem(new Topaz());
            }
            if (Utility.RandomDouble() < 0.01)
            {
                DropItem(new Zultanite());
            }

            if (Utility.RandomDouble() < 0.01)
            {
                DropItem(new Diamond());
            }
            if (Utility.RandomDouble() < 0.01)
            {
                DropItem(new Emerald());
            }
            if (Utility.RandomDouble() < 0.01)
            {
                DropItem(new PinkQuartz());
            }
            if (Utility.RandomDouble() < 0.01)
            {
                DropItem(new StarSapphire());
            }

/////////////////////////////////////// Supplies

            switch (Utility.Random(18))
            {
            case 0: DropItem(new Board(80)); break;

            case 1: DropItem(new BoltOfCloth(80)); break;

            case 2: DropItem(new Bottle(80)); break;

            case 3: DropItem(new CopperWire(80)); break;

            case 4: DropItem(new Cotton(80)); break;

            case 5: DropItem(new DarkYarn(80)); break;

            case 6: DropItem(new Feather(80)); break;

            case 7: DropItem(new Flax(80)); break;

            case 8: DropItem(new Gears(80)); break;

            case 9: DropItem(new GoldWire(80)); break;

            case 10: DropItem(new IronIngot(80)); break;

            case 11: DropItem(new IronWire(80)); break;

            case 12: DropItem(new Leather(80)); break;

            case 13: DropItem(new LightYarn(80)); break;

            case 14: DropItem(new Shaft(80)); break;

            case 15: DropItem(new SilverWire(80)); break;

            case 16: DropItem(new SpoolOfThread(80)); break;

            case 17: DropItem(new Springs(80)); break;

            case 18: DropItem(new Wool(80)); break;
            }

            switch (Utility.Random(5))
            {
            case 0: DropItem(new ArcaneStone(25)); break;

            case 1: DropItem(new BeetleEgg(25)); break;

            case 2: DropItem(new DragonScale(25)); break;

            case 3: DropItem(new FishScale(25)); break;

            case 4: DropItem(new SerpentScale(25)); break;
            }

            Item ReagentLoot = Loot.RandomReagent();

            ReagentLoot.Amount = Utility.RandomMinMax(50, 100);
            DropItem(ReagentLoot);

            if (Utility.RandomDouble() < 0.05)
            {
                DropItem(new SackFlour());
            }

/////////////////////////////////////// Rare Items

            if (Utility.RandomDouble() < 0.01)
            {
                DropItem(new DyeTub());
            }

/////////////////////////////////////// LV 20-30
            if (Utility.RandomDouble() < 0.10)
            {
                BaseWeapon weapon = Loot.RandomWeapon(true);
                switch (Utility.Random(31))
                {
                case 0: weapon = new DoubleAxe(); break;                      // Lv20

                case 1: weapon = new TwoHandedAxe(); break;                   // Lv25

                case 2: weapon = new WarAxe(); break;                         // Lv30

                case 3: weapon = new CompositeBow(); break;                   // Lv20

                case 4: weapon = new EbonyCrossbow(); break;                  // Lv20

                case 5: weapon = new FireBow(); break;                        // Lv25

                case 6: weapon = new GrassBow(); break;                       // Lv25

                case 7: weapon = new IceBow(); break;                         // Lv25

                case 8: weapon = new LightningBow(); break;                   // Lv25

                case 9: weapon = new EbonyWarBow(); break;                    // Lv30

                case 10: weapon = new PistolCrossbow(); break;                // Lv30

                case 11: weapon = new EbonyDualDaggers(); break;              // Lv20

                case 12: weapon = new Tekagi(); break;                        // Lv25

                case 13: weapon = new ElvenSpellblade(); break;               // Lv30

                case 14: weapon = new WarMace(); break;                       // Lv20

                case 15: weapon = new Tessen(); break;                        // Lv25

                case 16: weapon = new HammerPick(); break;                    // Lv30

                case 17: weapon = new Spear(); break;                         // Lv20

                case 18: weapon = new BoneSpear(); break;                     // Lv25

                case 19: weapon = new BubbleStaff(); break;                   // Lv25

                case 20: weapon = new CrystalStaff(); break;                  // Lv25

                case 21: weapon = new EnergyStaff(); break;                   // Lv25

                case 22: weapon = new FireStaff(); break;                     // Lv25

                case 23: weapon = new VineStaff(); break;                     // Lv25

                case 24: weapon = new BlackStaff(); break;                    // Lv30

                case 25: weapon = new VikingSword(); break;                   // Lv20

                case 26: weapon = new Wakizashi(); break;                     // Lv20

                case 27: weapon = new Daisho(); break;                        // Lv30

                case 28: weapon = new EbonyScimitar(); break;                 // Lv30

                case 29: weapon = new RuneBlade(); break;                     // Lv30

                default: weapon = new Longsword(); break;                     // Lv20
                }

                BaseRunicTool.ApplyAttributesTo(weapon, 2, 5, 50);
                DropItem(weapon);
            }

/////////////////////////////////////// LV 18-27
            if (Utility.RandomDouble() < 0.10)
            {
                BaseArmor armor = Loot.RandomArmor(true);
                switch (Utility.Random(18))
                {
                case 0: armor = new HideFemaleChest(); break;                   // Lv18

                case 1: armor = new HideGloves(); break;                        // Lv18

                case 2: armor = new HideGorget(); break;                        // Lv18

                case 3: armor = new HidePants(); break;                         // Lv18

                case 4: armor = new HidePauldrons(); break;                     // Lv18

                case 5: armor = new StuddedDo(); break;                         // Lv21

                case 6: armor = new StuddedHaidate(); break;                    // Lv21

                case 7: armor = new StuddedHiroSode(); break;                   // Lv21

                case 8: armor = new StuddedMempo(); break;                      // Lv21

                case 9: armor = new StuddedSuneate(); break;                    // Lv21

                case 10: armor = new VikingStuddedArms(); break;                // Lv24

                case 11: armor = new VikingStuddedCap(); break;                 // Lv24

                case 12: armor = new VikingStuddedChest(); break;               // Lv24

                case 13: armor = new VikingStuddedLegs(); break;                // Lv24

                case 14: armor = new ChainChest(); break;                       // Lv27

                case 15: armor = new ChainCoif(); break;                        // Lv27

                case 16: armor = new ChainLegs(); break;                        // Lv27

                default: armor = new HideChest(); break;                        // Lv18
                }

                BaseRunicTool.ApplyAttributesTo(armor, 3, 5, 50);
                DropItem(armor);
            }

            if (Utility.RandomDouble() < 0.10)
            {
                BaseHat hat = Loot.RandomHat(true);
                BaseRunicTool.ApplyAttributesTo(hat, 3, 12, 15);
                DropItem(hat);
            }
            if (Utility.RandomDouble() < 0.10)
            {
                BaseClothing clothing = Loot.RandomClothing(true);
                BaseRunicTool.ApplyAttributesTo(clothing, 3, 12, 15);
                DropItem(clothing);
            }

            if (Utility.RandomDouble() < 0.05)
            {
                BaseShield shield1 = new MetalShield();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(shield1, 3, 5, 50);
                }
                DropItem(shield1);
            }
            if (Utility.RandomDouble() < 0.05)
            {
                BaseShield shield2 = new WoodenKiteShield();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(shield2, 3, 5, 50);
                }
                DropItem(shield2);
            }
            if (Utility.RandomDouble() < 0.05)
            {
                BaseShield shield3 = new MetalKiteShield();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(shield3, 3, 5, 50);
                }
                DropItem(shield3);
            }

            if (Utility.RandomDouble() < 0.10)
            {
                BaseJewel bracelet = new SilverBracelet();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(bracelet, 3, 12, 15);
                }
                DropItem(bracelet);
            }
            if (Utility.RandomDouble() < 0.10)
            {
                BaseJewel earrings = new SilverEarrings();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(earrings, 3, 12, 15);
                }
                DropItem(earrings);
            }
            if (Utility.RandomDouble() < 0.10)
            {
                BaseJewel necklace = new SilverNecklace();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(necklace, 3, 12, 15);
                }
                DropItem(necklace);
            }
            if (Utility.RandomDouble() < 0.10)
            {
                BaseJewel ring = new SilverRing();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(ring, 3, 12, 15);
                }
                DropItem(ring);
            }
        }
Пример #15
0
        public MerchantCrew()
            : base(AIType.AI_Paladin, FightMode.Aggressor, 10, 1, .2, .4)
        {
            Title = "the merchant";
            Hue = Race.RandomSkinHue();

            if (this.Female = Utility.RandomBool())
            {
                Body = 0x191;
                Name = NameList.RandomName("female");
                AddItem(new Skirt(Utility.RandomNeutralHue()));
            }
            else
            {
                Body = 0x190;
                Name = NameList.RandomName("male");
                AddItem(new ShortPants(Utility.RandomNeutralHue()));
            }

            bool magery = 0.33 > Utility.RandomDouble();

            SetStr(100, 125);
            SetDex(125, 150);
            SetInt(250, 400);
            SetHits(250, 400);
            SetDamage(15, 25);

            if (magery)
            {
                ChangeAIType(AIType.AI_Mage);
                SetSkill(SkillName.Magery, 100.0, 120.0);
                SetSkill(SkillName.EvalInt, 100.0, 120.0);
                SetSkill(SkillName.Meditation, 100.0, 120.0);
                SetSkill(SkillName.MagicResist, 100.0, 120.0);
            }

            SetSkill(SkillName.Archery, 100.0, 120.0);
            SetSkill(SkillName.Chivalry, 100.0, 120.0);
            SetSkill(SkillName.Focus, 100.0, 120.0);
            SetSkill(SkillName.Tactics, 100.0, 120.0);
            SetSkill(SkillName.Wrestling, 100.0, 120.0);
            SetSkill(SkillName.Anatomy, 100.0, 120.0);

            SetDamageType(ResistanceType.Physical, 70);
            SetResistance(ResistanceType.Physical, 45, 55);
            SetResistance(ResistanceType.Fire, 45, 55);
            SetResistance(ResistanceType.Cold, 45, 55);
            SetResistance(ResistanceType.Poison, 45, 55);
            SetResistance(ResistanceType.Energy, 45, 55);

            Item bow;

            switch (Utility.Random(4))
            {
                default:
                case 0: bow = new CompositeBow(); PackItem(new Arrow(25)); break;
                case 1: bow = new Crossbow(); PackItem(new Bolt(25)); break;
                case 2: bow = new Bow(); PackItem(new Arrow(25)); break;
                case 3: bow = new HeavyCrossbow(); PackItem(new Bolt(25)); break;
            }

            AddItem(bow);

            AddItem(new TricorneHat());
            AddItem(new FancyShirt());
            AddItem(new ShortPants());
            AddItem(new Boots(Utility.RandomNeutralHue()));
            AddItem(new GoldEarrings());

            Fame = 8000;
            Karma = 8000;
        }
Пример #16
0
        public static void EquipSociety(Armament a, Mobile m)
        {
            if (a == Armament.LightCavalry)
                a = (Armament)1;
            else if (a == Armament.HeavyCavalry)
                a = (Armament)3;

            switch (a)
            {
                case Armament.Light:
                    {
                        LeatherChest chest = new LeatherChest();
                        chest.Resource = CraftResource.BeastLeather;
                        chest.Hue = 2830;

                        LeatherArms arms = new LeatherArms();
                        arms.Resource = CraftResource.BeastLeather;
                        arms.Hue = 2830;

                        LeatherLegs legs = new LeatherLegs();
                        legs.Resource = CraftResource.BeastLeather;
                        legs.Hue = 2830;

                        LeatherGorget gorget = new LeatherGorget();
                        gorget.Resource = CraftResource.BeastLeather;
                        gorget.Hue = 2830;

                        LeatherGloves gloves = new LeatherGloves();
                        gloves.Resource = CraftResource.BeastLeather;
                        gloves.Hue = 2830;

                        ThighBoots boots = new ThighBoots();
                        boots.Resource = CraftResource.BeastLeather;
                        boots.Hue = 2830;

                        m.EquipItem(chest);
                        m.EquipItem(arms);
                        m.EquipItem(legs);
                        m.EquipItem(gorget);
                        m.EquipItem(gloves);
                        m.EquipItem(boots);

                        Shortsword ss = new Shortsword();
                        ss.Resource = CraftResource.Bronze;
                        m.EquipItem(ss);

                        VhalurianMetalKiteShield shield = new VhalurianMetalKiteShield();
                        shield.Resource = CraftResource.Bronze;
                        shield.Name = "Society of Rymaliel Kite Shield";
                        shield.Hue = 2413;
                        shield.ItemID = 15726;
                        m.EquipItem(shield);

                        break;
                    }
                case Armament.Medium:
                    {
                        ChainChest chest = new ChainChest();
                        chest.Resource = CraftResource.Bronze;
                        chest.Hue = 2830;

                        ChainArms arms = new ChainArms();
                        arms.Resource = CraftResource.Bronze;
                        arms.Hue = 2830;

                        ChainLegs legs = new ChainLegs();
                        legs.Resource = CraftResource.Bronze;
                        legs.Hue = 2830;

                        ChainGorget gorget = new ChainGorget();
                        gorget.Resource = CraftResource.Bronze;
                        gorget.Hue = 2830;

                        ChainGloves gloves = new ChainGloves();
                        gloves.Resource = CraftResource.Bronze;
                        gloves.Hue = 2830;

                        VhalurianMetalKiteShield shield = new VhalurianMetalKiteShield();
                        shield.Resource = CraftResource.Bronze;
                        shield.Name = "Society of Rymaliel Kite Shield";
                        shield.Hue = 2413;
                        shield.ItemID = 15726;
                        m.EquipItem(shield);

                        FlangedMace fm = new FlangedMace();
                        fm.Resource = CraftResource.Bronze;
                        m.EquipItem(fm);

                        ThighBoots boots = new ThighBoots();
                        boots.Resource = CraftResource.BeastLeather;
                        boots.Hue = 2989;

                        m.EquipItem(chest);
                        m.EquipItem(arms);
                        m.EquipItem(legs);
                        m.EquipItem(gorget);
                        m.EquipItem(gloves);
                        m.EquipItem(shield);
                        m.EquipItem(fm);
                        m.EquipItem(boots);

                        break;
                    }
                case Armament.Heavy:
                    {
                        PlateChest chest = new PlateChest();
                        chest.Resource = CraftResource.Bronze;
                        chest.Hue = 2830;

                        PlateArms arms = new PlateArms();
                        arms.Resource = CraftResource.Bronze;
                        arms.Hue = 2830;

                        PlateLegs legs = new PlateLegs();
                        legs.Resource = CraftResource.Bronze;
                        legs.Hue = 2830;

                        PlateGorget gorget = new PlateGorget();
                        gorget.Resource = CraftResource.Bronze;
                        gorget.Hue = 2830;

                        PlateGloves gloves = new PlateGloves();
                        gloves.Resource = CraftResource.Bronze;
                        gloves.Hue = 2830;

                        CloseHelm helm = new CloseHelm();
                        helm.Resource = CraftResource.Bronze;
                        helm.Hue = 2830;

                        VhalurianMetalKiteShield shield = new VhalurianMetalKiteShield();
                        shield.Resource = CraftResource.Bronze;
                        shield.Name = "Society of Rymaliel Kite Shield";
                        shield.Hue = 2413;
                        shield.ItemID = 15726;
                        m.EquipItem(shield);

                        Longsword sword = new Longsword();
                        sword.Resource = CraftResource.Iron;

                        m.EquipItem(chest);
                        m.EquipItem(arms);
                        m.EquipItem(legs);
                        m.EquipItem(gorget);
                        m.EquipItem(gloves);
                        m.EquipItem(shield);
                        m.EquipItem(helm);
                        m.EquipItem(sword);

                        m.EquipItem(new ElegantCloak(2751));

                        break;
                    }
                case Armament.Ranged:
                    {
                        LeatherChest chest = new LeatherChest();
                        chest.Resource = CraftResource.BeastLeather;
                        chest.Hue = 2830;

                        LongPants legs = new LongPants();
                        legs.Resource = CraftResource.Wool;
                        legs.Hue = 2830;

                        LeatherGorget gorget = new LeatherGorget();
                        gorget.Resource = CraftResource.BeastLeather;
                        gorget.Hue = 2830;

                        LeatherGloves gloves = new LeatherGloves();
                        gloves.Resource = CraftResource.BeastLeather;
                        gloves.Hue = 2830;

                        ThighBoots boots = new ThighBoots();
                        boots.Resource = CraftResource.BeastLeather;
                        boots.Hue = 2830;

                        WingedHelm helm = new WingedHelm();
                        helm.Resource = CraftResource.Copper;

                        CompositeBow bow = new CompositeBow();
                        bow.Resource = CraftResource.Ash;

                        m.EquipItem(chest);
                        m.EquipItem(legs);
                        m.EquipItem(gorget);
                        m.EquipItem(gloves);
                        m.EquipItem(boots);
                        m.EquipItem(helm);
                        m.EquipItem(bow);

                        if (m is BaseCreature)
                        {
                            BaseCreature bc = m as BaseCreature;
                            bc.AI = AIType.AI_Archer;
                            bc.PackItem(new Arrow(Utility.RandomMinMax(10, 20)));
                        }

                        break;
                    }
            }

            Surcoat coat = new Surcoat();
            coat.ItemID = 15483;
            coat.Name = "A Surcoat of the Society of Rymaliel";
            m.EquipItem(coat);
        }
Пример #17
0
        public Raider()
            : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Title = "the raider";
            Hue = Utility.RandomSkinHue();
            Utility.AssignRandomHair(this);

            SetStr(150, 200);
            SetDex(125, 150);
            SetInt(95, 110);

            SetHits(400, 650);
            SetDamage(21, 28);

            if (this.Female = Utility.RandomBool())
            {
                Body = 0x191;
                Name = NameList.RandomName("female");
                EquipItem(new Skirt(Utility.RandomNeutralHue()));
            }
            else
            {
                Body = 0x190;
                Name = NameList.RandomName("male");
                EquipItem(new ShortPants(Utility.RandomNeutralHue()));
            }

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 45, 55);
            SetResistance(ResistanceType.Fire, 45, 55);
            SetResistance(ResistanceType.Cold, 45, 55);
            SetResistance(ResistanceType.Poison, 45, 55);
            SetResistance(ResistanceType.Energy, 45, 55);

            SetSkill(SkillName.MagicResist, 50.0, 75.5);
            SetSkill(SkillName.Archery, 90.0, 105.5);
            SetSkill(SkillName.Tactics, 90.0, 105.5);
            SetSkill(SkillName.Anatomy, 90.0, 105.5);

            Fame = 7500;
            Karma = -7500;

            SetWearable(new TricorneHat());
            SetWearable(new LeatherArms());
            SetWearable(new FancyShirt());
            SetWearable(new Cutlass());
            SetWearable(new Boots(Utility.RandomNeutralHue()));
            SetWearable(new GoldEarrings());

            Item bow;

            switch (Utility.Random(4))
            {
                default:
                case 0: bow = new CompositeBow(); PackItem(new Arrow(25)); break;
                case 1: bow = new Crossbow(); PackItem(new Bolt(25)); break;
                case 2: bow = new Bow(); PackItem(new Arrow(25)); break;
                case 3: bow = new HeavyCrossbow(); PackItem(new Bolt(25)); break;
            }

            SetWearable(bow);

            ControlSlots = 0;
        }