Beispiel #1
0
        public static Item GetRandomHat()
        {
            Item hat = null;

            switch (Utility.Random(6))
            {
            case 0:
                hat = new SkullCap(GetRandomHue());
                break;

            case 1:
                hat = new Bandana(GetRandomHue());
                break;

            case 2:
                hat = new WideBrimHat();
                break;

            case 3:
                hat = new TallStrawHat(Utility.RandomNeutralHue());
                break;

            case 4:
                hat = new StrawHat(Utility.RandomNeutralHue());
                break;

            case 5:
                hat = new TricorneHat(Utility.RandomNeutralHue());
                break;
            }

            return(hat);
        }
Beispiel #2
0
        public MerchantCaptain(BaseGalleon galleon)
            : base(galleon, AIType.AI_Melee, FightMode.Aggressor, 1, 10, .2, .4)
        {
            Title = "the merchant captain";
            Hue   = Race.RandomSkinHue();

            Item hat;

            if (Utility.RandomBool())
            {
                hat = new WideBrimHat();
            }
            else
            {
                hat = new TricorneHat();
            }

            hat.Hue = Utility.RandomNeutralHue();

            AddItem(new Sandals());
            AddItem(new FancyShirt(Utility.RandomNeutralHue()));
            AddItem(hat);
            AddItem(new Cloak(Utility.RandomNeutralHue()));
            AddItem(new Dagger());

            Utility.AssignRandomHair(this);

            Fame  = 22000;
            Karma = -22000;
        }
Beispiel #3
0
            public InternalBuyInfo()
            {
                Add(new GenericBuyInfo("Bolt of Cloth", typeof(BoltOfCloth), BoltOfCloth.GetSBPurchaseValue(), 50, 0xf95, 0));

                Add(new GenericBuyInfo("Scissors", typeof(Scissors), Scissors.GetSBPurchaseValue(), 25, 0xF9F, 0));
                Add(new GenericBuyInfo("Sewing Kit", typeof(SewingKit), SewingKit.GetSBPurchaseValue(), 50, 0xF9D, 0));
                Add(new GenericBuyInfo("Dyes", typeof(Dyes), Dyes.GetSBPurchaseValue(), 25, 0xFA9, 0));
                Add(new GenericBuyInfo("Dye Tub", typeof(DyeTub), DyeTub.GetSBPurchaseValue(), 25, 0xFAB, 0));

                //Hats
                Add(new GenericBuyInfo("Skull Cap", typeof(SkullCap), SkullCap.GetSBPurchaseValue(), 25, 0x1544, 0));
                Add(new GenericBuyInfo("Bandana", typeof(Bandana), Bandana.GetSBPurchaseValue(), 25, 0x1540, 0));
                Add(new GenericBuyInfo("Floppy Hat", typeof(FloppyHat), FloppyHat.GetSBPurchaseValue(), 25, 0x1713, 0));
                Add(new GenericBuyInfo("Cap", typeof(Cap), Cap.GetSBPurchaseValue(), 25, 0x1715, 0));
                Add(new GenericBuyInfo("Wide Brim Hat", typeof(WideBrimHat), WideBrimHat.GetSBPurchaseValue(), 25, 0x1714, 0));
                Add(new GenericBuyInfo("Tall Straw Hat", typeof(TallStrawHat), TallStrawHat.GetSBPurchaseValue(), 25, 0x1716, 0));
                Add(new GenericBuyInfo("Bonnet", typeof(Bonnet), Bonnet.GetSBPurchaseValue(), 25, 0x1719, 0));
                Add(new GenericBuyInfo("Feathered Hat", typeof(FeatheredHat), FeatheredHat.GetSBPurchaseValue(), 25, 0x171A, 0));
                Add(new GenericBuyInfo("Tricorne Hat", typeof(TricorneHat), TricorneHat.GetSBPurchaseValue(), 25, 0x171B, 0));
                Add(new GenericBuyInfo("Jester Hat", typeof(JesterHat), JesterHat.GetSBPurchaseValue(), 25, 0x171C, 0));
                Add(new GenericBuyInfo("Wizards Hat", typeof(WizardsHat), WizardsHat.GetSBPurchaseValue(), 25, 0x1718, 0));

                //Shirts
                Add(new GenericBuyInfo("Doublet", typeof(Doublet), Doublet.GetSBPurchaseValue(), 25, 0x1F7B, 0));
                Add(new GenericBuyInfo("Shirt", typeof(Shirt), Shirt.GetSBPurchaseValue(), 25, 0x1517, 0));
                Add(new GenericBuyInfo("Fancy Shirt", typeof(FancyShirt), FancyShirt.GetSBPurchaseValue(), 25, 0x1EFD, 0));
                Add(new GenericBuyInfo("Tunic", typeof(Tunic), Tunic.GetSBPurchaseValue(), 25, 0x1FA1, 0));
                Add(new GenericBuyInfo("Surcoat", typeof(Surcoat), Surcoat.GetSBPurchaseValue(), 25, 0x1FFD, 0));
                Add(new GenericBuyInfo("Jester Suit", typeof(JesterSuit), JesterSuit.GetSBPurchaseValue(), 25, 0x1F9F, 0));
                Add(new GenericBuyInfo("Plain Dress", typeof(PlainDress), PlainDress.GetSBPurchaseValue(), 25, 0x1F01, 0));
                Add(new GenericBuyInfo("Fancy Dress", typeof(FancyDress), FancyDress.GetSBPurchaseValue(), 25, 0x1EFF, 0));
                Add(new GenericBuyInfo("Robe", typeof(Robe), Robe.GetSBPurchaseValue(), 25, 0x1F03, 0));

                //Pants
                Add(new GenericBuyInfo("Short Pants", typeof(ShortPants), ShortPants.GetSBPurchaseValue(), 25, 0x152E, 0));
                Add(new GenericBuyInfo("Long Pants", typeof(LongPants), LongPants.GetSBPurchaseValue(), 25, 0x1539, 0));
                Add(new GenericBuyInfo("Kilt", typeof(Kilt), Kilt.GetSBPurchaseValue(), 25, 0x1537, 0));
                Add(new GenericBuyInfo("Skirt", typeof(Skirt), Skirt.GetSBPurchaseValue(), 25, 0x1516, 0));

                Add(new GenericBuyInfo("Cloak", typeof(Cloak), Cloak.GetSBPurchaseValue(), 25, 0x1515, 0));
                Add(new GenericBuyInfo("Body Sash", typeof(BodySash), BodySash.GetSBPurchaseValue(), 25, 0x1541, 0));
                Add(new GenericBuyInfo("Half Apron", typeof(HalfApron), HalfApron.GetSBPurchaseValue(), 25, 0x153b, 0));
                Add(new GenericBuyInfo("Full Apron", typeof(FullApron), FullApron.GetSBPurchaseValue(), 25, 0x153d, 0));

                //Shoes
                Add(new GenericBuyInfo("Sandals", typeof(Sandals), Sandals.GetSBPurchaseValue(), 25, 0x170D, 0));
                Add(new GenericBuyInfo("Shoes", typeof(Shoes), Shoes.GetSBPurchaseValue(), 25, 0x170F, 0));
                Add(new GenericBuyInfo("Boots", typeof(Boots), Boots.GetSBPurchaseValue(), 25, 0x170B, 0));
                Add(new GenericBuyInfo("Thigh Boots", typeof(ThighBoots), ThighBoots.GetSBPurchaseValue(), 25, 0x1711, 0));

                //TEST: FIX
                //Add( new GenericBuyInfo( typeof( SpoolOfThread ), 18, 20, 0xFA0, 0 ) );
                //Add( new GenericBuyInfo( typeof( Flax ), 156, 20, 0x1A9C, 0 ) );
                //Add( new GenericBuyInfo( typeof( Cotton ), 156, 20, 0xDF9, 0 ) );
                //Add( new GenericBuyInfo( typeof( Wool ), 78, 20, 0xDF8, 0 ) );
            }
Beispiel #4
0
        private TricorneHat CaptainsHat()
        {
            // black captain's hat
            TricorneHat hat = new TricorneHat();

            hat.Name   = "a pirate hat";
            hat.Hue    = 0x01;
            hat.Dyable = false;
            return(hat);
        }
Beispiel #5
0
        protected TricorneHat CaptainsHat(string title)
        {
            // black captain's hat
            TricorneHat hat = new TricorneHat();

            hat.IOBAlignment = IOBAlignment.Pirate;
            hat.Name         = title;
            hat.Hue          = 0x01;
            hat.Dyable       = false;
            return(hat);
        }
Beispiel #6
0
        public Orthal()
        {
            Name      = "Orthal";
            Title     = "the Shipmate";
            Body      = 0x190;
            Hue       = Utility.RandomSkinHue();
            Blessed   = true;
            CantWalk  = true;
            Direction = Direction.South;

            Boots bt = new Boots();

            bt.Hue = 0;
            AddItem(bt);

            LongPants lp = new LongPants();

            lp.Hue = 0;
            AddItem(lp);

            FancyShirt fs = new FancyShirt();

            fs.Hue = 0;
            AddItem(fs);

            TricorneHat th = new TricorneHat();

            th.Hue = 0;
            AddItem(th);

            Scimitar sc = new Scimitar();

            AddItem(sc);

            GoldBeadNecklace gn = new GoldBeadNecklace();

            AddItem(gn);

            GoldBracelet gb = new GoldBracelet();

            AddItem(gb);

            GoldEarrings ge = new GoldEarrings();

            AddItem(ge);

            GoldRing gr = new GoldRing();

            AddItem(gr);

            AddItem(new PonyTail(1149));

            AddItem(new Vandyke(1149));
        }
Beispiel #7
0
        public override void InitOutfit()
        {
            WipeLayers();

            // black captain's hat
            TricorneHat hat = CaptainsHat();

            hat.LootType = LootType.Newbied;
            AddItem(hat);

            if (Utility.RandomBool())
            {
                Item shirt = new Shirt(Utility.RandomRedHue());
                AddItem(shirt);
            }

            Item sash  = new BodySash(0x85);
            Item hair  = new Item(Utility.RandomList(0x203B, 0x203C, 0x203D, 0x2044, 0x2045, 0x2047, 0x2049, 0x204A));
            Item pants = new LongPants(Utility.RandomRedHue());
            Item boots = new Boots(Utility.RandomRedHue());

            hair.Hue     = Utility.RandomHairHue();
            hair.Layer   = Layer.Hair;
            hair.Movable = false;

            Item sword;

            if (Utility.RandomBool())
            {
                sword = new Scimitar();
            }
            else
            {
                sword = new Cutlass();
            }

            sword.LootType = LootType.Newbied;

            AddItem(hair);
            AddItem(sash);
            AddItem(pants);
            AddItem(boots);
            AddItem(sword);

            if (!this.Female)
            {
                Item beard = new Item(Utility.RandomList(0x203E, 0x203F, 0x2040, 0x2041, 0x204B, 0x204C, 0x204D));
                beard.Hue     = hair.Hue;
                beard.Layer   = Layer.FacialHair;
                beard.Movable = false;
                AddItem(beard);
            }
        }
