Пример #1
0
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        public static Item CreateBowItem()
        {
            Item item = null;

            int nType = Utility.RandomMinMax(0, 7);

            switch (nType)
            {
            case 0:         item = new Crossbow();                          item.Name = "crossbow";                         break;

            case 1:         item = new HeavyCrossbow();                     item.Name = "heavy crossbow";           break;

            case 2:         item = new RepeatingCrossbow();         item.Name = "repeating crossbow";       break;

            case 3:         item = new CompositeBow();                      item.Name = "composite bow";            break;

            case 4:         item = new Bow();                                       item.Name = "bow";                                      break;

            case 5:         item = new ElvenCompositeLongbow();     item.Name = "woodland longbow";         break;

            case 6:         item = new MagicalShortbow();           item.Name = "woodland shortbow";                break;

            case 7:         item = new Yumi();                                      item.Name = "yumi";                                     break;
            }

            return(item);
        }
Пример #2
0
        public override void OnAfterSpawn()
        {
            base.OnAfterSpawn();
            Server.Misc.TavernPatrons.RemoveSomeGear(this, false);
            Server.Misc.MorphingTime.CheckNecromancer(this);
            Server.Items.EssenceBase.ColorCitizen(this);
            Item bow = new Bow();

            bow.Delete();
            switch (Utility.RandomMinMax(1, 6))
            {
            case 1: bow = new Bow();                                break;

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

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

            case 4: bow = new CompositeBow();               break;

            case 5: bow = new Yumi();                               break;

            case 6: bow = new RepeatingCrossbow();  break;
            }
            bow.Movable = false;
            AddItem(bow);
        }
Пример #3
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);
        }
Пример #4
0
        public AmazonHuntress() : base(AIType.AI_Archer, FightMode.Closest, 5, 1, 0.45, 0.45)
        {
            Title = "an Amazon Huntress";

            SetSkill(SkillName.Parry, 40.0, 60.0);
            SetSkill(SkillName.Archery, 40.0, 60.0);
            SetSkill(SkillName.Tactics, 50.0, 70.0);
            SetSkill(SkillName.MagicResist, 100.0);

            AddItem(MakeAmazonArmor(new FemaleLeatherChest()));
            AddItem(MakeAmazonArmor(new LeatherGloves()));
            AddItem(MakeAmazonArmor(new Boots()));

            if (Utility.Random(350) == 0)
            {
                AddItem(new JadeNecklace());
            }

            if (0.10 > Utility.RandomDouble())
            {
                HeavyCrossbow weapon = new HeavyCrossbow();

                double random = Utility.RandomDouble();
                if (0.025 > random)
                {
                    weapon.DamageLevel = PseudoSeerStone.Instance != null ? (WeaponDamageLevel)PseudoSeerStone.Instance._HighestDamageLevelSpawn : WeaponDamageLevel.Vanq;
                }
                else if (0.075 > random)
                {
                    weapon.DamageLevel = WeaponDamageLevel.Force;
                }

                AddItem(MakeAmazonArmor(weapon));
            }
            else
            {
                AddItem(new Crossbow());
            }



            Fame  = 100;
            Karma = -3000;

            SetStr(50, 65);
            SetDex(50, 55);
            SetInt(10, 13);

            SetHits(180, 200);

            SetDamage(6, 10);



            VirtualArmor = 30;
        }
Пример #5
0
            public InternalBuyInfo()
            {
                Add(new GenericBuyInfo("Hatchet", typeof(Hatchet), Hatchet.GetSBPurchaseValue(), 50, 0xF43, 0));
                Add(new GenericBuyInfo("Saw", typeof(Saw), Saw.GetSBPurchaseValue(), 50, 0x1034, 0));

                Add(new GenericBuyInfo("Arrow", typeof(Arrow), Arrow.GetSBPurchaseValue(), 500, 0xF3F, 0));
                Add(new GenericBuyInfo("Bolt", typeof(Bolt), Bolt.GetSBPurchaseValue(), 500, 0x1BFB, 0));

                Add(new GenericBuyInfo("Bow", typeof(Bow), Bow.GetSBPurchaseValue(), 25, 0x13B2, 0));
                Add(new GenericBuyInfo("Crossbow", typeof(Crossbow), Crossbow.GetSBPurchaseValue(), 25, 0xF50, 0));
                Add(new GenericBuyInfo("Heavy Crossbow", typeof(HeavyCrossbow), HeavyCrossbow.GetSBPurchaseValue(), 25, 0x13FD, 0));
            }