Beispiel #8
0
            public InternalSellInfo()
            {
                Add(typeof(BoltOfCloth), BoltOfCloth.GetSBSellValue());

                Add(typeof(Scissors), Scissors.GetSBSellValue());
                Add(typeof(SewingKit), SewingKit.GetSBSellValue());
                Add(typeof(Dyes), Dyes.GetSBSellValue());
                Add(typeof(DyeTub), DyeTub.GetSBSellValue());

                Add(typeof(SkullCap), SkullCap.GetSBSellValue());
                Add(typeof(Bandana), Bandana.GetSBSellValue());
                Add(typeof(FloppyHat), FloppyHat.GetSBSellValue());
                Add(typeof(Cap), Cap.GetSBSellValue());
                Add(typeof(WideBrimHat), WideBrimHat.GetSBSellValue());
                Add(typeof(TallStrawHat), TallStrawHat.GetSBSellValue());
                Add(typeof(Bonnet), Bonnet.GetSBSellValue());
                Add(typeof(FeatheredHat), FeatheredHat.GetSBSellValue());
                Add(typeof(TricorneHat), TricorneHat.GetSBSellValue());
                Add(typeof(JesterHat), JesterHat.GetSBSellValue());
                Add(typeof(WizardsHat), WizardsHat.GetSBSellValue());

                Add(typeof(Doublet), Doublet.GetSBSellValue());
                Add(typeof(Shirt), Shirt.GetSBSellValue());
                Add(typeof(FancyShirt), FancyShirt.GetSBSellValue());
                Add(typeof(Tunic), Tunic.GetSBSellValue());
                Add(typeof(Surcoat), Surcoat.GetSBSellValue());
                Add(typeof(JesterSuit), JesterSuit.GetSBSellValue());
                Add(typeof(PlainDress), PlainDress.GetSBSellValue());
                Add(typeof(FancyDress), FancyDress.GetSBSellValue());
                Add(typeof(Robe), Robe.GetSBSellValue());

                Add(typeof(ShortPants), ShortPants.GetSBSellValue());
                Add(typeof(LongPants), LongPants.GetSBSellValue());
                Add(typeof(Kilt), Kilt.GetSBSellValue());
                Add(typeof(Skirt), Skirt.GetSBSellValue());

                Add(typeof(Cloak), Cloak.GetSBSellValue());
                Add(typeof(BodySash), BodySash.GetSBSellValue());
                Add(typeof(HalfApron), HalfApron.GetSBSellValue());
                Add(typeof(FullApron), FullApron.GetSBSellValue());

                Add(typeof(Sandals), Sandals.GetSBSellValue());
                Add(typeof(Shoes), Shoes.GetSBSellValue());
                Add(typeof(Boots), Boots.GetSBSellValue());
                Add(typeof(ThighBoots), ThighBoots.GetSBSellValue());
            }
        public FamousPiratesHealer()
            : base(AIType.AI_Healer, FightMode.Closest, 15, 1, 0.2, 0.6)
        {
            // A FamousPirates Healer Mage
            int Hue = 2075;

            // Skills and Stats
            this.InitStats(250, 250, 250);
            this.Skills[SkillName.Magery].Base     = 150;
            this.Skills[SkillName.EvalInt].Base    = 150;
            this.Skills[SkillName.Anatomy].Base    = 150;
            this.Skills[SkillName.Wrestling].Base  = 150;
            this.Skills[SkillName.Meditation].Base = 150;
            this.Skills[SkillName.Healing].Base    = 100;

            // Name
            this.Name = "Governor Swann";

            // Equip
            Spellbook book = FullSpellbook();

            AddItem(book);

            LeatherArms lea = new LeatherArms();

            lea.Movable  = false;
            lea.LootType = LootType.Regular;
            lea.Crafter  = this;
            lea.Quality  = ArmorQuality.Exceptional;
            AddItem(lea);

            LeatherChest lec = new LeatherChest();

            lec.Movable  = false;
            lec.LootType = LootType.Regular;
            lec.Crafter  = this;
            lec.Quality  = ArmorQuality.Exceptional;
            AddItem(lec);

            LeatherGorget leg = new LeatherGorget();

            leg.Movable  = false;
            leg.LootType = LootType.Regular;
            leg.Crafter  = this;
            leg.Quality  = ArmorQuality.Exceptional;
            AddItem(leg);

            LeatherLegs lel = new LeatherLegs();

            lel.Movable  = false;
            lel.LootType = LootType.Regular;
            lel.Crafter  = this;
            lel.Quality  = ArmorQuality.Exceptional;
            AddItem(lel);

            Boots snd = new Boots();

            snd.Movable  = false;
            snd.Hue      = Hue;
            snd.LootType = LootType.Regular;
            AddItem(snd);

            TricorneHat tch = new TricorneHat();

            tch.Movable = false;
            tch.Hue     = Hue;
            AddItem(tch);

            Robe robe = new Robe();

            robe.Movable = false;
            robe.Hue     = Hue;
            AddItem(robe);
        }
Beispiel #10
0
        public Commoner()
            : base(AIType.AI_Melee, FightMode.None, 10, 1, 0.8, 3.0)
        {
            SetStr(10, 30);
            SetDex(10, 30);
            SetInt(10, 30);

            Fame  = 50;
            Karma = 50;

            SpeechHue = Utility.RandomDyedHue();
            Title     = string.Empty;        //Commoner.Titles[Utility.Random( 0, Titles.Length )];
            Hue       = Utility.RandomSkinHue();
            if (this.Female = Utility.RandomBool())
            {
                this.Body = 0x191;
                this.Name = NameList.RandomName("female");

                HairItemID = Utility.RandomList(0x203B, 0x203C, 0x203D, 0x2045, 0x204A, 0x2046, 0x2049);
                HairHue    = Utility.RandomHairHue();

                Item hat = null;
                switch (Utility.Random(5))                   //4 hats, one empty, for no hat
                {
                case 0: hat = new FloppyHat(Utility.RandomNeutralHue()); break;

                case 1: hat = new FeatheredHat(Utility.RandomNeutralHue()); break;

                case 2: hat = new Bonnet(); break;

                case 3: hat = new Cap(Utility.RandomNeutralHue()); break;
                }
                AddItem(hat);
                Item pants = null;
                switch (Utility.Random(3))
                {
                case 0: pants = new ShortPants(GetRandomHue()); break;

                case 1: pants = new LongPants(GetRandomHue()); break;

                case 2: pants = new Skirt(GetRandomHue()); break;
                }
                AddItem(pants);
                Item shirt = null;
                switch (Utility.Random(7))
                {
                case 0: shirt = new Doublet(GetRandomHue()); break;

                case 1: shirt = new Surcoat(GetRandomHue()); break;

                case 2: shirt = new Tunic(GetRandomHue()); break;

                case 3: shirt = new FancyDress(GetRandomHue()); break;

                case 4: shirt = new PlainDress(GetRandomHue()); break;

                case 5: shirt = new FancyShirt(GetRandomHue()); break;

                case 6: shirt = new Shirt(GetRandomHue()); break;
                }
                AddItem(shirt);
            }
            else
            {
                this.Body = 0x190;
                this.Name = NameList.RandomName("male");

                HairItemID = Utility.RandomList(0x203B, 0x203C, 0x203D, 0x2044, 0x2045, 0x2047, 0x2048);
                HairHue    = Utility.RandomHairHue();

                FacialHairItemID = Utility.RandomList(0x0000, 0x203E, 0x203F, 0x2040, 0x2041, 0x2067, 0x2068, 0x2069);
                FacialHairHue    = HairHue;

                Item hat = null;
                switch (Utility.Random(7))                    //6 hats, one empty, for no hat
                {
                case 0: hat = new SkullCap(GetRandomHue()); break;

                case 1: hat = new Bandana(GetRandomHue()); break;

                case 2: hat = new WideBrimHat(); break;

                case 3: hat = new TallStrawHat(Utility.RandomNeutralHue()); break;

                case 4: hat = new StrawHat(Utility.RandomNeutralHue()); break;

                case 5: hat = new TricorneHat(Utility.RandomNeutralHue()); break;
                }
                AddItem(hat);
                Item pants = null;
                switch (Utility.Random(2))
                {
                case 0: pants = new ShortPants(GetRandomHue()); break;

                case 1: pants = new LongPants(GetRandomHue()); break;
                }
                AddItem(pants);
                Item shirt = null;
                switch (Utility.Random(5))
                {
                case 0: shirt = new Doublet(GetRandomHue()); break;

                case 1: shirt = new Surcoat(GetRandomHue()); break;

                case 2: shirt = new Tunic(GetRandomHue()); break;

                case 3: shirt = new FancyShirt(GetRandomHue()); break;

                case 4: shirt = new Shirt(GetRandomHue()); break;
                }
                AddItem(shirt);
            }

            Item feet = null;

            switch (Utility.Random(3))
            {
            case 0: feet = new Boots(Utility.RandomNeutralHue()); break;

            case 1: feet = new Shoes(Utility.RandomNeutralHue()); break;

            case 2: feet = new Sandals(Utility.RandomNeutralHue()); break;
            }
            AddItem(feet);
            Container pack = new Backpack();

            pack.Movable = false;

            AddItem(pack);
        }
        public FamousPiratesStun()
            : base(AIType.AI_Mage, FightMode.Closest, 15, 1, 0.2, 0.6)
        {
            // A FamousPirates Stun Mage
            int Hue = 2075;

            // Skills and Stats
            this.InitStats(210, 210, 250);
            this.Skills[SkillName.Magery].Base     = 100;
            this.Skills[SkillName.EvalInt].Base    = 150;
            this.Skills[SkillName.Anatomy].Base    = 80;
            this.Skills[SkillName.Wrestling].Base  = 80;
            this.Skills[SkillName.Meditation].Base = 100;
            this.Skills[SkillName.Poisoning].Base  = 100;


            // Name
            this.Name = "William Turner";

            // Equip
            Spellbook book = FullSpellbook();

            AddItem(book);

            LeatherArms lea = new LeatherArms();

            lea.Movable  = false;
            lea.LootType = LootType.Regular;
            lea.Crafter  = this;
            lea.Quality  = ArmorQuality.Exceptional;
            AddItem(lea);

            LeatherChest lec = new LeatherChest();

            lec.Movable  = false;
            lec.LootType = LootType.Regular;
            lec.Crafter  = this;
            lec.Quality  = ArmorQuality.Exceptional;
            AddItem(lec);

            LeatherGorget leg = new LeatherGorget();

            leg.Movable  = false;
            leg.LootType = LootType.Regular;
            leg.Crafter  = this;
            leg.Quality  = ArmorQuality.Exceptional;
            AddItem(leg);

            LeatherLegs lel = new LeatherLegs();

            lel.Movable  = false;
            lel.LootType = LootType.Regular;
            lel.Crafter  = this;
            lel.Quality  = ArmorQuality.Exceptional;
            AddItem(lel);

            Boots bts = new Boots();

            bts.Movable = false;
            bts.Hue     = Hue;
            AddItem(bts);

            TricorneHat tch = new TricorneHat();

            tch.Movable = false;
            tch.Hue     = Hue;
            AddItem(tch);

            // Spells
            AddSpellAttack(typeof(Spells.First.MagicArrowSpell));
            AddSpellAttack(typeof(Spells.First.WeakenSpell));
            AddSpellAttack(typeof(Spells.Sixth.ExplosionSpell));
            AddSpellDefense(typeof(Spells.Third.WallOfStoneSpell));
            AddSpellDefense(typeof(Spells.Fourth.GreaterHealSpell));
        }