Пример #6
0
            public InternalSellInfo()
            {
                Add(typeof(Hatchet), Hatchet.GetSBSellValue());
                Add(typeof(Saw), Saw.GetSBSellValue());

                //Add(typeof(Arrow), Arrow.GetSBSellValue());
                //Add(typeof(Bolt), Bolt.GetSBSellValue());

                Add(typeof(Bow), Bow.GetSBSellValue());
                Add(typeof(Crossbow), Crossbow.GetSBSellValue());
                Add(typeof(HeavyCrossbow), HeavyCrossbow.GetSBSellValue());
            }
Пример #7
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;
        }
Пример #8
0
        public FemaleNecromancer() : base(AIType.AI_Mage, FightMode.Weakest, 10, 1, 0.1, 0.2)
        {
            Name  = NameList.RandomName("female");
            Title = "the necromancess";
            Body  = 401;
            Hue   = 0x83EC;

            SetStr(305, 425);
            SetDex(82, 130);
            SetInt(505, 750);

            SetHits(2000, 3500);
            SetStam(200, 300);

            SetDamage(20, 30);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 25, 30);
            SetResistance(ResistanceType.Fire, 35, 45);
            SetResistance(ResistanceType.Cold, 50, 60);
            SetResistance(ResistanceType.Poison, 30, 40);
            SetResistance(ResistanceType.Energy, 20, 30);

            SetSkill(SkillName.EvalInt, 105.0);
            SetSkill(SkillName.Magery, 100.0);
            SetSkill(SkillName.Meditation, 500.0);
            SetSkill(SkillName.MagicResist, 150.0);
            SetSkill(SkillName.Tactics, 100.0, 100.0);
            SetSkill(SkillName.Wrestling, 100.0, 100.0);

            Fame  = 22500;
            Karma = -22500;

            VirtualArmor = 55;
            Female       = true;

            Item shroud = new HoodedShroudOfShadows();

            shroud.Movable = false;
            shroud.Hue     = 1157;
            AddItem(shroud);
            AddItem(new NecromaticMask());
            HeavyCrossbow weapon = new HeavyCrossbow();

            weapon.Skill   = SkillName.Wrestling;
            weapon.Hue     = 38;
            weapon.Movable = false;

            AddItem(weapon);

            new NecroMount().Rider = this;
        }
Пример #9
0
            public InternalBuyInfo()
            {
                Add(new GenericBuyInfo("Hatchet", typeof(Hatchet), Hatchet.GetSBPurchaseValue(), 50, 0xF43, 0));
                Add(new GenericBuyInfo("Saw", typeof(Saw), Saw.GetSBPurchaseValue(), 50, 0x1034, 0));

                Add(new GenericBuyInfo("Arrow", typeof(Arrow), Arrow.GetSBPurchaseValue(), 500, 0xF3F, 0));
                Add(new GenericBuyInfo("Bolt", typeof(Bolt), Bolt.GetSBPurchaseValue(), 500, 0x1BFB, 0));

                Add(new GenericBuyInfo("Bow", typeof(Bow), Bow.GetSBPurchaseValue(), 25, 0x13B2, 0));
                Add(new GenericBuyInfo("Crossbow", typeof(Crossbow), Crossbow.GetSBPurchaseValue(), 25, 0xF50, 0));
                Add(new GenericBuyInfo("Heavy Crossbow", typeof(HeavyCrossbow), HeavyCrossbow.GetSBPurchaseValue(), 25, 0x13FD, 0));

                Add(new AnimalBuyInfo(1, "Eagle", typeof(Eagle), Eagle.GetSBPurchaseValue(), 10, 0x5, 0));
                Add(new AnimalBuyInfo(1, "Panther", typeof(Panther), Panther.GetSBPurchaseValue(), 10, 0xD6, 0));
                Add(new AnimalBuyInfo(1, "Timber Wolf", typeof(TimberWolf), TimberWolf.GetSBPurchaseValue(), 10, 0xE1, 0));
                Add(new AnimalBuyInfo(1, "Brown Bear", typeof(BrownBear), BrownBear.GetSBPurchaseValue(), 10, 0xA7, 0));
                Add(new AnimalBuyInfo(1, "Grizzly Bear", typeof(GrizzlyBear), GrizzlyBear.GetSBPurchaseValue(), 10, 0xD4, 0));
            }
Пример #10
0
            public InternalBuyInfo()
            {
                Add(new GenericBuyInfo("Dagger", typeof(Dagger), Dagger.GetSBPurchaseValue(), 25, 0xF52, 0));
                Add(new GenericBuyInfo("Kryss", typeof(Kryss), Kryss.GetSBPurchaseValue(), 25, 0x1401, 0));
                Add(new GenericBuyInfo("War Fork", typeof(WarFork), WarFork.GetSBPurchaseValue(), 25, 0x1405, 0));
                Add(new GenericBuyInfo("Short Spear", typeof(ShortSpear), ShortSpear.GetSBPurchaseValue(), 25, 0x1403, 0));
                Add(new GenericBuyInfo("Pitchfork", typeof(Pitchfork), Pitchfork.GetSBPurchaseValue(), 25, 0xE87, 0));
                Add(new GenericBuyInfo("Spear", typeof(Spear), Spear.GetSBPurchaseValue(), 25, 0xF62, 0));

                Add(new GenericBuyInfo("Hammer Pick", typeof(HammerPick), HammerPick.GetSBPurchaseValue(), 25, 0x143D, 0));
                Add(new GenericBuyInfo("War Axe", typeof(WarAxe), WarAxe.GetSBPurchaseValue(), 25, 0x13B0, 0));
                Add(new GenericBuyInfo("Mace", typeof(Mace), Mace.GetSBPurchaseValue(), 25, 0xF5C, 0));
                Add(new GenericBuyInfo("Maul", typeof(Maul), Maul.GetSBPurchaseValue(), 25, 0x143B, 0));
                Add(new GenericBuyInfo("WarHammer", typeof(WarHammer), WarHammer.GetSBPurchaseValue(), 25, 0x1439, 0));
                Add(new GenericBuyInfo("War Mace", typeof(WarMace), WarMace.GetSBPurchaseValue(), 25, 0x1407, 0));

                Add(new GenericBuyInfo("Butcher Knife", typeof(ButcherKnife), ButcherKnife.GetSBPurchaseValue(), 25, 0x13F6, 0));
                Add(new GenericBuyInfo("Skinning Knife", typeof(SkinningKnife), SkinningKnife.GetSBPurchaseValue(), 25, 0xEC4, 0));
                Add(new GenericBuyInfo("Cleaver", typeof(Cleaver), Cleaver.GetSBPurchaseValue(), 25, 0xEC3, 0));
                Add(new GenericBuyInfo("Cutlass", typeof(Cutlass), Cutlass.GetSBPurchaseValue(), 25, 0x1441, 0));
                Add(new GenericBuyInfo("Katana", typeof(Katana), Katana.GetSBPurchaseValue(), 25, 0x13FF, 0));
                Add(new GenericBuyInfo("Scimitar", typeof(Scimitar), Scimitar.GetSBPurchaseValue(), 25, 0x13B6, 0));
                Add(new GenericBuyInfo("Broadsword", typeof(Broadsword), Broadsword.GetSBPurchaseValue(), 25, 0xF5E, 0));
                Add(new GenericBuyInfo("Longsword", typeof(Longsword), Longsword.GetSBPurchaseValue(), 25, 0xF61, 0));
                Add(new GenericBuyInfo("Viking Sword", typeof(VikingSword), VikingSword.GetSBPurchaseValue(), 25, 0x13B9, 0));
                Add(new GenericBuyInfo("Axe", typeof(Axe), Axe.GetSBPurchaseValue(), 25, 0xF49, 0));
                Add(new GenericBuyInfo("Battle Axe", typeof(BattleAxe), BattleAxe.GetSBPurchaseValue(), 25, 0xF47, 0));
                Add(new GenericBuyInfo("Double Axe", typeof(DoubleAxe), DoubleAxe.GetSBPurchaseValue(), 25, 0xF4B, 0));
                Add(new GenericBuyInfo("Executioner's Axe", typeof(ExecutionersAxe), ExecutionersAxe.GetSBPurchaseValue(), 25, 0xF45, 0));
                Add(new GenericBuyInfo("Large Battle Axe", typeof(LargeBattleAxe), LargeBattleAxe.GetSBPurchaseValue(), 25, 0x13FB, 0));
                Add(new GenericBuyInfo("Two-Handed Axe", typeof(TwoHandedAxe), TwoHandedAxe.GetSBPurchaseValue(), 25, 0x1443, 0));
                Add(new GenericBuyInfo("Bardiche", typeof(Bardiche), Bardiche.GetSBPurchaseValue(), 25, 0xF4D, 0));
                Add(new GenericBuyInfo("Halberd", typeof(Halberd), Halberd.GetSBPurchaseValue(), 25, 0x143E, 0));

                Add(new GenericBuyInfo("Bow", typeof(Bow), Bow.GetSBPurchaseValue(), 25, 0x13B2, 0));
                Add(new GenericBuyInfo("Crossbow", typeof(Crossbow), Crossbow.GetSBPurchaseValue(), 25, 0xF50, 0));
                Add(new GenericBuyInfo("Heavy Crossbow", typeof(HeavyCrossbow), HeavyCrossbow.GetSBPurchaseValue(), 25, 0x13FD, 0));
            }