Beispiel #12
0
        public override Item Construct(Type type, Mobile from, Item tool)
        {
            // Searing Weapon Support, handled elsewhere
            if (type == typeof(BaseWeapon))
            {
                return(null);
            }

            if (type == typeof(TreasureMap))
            {
                return(new TreasureMap(0, from.Map == Map.Felucca ? Map.Felucca : Map.Trammel));
            }
            else if (type == typeof(MessageInABottle))
            {
                return(new MessageInABottle(from.Map == Map.Felucca ? Map.Felucca : Map.Trammel));
            }
            else if (type == typeof(WhitePearl))
            {
                return(new WhitePearl());
            }

            Container pack = from.Backpack;

            if (pack != null)
            {
                List <SOS> messages = pack.FindItemsByType <SOS>();

                for (int i = 0; i < messages.Count; ++i)
                {
                    SOS sos = messages[i];

                    if ((from.Map == Map.Felucca || from.Map == Map.Trammel) && from.InRange(sos.TargetLocation, 60))
                    {
                        Item preLoot = null;
                        bool dredge  = HasTypeHook(tool, HookType.Dredging);

                        switch (Utility.Random(17))
                        {
                        case 0:     // Body parts
                        case 1:
                        {
                            int[] list = new int[]
                            {
                                0x1CDD, 0x1CE5,        // arm
                                0x1CE0, 0x1CE8,        // torso
                                0x1CE1, 0x1CE9,        // head
                                0x1CE2, 0x1CEC         // leg
                            };

                            preLoot = new ShipwreckedItem(Utility.RandomList(list), dredge);
                            break;
                        }

                        case 2:     // Bone parts
                        case 3:
                        {
                            int[] list = new int[]
                            {
                                0x1AE0, 0x1AE1, 0x1AE2, 0x1AE3, 0x1AE4,                         // skulls
                                0x1B09, 0x1B0A, 0x1B0B, 0x1B0C, 0x1B0D, 0x1B0E, 0x1B0F, 0x1B10, // bone piles
                                0x1B15, 0x1B16                                                  // pelvis bones
                            };

                            preLoot = new ShipwreckedItem(Utility.RandomList(list), dredge);
                            break;
                        }

                        case 4:     // Paintings and portraits
                        case 5:
                        {
                            preLoot = new ShipwreckedItem(Utility.Random(0xE9F, 10), dredge);
                            break;
                        }

                        case 6:     // Pillows
                        case 7:
                        {
                            preLoot = new ShipwreckedItem(Utility.Random(0x13A4, 11), dredge);
                            break;
                        }

                        case 8:     // Shells
                        case 9:
                        {
                            preLoot = new ShipwreckedItem(Utility.Random(0xFC4, 9), dredge);
                            break;
                        }

                        case 10:     //Hats
                        case 11:
                        {
                            if (Utility.RandomBool())
                            {
                                preLoot = new SkullCap();
                            }
                            else
                            {
                                preLoot = new TricorneHat();
                            }

                            break;
                        }

                        case 12:     // Misc
                        case 13:
                        {
                            int[] list = new int[]
                            {
                                0x1EB5,                        // unfinished barrel
                                0xA2A,                         // stool
                                0xC1F,                         // broken clock
                                0x1047, 0x1048,                // globe
                                0x1EB1, 0x1EB2, 0x1EB3, 0x1EB4 // barrel staves
                            };

                            if (Utility.Random(list.Length + 1) == 0)
                            {
                                preLoot = new Candelabra();
                            }
                            else
                            {
                                preLoot = new ShipwreckedItem(Utility.RandomList(list), dredge);
                            }

                            break;
                        }

                            #region High Seas
                        case 14:
                        {
                            int[] list = new int[]
                            {
                                0x1E19, 0x1E1A, 0x1E1B,         //Fish heads
                                0x1E2A, 0x1E2B,                 //Oars
                                0x1E71, 0x1E7A,                 //Unfinished drawers
                                0x1E75,                         //Unfinished legs
                            };

                            double ran = Utility.RandomDouble();

                            if (ran < 0.05)
                            {
                                preLoot = new YellowPolkaDotBikini();
                            }
                            else if (ran < 0.25)
                            {
                                preLoot = new ShipwreckedItem(list[Utility.RandomMinMax(3, 7)], dredge);
                            }
                            else
                            {
                                preLoot = new ShipwreckedItem(list[Utility.Random(3)], dredge);
                            }
                            break;
                        }
                            #endregion
                        }

                        if (preLoot != null)
                        {
                            if (preLoot is IShipwreckedItem)
                            {
                                ((IShipwreckedItem)preLoot).IsShipwreckedItem = true;
                            }

                            return(preLoot);
                        }

                        LockableContainer chest;

                        if (0.01 > Utility.RandomDouble())
                        {
                            chest = new ShipsStrongbox(sos.Level);
                        }
                        else
                        {
                            switch (sos.Level)
                            {
                            case 0: chest = new SOSChest(Utility.RandomBool() ? 0xE43 : 0xE41); break;

                            case 1: chest = new SOSChest(0xA306); break;

                            case 2: chest = new SOSChest(Utility.RandomBool() ? 0xE43 : 0xE41); break;

                            case 3: chest = new SOSChest(0xA308); break;

                            default:
                                if (.33 > Utility.RandomDouble())
                                {
                                    chest = new SOSChest(0xA30A);
                                }
                                else
                                {
                                    chest     = new SOSChest(Utility.RandomBool() ? 0xE41 : 0xE43);
                                    chest.Hue = 0x481;
                                }
                                break;
                            }
                        }

                        TreasureMapChest.Fill(from, chest, Math.Max(1, Math.Min(4, sos.Level)), true);
                        sos.OnSOSComplete(chest);

                        if (sos.IsAncient)
                        {
                            chest.DropItem(new FabledFishingNet());
                        }
                        else
                        {
                            chest.DropItem(new SpecialFishingNet());
                        }

                        chest.Movable   = true;
                        chest.Locked    = false;
                        chest.TrapType  = TrapType.None;
                        chest.TrapPower = 0;
                        chest.TrapLevel = 0;

                        chest.IsShipwreckedItem = true;

                        sos.Delete();

                        return(chest);
                    }
                }
            }

            return(base.Construct(type, from, tool));
        }
        public FriendlyPlayer() : base(AIType.AI_Melee, FightMode.Closest, 25, 1, 0.4, 0.3)
        {
            SpeechHue = Utility.RandomDyedHue();

            switch (Utility.Random(6))
            {
            case 0: Title = "[BEC]"; break;

            case 1: Title = "[COOL]"; break;

            case 2: Title = "[FUN]"; break;

            case 3: Title = "[PYR]"; break;

            case 4: Title = "[FRN]"; break;

            case 5: Title = "[CRA]"; break;
            }

            SetStr(100, 200);
            SetDex(100, 200);
            SetInt(125, 200);
            ActiveSpeed  = 0.2;
            PassiveSpeed = 0;

            SetHits(100, 400);

            SetDamage(10, 19);

            SetDamageType(ResistanceType.Physical, 120);

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

            SetSkill(SkillName.Swords, 79.0, 110.0);
            SetSkill(SkillName.Tactics, 79.0, 110.0);
            SetSkill(SkillName.MagicResist, 79.0, 110.0);
            SetSkill(SkillName.Tactics, 79.0, 110.0);
            SetSkill(SkillName.Parry, 79.0, 110.0);
            SetSkill(SkillName.Anatomy, 70.0, 110.0);
            SetSkill(SkillName.Healing, 70.0, 110.0);

            Fame  = 1000;
            Karma = 10000;

            VirtualArmor = 50;

            switch (Utility.Random(4))
            {
            case 0: AddItem(new Longsword()); break;

            case 1: AddItem(new Axe()); break;

            case 2: AddItem(new Bardiche()); break;

            case 3: AddItem(new Hatchet()); break;
            }


            switch (Utility.Random(5))
            {
            case 0: Item cloak = new Cloak();
                cloak.Movable = false;
                cloak.Hue     = GetRandomHue();
                AddItem(cloak);
                break;

            case 1: Item shroud = new HoodedShroudOfShadows();
                shroud.Movable = false;
                shroud.Hue     = GetRandomHue();
                AddItem(shroud);
                break;

            case 2: break;

            case 3: Item monkrobe = new MonkRobe();
                monkrobe.Movable = false;
                monkrobe.Hue     = GetRandomHue();
                AddItem(monkrobe);
                break;

            case 4: break;
            }


            switch (Utility.Random(4))
            {
            case 0: AddItem(new LongPants()); break;

            case 1: Item LegsOfBane = new LeggingsOfBane();
                LegsOfBane.Hue      = GetRandomHue();
                LegsOfBane.LootType = LootType.Newbied;
                LegsOfBane.Movable  = false;
                AddItem(LegsOfBane);
                break;

            case 2: Item ShortPantss = new ShortPants();
                ShortPantss.Hue      = GetRandomHue();
                ShortPantss.LootType = LootType.Newbied;
                ShortPantss.Movable  = false;
                AddItem(ShortPantss);
                break;

            case 3: Item PlateLegsv = new PlateLegs();
                PlateLegsv.Hue      = GetRandomHue();
                PlateLegsv.LootType = LootType.Newbied;
                PlateLegsv.Movable  = false;
                AddItem(PlateLegsv);
                break;
            }

            switch (Utility.Random(5))
            {
            case 0: AddItem(new Boots()); break;

            case 1: Item Sandals = new Sandals();
                Sandals.Hue      = GetRandomHue();
                Sandals.LootType = LootType.Blessed;
                Sandals.Movable  = false;
                AddItem(Sandals);
                break;

            case 2: Item Bootsv = new Boots();
                Bootsv.Hue      = GetRandomHue();
                Bootsv.LootType = LootType.Blessed;
                Bootsv.Movable  = false;
                AddItem(Bootsv);
                break;

            case 3: Item Shoesv = new Shoes();
                Shoesv.Hue      = GetRandomHue();
                Shoesv.LootType = LootType.Blessed;
                Shoesv.Movable  = false;
                AddItem(Shoesv);
                break;

            case 4: break;
            }

            switch (Utility.Random(6))
            {
            case 0: AddItem(new ClothNinjaHood(  )); break;

            case 1: Item SpiritOfTheTotem = new SpiritOfTheTotem();
                SpiritOfTheTotem.Hue      = GetRandomHue();
                SpiritOfTheTotem.Movable  = false;
                SpiritOfTheTotem.LootType = LootType.Blessed;
                AddItem(SpiritOfTheTotem);
                break;

            case 2: Item BoneHelmv = new BoneHelm();
                BoneHelmv.Hue      = GetRandomHue();
                BoneHelmv.Movable  = false;
                BoneHelmv.LootType = LootType.Blessed;
                AddItem(BoneHelmv);
                break;

            case 3: Item CloseHelmv = new CloseHelm();
                CloseHelmv.Hue      = GetRandomHue();
                CloseHelmv.Movable  = false;
                CloseHelmv.LootType = LootType.Blessed;
                AddItem(CloseHelmv);
                break;

            case 4: AddItem(new SkullCap( )); break;

            case 5: Item TricorneHatv = new TricorneHat();
                TricorneHatv.Hue      = GetRandomHue();
                TricorneHatv.Movable  = false;
                TricorneHatv.LootType = LootType.Blessed;
                AddItem(TricorneHatv);
                break;
            }

            switch (Utility.Random(3))
            {
            case 0: Item LeatherGlovesv = new LeatherGloves();
                LeatherGlovesv.Hue      = GetRandomHue();
                LeatherGlovesv.Movable  = false;
                LeatherGlovesv.LootType = LootType.Blessed;
                AddItem(LeatherGlovesv);
                break;

            case 1: Item PlateGlovesv = new PlateGloves();
                PlateGlovesv.Hue      = GetRandomHue();
                PlateGlovesv.Movable  = false;
                PlateGlovesv.LootType = LootType.Blessed;
                AddItem(PlateGlovesv);
                break;

            case 2: AddItem(new RingmailGloves()); break;
            }



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

            Utility.AssignRandomHair(this);

            for (int i = 0; i < 10; i++)
            {
                PackItem(new GreaterCurePotion());
                PackItem(new GreaterHealPotion());
                PackItem(new TotalRefreshPotion());
            }

            PackItem(new Bandage(Utility.RandomMinMax(10, 100)));

            Horse ns = new Horse();

            ns.Controlled    = true;
            ns.ControlMaster = this;
            ns.ControlOrder  = OrderType.Stay;
            ns.Rider         = this;
        }
Beispiel #14
0
        public CursedPirateKing() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Name        = "Bart Roberts";
            Title       = "The Cursed Pirate King";
            Body        = 0x190;
            Hue         = Utility.RandomMinMax(0x8596, 0x8599);
            BaseSoundID = 0x165;

            Cutlass cutlass = new Cutlass();

            cutlass.Movable = false;
            cutlass.Hue     = 0x497;
            cutlass.Skill   = SkillName.Swords;
            AddItem(cutlass);

            FancyShirt shirt = new FancyShirt();

            shirt.Movable = false;
            shirt.Hue     = 1153;
            AddItem(shirt);

            LongPants pants = new LongPants();

            pants.Movable = false;
            pants.Hue     = 0x497;
            AddItem(pants);

            ThighBoots boots = new ThighBoots();

            boots.Movable = false;
            boots.Hue     = 0x497;
            AddItem(boots);

            GoldEarrings earrings = new GoldEarrings();

            earrings.Movable = false;
            earrings.Hue     = 0x35;
            AddItem(earrings);

            TricorneHat hat = new TricorneHat();

            hat.Movable = false;
            hat.Hue     = 0x497;
            AddItem(hat);

            SetStr(400, 560);
            SetDex(90, 120);
            SetInt(300, 460);

            SetHits(6000, 12000);
            SetMana(5000);

            SetDamage(16, 34);

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

            SetResistance(ResistanceType.Physical, 40, 60);
            SetResistance(ResistanceType.Fire, 60, 80);
            SetResistance(ResistanceType.Cold, 40, 60);
            SetResistance(ResistanceType.Poison, 40, 60);
            SetResistance(ResistanceType.Energy, 40, 65);

            SetSkill(SkillName.Anatomy, 120.0);
            SetSkill(SkillName.EvalInt, 100.0);
            SetSkill(SkillName.Magery, 100.0);
            SetSkill(SkillName.Meditation, 120.0);
            SetSkill(SkillName.MagicResist, 100.0);
            SetSkill(SkillName.Tactics, 100.0);
            SetSkill(SkillName.Wrestling, 120.0);
            SetSkill(SkillName.Swords, 160.0);

            Fame  = 20000;
            Karma = -20000;

            VirtualArmor = 60;
        }
Beispiel #15
0
        public override Item Construct(Type type, Mobile from, Item _i, HarvestDefinition _d, HarvestBank _b, HarvestResource _r)
        {
            if (type == typeof(TreasureMap))
            {
                int level = 1;

                return(new TreasureMap(level, Map.Felucca));
            }

            else if (type == typeof(MessageInABottle))
            {
                return(new MessageInABottle(Map.Felucca));
            }

            Container pack = from.Backpack;

            if (pack != null)
            {
                List <SOS> messages = pack.FindItemsByType <SOS>();

                for (int i = 0; i < messages.Count; ++i)
                {
                    SOS sos = messages[i];

                    if (from.Map == sos.TargetMap && from.InRange(sos.TargetLocation, 60) && !sos.Completed)
                    {
                        Item preLoot = null;

                        switch (Utility.Random(7))
                        {
                        case 0:     // Body parts
                        {
                            int[] list = new int[]
                            {
                                0x1CDD, 0x1CE5,                                        // arm
                                0x1CE0, 0x1CE8,                                        // torso
                                0x1CE1, 0x1CE9,                                        // head
                                0x1CE2, 0x1CEC                                         // leg
                            };

                            preLoot = new ShipwreckedItem(Utility.RandomList(list));
                            break;
                        }

                        case 1:     // Bone parts
                        {
                            int[] list = new int[]
                            {
                                0x1AE0, 0x1AE1, 0x1AE2, 0x1AE3, 0x1AE4,                         // skulls
                                0x1B09, 0x1B0A, 0x1B0B, 0x1B0C, 0x1B0D, 0x1B0E, 0x1B0F, 0x1B10, // bone piles
                                0x1B15, 0x1B16                                                  // pelvis bones
                            };

                            preLoot = new ShipwreckedItem(Utility.RandomList(list));
                            break;
                        }

                        case 2:     // Pillows
                        {
                            preLoot = new ShipwreckedItem(Utility.Random(0x13A4, 11));
                            break;
                        }

                        case 3:     // Shells
                        {
                            preLoot = new ShipwreckedItem(Utility.Random(0xFC4, 9));
                            break;
                        }

                        case 4:         //Hats
                        {
                            if (Utility.RandomBool())
                            {
                                preLoot = new SkullCap();
                            }
                            else
                            {
                                preLoot = new TricorneHat();
                            }

                            break;
                        }

                        case 5:     // Misc
                        {
                            int[] list = new int[]
                            {
                                0x1EB5,                                        // unfinished barrel
                                0xA2A,                                         // stool
                                0xC1F,                                         // broken clock
                                0x1EB1, 0x1EB2, 0x1EB3, 0x1EB4                 // barrel staves
                            };

                            if (Utility.Random(list.Length + 1) == 0)
                            {
                                preLoot = new Candelabra();
                            }
                            else
                            {
                                preLoot = new ShipwreckedItem(Utility.RandomList(list));
                            }

                            break;
                        }
                        }

                        if (preLoot != null)
                        {
                            if (preLoot is IShipwreckedItem)
                            {
                                ((IShipwreckedItem)preLoot).IsShipwreckedItem = true;
                            }

                            return(preLoot);
                        }

                        LockableContainer chest;

                        if (Utility.RandomBool())
                        {
                            chest = new MetalGoldenChest();
                        }
                        else
                        {
                            chest = new WoodenChest();
                        }

                        if (sos.IsAncient)
                        {
                            chest.Hue = 0x481;
                        }

                        TreasureMapChest.Fill(chest, Math.Max(1, Math.Min(3, (sos.Level + 1))));

                        if (sos.IsAncient)
                        {
                            chest.DropItem(new FabledFishingNet());
                        }
                        else
                        {
                            chest.DropItem(new SpecialFishingNet());
                        }

                        if (Utility.Random(500) == 0)
                        {
                            Item mask = new HornedTribalMask();
                            mask.Hue  = 2715;
                            mask.Name = "Mask of Cthulu";

                            chest.DropItem(mask);
                        }

                        switch (Utility.Random(300))
                        {
                        case 0:
                        {
                            Item rustedchest = new PlateChest();
                            rustedchest.Hue  = 2718;
                            rustedchest.Name = "a rusted platemail chest recovered from a shipwreck";

                            chest.DropItem(rustedchest);
                            break;
                        }

                        case 1:
                        {
                            Item rustedarms = new PlateArms();
                            rustedarms.Hue  = 2718;
                            rustedarms.Name = "rusted platemail arms recovered from a shipwreck";

                            chest.DropItem(rustedarms);
                            break;
                        }

                        case 2:
                        {
                            Item rustedlegs = new PlateLegs();
                            rustedlegs.Hue  = 2718;
                            rustedlegs.Name = "rusted platemail legguards recovered from a shipwreck";

                            chest.DropItem(rustedlegs);
                            break;
                        }

                        case 3:
                        {
                            Item rustedgloves = new PlateGloves();
                            rustedgloves.Hue  = 2718;
                            rustedgloves.Name = "rusted platemail gloves recovered from a shipwreck";

                            chest.DropItem(rustedgloves);
                            break;
                        }

                        case 4:
                        {
                            Item rustedgorget = new PlateGorget();
                            rustedgorget.Hue  = 2718;
                            rustedgorget.Name = "rusted platemail gorget recovered from a shipwreck";

                            chest.DropItem(rustedgorget);
                            break;
                        }

                        case 5:
                        {
                            Item rustedhelm = new PlateHelm();
                            rustedhelm.Hue  = 2718;
                            rustedhelm.Name = "a rusted platemail helmet recovered from a shipwreck";

                            chest.DropItem(rustedhelm);
                            break;
                        }
                        }

                        switch (Utility.Random(400))
                        {
                        case 0:
                        {
                            Item lamp = new LampPost1();
                            lamp.Name = "Britannia Head Light";
                            lamp.Hue  = 2601;

                            chest.DropItem(lamp);
                            break;
                        }

                        case 1:
                        {
                            Item lantern = new HangingLantern();
                            lantern.Name    = "Fog Lamp";
                            lantern.Hue     = 2601;
                            lantern.Movable = true;

                            chest.DropItem(lantern);
                            break;
                        }
                        }

                        chest.Movable   = true;
                        chest.Locked    = false;
                        chest.TrapType  = TrapType.None;
                        chest.TrapPower = 0;
                        chest.TrapLevel = 0;

                        sos.Completed = true;

                        BaseBoat ownerBoat = BaseBoat.FindBoatAt(from.Location, from.Map);

                        PlayerMobile player = from as PlayerMobile;

                        if (ownerBoat != null && player != null)
                        {
                            if (ownerBoat.IsFriend(player) || ownerBoat.IsOwner(player) || ownerBoat.IsCoOwner(player))
                            {
                                double doubloonValue = Utility.RandomMinMax(25, 50);

                                int finalDoubloonAmount = (int)doubloonValue;

                                bool shipOwner          = ownerBoat.IsOwner(player);
                                bool bankDoubloonsValid = false;
                                bool holdPlacementValid = false;

                                //Deposit Half In Player's Bank
                                if (Banker.DepositUniqueCurrency(player, typeof(Doubloon), finalDoubloonAmount))
                                {
                                    Doubloon doubloonPile = new Doubloon(finalDoubloonAmount);
                                    player.SendSound(doubloonPile.GetDropSound());
                                    doubloonPile.Delete();

                                    bankDoubloonsValid = true;
                                }

                                //Deposit Other Half in Ship
                                if (ownerBoat.DepositDoubloons(finalDoubloonAmount))
                                {
                                    Doubloon doubloonPile = new Doubloon(finalDoubloonAmount);
                                    player.SendSound(doubloonPile.GetDropSound());
                                    doubloonPile.Delete();

                                    holdPlacementValid = true;
                                }

                                if (shipOwner)
                                {
                                    player.PirateScore += finalDoubloonAmount;
                                    //ownerBoat.doubloonsEarned += finalDoubloonAmount * 2;

                                    if (bankDoubloonsValid && holdPlacementValid)
                                    {
                                        player.SendMessage("You've received " + (finalDoubloonAmount * 2).ToString() + " doubloons for completing a message in a bottle! They have been evenly split between your bank box and your ship's hold.");
                                    }

                                    else if (bankDoubloonsValid && !holdPlacementValid)
                                    {
                                        player.SendMessage("You've earned " + (finalDoubloonAmount * 2).ToString() + " doubloons, however there was not enough room to place all of them in your ship's hold.");
                                    }

                                    else if (!bankDoubloonsValid && holdPlacementValid)
                                    {
                                        player.SendMessage("You've earned " + (finalDoubloonAmount * 2).ToString() + " doubloons, however there was not enough room to place all of them in your bank box.");
                                    }
                                }

                                else
                                {
                                    //ownerBoat.doubloonsEarned += finalDoubloonAmount;
                                    player.PirateScore += finalDoubloonAmount;

                                    if (bankDoubloonsValid)
                                    {
                                        player.SendMessage("You've earned " + finalDoubloonAmount.ToString() + " doubloons for completing a message in a bottle! They have been placed in your bank box.");
                                    }

                                    else
                                    {
                                        player.SendMessage("You've earned doubloons, but there was not enough room to place all of them in your bank box.");
                                    }
                                }
                            }
                        }

                        return(chest);
                    }
                }
            }

            return(base.Construct(type, from, _i, _d, _b, _r));
        }