Пример #11
0
            public InternalSellInfo()
            {
                Add(typeof(Dagger), Dagger.GetSBSellValue());
                Add(typeof(Kryss), Kryss.GetSBSellValue());
                Add(typeof(WarFork), WarFork.GetSBSellValue());
                Add(typeof(ShortSpear), ShortSpear.GetSBSellValue());
                Add(typeof(Pitchfork), Pitchfork.GetSBSellValue());
                Add(typeof(Spear), Spear.GetSBSellValue());

                Add(typeof(HammerPick), HammerPick.GetSBSellValue());
                Add(typeof(WarAxe), WarAxe.GetSBSellValue());
                Add(typeof(Mace), Mace.GetSBSellValue());
                Add(typeof(Maul), Maul.GetSBSellValue());
                Add(typeof(WarHammer), WarHammer.GetSBSellValue());
                Add(typeof(WarMace), WarMace.GetSBSellValue());

                Add(typeof(ButcherKnife), ButcherKnife.GetSBSellValue());
                Add(typeof(SkinningKnife), SkinningKnife.GetSBSellValue());
                Add(typeof(Cleaver), Cleaver.GetSBSellValue());
                Add(typeof(Cutlass), Cutlass.GetSBSellValue());
                Add(typeof(Katana), Katana.GetSBSellValue());
                Add(typeof(Scimitar), Scimitar.GetSBSellValue());
                Add(typeof(Broadsword), Broadsword.GetSBSellValue());
                Add(typeof(Longsword), Longsword.GetSBSellValue());
                Add(typeof(VikingSword), VikingSword.GetSBSellValue());
                Add(typeof(Axe), Axe.GetSBSellValue());
                Add(typeof(BattleAxe), BattleAxe.GetSBSellValue());
                Add(typeof(DoubleAxe), DoubleAxe.GetSBSellValue());
                Add(typeof(ExecutionersAxe), ExecutionersAxe.GetSBSellValue());
                Add(typeof(LargeBattleAxe), LargeBattleAxe.GetSBSellValue());
                Add(typeof(TwoHandedAxe), TwoHandedAxe.GetSBSellValue());
                Add(typeof(Bardiche), Bardiche.GetSBSellValue());
                Add(typeof(Halberd), Halberd.GetSBSellValue());

                Add(typeof(Bow), Bow.GetSBSellValue());
                Add(typeof(Crossbow), Crossbow.GetSBSellValue());
                Add(typeof(HeavyCrossbow), HeavyCrossbow.GetSBSellValue());
            }
Пример #12
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 (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;
        }
Пример #13
0
        public override void GenerateItems()
        {
            int colorTheme  = Utility.RandomDyedHue();
            int customTheme = 2051;

            m_Items.Add(new PlateGloves()
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new PlateGorget()
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new StuddedArms()
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new ChainmailChest()
            {
                LootType = LootType.Blessed
            });

            m_Items.Add(new BodySash(customTheme)
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new Kilt(customTheme)
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new PlateLegs()
            {
                Hue = customTheme, LootType = LootType.Blessed
            });

            m_Items.Add(new Bandana(colorTheme)
            {
                LootType = LootType.Blessed
            });

            switch (Utility.RandomMinMax(1, 6))
            {
            case 1: { m_Items.Add(new Cutlass()
                    {
                        LootType = LootType.Blessed
                    }); m_Items.Add(new BronzeShield()
                    {
                        Hue = customTheme, LootType = LootType.Blessed
                    }); break; }

            case 2: { m_Items.Add(new Scimitar()
                    {
                        LootType = LootType.Blessed
                    }); m_Items.Add(new BronzeShield()
                    {
                        Hue = customTheme, LootType = LootType.Blessed
                    }); break; }

            case 3: { m_Items.Add(new WarMace()
                    {
                        LootType = LootType.Blessed
                    }); m_Items.Add(new BronzeShield()
                    {
                        Hue = customTheme, LootType = LootType.Blessed
                    }); break; }

            case 4: { m_Items.Add(new WarFork()
                    {
                        LootType = LootType.Blessed
                    }); m_Items.Add(new BronzeShield()
                    {
                        Hue = customTheme, LootType = LootType.Blessed
                    }); break; }

            case 5: { m_Items.Add(new WarHammer()
                    {
                        LootType = LootType.Blessed
                    }); break; }

            case 6: { m_Items.Add(new ExecutionersAxe()
                    {
                        LootType = LootType.Blessed
                    }); break; }
            }

            HeavyCrossbow bow = new HeavyCrossbow();

            bow.LootType = LootType.Blessed;
            m_Items.Add(bow);

            Utility.AssignRandomHair(this, Utility.RandomHairHue());
        }
Пример #14
0
        public MerchantCrew()
            : base(AIType.AI_Paladin, FightMode.Aggressor, 10, 1, .2, .4)
        {
            Title = "the merchant";
            Hue   = Race.RandomSkinHue();

            if (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 Boots(Utility.RandomNeutralHue()));
            AddItem(new GoldEarrings());

            Fame  = 8000;
            Karma = 8000;
        }