Beispiel #16
0
        public Gambler()
            : base(AIType.AI_Melee, FightMode.None, 10, 1, 0.8, 3.0)
        {
            SetStr(10, 30);
            SetDex(10, 30);
            SetInt(10, 30);
            Fame      = 50;
            Karma     = 50;
            SpeechHue = Utility.RandomDyedHue();
            Title     = "the gambler";
            Hue       = Utility.RandomSkinHue();
            Blessed   = true;
            NameHue   = 0x35;

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

                HairItemID = Utility.RandomList(0x203B, 0x203C, 0x203D, 0x2045, 0x204A, 0x2046, 0x2049);
                HairHue    = Utility.RandomHairHue();

                Item hat = null;
                switch (Utility.Random(5))
                {
                case 0: hat = new FloppyHat(Utility.RandomNeutralHue());              break;

                case 1: hat = new FeatheredHat(Utility.RandomNeutralHue());   break;

                case 2: hat = new Bonnet();                                             break;

                case 3: hat = new Cap(Utility.RandomNeutralHue());            break;
                }
                AddItem(hat);
            }
            else
            {
                this.Body = 0x190;
                this.Name = NameList.RandomName("male");

                HairItemID = Utility.RandomList(0x203B, 0x203C, 0x203D, 0x2044, 0x2045, 0x2047, 0x2048);
                HairHue    = Utility.RandomHairHue();

                FacialHairItemID = Utility.RandomList(0x0000, 0x203E, 0x203F, 0x2040, 0x2041, 0x2067, 0x2068, 0x2069);
                FacialHairHue    = HairHue;

                Item hat = null;
                switch (Utility.Random(7))
                {
                case 0: hat = new SkullCap(GetRandomHue());                   break;

                case 1: hat = new Bandana(GetRandomHue());                    break;

                case 2: hat = new WideBrimHat();                                        break;

                case 3: hat = new TallStrawHat(Utility.RandomNeutralHue());   break;

                case 4: hat = new StrawHat(Utility.RandomNeutralHue());               break;

                case 5: hat = new TricorneHat(Utility.RandomNeutralHue());    break;
                }
                AddItem(hat);
            }
            AddItem(new LongPants(GetRandomHue()));
            AddItem(new FancyShirt(GetRandomHue()));
            AddItem(new Boots(Utility.RandomNeutralHue()));
            AddItem(new Cloak(GetRandomHue()));
            AddItem(new BodySash(GetRandomHue()));

            Container pack = new Backpack();

            pack.Movable = false;
            pack.Visible = false;

            AddItem(pack);

            //reset stats
            for (int i = 0; i <= 5; ++i)
            {
                gamestats[i] = 0;
            }
        }
Beispiel #17
0
        public override Item Construct(Type type, Mobile from)
        {
            if (type == typeof(TreasureMap))
            {
                int level;
                //if ( from is PlayerMobile && ((PlayerMobile)from).Young && from.Map == Map.Trammel && TreasureMap.IsInHavenIsland( from ) )
                //	level = 0;
                //else
                level = 1;

                return(new TreasureMap(level, /*from.Map == Map.Felucca ?*/ Map.Felucca /* : Map.Trammel*/));
            }
            else if (type == typeof(MessageInABottle))
            {
                return(new MessageInABottle(/*from.Map == Map.Felucca ?*/ Map.Felucca /* : Map.Trammel*/));
            }

            Container pack = from.Backpack;

            if (pack != null)
            {
                List <SOS> messages = pack.FindItemsByType <SOS>();

                for (int i = 0; i < messages.Count; ++i)
                {
                    SOS sos = messages[i];

                    if (from.Map == sos.TargetMap && from.InRange(sos.TargetLocation, 60))
                    {
                        Item preLoot = null;

                        switch (Utility.Random(8))
                        {
                        case 0:                                 // Body parts
                        {
                            int[] list = new int[]
                            {
                                0x1CDD, 0x1CE5,                                                // arm
                                0x1CE0, 0x1CE8,                                                // torso
                                0x1CE1, 0x1CE9,                                                // head
                                0x1CE2, 0x1CEC                                                 // leg
                            };

                            preLoot = new ShipwreckedItem(Utility.RandomList(list));
                            break;
                        }

                        case 1:                                 // Bone parts
                        {
                            int[] list = new int[]
                            {
                                0x1AE0, 0x1AE1, 0x1AE2, 0x1AE3, 0x1AE4,                         // skulls
                                0x1B09, 0x1B0A, 0x1B0B, 0x1B0C, 0x1B0D, 0x1B0E, 0x1B0F, 0x1B10, // bone piles
                                0x1B15, 0x1B16                                                  // pelvis bones
                            };

                            preLoot = new ShipwreckedItem(Utility.RandomList(list));
                            break;
                        }

                        case 2:                                 // Paintings and portraits
                        {
                            preLoot = new ShipwreckedItem(Utility.Random(0xE9F, 10));
                            break;
                        }

                        case 3:                                 // Pillows
                        {
                            preLoot = new ShipwreckedItem(Utility.Random(0x13A4, 11));
                            break;
                        }

                        case 4:                                 // Shells
                        {
                            preLoot = new ShipwreckedItem(Utility.Random(0xFC4, 9));
                            break;
                        }

                        case 5:                                 //Hats
                        {
                            if (Utility.RandomBool())
                            {
                                preLoot = new SkullCap();
                            }
                            else
                            {
                                preLoot = new TricorneHat();
                            }

                            break;
                        }

                        case 6:                                 // Misc
                        {
                            int[] list = new int[]
                            {
                                0x1EB5,                                                // unfinished barrel
                                0xA2A,                                                 // stool
                                0xC1F,                                                 // broken clock
                                0x1047, 0x1048,                                        // globe
                                0x1EB1, 0x1EB2, 0x1EB3, 0x1EB4                         // barrel staves
                            };

                            if (Utility.Random(list.Length + 1) == 0)
                            {
                                preLoot = new Candelabra();
                            }
                            else
                            {
                                preLoot = new ShipwreckedItem(Utility.RandomList(list));
                            }

                            break;
                        }
                        }

                        if (preLoot != null)
                        {
                            if (preLoot is IShipwreckedItem)
                            {
                                ((IShipwreckedItem)preLoot).IsShipwreckedItem = true;
                            }

                            return(preLoot);
                        }

                        LockableContainer chest = null;

                        switch (Utility.Random(3))
                        {
                        case 0: chest = new MetalGoldenChest(); break;

                        case 1: chest = new MetalChest(); break;

                        default:
                        case 2: chest = new WoodenChest(); break;
                        }

                        if (sos.IsAncient)
                        {
                            int hue = 1150;

                            if (0.20 > Utility.RandomDouble())
                            {
                                switch (Utility.Random((chest is WoodenChest) ? 6 : 14))
                                {
                                case 0: hue = 1193; break;

                                case 1: hue = 1281; break;

                                case 2: hue = 1190; break;

                                case 3: hue = 1165; break;

                                case 4: hue = 1160; break;

                                case 5: hue = 1126; break;

                                case 6: hue = CraftResources.GetInfo(CraftResource.Valorite).Hue; break;

                                case 7: hue = CraftResources.GetInfo(CraftResource.Verite).Hue; break;

                                case 8: hue = CraftResources.GetInfo(CraftResource.Agapite).Hue; break;

                                case 9: hue = CraftResources.GetInfo(CraftResource.Gold).Hue; break;

                                case 10: hue = CraftResources.GetInfo(CraftResource.Bronze).Hue; break;

                                case 11: hue = CraftResources.GetInfo(CraftResource.Copper).Hue; break;

                                case 12: hue = CraftResources.GetInfo(CraftResource.ShadowIron).Hue; break;

                                case 13: hue = CraftResources.GetInfo(CraftResource.DullCopper).Hue; break;
                                }
                            }

                            chest.Hue = hue;
                        }
                        else if ((chest is MetalChest || chest is MetalGoldenChest) && (0.5 * sos.Level) >= Utility.RandomDouble())
                        {
                            int           randhue  = Utility.Random(120);
                            CraftResource resource = CraftResource.None;

                            if (randhue >= 118)
                            {
                                resource = CraftResource.Valorite;
                            }
                            else if (randhue >= 115)
                            {
                                resource = CraftResource.Verite;
                            }
                            else if (randhue >= 110)
                            {
                                resource = CraftResource.Agapite;
                            }
                            else if (randhue >= 100)
                            {
                                resource = CraftResource.Gold;
                            }
                            else if (randhue >= 90)
                            {
                                resource = CraftResource.Bronze;
                            }
                            else if (randhue >= 70)
                            {
                                resource = CraftResource.Copper;
                            }
                            else if (randhue >= 40)
                            {
                                resource = CraftResource.ShadowIron;
                            }
                            else
                            {
                                resource = CraftResource.DullCopper;
                            }

                            chest.Hue = CraftResources.GetInfo(resource).Hue;
                        }

                        int soslevel = Math.Max(1, Math.Max(4, sos.Level));

                        TreasureMapChest.Fill(chest, soslevel);

                        if (sos.IsAncient)
                        {
                            chest.DropItem(new FabledFishingNet());
                        }
                        else
                        {
                            chest.DropItem(new SpecialFishingNet());
                        }

                        chest.Movable           = true;
                        chest.Locked            = false;
                        chest.Name              = "treasure chest";
                        chest.IsShipwreckedItem = true;

                        if (sos.Level > 0)
                        {
                            chest.TrapType  = TrapType.ExplosionTrap;
                            chest.TrapPower = soslevel * Utility.RandomMinMax(5, 15);
                            chest.TrapLevel = 0;
                        }
                        else
                        {
                            chest.TrapType  = TrapType.None;
                            chest.TrapPower = 0;
                            chest.TrapLevel = 0;
                        }

                        sos.Delete();

                        return(chest);
                    }
                }
            }

            return(base.Construct(type, from));
        }
        public Pirate2() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.15, 0.4)
        {
            Name = "Pirate";

            if (Female = Utility.RandomBool())
            {
                Body = 186;
            }
            else
            {
                Body = 185;
            }

            SetStr(578, 620);
            SetDex(450, 500);
            SetInt(200, 300);

            SetHits(100, 150);
            SetDamage(30, 45);

            SetDamageType(ResistanceType.Physical, 100);

            SetSkill(SkillName.Fencing, 72.5, 100.0);
            SetSkill(SkillName.Healing, 60.3, 100.0);
            SetSkill(SkillName.Macing, 72.5, 100.0);
            SetSkill(SkillName.Poisoning, 60.0, 100.5);
            SetSkill(SkillName.MagicResist, 72.5, 100.0);
            SetSkill(SkillName.Swords, 72.5, 100.0);
            SetSkill(SkillName.Tactics, 72.5, 100.0);

            Fame  = 1000;
            Karma = -1000;

            CanSwim = true;

            Tamable      = false;
            ControlSlots = 1;
            MinTameSkill = 99.1;

            PackItem(new Gold(650, 1500));
            //PackItem( new Musket2() );

            new Horse().Rider = this;

            switch (Utility.Random(5))
            {
            case 0: PackItem(new SOS());
                break;

            case 1: PackItem(new SpecialFishingNet());
                break;
            }

            Item LongPants = new LongPants();

            LongPants.Movable = false;
            AddItem(LongPants);
            LongPants.Hue = 1;

            Item LeatherGloves = new LeatherGloves();

            LeatherGloves.Hue     = 1;
            LeatherGloves.Movable = false;
            AddItem(LeatherGloves);

            Item FancyShirt = new FancyShirt();

            FancyShirt.Hue     = 43;
            FancyShirt.Movable = false;
            AddItem(FancyShirt);

            Item BodySash = new BodySash();

            BodySash.Hue     = 1;
            BodySash.Movable = false;
            AddItem(BodySash);

            Item TricorneHat = new TricorneHat();

            TricorneHat.Hue     = 1;
            TricorneHat.Movable = false;
            AddItem(TricorneHat);

            Item ThighBoots = new ThighBoots();

            ThighBoots.Hue     = 1;
            ThighBoots.Movable = false;
            AddItem(ThighBoots);

            /*Item Musket2 = new Musket2();
             * Musket2.LootType = LootType.Blessed;
             * Musket2.Movable = false;
             * AddItem( Musket2 );
             *
             * switch ( Utility.Random( 1 ))
             * {
             *      case 0: PackItem( new ClothingBlessDeed() );
             *      break;
             *      }*/
        }
        public CaptainJackSparrow() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Body  = 0x190;
            Name  = "Captain Jack Sparrow";
            Title = "Dread Pirate";
            Hue   = 0;

            SetStr(351, 400);
            SetDex(151, 165);
            SetInt(76, 100);

            SetHits(1200, 1500);

            SetDamage(15, 25);

            SetDamageType(ResistanceType.Physical, 100);
            SetDamageType(ResistanceType.Cold, 25);

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

            SetSkill(SkillName.Wrestling, 100.0);
            SetSkill(SkillName.Swords, 120.1, 130.0);
            SetSkill(SkillName.Anatomy, 120.1, 130.0);
            SetSkill(SkillName.MagicResist, 90.1, 100.0);
            SetSkill(SkillName.Tactics, 90.1, 100.0);

            Fame  = 10000;
            Karma = -10000;

            VirtualArmor = 55;

            Cutlass weapon = new Cutlass();

            weapon.Hue     = 0x835;
            weapon.Movable = false;
            AddItem(weapon);

            MetalShield shield = new MetalShield();

            shield.Hue     = 0x835;
            shield.Movable = false;
            AddItem(shield);

            TricorneHat hat = new TricorneHat();

            hat.Hue = 0x835;
            AddItem(hat);

            BoneArms arms = new BoneArms();

            arms.Hue = 0x835;
            AddItem(arms);

            BoneGloves gloves = new BoneGloves();

            gloves.Hue = 0x835;
            AddItem(gloves);

            BoneChest tunic = new BoneChest();

            tunic.Hue = 0x835;
            AddItem(tunic);

            BoneLegs legs = new BoneLegs();

            legs.Hue = 0x835;
            AddItem(legs);

            AddItem(new Boots());
            PackGold(1500, 2000);

            switch (Utility.Random(3))
            {
            case 0: PackItem(new DreadPirateHat()); break;

            case 1: PackItem(new ShipModelOfTheHMSCape()); break;

            case 2: PackItem(new CaptainJackSparrowsCutlass()); break;
            }
        }