Пример #15
0
        public RangerGuardOfSkaddria() : base(AIType.AI_Archer, FightMode.Closest, 15, 1, 0.1, 0.2)
        {
            Title = "Ranger Guard of Skaddria Naddheim";

            SetStr(850, 900);
            SetDex(500, 700);
            SetInt(100, 200);

            SetHits(1500, 2000);

            SetDamage(19, 35);

            SetSkill(SkillName.Anatomy, 100.0, 100.0);
            SetSkill(SkillName.Archery, 100.0, 100.0);
            SetSkill(SkillName.Tactics, 100.0, 100.0);
            SetSkill(SkillName.MagicResist, 100.0, 100.0);

            Karma = 10000;

            m_Timer = new MoveTimer(this);
            ChangeLocation();

            AddItem(new HighBoots(23));
            AddItem(new PlumeCloak(313));

            StuddedGorget gorget = new StuddedGorget();

            gorget.Hue     = 23;
            gorget.Movable = true;
            AddItem(gorget);

            StuddedArms arms = new StuddedArms();

            arms.Hue     = 23;
            arms.Movable = true;
            AddItem(arms);

            StuddedGloves gloves = new StuddedGloves();

            gloves.Hue     = 313;
            gloves.Movable = true;
            AddItem(gloves);

            if (Female = Utility.RandomBool())
            {
                Body = 401;
                Name = NameList.RandomName("female");

                FemaleStuddedChest chest = new FemaleStuddedChest();
                chest.Hue     = 313;
                chest.Movable = true;
                AddItem(chest);

                RepeatingCrossbow weapon = new RepeatingCrossbow();
                BaseRunicTool.ApplyAttributesTo(weapon, 5, 25, 35);
                weapon.WeaponAttributes.HitLightning = 25;
                weapon.Hue     = 23;
                weapon.Movable = true;
                weapon.Quality = WeaponQuality.Exceptional;
                AddItem(weapon);

                PackItem(new Bolt(Utility.RandomMinMax(50, 80)));
            }
            else
            {
                Body = 400;
                Name = NameList.RandomName("male");

                StuddedChest chest = new StuddedChest();
                chest.Hue     = 313;
                chest.Movable = true;
                AddItem(chest);

                StuddedLegs legs = new StuddedLegs();
                legs.Hue     = 313;
                legs.Movable = true;
                AddItem(legs);

                HeavyCrossbow weapon = new HeavyCrossbow();
                BaseRunicTool.ApplyAttributesTo(weapon, 5, 25, 35);
                weapon.WeaponAttributes.HitLightning = 25;
                weapon.Hue     = 23;
                weapon.Movable = true;
                weapon.Quality = WeaponQuality.Exceptional;
                AddItem(weapon);

                PackItem(new Bolt(Utility.RandomMinMax(50, 80)));
            }

            Utility.AssignRandomHair(this);
        }
Пример #16
0
        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;
            }
            }
        }
Пример #17
0
        public PirateCrew() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, .2, .4)
        {
            Name = "Orcish Crew";

            Body = 0.33 > Utility.RandomDouble() ? 0x8C : Utility.RandomList(0xB5, 0xB6);

            SetHits(2000);

            if (Body == 0x8C) // Mage
            {
                SetStr(140, 160);
                SetDex(130, 150);
                SetInt(170, 190);
                SetDamage(4, 14);

                SetDamageType(ResistanceType.Physical, 100);

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

                ChangeAIType(AIType.AI_Mage);

                SetSkill(SkillName.Wrestling, 45.0, 55.0);
                SetSkill(SkillName.Tactics, 50.0, 60.0);
                SetSkill(SkillName.MagicResist, 65.0, 75.0);
                SetSkill(SkillName.Magery, 60.0, 70.0);
                SetSkill(SkillName.EvalInt, 60.0, 75.0);
                SetSkill(SkillName.Meditation, 70.0, 90.0);
                SetSkill(SkillName.Focus, 80.0, 100.0);
            }
            else if (Body == 0xB6) // Bomber
            {
                SetStr(150, 200);
                SetDex(90, 110);
                SetInt(70, 100);
                SetDamage(1, 8);

                SetDamageType(ResistanceType.Physical, 75);
                SetDamageType(ResistanceType.Fire, 25);

                SetResistance(ResistanceType.Physical, 20, 30);
                SetResistance(ResistanceType.Fire, 30, 40);
                SetResistance(ResistanceType.Cold, 15, 25);
                SetResistance(ResistanceType.Poison, 15, 25);
                SetResistance(ResistanceType.Energy, 20, 30);

                SetSkill(SkillName.Wrestling, 60.0, 90.0);
                SetSkill(SkillName.Tactics, 70.0, 85.0);
                SetSkill(SkillName.MagicResist, 70.0, 85.0);
            }
            else // Archer
            {
                SetStr(100, 130);
                SetDex(100, 130);
                SetInt(30, 70);
                SetDamage(5, 7);

                SetDamageType(ResistanceType.Physical, 100);

                SetResistance(ResistanceType.Physical, 20, 35);
                SetResistance(ResistanceType.Fire, 30, 40);
                SetResistance(ResistanceType.Cold, 15, 25);
                SetResistance(ResistanceType.Poison, 15, 25);
                SetResistance(ResistanceType.Energy, 20, 30);

                ChangeAIType(AIType.AI_Archer);

                SetSkill(SkillName.Tactics, 55.0, 70.0);
                SetSkill(SkillName.MagicResist, 50.0, 70.0);
                SetSkill(SkillName.Anatomy, 60.0, 85.0);
                SetSkill(SkillName.Healing, 60.0, 80.0);
                SetSkill(SkillName.Archery, 100.0, 120.0);

                Item bow;

                switch (Utility.Random(4))
                {
                default:
                case 0: bow = new CompositeBow(); break;

                case 1: bow = new Crossbow(); break;

                case 2: bow = new Bow(); break;

                case 3: bow = new HeavyCrossbow(); break;
                }

                AddItem(bow);
            }

            SetSkill(SkillName.DetectHidden, 40.0, 45.0);

            Fame  = 8000;
            Karma = -8000;
        }