Beispiel #20
0
        public XmlQuestNPC(int gender, bool clothes) : base(AIType.AI_Melee, FightMode.None, 10, 1, 0.8, 3.0)
        {
            SetStr(10, 30);
            SetDex(10, 30);
            SetInt(10, 30);

            Fame  = 50;
            Karma = 50;

            CanHearGhosts = true;

            SpeechHue = Utility.RandomDyedHue();
            Title     = string.Empty;
            Hue       = Utility.RandomSkinHue();

            switch (gender)
            {
            case -1: this.Female = Utility.RandomBool(); break;

            case 0: this.Female = false; break;

            case 1: this.Female = true; break;
            }

            if (clothes)
            {
                if (this.Female)
                {
                    this.Body = 0x191;
                    this.Name = NameList.RandomName("female");
                    Item hair = new Item(Utility.RandomList(0x203B, 0x203C, 0x203D, 0x2045, 0x204A, 0x2046, 0x2049));
                    hair.Hue     = Utility.RandomHairHue();
                    hair.Layer   = Layer.Hair;
                    hair.Movable = false;
                    AddItem(hair);
                    Item hat = null;
                    switch (Utility.Random(5))//4 hats, one empty, for no hat
                    {
                    case 0: hat = new FloppyHat(Utility.RandomNeutralHue()); break;

                    case 1: hat = new FeatheredHat(Utility.RandomNeutralHue()); break;

                    case 2: hat = new Bonnet(); break;

                    case 3: hat = new Cap(Utility.RandomNeutralHue()); break;
                    }
                    AddItem(hat);
                    Item pants = null;
                    switch (Utility.Random(3))
                    {
                    case 0: pants = new ShortPants(GetRandomHue()); break;

                    case 1: pants = new LongPants(GetRandomHue()); break;

                    case 2: pants = new Skirt(GetRandomHue()); break;
                    }
                    AddItem(pants);
                    Item shirt = null;
                    switch (Utility.Random(7))
                    {
                    case 0: shirt = new Doublet(GetRandomHue()); break;

                    case 1: shirt = new Surcoat(GetRandomHue()); break;

                    case 2: shirt = new Tunic(GetRandomHue()); break;

                    case 3: shirt = new FancyDress(GetRandomHue()); break;

                    case 4: shirt = new PlainDress(GetRandomHue()); break;

                    case 5: shirt = new FancyShirt(GetRandomHue()); break;

                    case 6: shirt = new Shirt(GetRandomHue()); break;
                    }
                    AddItem(shirt);
                }
                else
                {
                    this.Body = 0x190;
                    this.Name = NameList.RandomName("male");
                    Item hair = new Item(Utility.RandomList(0x203B, 0x203C, 0x203D, 0x2044, 0x2045, 0x2047, 0x2048));
                    hair.Hue     = Utility.RandomHairHue();
                    hair.Layer   = Layer.Hair;
                    hair.Movable = false;
                    AddItem(hair);
                    Item beard = new Item(Utility.RandomList(0x0000, 0x203E, 0x203F, 0x2040, 0x2041, 0x2067, 0x2068, 0x2069));
                    beard.Hue     = hair.Hue;
                    beard.Layer   = Layer.FacialHair;
                    beard.Movable = false;
                    AddItem(beard);
                    Item hat = null;
                    switch (Utility.Random(7)) //6 hats, one empty, for no hat
                    {
                    case 0: hat = new SkullCap(GetRandomHue()); break;

                    case 1: hat = new Bandana(GetRandomHue()); break;

                    case 2: hat = new WideBrimHat(); break;

                    case 3: hat = new TallStrawHat(Utility.RandomNeutralHue()); break;

                    case 4: hat = new StrawHat(Utility.RandomNeutralHue()); break;

                    case 5: hat = new TricorneHat(Utility.RandomNeutralHue()); break;
                    }
                    AddItem(hat);
                    Item pants = null;
                    switch (Utility.Random(2))
                    {
                    case 0: pants = new ShortPants(GetRandomHue()); break;

                    case 1: pants = new LongPants(GetRandomHue()); break;
                    }
                    AddItem(pants);
                    Item shirt = null;
                    switch (Utility.Random(5))
                    {
                    case 0: shirt = new Doublet(GetRandomHue()); break;

                    case 1: shirt = new Surcoat(GetRandomHue()); break;

                    case 2: shirt = new Tunic(GetRandomHue()); break;

                    case 3: shirt = new FancyShirt(GetRandomHue()); break;

                    case 4: shirt = new Shirt(GetRandomHue()); break;
                    }
                    AddItem(shirt);
                }

                Item feet = null;
                switch (Utility.Random(3))
                {
                case 0: feet = new Boots(Utility.RandomNeutralHue()); break;

                case 1: feet = new Shoes(Utility.RandomNeutralHue()); break;

                case 2: feet = new Sandals(Utility.RandomNeutralHue()); break;
                }
                AddItem(feet);
            }
            Container pack = new Backpack();

            //pack.DropItem( new Gold( 0, 50 ) );

            pack.Movable = false;

            AddItem(pack);
        }
        public UndeadBlackBart() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.175, 0.2)
        {
            Body      = 400;
            Team      = 1;
            Kills     = 10;
            Hue       = Utility.RandomSkinHue();
            SpeechHue = 1153;
            this.Body = 0x190;
            Name      = NameList.RandomName("Male");
            SetStr(100);
            SetDex(100);
            SetInt(20);

            SetSkill(SkillName.Archery, 100.0);
            SetSkill(SkillName.MagicResist, 100.0);
            SetSkill(SkillName.Tactics, 100.0);
            SetSkill(SkillName.Healing, 100.0);
            SetSkill(SkillName.Anatomy, 100.0);
            SetSkill(SkillName.Swords, 100.0);
            SetSkill(SkillName.Hiding, 120.0, 180.0);
            SetSkill(SkillName.Stealth, 120.0, 180.0);

            Fame  = 4500;
            Karma = -4500;

            VirtualArmor = 0;

            Item hair = new LongHair();

            hair.Hue     = 1175;
            hair.Layer   = Layer.Hair;
            hair.Movable = false;
            AddItem(hair);
            Item beard = new MediumLongBeard();

            beard.Hue     = 1175;
            beard.Layer   = Layer.FacialHair;
            beard.Movable = false;
            AddItem(beard);
            PackGold(120, 160);
            PackItem(new Bandage(100));

            Item fancyshirt = new FancyShirt();

            EquipItem(fancyshirt);
            Item necklace = new Necklace();

            EquipItem(necklace);
            Item goldring = new GoldRing();

            EquipItem(goldring);
            Item longpants = new LongPants();

            longpants.Hue = Utility.RandomNeutralHue();
            EquipItem(longpants);
            Item boots = new Boots();

            EquipItem(boots);
            Item gloves = new LeatherGloves();

            EquipItem(gloves);
            Item hat = new TricorneHat();

            hat.Hue = 1;
            EquipItem(hat);

            switch (Utility.Random(2))
            {
            case 0:
            {
                Item scimitar = new Scimitar();
                EquipItem(scimitar);
                break;
            }

            case 1:
            {
                Item cutlass = new Cutlass();
                EquipItem(cutlass);
                break;
            }
            }
        }
        public FamousPiratesMace()
            : base(AIType.AI_Melee, FightMode.Closest, 15, 1, 0.9, 0.9)
        {
            int Hue = 2075;

            // Skills and Stats
            this.InitStats(350, 350, 310);
            this.Skills[SkillName.Macing].Base  = 150;
            this.Skills[SkillName.Anatomy].Base = 150;
            this.Skills[SkillName.Healing].Base = 150;
            this.Skills[SkillName.Tactics].Base = 150;

            // Name
            this.Name = "Captain Hector Barbossa";

            // Equip
            WarHammer war = new WarHammer();

            war.Movable = true;
            war.Crafter = this;
            war.Quality = WeaponQuality.Exceptional;
            AddItem(war);

            Boots bts = new Boots();

            bts.Movable = false;
            bts.Hue     = Hue;
            AddItem(bts);

            ChainChest cht = new ChainChest();

            cht.Movable  = false;
            cht.LootType = LootType.Regular;
            cht.Crafter  = this;
            cht.Quality  = ArmorQuality.Exceptional;
            AddItem(cht);

            ChainLegs chl = new ChainLegs();

            chl.Movable  = false;
            chl.LootType = LootType.Regular;
            chl.Crafter  = this;
            chl.Quality  = ArmorQuality.Exceptional;
            AddItem(chl);

            PlateArms pla = new PlateArms();

            pla.Movable  = false;
            pla.LootType = LootType.Regular;
            pla.Crafter  = this;
            pla.Quality  = ArmorQuality.Exceptional;
            AddItem(pla);

            TricorneHat tch = new TricorneHat();

            tch.Movable = false;
            tch.Hue     = Hue;
            AddItem(tch);

            Bandage band = new Bandage(20);

            AddToBackpack(band);
        }