Пример #18
0
        public ArcherGuard(Mobile target) : base(target)
        {
            Summoned = true;

            InitStats(1000, 1000, 1000);

            SpeechHue = 0;

            Hue = Utility.RandomSkinHue();

            #region Armor
            for (int i = 0; i < m_GuardArmor.Length; ++i)
            {
                m_GuardArmor[i].Resource = GuardTheme;
                AddItem(m_GuardArmor[i]);
                m_GuardArmor[i].Movable = false;
            }
            #endregion

            #region Cloth
            BaseClothing bC = null;

            switch (Utility.Random(3))
            {
            case 0:
                bC = new Doublet();
                break;

            case 1:
                bC = new Tunic();
                break;

            case 2:
                bC       = new BodySash();
                bC.Layer = Layer.Earrings;
                break;
            }

            if (bC != null)
            {
                bC.Resource = GuardTheme;
                AddItem(bC);
                bC.Movable = false;
            }
            #endregion

            #region Male/Female
            if (Female = Utility.RandomBool())
            {
                Body = 0x191;
                if (string.IsNullOrEmpty(Name))
                {
                    Name  = NameList.RandomName("female");
                    Title = "the guard";
                }

                FemalePlateChest ar = new FemalePlateChest();
                ar.Resource = GuardTheme;
                AddItem(ar);
                ar.Movable = false;
            }
            else
            {
                Body = 0x190;
                if (string.IsNullOrEmpty(Name))
                {
                    Name  = NameList.RandomName("male");
                    Title = "the guard";
                }

                PlateChest ar = new PlateChest();
                ar.Resource = GuardTheme;
                AddItem(ar);
                ar.Movable = false;
            }
            #endregion

            Utility.AssignRandomHair(this);

            if (Utility.RandomBool())
            {
                Utility.AssignRandomFacialHair(this, HairHue);
            }

            Container pack = new Backpack();
            pack.Movable = false;
            pack.DropItem(new Gold(10, 25));
            AddItem(pack);

            #region Weapon
            BaseWeapon weapon;
            Item       ammo;

            switch (Utility.Random(3))
            {
            case 1:
                weapon = new Bow();
                ammo   = new Arrow(250);
                break;

            case 2:
                weapon = new Crossbow();
                ammo   = new Bolt(250);
                break;

            case 3:
                weapon = new HeavyCrossbow();
                ammo   = new Bolt(250);
                break;

            default:
                weapon = new Bow();
                ammo   = new Arrow(250);
                break;
            }

            weapon.Crafter   = this;
            weapon.Resource  = GuardTheme;
            weapon.Quality   = WeaponQuality.Exceptional;
            weapon.Speed     = 1;
            weapon.MinDamage = 10000;
            weapon.MaxDamage = 10000;
            AddItem(weapon);
            weapon.Movable = false;

            AddItem(ammo);
            ammo.LootType = LootType.Blessed;
            #endregion

            Skills[SkillName.Anatomy].Base      = 120.0;
            Skills[SkillName.Tactics].Base      = 125.0;
            Skills[SkillName.Archery].Base      = 100.0;
            Skills[SkillName.MagicResist].Base  = 120.0;
            Skills[SkillName.DetectHidden].Base = 100.0;

            if (Utility.RandomDouble() <= 0.1)
            {
                new Horse().Rider = this;
            }

            NextCombatTime = DateTime.Now + TimeSpan.FromSeconds(1.0);
            Focus          = target;
        }
Пример #19
0
        public ForgottenOneArcher() : base(AIType.AI_Melee, FightMode.Good, 10, 1, 0.2, 0.4)
        {
            Title  = "a ForgottenOne Archer";
            Name   = NameList.RandomName("male");
            Body   = 0x191;
            Hue    = 33805;
            Female = false;

            SetStr(1025, 1425);
            SetDex(81, 148);
            SetInt(475, 675);

            Fame  = -1000;
            Karma = -1000;

            SetHits(1000, 2000);

            SetDamage(24, 33);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 60, 85);
            SetResistance(ResistanceType.Fire, 65, 90);
            SetResistance(ResistanceType.Cold, 40, 55);
            SetResistance(ResistanceType.Poison, 40, 60);
            SetResistance(ResistanceType.Energy, 50, 75);

            SetSkill(SkillName.Archery, 100, 140);
            SetSkill(SkillName.Tactics, 100, 140);
            SetSkill(SkillName.MagicResist, 100, 140);
            SetSkill(SkillName.Tactics, 100, 140);
            SetSkill(SkillName.Wrestling, 100, 140);
            SetSkill(SkillName.Swords, 100, 140);
            SetSkill(SkillName.Magery, 100, 140);
            SetSkill(SkillName.Focus, 100, 140);

            VirtualArmor = 80;

            HeavyCrossbow heavycrossbow = new HeavyCrossbow();

            heavycrossbow.Movable = false;
            AddItem(heavycrossbow);
            //AddItem(new Bolt(100));

            HumilityCloak cloak = new HumilityCloak();

            cloak.Movable = false;
            AddItem(cloak);

            SpiritualityHelm spiritualityhelm = new SpiritualityHelm();

            spiritualityhelm.Movable = false;
            AddItem(spiritualityhelm);

            HonestyGorget honestygorget = new HonestyGorget();

            honestygorget.Movable = false;
            AddItem(honestygorget);

            JusticeBreastplate justicebreastplate = new JusticeBreastplate();

            justicebreastplate.Movable = false;
            AddItem(justicebreastplate);

            BodySash bodysash = new BodySash();

            bodysash.Movable = false;
            bodysash.Name    = "ForgottenOne";
            AddItem(bodysash);

            CompassionArms compassionarms = new CompassionArms();

            compassionarms.Movable = false;
            AddItem(compassionarms);

            ValorGauntlets valorgauntlets = new ValorGauntlets();

            valorgauntlets.Movable = false;
            AddItem(valorgauntlets);

            HonorLegs honorlegs = new HonorLegs();

            honorlegs.Movable = false;
            AddItem(honorlegs);

            SacrificeSollerets sacrificesollerets = new SacrificeSollerets();

            sacrificesollerets.Movable = false;
            AddItem(sacrificesollerets);

//          PlateChest chest = new PlateChest();
//			chest.Movable = false;
//			chest.Hue = 137;
//          AddItem(chest);

            VampiriacSteed vampiriacsteed = new VampiriacSteed();

            vampiriacsteed.Hue = 2412;
            //horse.Hits = 200;
            //horse.Karma = 500;
            vampiriacsteed.Rider = this;

            //new VampiriacSteed().Rider = this;
            heavycrossbow.Hue      = 2412;
            cloak.Hue              = 2412;
            spiritualityhelm.Hue   = 137;
            honestygorget.Hue      = 137;
            justicebreastplate.Hue = 137;
            bodysash.Hue           = 2412;
            compassionarms.Hue     = 137;
            valorgauntlets.Hue     = 137;
            honorlegs.Hue          = 137;
            sacrificesollerets.Hue = 137;
        }