Beispiel #23
0
        public PirateCaptain(BaseGalleon galleon)
            : base(galleon, AIType.AI_Melee, FightMode.Weakest, 25, 1, .2, .4)
        {
            PickRandomName();

            if (m_PirateName > 0 && (m_PirateName == 1116679 || m_PirateName == 1116680 || m_PirateName == 1116683))
            {
                Female = true;
            }

            SpeechHue = Utility.RandomDyedHue();
            Title     = "the dread pirate";
            Hue       = Race.RandomSkinHue();

            Body = Female ? 0x191 : 0x190;

            SetStr(500, 750);
            SetDex(125, 175);
            SetInt(61, 75);

            SetHits(4500, 5000);

            SetDamage(23, 35);

            SetSkill(SkillName.Fencing, 115.0, 120.0);
            SetSkill(SkillName.Macing, 115.0, 120.0);
            SetSkill(SkillName.MagicResist, 115.0, 120.0);
            SetSkill(SkillName.Swords, 115.0, 120.0);
            SetSkill(SkillName.Tactics, 115.0, 120.0);
            SetSkill(SkillName.Wrestling, 115.0, 120.0);
            SetSkill(SkillName.Anatomy, 115.0, 120.0);

            Item hat;
            Item fancyShirt = new FancyShirt();
            Item shirt      = new Shirt(GetRandomShirtHue());

            shirt.Layer = Layer.OuterTorso;

            if (Utility.RandomBool())
            {
                hat = new Bandana();
            }
            else
            {
                hat = new TricorneHat();
            }

            hat.Hue = Utility.RandomNeutralHue();

            AddItem(new Boots());
            AddItem(shirt);
            AddItem(fancyShirt);
            AddItem(hat);
            AddItem(new Cloak(Utility.RandomNeutralHue()));

            switch (Utility.Random(7))
            {
            case 0: AddItem(new Longsword()); break;

            case 1: AddItem(new Cutlass()); break;

            case 2: AddItem(new Broadsword()); break;

            case 5: AddItem(new Dagger()); break;
            }

            Utility.AssignRandomHair(this);

            Fame  = 22000;
            Karma = -22000;

            if (IsSoulboundEnemies)
            {
                IsSoulbound = true;
            }
        }
        public FamousPiratesAssassin()
            : base(AIType.AI_Melee, FightMode.Closest, 15, 1, 0.2, 0.6)
        {
            // A FamousPirates Hybrid Assassin
            int Hue = 2075;

            // Skills and Stats
            this.InitStats(305, 305, 305);
            this.Skills[SkillName.Magery].Base     = 150;
            this.Skills[SkillName.EvalInt].Base    = 150;
            this.Skills[SkillName.Swords].Base     = 150;
            this.Skills[SkillName.Tactics].Base    = 150;
            this.Skills[SkillName.Meditation].Base = 150;
            this.Skills[SkillName.Poisoning].Base  = 100;

            // Name
            this.Name = "BootStrap Bill Turner";

            // Equip
            Spellbook book = FullSpellbook();

            AddToBackpack(book);

            Katana kat = new Katana();

            kat.Movable       = false;
            kat.LootType      = LootType.Regular;
            kat.Crafter       = this;
            kat.Poison        = Poison.Deadly;
            kat.PoisonCharges = 30;
            kat.Quality       = WeaponQuality.Exceptional;
            AddToBackpack(kat);

            LeatherArms lea = new LeatherArms();

            lea.Movable  = false;
            lea.LootType = LootType.Regular;
            lea.Crafter  = this;
            lea.Quality  = ArmorQuality.Exceptional;
            AddItem(lea);

            LeatherChest lec = new LeatherChest();

            lec.Movable  = false;
            lec.LootType = LootType.Regular;
            lec.Crafter  = this;
            lec.Quality  = ArmorQuality.Exceptional;
            AddItem(lec);

            LeatherGorget leg = new LeatherGorget();

            leg.Movable  = false;
            leg.LootType = LootType.Regular;
            leg.Crafter  = this;
            leg.Quality  = ArmorQuality.Exceptional;
            AddItem(leg);

            LeatherLegs lel = new LeatherLegs();

            lel.Movable  = false;
            lel.LootType = LootType.Regular;
            lel.Crafter  = this;
            lel.Quality  = ArmorQuality.Exceptional;
            AddItem(lel);

            Boots snd = new Boots();

            snd.Movable  = false;
            snd.Hue      = Hue;
            snd.LootType = LootType.Regular;
            AddItem(snd);

            TricorneHat tch = new TricorneHat();

            tch.Movable = false;
            tch.Hue     = Hue;
            AddItem(tch);

            DeadlyPoisonPotion pota = new DeadlyPoisonPotion();

            pota.LootType = LootType.Regular;
            AddToBackpack(pota);

            DeadlyPoisonPotion potb = new DeadlyPoisonPotion();

            potb.LootType = LootType.Regular;
            AddToBackpack(potb);

            DeadlyPoisonPotion potc = new DeadlyPoisonPotion();

            potc.LootType = LootType.Regular;
            AddToBackpack(potc);

            DeadlyPoisonPotion potd = new DeadlyPoisonPotion();

            potd.LootType = LootType.Regular;
            AddToBackpack(potd);

            Bandage band = new Bandage(50);

            AddToBackpack(band);
        }
        public FamousPiratesThief()
            : base(AIType.AI_Thief, FightMode.Closest, 15, 1, 0.2, 0.6)
        {
            // A FamousPirates Hybrid Thief
            int Hue = 2075;

            // Skills and Stats
            this.InitStats(205, 205, 205);
            this.Skills[SkillName.Healing].Base    = 150;
            this.Skills[SkillName.Anatomy].Base    = 150;
            this.Skills[SkillName.Stealing].Base   = 150;
            this.Skills[SkillName.ArmsLore].Base   = 100;
            this.Skills[SkillName.Meditation].Base = 150;
            this.Skills[SkillName.Wrestling].Base  = 150;

            // Name
            this.Name = "Cutler Beckettt";

            // Equip
            Spellbook book = FullSpellbook();

            AddItem(book);

            LeatherArms lea = new LeatherArms();

            lea.Movable  = false;
            lea.LootType = LootType.Regular;
            lea.Crafter  = this;
            lea.Quality  = ArmorQuality.Exceptional;
            AddItem(lea);

            LeatherChest lec = new LeatherChest();

            lec.Movable  = false;
            lec.LootType = LootType.Regular;
            lec.Crafter  = this;
            lec.Quality  = ArmorQuality.Exceptional;
            AddItem(lec);

            LeatherGorget leg = new LeatherGorget();

            leg.Movable  = false;
            leg.LootType = LootType.Regular;
            leg.Crafter  = this;
            leg.Quality  = ArmorQuality.Exceptional;
            AddItem(leg);

            LeatherLegs lel = new LeatherLegs();

            lel.Movable  = false;
            lel.LootType = LootType.Regular;
            lel.Crafter  = this;
            lel.Quality  = ArmorQuality.Exceptional;
            AddItem(lel);

            Boots snd = new Boots();

            snd.Movable  = false;
            snd.Hue      = Hue;
            snd.LootType = LootType.Regular;
            AddItem(snd);

            TricorneHat tch = new TricorneHat();

            tch.Movable = false;
            tch.Hue     = Hue;
            AddItem(tch);

            Kilt Klt = new Kilt();

            Klt.Movable = false;
            Klt.Hue     = Hue;
            AddItem(Klt);

            Bandage band = new Bandage(50);

            AddToBackpack(band);
        }
        public FamousPiratesFence()
            : base(AIType.AI_Melee, FightMode.Closest, 15, 1, 0.2, 0.6)
        {
            // A FamousPirates Fencer
            int Hue = 2075;

            // Skills and Stats
            this.InitStats(450, 250, 410);
            this.Skills[SkillName.Fencing].Base  = 150;
            this.Skills[SkillName.Anatomy].Base  = 150;
            this.Skills[SkillName.Stealing].Base = 150;
            this.Skills[SkillName.Tactics].Base  = 150;

            // Name
            this.Name = "Joshamee Gibbs";

            // Equip
            Spear ssp = new Spear();

            ssp.Movable = true;
            ssp.Crafter = this;
            ssp.Quality = WeaponQuality.Exceptional;
            AddItem(ssp);

            Sandals snd = new Sandals();

            snd.Movable  = false;
            snd.Hue      = Hue;
            snd.LootType = LootType.Regular;
            AddItem(snd);

            ChainChest cht = new ChainChest();

            cht.Movable  = false;
            cht.LootType = LootType.Regular;
            cht.Crafter  = this;
            cht.Quality  = ArmorQuality.Exceptional;
            AddItem(cht);

            ChainLegs chl = new ChainLegs();

            chl.Movable  = false;
            chl.LootType = LootType.Regular;
            chl.Crafter  = this;
            chl.Quality  = ArmorQuality.Exceptional;
            AddItem(chl);

            PlateArms pla = new PlateArms();

            pla.Movable  = false;
            pla.LootType = LootType.Regular;
            pla.Crafter  = this;
            pla.Quality  = ArmorQuality.Exceptional;
            AddItem(pla);


            TricorneHat tch = new TricorneHat();

            tch.Movable = false;
            tch.Hue     = Hue;
            AddItem(tch);

            Bandage band = new Bandage(20);

            AddToBackpack(band);
        }
Beispiel #27
0
        public Finlor()
        {
            Name      = "Finlor";
            Title     = "the Sea Captain";
            Body      = 0x190;
            Hue       = Utility.RandomSkinHue();
            Blessed   = true;
            CantWalk  = true;
            Direction = Direction.South;

            ThighBoots tb = new ThighBoots();

            tb.Hue = 0;
            AddItem(tb);

            LongPants lp = new LongPants();

            lp.Hue = 6;
            AddItem(lp);

            FancyShirt fs = new FancyShirt();

            fs.Hue = 0;
            AddItem(fs);

            TricorneHat th = new TricorneHat();

            th.Hue = 52;
            AddItem(th);

            BodySash bs = new BodySash();

            bs.Hue = 6;
            AddItem(bs);

            Cloak cl = new Cloak();

            cl.Hue = 38;
            AddItem(cl);

            Scimitar sc = new Scimitar();

            AddItem(sc);

            GoldBeadNecklace gn = new GoldBeadNecklace();

            AddItem(gn);

            GoldBracelet gb = new GoldBracelet();

            AddItem(gb);

            GoldEarrings ge = new GoldEarrings();

            AddItem(ge);

            GoldRing gr = new GoldRing();

            AddItem(gr);

            AddItem(new PonyTail(1149));

            AddItem(new Vandyke(1149));
        }
        public FamousPiratesSword()
            : base(AIType.AI_Melee, FightMode.Closest, 15, 1, 0.2, 0.6)
        {
            // A FamousPirates Swordsman
            int Hue = 1107;

            // Skills and Stats
            this.InitStats(350, 350, 310);
            this.Skills[SkillName.Swords].Base  = 150;
            this.Skills[SkillName.Anatomy].Base = 150;
            this.Skills[SkillName.Healing].Base = 150;
            this.Skills[SkillName.Tactics].Base = 150;
            this.Skills[SkillName.Parry].Base   = 150;

            // Name
            this.Name = "Elizabeth Swann";

            // Equip
            Katana kat = new Katana();

            kat.Crafter = this;
            kat.Movable = true;
            kat.Quality = WeaponQuality.Exceptional;
            AddItem(kat);

            Boots bts = new Boots();

            bts.Movable = false;
            bts.Hue     = Hue;
            AddItem(bts);

            ChainChest cht = new ChainChest();

            cht.Movable  = false;
            cht.LootType = LootType.Regular;
            cht.Crafter  = this;
            cht.Quality  = ArmorQuality.Exceptional;
            AddItem(cht);

            ChainLegs chl = new ChainLegs();

            chl.Movable  = false;
            chl.LootType = LootType.Regular;
            chl.Crafter  = this;
            chl.Quality  = ArmorQuality.Exceptional;
            AddItem(chl);

            PlateArms pla = new PlateArms();

            pla.Movable  = false;
            pla.LootType = LootType.Regular;
            pla.Crafter  = this;
            pla.Quality  = ArmorQuality.Exceptional;
            AddItem(pla);


            TricorneHat tch = new TricorneHat();

            tch.Movable = false;
            tch.Hue     = Hue;
            AddItem(tch);

            FancyShirt fst = new FancyShirt();

            fst.Movable = false;
            fst.Hue     = Hue;
            AddItem(fst);

            Skirt srt = new Skirt();

            srt.Movable = false;
            srt.Hue     = Hue;
            AddItem(srt);

            Bandage band = new Bandage(50);

            AddToBackpack(band);
        }
Beispiel #29
0
        public override Item Construct(Type type, Mobile from)
        {
            if (type == typeof(TreasureMap))
            {
                int level;
                if (from is PlayerMobile && ((PlayerMobile)from).Young && from.Map == Map.Trammel && TreasureMap.IsInHavenIsland(from))
                {
                    level = 0;
                }
                else
                {
                    level = 1;
                }

                return(new TreasureMap(level, from.Map == Map.Felucca ? Map.Felucca : Map.Trammel));
            }
            else if (type == typeof(MessageInABottle))
            {
                return(new MessageInABottle(from.Map == Map.Felucca ? Map.Felucca : Map.Trammel));
            }

            Container pack = from.Backpack;

            if (pack != null)
            {
                List <SOS> messages = pack.FindItemsByType <SOS>();

                for (int i = 0; i < messages.Count; ++i)
                {
                    SOS sos = messages[i];

                    if (from.Map == sos.TargetMap && from.InRange(sos.TargetLocation, 60))
                    {
                        Item preLoot = null;

                        switch (Utility.Random(8))
                        {
                        case 0:                                 // Body parts
                        {
                            int[] list = new int[]
                            {
                                0x1CDD, 0x1CE5,                                                // arm
                                0x1CE0, 0x1CE8,                                                // torso
                                0x1CE1, 0x1CE9,                                                // head
                                0x1CE2, 0x1CEC                                                 // leg
                            };

                            preLoot = new ShipwreckedItem(Utility.RandomList(list));
                            break;
                        }

                        case 1:                                 // Bone parts
                        {
                            int[] list = new int[]
                            {
                                0x1AE0, 0x1AE1, 0x1AE2, 0x1AE3, 0x1AE4,                         // skulls
                                0x1B09, 0x1B0A, 0x1B0B, 0x1B0C, 0x1B0D, 0x1B0E, 0x1B0F, 0x1B10, // bone piles
                                0x1B15, 0x1B16                                                  // pelvis bones
                            };

                            preLoot = new ShipwreckedItem(Utility.RandomList(list));
                            break;
                        }

                        case 2:                                 // Paintings and portraits
                        {
                            preLoot = new ShipwreckedItem(Utility.Random(0xE9F, 10));
                            break;
                        }

                        case 3:                                 // Pillows
                        {
                            preLoot = new ShipwreckedItem(Utility.Random(0x13A4, 11));
                            break;
                        }

                        case 4:                                 // Shells
                        {
                            preLoot = new ShipwreckedItem(Utility.Random(0xFC4, 9));
                            break;
                        }

                        case 5:                                 //Hats
                        {
                            if (Utility.RandomBool())
                            {
                                preLoot = new SkullCap();
                            }
                            else
                            {
                                preLoot = new TricorneHat();
                            }

                            break;
                        }

                        case 6:                                 // Misc
                        {
                            int[] list = new int[]
                            {
                                0x1EB5,                                                // unfinished barrel
                                0xA2A,                                                 // stool
                                0xC1F,                                                 // broken clock
                                0x1047, 0x1048,                                        // globe
                                0x1EB1, 0x1EB2, 0x1EB3, 0x1EB4                         // barrel staves
                            };

                            if (Utility.Random(list.Length + 1) == 0)
                            {
                                preLoot = new Candelabra();
                            }
                            else
                            {
                                preLoot = new ShipwreckedItem(Utility.RandomList(list));
                            }

                            break;
                        }
                        }

                        if (preLoot != null)
                        {
                            if (preLoot is IShipwreckedItem)
                            {
                                ((IShipwreckedItem)preLoot).IsShipwreckedItem = true;
                            }

                            return(preLoot);
                        }

                        LockableContainer chest;

                        if (Utility.RandomBool())
                        {
                            chest = new MetalGoldenChest();
                        }
                        else
                        {
                            chest = new WoodenChest();
                        }

                        if (sos.IsAncient)
                        {
                            chest.Hue = 0x481;
                        }

                        TreasureMapChest.Fill(chest, Math.Max(1, Math.Max(4, sos.Level)));

                        if (sos.IsAncient)
                        {
                            chest.DropItem(new FabledFishingNet());
                        }
                        else
                        {
                            chest.DropItem(new SpecialFishingNet());
                        }

                        chest.Movable   = true;
                        chest.Locked    = false;
                        chest.TrapType  = TrapType.None;
                        chest.TrapPower = 0;
                        chest.TrapLevel = 0;

                        sos.Delete();

                        return(chest);
                    }
                }
            }

            return(base.Construct(type, from));
        }
Beispiel #30
0
        public PirateLeader() : base(AIType.AI_Melee /*, FightMode.Closest, 10, 1, 0.15, 0.4*/)
        {
            Name = "Pirate Lord";

            if (Female = Utility.RandomBool())
            {
                Body = 186;
            }
            else
            {
                Body = 185;
            }

            SetStr(578, 620);
            SetDex(450, 500);
            SetInt(200, 300);

            SetHits(4000, 6000);
            SetDamage(40, 55);

            SetDamageType(ResistanceType.Physical, 100);

            SetSkill(SkillName.Fencing, 100.5, 120.0);
            SetSkill(SkillName.Healing, 60.3, 100.0);
            SetSkill(SkillName.Macing, 100.5, 140.0);
            SetSkill(SkillName.Poisoning, 60.0, 100.5);
            SetSkill(SkillName.MagicResist, 72.5, 100.0);
            SetSkill(SkillName.Swords, 100.5, 150.0);
            SetSkill(SkillName.Tactics, 72.5, 170.0);

            Fame  = 50000;
            Karma = -50000;

            CanSwim = true;

            Tamable          = false;
            ControlSlots     = 1;
            MinTameSkill     = 99.1;
            MF_Displacer     = true;
            MF_Bomber        = true;
            MF_HumanRevealer = true;
            PackItem(new Gold(6500, 15000));
            //PackItem( new Musket2() );

            //new ThoroughbredHorse().Rider = this;

            switch (Utility.Random(5))
            {
            case 0: PackItem(new SOS());
                break;

            case 1: PackItem(new SpecialFishingNet());
                break;
            }

            Item LongPants = new LongPants();

            LongPants.Movable = false;
            AddItem(LongPants);
            LongPants.Hue = 1;

            Item LeatherGloves = new LeatherGloves();

            LeatherGloves.Hue     = 1;
            LeatherGloves.Movable = false;
            AddItem(LeatherGloves);

            Item FancyShirt = new FancyShirt();

            FancyShirt.Hue     = 143;
            FancyShirt.Movable = false;
            AddItem(FancyShirt);

            Item BodySash = new BodySash();

            BodySash.Hue     = 1;
            BodySash.Movable = false;
            AddItem(BodySash);

            Item TricorneHat = new TricorneHat();

            TricorneHat.Hue     = 1;
            TricorneHat.Movable = false;
            AddItem(TricorneHat);

            Item ThighBoots = new ThighBoots();

            ThighBoots.Hue     = 143;
            ThighBoots.Movable = false;
            AddItem(ThighBoots);

            switch (Utility.Random(5))
            {
            case 0: AddItem(new Bow()); break;

            case 1: AddItem(new CompositeBow()); break;

            case 2: AddItem(new Crossbow()); break;

            case 3: AddItem(new RepeatingCrossbow()); break;

            case 4: AddItem(new HeavyCrossbow()); break;
            }

            /*Item Musket2 = new Musket2();
             * Musket2.LootType = LootType.Blessed;
             * Musket2.Movable = false;
             * AddItem( Musket2 );
             *
             * switch ( Utility.Random( 1 ))
             * {
             *      case 0: PackItem( new ClothingBlessDeed() );
             *      break;
             *      }*/
        }