Пример #20
0
        public override void GenerateLoot()
        {
            AddLoot(LootPack.FilthyRich, 5);
            AddLoot(LootPack.HighScrolls, 3);
            AddLoot(LootPack.MedScrolls, 4);
            AddLoot(LootPack.LowScrolls, 6);
            AddLoot(LootPack.Gems, 5);

            if (Utility.RandomDouble() < 0.20)
            {
                BaseWeapon weapon = Loot.RandomWeapon(true);
                switch (Utility.Random(33))
                {
                case 0: weapon = new BattleAxe(); break;

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

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

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

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

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

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

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

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

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

                case 10: weapon = new Halberd(); break;

                case 11: weapon = new Spear(); break;

                case 12: weapon = new QuarterStaff(); break;

                case 13: weapon = new Katana(); break;

                case 14: weapon = new Longsword(); break;

                case 15: weapon = new VikingSword(); break;

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

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

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

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

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

                case 21: weapon = new Scythe(); break;

                case 22: weapon = new Daisho(); break;

                case 23: weapon = new Lajatang(); break;

                case 24: weapon = new NoDachi(); break;

                case 25: weapon = new Tetsubo(); break;

                case 26: weapon = new Yumi(); break;

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

                case 28: weapon = new OrnateAxe(); break;

                case 29: weapon = new RadiantScimitar(); break;

                case 30: weapon = new WarCleaver(); break;

                case 31: weapon = new WildStaff(); break;

                default: weapon = new DiamondMace(); break;
                }

                BaseRunicTool.ApplyAttributesTo(weapon, 5, 35, 50);
                weapon.Hue = 1461;

                PackItem(weapon);
            }

            if (Utility.RandomDouble() < 0.20)
            {
                BaseArmor armor = Loot.RandomArmor(true);
                switch (Utility.Random(5))
                {
                case 0: armor = new CrusaderGauntlets(); break;

                case 1: armor = new CrusaderGorget(); break;

                case 2: armor = new CrusaderLeggings(); break;

                case 3: armor = new CrusaderSleeves(); break;

                default: armor = new CrusaderBreastplate(); break;
                }

                BaseRunicTool.ApplyAttributesTo(armor, 5, 35, 50);
                armor.Hue = 1461;

                PackItem(armor);
            }

            if (Utility.RandomDouble() < 0.20)
            {
                BaseClothing clothing = Loot.RandomClothing(true);
                BaseRunicTool.ApplyAttributesTo(clothing, 5, 35, 50);
                clothing.Hue = 1461;

                PackItem(clothing);
            }

            if (Utility.RandomDouble() < 0.10)
            {
                BaseShield shield = new MetalKiteShield();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(shield, 5, 35, 50);
                }
                shield.Hue = 1461;

                PackItem(shield);
            }

            if (Utility.RandomDouble() < 0.10)
            {
                BaseJewel bracelet = new GoldBracelet();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(bracelet, 5, 35, 50);
                }
                bracelet.Hue = 1461;

                PackItem(bracelet);
            }

            if (Utility.RandomDouble() < 0.10)
            {
                BaseJewel earrings = new GoldEarrings();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(earrings, 5, 35, 50);
                }
                earrings.Hue = 1461;

                PackItem(earrings);
            }

            if (Utility.RandomDouble() < 0.10)
            {
                BaseJewel necklace = new GoldNecklace();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(necklace, 5, 35, 50);
                }
                necklace.Hue = 1461;

                PackItem(necklace);
            }

            if (Utility.RandomDouble() < 0.10)
            {
                BaseJewel ring = new GoldRing();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(ring, 5, 35, 50);
                }
                ring.Hue = 1461;

                PackItem(ring);
            }
        }
Пример #21
0
        public override void GenerateItems()
        {
            int colorTheme  = Utility.RandomDyedHue();
            int customTheme = 0;

            m_Items.Add(new ThighBoots()
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new PlateArms()
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new PlateGloves()
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new ChainmailChest()
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new StuddedLegs()
            {
                LootType = LootType.Blessed
            });

            m_Items.Add(new BodySash(colorTheme)
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new Kilt(colorTheme)
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new SkullCap(colorTheme)
            {
                LootType = LootType.Blessed
            });

            switch (Utility.RandomMinMax(1, 6))
            {
            case 1: { m_Items.Add(new VikingSword()
                    {
                        LootType = LootType.Blessed
                    }); m_Items.Add(new MetalShield()
                    {
                        Hue = customTheme, LootType = LootType.Blessed
                    }); break; }

            case 2: { m_Items.Add(new Broadsword()
                    {
                        LootType = LootType.Blessed
                    }); m_Items.Add(new MetalShield()
                    {
                        Hue = customTheme, LootType = LootType.Blessed
                    }); break; }

            case 3: { m_Items.Add(new Maul()
                    {
                        LootType = LootType.Blessed
                    }); m_Items.Add(new MetalShield()
                    {
                        Hue = customTheme, LootType = LootType.Blessed
                    }); break; }

            case 4: { m_Items.Add(new Mace()
                    {
                        LootType = LootType.Blessed
                    }); m_Items.Add(new MetalShield()
                    {
                        Hue = customTheme, LootType = LootType.Blessed
                    }); break; }

            case 5: { m_Items.Add(new WarHammer()
                    {
                        LootType = LootType.Blessed
                    }); break; }

            case 6: { m_Items.Add(new DoubleAxe()
                    {
                        LootType = LootType.Blessed
                    }); break; }
            }

            HeavyCrossbow bow = new HeavyCrossbow();

            bow.LootType = LootType.Blessed;
            m_Items.Add(bow);

            Utility.AssignRandomHair(this, Utility.RandomHairHue());
        }