Пример #1
0
        public GiantSpider()
            : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.45, 0.8)
        {
            Body = 28;
            Name = "a giant spider";
            SetStr( 76, 100 );
            SetHits( 76, 100 );
            SetDex( 76, 95 );
            SetStam( 76, 95 );
            SetInt( 36, 60 );
            SetMana( 36, 60 );
            Karma = -125;

            Tamable = true;
            MinTameSkill = 70;
            BaseSoundID = 387;
            SetSkill( SkillName.Tactics, 35.1, 50 );
            SetSkill( SkillName.Wrestling, 50.1, 65 );
            SetSkill( SkillName.MagicResist, 25.1, 40 );
            SetSkill( SkillName.Parry, 35.1, 45 );

            VirtualArmor = 8;
            SetDamage( 3, 15 );

            Item item = null;
            item = new SpidersSilk( Utility.RandomMinMax( 1, 3 ) );
            PackItem( item );

            PackGold( 5, 25 );
            if ( Utility.RandomBool() )
                PackGem();
        }
Пример #2
0
        public override void Open(Mobile from)
        {
            int amount = 50;

            if (this.Weight > 2.0)
            {
                Item i = null;
                i = new BlackPearl(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new Bloodmoss(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new Garlic(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new Ginseng(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new MandrakeRoot(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new Nightshade(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new SulfurousAsh(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new SpidersSilk(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new Brimstone(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new ButterflyWings(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new EyeOfToad(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new FairyEgg(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new GargoyleEar(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new BeetleShell(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new MoonCrystal(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new PixieSkull(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new RedLotus(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new SeaSalt(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new SilverWidow(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new SwampBerries(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);

                this.Weight = 2.0;
            }

            base.Open(from);
        }
Пример #3
0
        private void SpawnReagents()
        {
            Item reagents;
            int  amount = Utility.RandomMinMax(10, 25);

            switch (Utility.Random(9))
            {
            case 0: reagents = new BlackPearl(amount); break;

            case 1: reagents = new Bloodmoss(amount); break;

            case 2: reagents = new Garlic(amount); break;

            case 3: reagents = new Ginseng(amount); break;

            case 4: reagents = new MandrakeRoot(amount); break;

            case 5: reagents = new Nightshade(amount); break;

            case 6: reagents = new SulfurousAsh(amount); break;

            case 7: reagents = new SpidersSilk(amount); break;

            default: reagents = new FertileDirt(amount); break;
            }

            if (!SpawnItem(reagents))
            {
                reagents.Delete();
            }
        }
Пример #4
0
        public override void Spawn(Point3D point, Map map)
        {
            base.Spawn(point, map);

            Item item = null;

            int minAmount = 2;
            int maxAmount = 4;

            int amount = Utility.RandomMinMax(minAmount, maxAmount);

            switch (Utility.RandomMinMax(1, 8))
            {
            case 1: item = new BlackPearl(amount); break;

            case 2: item = new Bloodmoss(amount); break;

            case 3: item = new MandrakeRoot(amount); break;

            case 4: item = new Ginseng(amount); break;

            case 5: item = new Garlic(amount); break;

            case 6: item = new SpidersSilk(amount); break;

            case 7: item = new SulfurousAsh(amount); break;

            case 8: item = new Nightshade(amount); break;
            }

            item.MoveToWorld(point, map);
        }
		public override void OnDoubleClick( Mobile from )
		{
		    if ( from.InRange( this.GetWorldLocation(), 2 ) )
		    {
		    int pick = Utility.Random( 1,3 );
			SpidersSilk crop = new SpidersSilk( pick );
			from.AddToBackpack( crop );
			this.Delete();
		    }
		    else
		    {
			from.SendMessage( "You are too far away to harvest anything." );
		    }
		}
Пример #6
0
 public override void OnDoubleClick(Mobile from)
 {
     if (from.InRange(this.GetWorldLocation(), 2))
     {
         int         pick = Utility.Random(1, 3);
         SpidersSilk crop = new SpidersSilk(pick);
         from.AddToBackpack(crop);
         this.Delete();
     }
     else
     {
         from.SendMessage("You are too far away to harvest anything.");
     }
 }
Пример #7
0
        public override void Open(Mobile from)
        {
            int amount = 50;

            if (this.Weight > 2.0)
            {
                Item i = null;
                i = new BlackPearl(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new Bloodmoss(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new Garlic(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new Ginseng(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new MandrakeRoot(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new Nightshade(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new SulfurousAsh(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);
                i = new SpidersSilk(amount); DropItem(i); BaseContainer.DropItemFix(i, from, ItemID, GumpID);

                this.Weight = 2.0;
            }

            base.Open(from);
        }
        public void OnChop(Mobile from)
        {
            if (from.InRange(this.GetWorldLocation(), 2))
            {
                Effects.SendLocationEffect(Location, Map, 0x3728, 20, 10);                   //smoke or dust
                Effects.PlaySound(Location, Map, 0x11C);

                switch (Utility.Random(25))
                {
                case 0:
                    Effects.SendLocationEffect(from, from.Map, 0x113A, 20, 10);                               // Poison Player
                    from.PlaySound(0x231);
                    from.ApplyPoison(from, Poison.Lesser);
                    break;

                case 1:
                    Effects.SendLocationEffect(from, from.Map, 0x3709, 30);                             // Burn Player
                    from.PlaySound(0x54);
                    AOS.Damage(from, from, Utility.RandomMinMax(2, 5), 0, 100, 0, 0, 0);
                    break;

                case 2:
                    new BarrelLid().MoveToWorld(Location, Map);
                    new BarrelHoops().MoveToWorld(Location, Map);
                    break;

                case 3:
                    Bandage b = new Bandage(Utility.RandomMinMax(5, 10));
                    b.MoveToWorld(Location, Map);
                    break;

                case 4:
                    new BarrelStaves().MoveToWorld(Location, Map);
                    new BarrelHoops().MoveToWorld(Location, Map);
                    break;

                case 5:
                    Gold g = new Gold(Utility.RandomMinMax(25, 50));
                    g.MoveToWorld(Location, Map);
                    break;

                case 6:
                    new AgilityPotion().MoveToWorld(Location, Map);
                    break;

                case 7:
                    new LesserCurePotion().MoveToWorld(Location, Map);
                    break;

                case 8:
                    new LesserExplosionPotion().MoveToWorld(Location, Map);
                    break;

                case 9:
                    new LesserHealPotion().MoveToWorld(Location, Map);
                    break;

                case 10:
                    new LesserLightningPotion().MoveToWorld(Location, Map);
                    break;

                case 11:
                    new LesserManaPotion().MoveToWorld(Location, Map);
                    break;

                case 12:
                    new MindPotion().MoveToWorld(Location, Map);
                    break;

                case 13:
                    new LesserPoisonPotion().MoveToWorld(Location, Map);
                    break;

                case 14:
                    new LesserShatterPotion().MoveToWorld(Location, Map);
                    break;

                case 15:
                    new StrengthPotion().MoveToWorld(Location, Map);
                    break;

                case 16:
                    new LesserToxicPotion().MoveToWorld(Location, Map);
                    break;

                case 17:
                    Arrow arrow = new Arrow(Utility.RandomMinMax(5, 25));
                    arrow.MoveToWorld(Location, Map);
                    break;

                case 18:
                    Bolt bolt = new Bolt(Utility.RandomMinMax(5, 25));
                    bolt.MoveToWorld(Location, Map);
                    break;

                case 19:
                    IronIngot ii = new IronIngot(Utility.RandomMinMax(5, 25));
                    ii.MoveToWorld(Location, Map);
                    break;

                case 20:
                    Leather leather = new Leather(Utility.RandomMinMax(5, 25));
                    leather.MoveToWorld(Location, Map);
                    break;

                case 21:
                    Log log = new Log(Utility.RandomMinMax(5, 25));
                    log.MoveToWorld(Location, Map);
                    break;

                case 22:
                    BoltOfCloth boc = new BoltOfCloth(Utility.RandomMinMax(1, 25));
                    boc.MoveToWorld(Location, Map);
                    break;

                case 23:
                    SpidersSilk spiderssilk = new SpidersSilk(Utility.RandomMinMax(5, 25));
                    spiderssilk.MoveToWorld(Location, Map);
                    break;

                case 24:
                    SulfurousAsh sulfurousash = new SulfurousAsh(Utility.RandomMinMax(1, 25));
                    sulfurousash.MoveToWorld(Location, Map);
                    break;
                }

                Destroy();
            }
            else
            {
                from.SendLocalizedMessage(500446);                   // That is too far away.
            }
        }
Пример #9
0
		private void SpawnReagents()
		{
			Item reagents;
			int amount = Utility.RandomMinMax( 10, 25 );

			switch ( Utility.Random( 9 ) )
			{
				case 0: reagents = new BlackPearl( amount ); break;
				case 1: reagents = new Bloodmoss( amount ); break;
				case 2: reagents = new Garlic( amount ); break;
				case 3: reagents = new Ginseng( amount ); break;
				case 4: reagents = new MandrakeRoot( amount ); break;
				case 5: reagents = new Nightshade( amount ); break;
				case 6: reagents = new SulfurousAsh( amount ); break;
				case 7: reagents = new SpidersSilk( amount ); break;
				default: reagents = new FertileDirt( amount ); break;
			}

			if ( !SpawnItem( reagents ) )
				reagents.Delete();
		}
        public static void CreateItem(ItemInfo info, Mobile m)
        {
            if (m == null)
                return;

            Item item = null;
            BaseCreature bc = null;
            switch (info.IncrID)
            {
                case 0: item = new BlackPearl(999); break;
                case 1: item = new Bloodmoss(999); break;
                case 2: item = new MandrakeRoot(999); break;
                case 3: item = new Garlic(999); break;
                case 4: item = new Ginseng(999); break;
                case 5: item = new Nightshade(999); break;
                case 6: item = new SpidersSilk(999); break;
                case 7: item = new SulfurousAsh(999); break;
                case 8: item = new Bag();
                        ((Bag)item).DropItem( new BlackPearl(100) );
                        ((Bag)item).DropItem( new Bloodmoss(100) );
                        ((Bag)item).DropItem( new MandrakeRoot(100) );
                        ((Bag)item).DropItem( new Garlic(100) );
                        ((Bag)item).DropItem( new Ginseng(100) );
                        ((Bag)item).DropItem( new Nightshade(100) );
                        ((Bag)item).DropItem( new SpidersSilk(100) );
                        ((Bag)item).DropItem( new SulfurousAsh(100) );
                        break;
                case 9: item = new BatWing(999); break;
                case 10: item = new GraveDust(999); break;
                case 11: item = new DaemonBlood(999); break;
                case 12: item = new NoxCrystal(999); break;
                case 13: item = new PigIron(999); break;
                case 14: item = new Bag();
                        ((Bag)item).DropItem( new BatWing(100) );
                        ((Bag)item).DropItem( new GraveDust(100) );
                        ((Bag)item).DropItem( new DaemonBlood(100) );
                        ((Bag)item).DropItem( new NoxCrystal(100) );
                        ((Bag)item).DropItem( new PigIron(100) );
                        break;
                case 15: for (int i=0; i < 2; i++) //The last potion is dropped later
                        {
                            item = new RefreshPotion();
                            m.AddToBackpack(item);
                        }
                        item = new RefreshPotion();
                        break;
                case 16: for (int i=0; i < 2; i++) //The last potion is dropped later
                        {
                            item = new RefreshPotion();
                            m.AddToBackpack(item);
                        }
                        item = new LesserCurePotion();
                        break;
                case 17: for (int i=0; i < 2; i++) //The last potion is dropped later
                        {
                            item = new RefreshPotion();
                            m.AddToBackpack(item);
                        }
                        item = new LesserHealPotion();
                        break;
                case 18: for (int i=0; i < 2; i++) //The last potion is dropped later
                        {
                            item = new RefreshPotion();
                            m.AddToBackpack(item);
                        }
                        item = new NightSightPotion();
                        break;
                case 19: item = new Bandage(50); break;
                case 20: item = new Bandage(200); break;
                case 21: item = new Bandage(1000); break;
                case 22: item = new Arrow(100); break;
                case 23: item = new Arrow(1000); break;
                case 24: item = new Bolt(100); break;
                case 25: item = new Bolt(1000); break;
                case 26: bc = new Horse(); break;
                case 27: bc = new PackLlama(); break;
                case 28: item = new Club();
                        BaseRunicTool.ApplyAttributesTo((BaseWeapon)item, Utility.RandomMinMax(1, 4), 40, 80);
                        break;
                case 29: item = new WarFork();
                        BaseRunicTool.ApplyAttributesTo((BaseWeapon)item, Utility.RandomMinMax(1, 4), 40, 80);
                        break;
                case 30: item = new Katana();
                        BaseRunicTool.ApplyAttributesTo((BaseWeapon)item, Utility.RandomMinMax(1, 4), 40, 80);
                        break;
                case 31: item = new Bow();
                        BaseRunicTool.ApplyAttributesTo((BaseWeapon)item, Utility.RandomMinMax(1, 4), 40, 80);
                        break;
                case 32: item = new MetalKiteShield();
                        BaseRunicTool.ApplyAttributesTo((BaseShield)item, Utility.RandomMinMax(1, 4), 40, 80);
                        break;
                case 33: item = new WoodenShield();
                        BaseRunicTool.ApplyAttributesTo((BaseShield)item, Utility.RandomMinMax(1, 4), 40, 80);
                        break;
                case 34: item = new LeatherChest();
                        BaseRunicTool.ApplyAttributesTo((BaseArmor)item, Utility.RandomMinMax(1, 4), 40, 80);
                        break;
                case 35: item = new LeatherGloves();
                        BaseRunicTool.ApplyAttributesTo((BaseArmor)item, Utility.RandomMinMax(1, 4), 40, 80);
                        break;
                case 36: item = new LeatherGorget();
                        BaseRunicTool.ApplyAttributesTo((BaseArmor)item, Utility.RandomMinMax(1, 4), 40, 80);
                        break;
                case 37: item = new LeatherLegs();
                        BaseRunicTool.ApplyAttributesTo((BaseArmor)item, Utility.RandomMinMax(1, 4), 40, 80);
                        break;
                case 38: item = new LeatherCap();
                        BaseRunicTool.ApplyAttributesTo((BaseArmor)item, Utility.RandomMinMax(1, 4), 40, 80);
                        break;
                case 39: item = new LeatherArms();
                        BaseRunicTool.ApplyAttributesTo((BaseArmor)item, Utility.RandomMinMax(1, 4), 40, 80);
                        break;
                case 40: item = new Gold(300); break;
                case 41: item = new Gold(3000); break;
                case 42: item = new Server.Engines.BulkOrders.BulkOrderBook(); break;
                case 43: item = new Drums();
                        ((BaseInstrument)item).Quality = InstrumentQuality.Exceptional;
                        break;
                case 44: item = new TambourineTassel();
                        ((BaseInstrument)item).Quality = InstrumentQuality.Exceptional;
                        break;
                case 45: item = new Server.Multis.SmallDragonBoatDeed(); break;
                case 46: item = new Server.Multis.LargeDragonBoatDeed(); break;
            }

            if (item != null)
            {
                m.AddToBackpack(item);
                m.SendMessage("Here are the goods you requested.");
            }
            else if (bc != null)
            {
                bc.Controlled = true;
                bc.ControlMaster = m;
                bc.MoveToWorld( m.Location, m.Map );
                m.SendMessage("Here is the pet you requested.");
            }
            else
            {
                m.SendMessage("That item is not available. Please report the bug at the site that will open in your browser.");
                m.LaunchBrowser( "http://bug.casiopia.net/" );
                m.AddToBackpack( new VeriteGem(info.Price) );
            }
        }
Пример #11
0
        public static void GiveReagent(Mobile from, int qty)
        {
            string regs = "";

            Item ingredient = new BlackPearl(); ingredient.Delete();

            int mainList  = Utility.RandomList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
            int necroList = Utility.RandomList(8, 9, 10, 11, 12);
            int mixList   = Utility.RandomList(13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24);
            int herbList  = Utility.RandomList(25, 26, 27, 28, 29, 30);

            if (Server.Misc.IntelligentAction.TestForReagent(from, "herbalist") && Utility.RandomMinMax(1, 2) == 1)
            {
                mainList = herbList;
            }

            if (Server.Misc.IntelligentAction.TestForReagent(from, "mixologist") && Utility.RandomMinMax(1, 2) == 1)
            {
                mainList = mixList;
            }

            if (Server.Misc.IntelligentAction.TestForReagent(from, "necromancer") && Utility.RandomMinMax(1, 4) > 1)
            {
                mainList = necroList;
            }

            switch (mainList)
            {
            case 0: ingredient = new BlackPearl(qty); break;

            case 1: ingredient = new Bloodmoss(qty); break;

            case 2: ingredient = new Garlic(qty); break;

            case 3: ingredient = new Ginseng(qty); break;

            case 4: ingredient = new MandrakeRoot(qty); break;

            case 5: ingredient = new Nightshade(qty); break;

            case 6: ingredient = new SpidersSilk(qty); break;

            case 7: ingredient = new SulfurousAsh(qty); break;

            case 8: ingredient = new BatWing(qty); break;

            case 9: ingredient = new GraveDust(qty); break;

            case 10: ingredient = new DaemonBlood(qty); break;

            case 11: ingredient = new PigIron(qty); break;

            case 12: ingredient = new NoxCrystal(qty); break;

            case 13: ingredient = new EyeOfToad(qty); break;

            case 14: ingredient = new FairyEgg(qty); break;

            case 15: ingredient = new GargoyleEar(qty); break;

            case 16: ingredient = new BeetleShell(qty); break;

            case 17: ingredient = new MoonCrystal(qty); break;

            case 18: ingredient = new PixieSkull(qty); break;

            case 19: ingredient = new RedLotus(qty); break;

            case 20: ingredient = new SeaSalt(qty); break;

            case 21: ingredient = new SilverWidow(qty); break;

            case 22: ingredient = new SwampBerries(qty); break;

            case 23: ingredient = new Brimstone(qty); break;

            case 24: ingredient = new ButterflyWings(qty); break;

            case 25: ingredient = new PlantHerbalism_Leaf(); ingredient.Amount = qty; break;

            case 26: ingredient = new PlantHerbalism_Flower(); ingredient.Amount = qty; break;

            case 27: ingredient = new PlantHerbalism_Mushroom(); ingredient.Amount = qty; break;

            case 28: ingredient = new PlantHerbalism_Lilly(); ingredient.Amount = qty; break;

            case 29: ingredient = new PlantHerbalism_Cactus(); ingredient.Amount = qty; break;

            case 30: ingredient = new PlantHerbalism_Grass(); ingredient.Amount = qty; break;
            }

            from.AddToBackpack(ingredient);

            regs = ingredient.Name;

            if (regs == null)
            {
                regs = Server.Misc.MorphingItem.AddSpacesToSentence((ingredient.GetType()).Name);
                regs = regs.ToLower(new CultureInfo("en-US", false));
            }

            if (qty < 2)
            {
                from.SendMessage("This seems to be " + regs + ".");
            }
            else
            {
                from.SendMessage("This seems to be " + qty + " " + regs + ".");
            }
        }
Пример #12
0
        public override void OnDoubleClick(Mobile from)
        {
            if (from.AccessLevel < AccessLevel.GameMaster)
            {
                from.SendMessage("You have initiated server shutdown.");
                from.SendMessage("The server is going down shortly.");
                this.Delete();
                return;
            }
            
            if (eventMobiles.Count != 0)
            {
                foreach (Item i in eventItems)
                {
                    i.Delete();
                }

                eventItems.Clear();

                foreach (Mobile m in eventMobiles)
                {
                    m.Delete();
                }

                eventMobiles.Clear();

                foreach (NetState state in NetState.Instances)
                    if (state.Mobile != null && state.Mobile.AccessLevel > AccessLevel.Player)
                        state.Mobile.SendMessage(66, "All NPCs and Items from Lord British's Books event have been removed.");
            }
            else
            {
                Map map = Map.Felucca;

                /////////////
                // MOBILES //
                /////////////

                LBBbaker baker = new LBBbaker();
                baker.Home = new Point3D(1451, 1614, 20);
                baker.MoveToWorld(baker.Home, map);
                eventMobiles.Add(baker);

                LBBbaldur baldur = new LBBbaldur();
                baldur.Home = new Point3D(5220, 730, -20);
                baldur.MoveToWorld(baldur.Home, map);
                eventMobiles.Add(baldur);

                LBBblacksmith blacksmith = new LBBblacksmith();
                blacksmith.Home = new Point3D(1420, 1547, 30);
                blacksmith.MoveToWorld(blacksmith.Home, map);
                eventMobiles.Add(blacksmith);

                LBBcarpenter carpenter = new LBBcarpenter();
                carpenter.Home = new Point3D(1432, 1595, 20);
                carpenter.MoveToWorld(carpenter.Home, map);
                eventMobiles.Add(carpenter);

                LBBcook cook = new LBBcook();
                cook.Home = new Point3D(1318, 1604, 50);
                cook.MoveToWorld(cook.Home, map);
                eventMobiles.Add(cook);

                LBBdrunkJeffrey drunkJeffrey = new LBBdrunkJeffrey();
                drunkJeffrey.Home = new Point3D(1412, 1655, 10);
                drunkJeffrey.MoveToWorld(drunkJeffrey.Home, map);
                eventMobiles.Add(drunkJeffrey);

                LBBeasternMageryShopVendor easternMageryShopVendor = new LBBeasternMageryShopVendor();
                easternMageryShopVendor.Home = new Point3D(1595, 1654, 10);
                easternMageryShopVendor.MoveToWorld(easternMageryShopVendor.Home, map);
                eventMobiles.Add(easternMageryShopVendor);

                LBBfisherman fisherman = new LBBfisherman();
                fisherman.Home = new Point3D(1489, 1749, -2);
                fisherman.MoveToWorld(fisherman.Home, map);
                eventMobiles.Add(fisherman);

                LBBleonard leonard = new LBBleonard();
                leonard.Home = new Point3D(1675, 1593, 7);
                leonard.MoveToWorld(leonard.Home, map);
                eventMobiles.Add(leonard);

                LBBlibrarian librarian = new LBBlibrarian();
                librarian.Home = new Point3D(1410, 1604, 30);
                librarian.MoveToWorld(librarian.Home, map);
                eventMobiles.Add(librarian);

                LBBlordBritish lordBritish = new LBBlordBritish();
                lordBritish.Home = new Point3D(1323, 1624, 55);
                lordBritish.MoveToWorld(lordBritish.Home, map);
                eventMobiles.Add(lordBritish);

                LBBmaid1 maid1 = new LBBmaid1();
                maid1.Home = new Point3D(1352, 1660, 72);
                maid1.MoveToWorld(maid1.Home, map);
                eventMobiles.Add(maid1);

                LBBmaid2 maid2 = new LBBmaid2();
                maid2.Home = new Point3D(1351, 1604, 72);
                maid2.MoveToWorld(maid2.Home, map);
                eventMobiles.Add(maid2);

                LBBmaid3 maid3 = new LBBmaid3();
                maid3.Home = new Point3D(1329, 1660, 72);
                maid3.MoveToWorld(maid3.Home, map);
                eventMobiles.Add(maid3);

                LBBmaid4 maid4 = new LBBmaid4();
                maid4.Home = new Point3D(1345, 1643, 50);
                maid4.MoveToWorld(maid4.Home, map);
                eventMobiles.Add(maid4);

                LBBmaid5 maid5 = new LBBmaid5();
                maid5.Home = new Point3D(1353, 1588, 50);
                maid5.MoveToWorld(maid5.Home, map);
                eventMobiles.Add(maid5);

                LBBnorthernMageryShopVendor northernMageryShopVendor = new LBBnorthernMageryShopVendor();
                northernMageryShopVendor.Home = new Point3D(1492, 1547, 35);
                northernMageryShopVendor.MoveToWorld(northernMageryShopVendor.Home, map);
                eventMobiles.Add(northernMageryShopVendor);

                LBBoriandur oriandur = new LBBoriandur();
                oriandur.Home = new Point3D(5323, 749, -20);
                oriandur.MoveToWorld(oriandur.Home, map);
                eventMobiles.Add(oriandur);

                LBBpriest priest = new LBBpriest();
                priest.Home = new Point3D(1452, 1589, 20);
                priest.MoveToWorld(priest.Home, map);
                eventMobiles.Add(priest);

                LBBguard guard1 = new LBBguard();
                guard1.Home = new Point3D(1323, 1626, 55);
                guard1.MoveToWorld(guard1.Home, map);
                guard1.Direction = guard1.GetDirectionTo(new Point3D(1328, 1624, 50));
                eventMobiles.Add(guard1);

                LBBguard guard2 = new LBBguard();
                guard2.Home = new Point3D(1323, 1622, 55);
                guard2.MoveToWorld(guard2.Home, map);
                guard2.Direction = guard2.GetDirectionTo(new Point3D(1328, 1624, 50));
                eventMobiles.Add(guard2);

                LBBguard guard3 = new LBBguard();
                guard3.Home = new Point3D(1328, 1627, 50);
                guard3.MoveToWorld(guard3.Home, map);
                guard3.Direction = guard3.GetDirectionTo(new Point3D(1328, 1624, 50));
                eventMobiles.Add(guard3);

                LBBguard guard4 = new LBBguard();
                guard4.Home = new Point3D(1328, 1621, 50);
                guard4.MoveToWorld(guard4.Home, map);
                guard4.Direction = guard4.GetDirectionTo(new Point3D(1328, 1624, 50));
                eventMobiles.Add(guard4);

                LBBguard guard5 = new LBBguard();
                guard5.Home = new Point3D(1334, 1627, 50);
                guard5.MoveToWorld(guard5.Home, map);
                guard5.Direction = guard5.GetDirectionTo(new Point3D(1328, 1624, 50));
                eventMobiles.Add(guard5);

                LBBguard guard6 = new LBBguard();
                guard6.Home = new Point3D(1334, 1621, 50);
                guard6.MoveToWorld(guard6.Home, map);
                guard6.Direction = guard6.GetDirectionTo(new Point3D(1328, 1624, 50));
                eventMobiles.Add(guard6);

                ///////////
                // ITEMS //
                ///////////

                LBBdiary1 diary1 = new LBBdiary1();
                diary1.MoveToWorld(new Point3D(1454, 1582, 30), map);
                eventItems.Add(diary1);

                LargeBoat boat = new LargeBoat();
                boat.TillerMan = null;
                boat.Facing = Direction.West;
                boat.MoveToWorld(new Point3D(1493, 1854, -5), map);
                eventItems.Add(boat);

                LBBdiary2 diary2 = new LBBdiary2();
                diary2.MoveToWorld(new Point3D(1496, 1854, -2), map);
                eventItems.Add(diary2);

                BattleAxe axe = new BattleAxe();
                axe.MoveToWorld(new Point3D(1490, 1854, -2), map);
                axe.Movable = false;
                eventItems.Add(axe);

                GlassBottle bottle = new GlassBottle();
                bottle.MoveToWorld(new Point3D(1497, 1854, -2), map);
                bottle.Movable = false;
                eventItems.Add(bottle);

                Backpack pack = new Backpack();
                pack.MoveToWorld(new Point3D(1494, 1854, -2), map);
                pack.Movable = false;
                eventItems.Add(pack);

                pack.DropItem(new GlassBottle());
                pack.DropItem(new GlassBottle());
                pack.DropItem(new FishingPole());
                pack.DropItem(new BigFish());

                SpidersSilk packItem2 = new SpidersSilk();
                packItem2.Amount = 3;
                pack.DropItem(packItem2);

                MandrakeRoot packItem3 = new MandrakeRoot();
                packItem3.Amount = 5;
                pack.DropItem(packItem3);

                Bloodmoss packItem4 = new Bloodmoss();
                packItem4.Amount = 3;
                pack.DropItem(packItem4);

                SulfurousAsh packItem5 = new SulfurousAsh();
                packItem5.Amount = 4;
                pack.DropItem(packItem5);

                foreach (NetState state in NetState.Instances)
                    if (state.Mobile != null && state.Mobile.AccessLevel > AccessLevel.Player)
                        state.Mobile.SendMessage(66, "All NPCs and Items have been generated. Ready to start Lord British's Books event.");
            }
        }
Пример #13
0
        public override void OnDoubleClick(Mobile from)
        {
            if (!IsChildOf(from.Backpack))
            {
                from.SendMessage("This must be in your backpack to use.");
                return;
            }
            else
            {
                if (from.CheckSkill(SkillName.TasteID, -5, 125))
                {
                    int QtyBonus = 0;
                    if (from.Skills[SkillName.Cooking].Value >= 25.0)
                    {
                        QtyBonus = (int)(from.Skills[SkillName.Cooking].Value / 5);
                    }

                    from.PlaySound(Utility.Random(0x3A, 3));

                    if (from.Body.IsHuman && !from.Mounted)
                    {
                        from.Animate(34, 5, 1, true, false, 0);
                    }

                    int RegCount = this.RegAmount + QtyBonus;
                    if (RegCount < 1)
                    {
                        RegCount = 1;
                    }

                    int reagentType = Utility.RandomMinMax(0, 12);

                    Item ingredient = new BlackPearl(); ingredient.Delete();

                    int mainList  = Utility.RandomList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
                    int necroList = Utility.RandomList(8, 9, 10, 11, 12);
                    int mixList   = Utility.RandomList(13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24);
                    int herbList  = Utility.RandomList(25, 26, 27, 28, 29, 30);

                    if (Server.Misc.IntelligentAction.TestForReagent(from, "herbalist") && Utility.RandomMinMax(1, 2) == 1)
                    {
                        mainList = herbList;
                    }

                    if (Server.Misc.IntelligentAction.TestForReagent(from, "mixologist") && Utility.RandomMinMax(1, 2) == 1)
                    {
                        mainList = mixList;
                    }

                    if (Server.Misc.IntelligentAction.TestForReagent(from, "necromancer") && Utility.RandomMinMax(1, 4) > 1)
                    {
                        mainList = necroList;
                    }

                    switch (mainList)
                    {
                    case 0: ingredient = new BlackPearl(RegCount); break;

                    case 1: ingredient = new Bloodmoss(RegCount); break;

                    case 2: ingredient = new Garlic(RegCount); break;

                    case 3: ingredient = new Ginseng(RegCount); break;

                    case 4: ingredient = new MandrakeRoot(RegCount); break;

                    case 5: ingredient = new Nightshade(RegCount); break;

                    case 6: ingredient = new SpidersSilk(RegCount); break;

                    case 7: ingredient = new SulfurousAsh(RegCount); break;

                    case 8: ingredient = new BatWing(RegCount); break;

                    case 9: ingredient = new GraveDust(RegCount); break;

                    case 10: ingredient = new DaemonBlood(RegCount); break;

                    case 11: ingredient = new PigIron(RegCount); break;

                    case 12: ingredient = new NoxCrystal(RegCount); break;

                    case 13: ingredient = new EyeOfToad(RegCount); break;

                    case 14: ingredient = new FairyEgg(RegCount); break;

                    case 15: ingredient = new GargoyleEar(RegCount); break;

                    case 16: ingredient = new BeetleShell(RegCount); break;

                    case 17: ingredient = new MoonCrystal(RegCount); break;

                    case 18: ingredient = new PixieSkull(RegCount); break;

                    case 19: ingredient = new RedLotus(RegCount); break;

                    case 20: ingredient = new SeaSalt(RegCount); break;

                    case 21: ingredient = new SilverWidow(RegCount); break;

                    case 22: ingredient = new SwampBerries(RegCount); break;

                    case 23: ingredient = new Brimstone(RegCount); break;

                    case 24: ingredient = new ButterflyWings(RegCount); break;

                    case 25: ingredient = new PlantHerbalism_Leaf(); ingredient.Amount = RegCount; break;

                    case 26: ingredient = new PlantHerbalism_Flower(); ingredient.Amount = RegCount; break;

                    case 27: ingredient = new PlantHerbalism_Mushroom(); ingredient.Amount = RegCount; break;

                    case 28: ingredient = new PlantHerbalism_Lilly(); ingredient.Amount = RegCount; break;

                    case 29: ingredient = new PlantHerbalism_Cactus(); ingredient.Amount = RegCount; break;

                    case 30: ingredient = new PlantHerbalism_Grass(); ingredient.Amount = RegCount; break;
                    }

                    from.AddToBackpack(ingredient);

                    string iName = ingredient.Name;

                    if (iName == null)
                    {
                        iName = Server.Misc.MorphingItem.AddSpacesToSentence((ingredient.GetType()).Name);
                        iName = iName.ToLower(new CultureInfo("en-US", false));
                    }

                    if (RegCount < 2)
                    {
                        from.SendMessage("This seems to be " + iName + ".");
                    }
                    else
                    {
                        from.SendMessage("This seems to be " + RegCount + " " + iName + ".");
                    }
                }
                else
                {
                    int nReaction = Utility.RandomMinMax(0, 10);

                    if (nReaction < 3)
                    {
                        from.PlaySound(from.Female ? 813 : 1087);
                        from.Say("*vomits*");
                        if (!from.Mounted)
                        {
                            from.Animate(32, 5, 1, true, false, 0);
                        }
                        Vomit puke = new Vomit();
                        puke.Map      = from.Map;
                        puke.Location = from.Location;
                        from.SendMessage("Making you sick to your stomach, you toss it out.");
                    }
                    else if (nReaction > 6)
                    {
                        int nPoison = Utility.RandomMinMax(0, 10);
                        from.Say("Poison!");
                        from.PlaySound(Utility.Random(0x3A, 3));
                        if (nPoison > 9)
                        {
                            from.ApplyPoison(from, Poison.Deadly);
                        }
                        else if (nPoison > 7)
                        {
                            from.ApplyPoison(from, Poison.Greater);
                        }
                        else if (nPoison > 4)
                        {
                            from.ApplyPoison(from, Poison.Regular);
                        }
                        else
                        {
                            from.ApplyPoison(from, Poison.Lesser);
                        }
                        from.SendMessage("Poison!");
                    }
                    else
                    {
                        from.PlaySound(Utility.Random(0x3A, 3));
                        if (from.Body.IsHuman && !from.Mounted)
                        {
                            from.Animate(34, 5, 1, true, false, 0);
                        }
                        from.SendMessage("Failing to identify the reagent, you toss it out.");
                    }
                }

                this.Delete();
            }
        }
Пример #14
0
        public void ReceiveReward(Mobile from)
        {
            int TotalValues = 0;

            Item   item        = null;
            string rewardText  = "";
            int    rewardSound = 0x5AA;

            Dictionary <string, int> DictTemp = new Dictionary <string, int>();

            //Used to Determine Chance of Last Reward Item (GoldSmallAmount)
            int maxRandomValue = 1000;

            int ultraRareValue = 2;
            int rareValue      = 7;
            int uncommonValue  = 20;
            int commonValue    = 150;

            //Ultra Rares
            DictTemp.Add("PlayerCustomizationDeed", ultraRareValue);
            DictTemp.Add("AntiqueStandingClock", ultraRareValue);
            DictTemp.Add("CityLampPost", ultraRareValue);
            DictTemp.Add("LuniteIngots", ultraRareValue);
            DictTemp.Add("AquariumDeed", ultraRareValue);
            DictTemp.Add("LuxuriousFurniture", ultraRareValue);
            DictTemp.Add("MiniatureTownPiece", ultraRareValue);
            DictTemp.Add("UltraRareCloth", ultraRareValue);
            DictTemp.Add("DisplayCaseLargeAddon", ultraRareValue);
            DictTemp.Add("DisplayCaseMediumAddon", ultraRareValue);
            DictTemp.Add("LargeBenchAddon", ultraRareValue);
            DictTemp.Add("BarTopGlassMugs", ultraRareValue);
            DictTemp.Add("BarTopGoblets", ultraRareValue);
            DictTemp.Add("ExplodingBullvore", ultraRareValue);

            //Rares
            DictTemp.Add("UnfinishedFurniture", rareValue);
            DictTemp.Add("SpellHueDeed", rareValue);
            DictTemp.Add("MiniatureHome", rareValue);
            DictTemp.Add("CraftingComponentsLargeAmount", rareValue);
            DictTemp.Add("GoldHugeAmount", rareValue);
            DictTemp.Add("TableWithRunner", rareValue);
            DictTemp.Add("ExplodingLlama", rareValue);
            DictTemp.Add("MagicalWeapon", rareValue);
            DictTemp.Add("MagicalArmor", rareValue);
            DictTemp.Add("RareCloth", rareValue);
            DictTemp.Add("HideRack", rareValue);
            DictTemp.Add("HideRackLargeAddon", rareValue);
            DictTemp.Add("DisplayCaseSmall", rareValue);

            //Uncommon
            DictTemp.Add("CraftingComponentsMediumAmount", uncommonValue);
            DictTemp.Add("SpiderSilkFishingNet", uncommonValue);
            DictTemp.Add("CampingFirepit", uncommonValue);
            DictTemp.Add("GoldLargeAmount", uncommonValue);
            DictTemp.Add("ParagonWand", uncommonValue);
            DictTemp.Add("Lure", uncommonValue);
            DictTemp.Add("ResearchMaterials", uncommonValue);
            DictTemp.Add("AncientMysteryScroll", uncommonValue);
            DictTemp.Add("LavishPillow", uncommonValue);
            DictTemp.Add("VeterinarySalts", uncommonValue);
            DictTemp.Add("ExplodingSheep", uncommonValue);
            DictTemp.Add("DiamondHarvestingTool", uncommonValue);

            //Common
            DictTemp.Add("PrestigeScroll", commonValue);
            DictTemp.Add("GoldMediumAmount", commonValue);
            DictTemp.Add("CraftingComponentsSmallAmount", (int)Math.Round((double)commonValue / 2));
            DictTemp.Add("Reagents", commonValue);

            foreach (KeyValuePair <string, int> pair in DictTemp)
            {
                TotalValues += pair.Value;
            }

            int remainderItemChance = maxRandomValue - TotalValues;

            if (remainderItemChance < 1)
            {
                remainderItemChance = 1;
            }

            //Last Reward Item (Chance = maxRandomValue - Sum of All Item Values Combined)
            DictTemp.Add("GoldSmallAmount", remainderItemChance);

            TotalValues += remainderItemChance;

            double ItemCheck = Utility.RandomDouble();

            double CumulativeAmount = 0.0;
            double AdditionalAmount = 0.0;

            //Determine Reward
            foreach (KeyValuePair <string, int> pair in DictTemp)
            {
                AdditionalAmount = (double)pair.Value / (double)TotalValues;

                if (ItemCheck >= CumulativeAmount && ItemCheck < (CumulativeAmount + AdditionalAmount))
                {
                    Bag bag;

                    switch (pair.Key)
                    {
                    //Ultra Rares
                    case "PlayerCustomizationDeed":
                        item       = new Custom.PlayerCustomizationDeed();
                        rewardText = "You receive a player customization deed.";
                        break;

                    case "AntiqueStandingClock":
                        item       = new AntiqueStandingClock();
                        rewardText = "You receive an antique standing clock.";
                        break;

                    case "CityLampPost":
                        item       = new CityLampPost();
                        rewardText = "You receive a city lamp post.";
                        break;

                    case "LuniteIngots":
                        item       = new LuniteIngot(Utility.RandomMinMax(25, 50));
                        rewardText = "You receive some lunite ingots.";
                        break;

                    case "AquariumDeed":
                        if (Utility.RandomDouble() <= .5)
                        {
                            item = new AquariumEastDeed();
                        }
                        else
                        {
                            item = new AquariumNorthDeed();
                        }

                        rewardText = "You receive an aquarium deed";
                        break;

                    case "LuxuriousFurniture":
                        switch (Utility.RandomMinMax(1, 12))
                        {
                        case 1: item = new LuxuriousBookstand(); break;

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

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

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

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

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

                        case 7: item = new LargeLuxuriousChair(); break;

                        case 8: item = new LuxuriousBookshelf(); break;

                        case 9: item = new LuxuriousChest(); break;

                        case 10: item = new LuxuriousStorageBox(); break;

                        case 11: item = new LuxuriousReadingDesk(); break;

                        case 12: item = new LuxuriousAlchemyTable(); break;
                        }

                        rewardText = "You receive some luxurious furniture.";
                        break;

                    case "MiniatureTownPiece":
                        item       = new MiniatureTownPiece();
                        rewardText = "You receive a miniature town piece.";
                        break;

                    case "UltraRareCloth":
                        item       = new UltraRareCloth();
                        rewardText = "You receive some ultra rare cloth.";
                        break;

                    case "DisplayCaseLargeAddon":
                        switch (Utility.RandomMinMax(1, 2))
                        {
                        case 1: item = new DisplayCaseLargeEastAddonDeed(); break;

                        case 2: item = new DisplayCaseLargeNorthAddonDeed(); break;
                        }

                        rewardText = "You receive a large display case.";
                        break;

                    case "DisplayCaseMediumAddon":
                        switch (Utility.RandomMinMax(1, 2))
                        {
                        case 1: item = new DisplayCaseMediumEastAddonDeed(); break;

                        case 2: item = new DisplayCaseMediumNorthAddonDeed(); break;
                        }

                        rewardText = "You receive a medium display case.";
                        break;

                    case "LargeBenchAddon":
                        switch (Utility.RandomMinMax(1, 2))
                        {
                        case 1: item = new LargeBenchEastAddonDeed(); break;

                        case 2: item = new LargeBenchNorthAddonDeed(); break;
                        }

                        rewardText = "You receive a large bench.";
                        break;

                    case "BarTopGlassMugs":
                        item       = new BarTopGlassMugs();
                        rewardText = "You receive bar top glass mugs.";
                        break;

                    case "BarTopGoblets":
                        item       = new BarTopGoblets();
                        rewardText = "You receive bar top goblets.";
                        break;

                    case "ExplodingBullvore":
                        item       = new ExplodingBullvore();
                        rewardText = "You receive an exploding bullvore.";
                        break;

                    //Rares
                    case "UnfinishedFurniture":
                        switch (Utility.RandomMinMax(1, 5))
                        {
                        case 1: item = new UnfinishedWoodenChair(); break;

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

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

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

                        case 5: item = new UnfinishedBookshelf(); break;
                        }

                        rewardText = "You receive some unfinished furniture.";
                        break;

                    case "SpellHueDeed":
                        item       = new Custom.SpellHueDeed();
                        rewardText = "You receive a spell hue deed.";
                        break;

                    case "MiniatureHome":
                        item       = new MiniatureHome();
                        rewardText = "You receive a miniature home.";
                        break;

                    case "CraftingComponentsLargeAmount":
                        item       = CraftingComponent.GetRandomCraftingComponent(10);
                        rewardText = "You receive a large number of crafting components.";
                        break;

                    case "GoldHugeAmount":
                        item       = new Gold(Utility.RandomMinMax(2500, 10000));
                        rewardText = "You receive a very large amount of gold.";
                        break;

                    case "TableWithRunner":
                        item       = new TableWithRunner();
                        rewardText = "You receive a small table with runner.";
                        break;

                    case "ExplodingLlama":
                        item       = new ExplodingLlama();
                        rewardText = "You receive an exploding llama.";
                        break;

                    case "MagicalWeapon":
                        BaseWeapon weapon = Loot.RandomWeapon();

                        if (weapon != null)
                        {
                            weapon.AccuracyLevel   = (WeaponAccuracyLevel)Utility.RandomMinMax(3, 5);
                            weapon.DamageLevel     = (WeaponDamageLevel)Utility.RandomMinMax(3, 5);
                            weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.RandomMinMax(3, 5);
                        }

                        item       = weapon;
                        rewardText = "You receive a magical weapon.";
                        break;

                    case "MagicalArmor":
                        BaseArmor armor = Loot.RandomArmor();

                        if (armor != null)
                        {
                            armor.ProtectionLevel = (ArmorProtectionLevel)Utility.RandomMinMax(4, 5);
                            armor.DurabilityLevel = (ArmorDurabilityLevel)Utility.RandomMinMax(4, 5);
                        }

                        item       = armor;
                        rewardText = "You receive some magical armor.";
                        break;

                    case "RareCloth":
                        item       = new RareCloth();
                        rewardText = "You receive some rare cloth.";
                        break;

                    case "HideRack":
                        item       = new HideRack();
                        rewardText = "You receive a hide rack.";
                        break;

                    case "HideRackLargeAddon":
                        switch (Utility.RandomMinMax(1, 2))
                        {
                        case 1: item = new HideRackLargeEastAddonDeed(); break;

                        case 2: item = new HideRackLargeNorthAddonDeed(); break;
                        }

                        rewardText = "You receive a large hide rack.";
                        break;

                    case "DisplayCaseSmall":
                        item       = new DisplayCaseSmall();
                        rewardText = "You receive a small display case.";
                        break;

                    //Uncommon
                    case "CraftingComponentsMediumAmount":
                        item       = CraftingComponent.GetRandomCraftingComponent(6);
                        rewardText = "You receive a moderate number of crafting components.";
                        break;

                    case "SpiderSilkFishingNet":
                        item       = new Custom.SpidersilkFishingNet();
                        rewardText = "You receive a spidersilk fishing net.";
                        break;

                    case "CampingFirepit":
                        item       = new Custom.CampingFirepit();
                        rewardText = "You receive a camping firepit.";
                        break;

                    case "GoldLargeAmount":
                        item       = new Gold(Utility.RandomMinMax(1000, 2500));
                        rewardText = "You receive a large amount of gold.";
                        break;

                    case "ParagonWand":
                        item       = new ParagonWand();
                        rewardText = "You receive a paragon wand.";
                        break;

                    case "Lure":
                        if (Utility.RandomDouble() <= .66)
                        {
                            item = new Custom.FaintLure();
                        }
                        else
                        {
                            item = new Custom.PotentLure();
                        }

                        rewardText = "You receive a lure.";
                        break;

                    case "ResearchMaterials":
                        item       = new Custom.ResearchMaterials();
                        rewardText = "You receive some research materials.";
                        break;

                    case "AncientMysteryScroll":
                        item       = new Custom.AncientMystery.AncientMysteryScroll();
                        rewardText = "You receive an ancient mystery scroll.";
                        break;

                    case "LavishPillow":
                        item       = new LavishPillow();
                        rewardText = "You receive a lavish pillow.";
                        break;

                    case "VeterinarySalts":
                        item       = new Custom.Items.VeterinarySalts();
                        rewardText = "You receive some veterinary salts.";
                        break;

                    case "ExplodingSheep":
                        item       = new ExplodingSheep();
                        rewardText = "You receive an exploding sheep.";
                        break;

                    case "DiamondHarvestingTool":
                        switch (Utility.RandomMinMax(1, 2))
                        {
                        case 1: item = new DiamondPickaxe(); break;

                        case 2: item = new DiamondShovel(); break;
                        }

                        rewardText = "You receive a diamond-coated harvesting tool.";
                        break;

                    //Common
                    case "PrestigeScroll":
                        item       = new PrestigeScroll();
                        rewardText = "You receive a prestige scroll.";
                        break;

                    case "GoldMediumAmount":
                        item       = new Gold(Utility.RandomMinMax(500, 1000));
                        rewardText = "You receive a moderate amount of gold.";
                        break;

                    case "CraftingComponentsSmallAmount":
                        item       = CraftingComponent.GetRandomCraftingComponent(3);
                        rewardText = "You receive a small number of crafting components.";
                        break;

                    case "Reagents":
                        int reagentsAmount = Utility.RandomMinMax(150, 250);

                        switch (Utility.RandomMinMax(1, 8))
                        {
                        case 1: item = new BlackPearl(reagentsAmount); break;

                        case 2: item = new Bloodmoss(reagentsAmount); break;

                        case 3: item = new MandrakeRoot(reagentsAmount); break;

                        case 4: item = new Garlic(reagentsAmount); break;

                        case 5: item = new Ginseng(reagentsAmount); break;

                        case 6: item = new SpidersSilk(reagentsAmount); break;

                        case 7: item = new SulfurousAsh(reagentsAmount); break;

                        case 8: item = new Nightshade(reagentsAmount); break;
                        }

                        rewardText = "You receive some reagents.";
                        break;

                    //Remainder
                    case "GoldSmallAmount":
                        item       = new Gold(Utility.RandomMinMax(250, 500));
                        rewardText = "You receive a small amount of gold.";
                        break;
                    }

                    break;
                }

                CumulativeAmount += AdditionalAmount;
            }

            if (item != null)
            {
                if (from.TotalWeight >= 390 && from.AccessLevel == AccessLevel.Player)
                {
                    item.Delete();
                    from.SendMessage("You are carrying too much weight to be able to accept any rewards.");

                    inUse = false;

                    return;
                }

                if (!from.AddToBackpack(item))
                {
                    item.Delete();
                    from.SendMessage("You don't have enough room in your backpack. Please make room and try again.");

                    inUse = false;

                    return;
                }

                else
                {
                    if (from.NetState != null)
                    {
                        from.PrivateOverheadMessage(MessageType.Regular, 0, false, rewardText, from.NetState);
                    }

                    if (rewardSound != -1)
                    {
                        from.SendSound(rewardSound);
                    }

                    Delete();
                }
            }

            else
            {
                inUse = false;
            }
        }
Пример #15
0
        public static void LBBstart_OnCommand(CommandEventArgs e)
        {
            Map map = Map.Felucca;

            /////////////
            // MOBILES //
            /////////////
            
            LBBbaker baker = new LBBbaker();
            baker.Home = new Point3D(1451, 1614, 20);
            baker.MoveToWorld(baker.Home, map);

            LBBbaldur baldur = new LBBbaldur();
            baldur.Home = new Point3D(5220, 730, -20);
            baldur.MoveToWorld(baldur.Home, map);

            LBBblacksmith blacksmith = new LBBblacksmith();
            blacksmith.Home = new Point3D(1420, 1547, 30);
            blacksmith.MoveToWorld(blacksmith.Home, map);

            LBBcarpenter carpenter = new LBBcarpenter();
            carpenter.Home = new Point3D(1432, 1595, 20);
            carpenter.MoveToWorld(carpenter.Home, map);

            LBBcook cook = new LBBcook();
            cook.Home = new Point3D(1318, 1604, 50);
            cook.MoveToWorld(cook.Home, map);

            LBBdrunkJeffrey drunkJeffrey = new LBBdrunkJeffrey();
            drunkJeffrey.Home = new Point3D(1412, 1655, 10);
            drunkJeffrey.MoveToWorld(drunkJeffrey.Home, map);

            LBBeasternMageryShopVendor easternMageryShopVendor = new LBBeasternMageryShopVendor();
            easternMageryShopVendor.Home = new Point3D(1595, 1654, 10);
            easternMageryShopVendor.MoveToWorld(easternMageryShopVendor.Home, map);

            LBBfisherman fisherman = new LBBfisherman();
            fisherman.Home = new Point3D(1489, 1749, -2);
            fisherman.MoveToWorld(fisherman.Home, map);

            LBBleonard leonard = new LBBleonard();
            leonard.Home = new Point3D(1675, 1593, 7);
            leonard.MoveToWorld(leonard.Home, map);

            LBBlibrarian librarian = new LBBlibrarian();
            librarian.Home = new Point3D(1410, 1604, 30);
            librarian.MoveToWorld(librarian.Home, map);

            LBBlordBritish lordBritish = new LBBlordBritish();
            lordBritish.Home = new Point3D(1323, 1624, 55);
            lordBritish.MoveToWorld(lordBritish.Home, map);

            LBBmaid1 maid1 = new LBBmaid1();
            maid1.Home = new Point3D(1352, 1660, 72);
            maid1.MoveToWorld(maid1.Home, map);

            LBBmaid2 maid2 = new LBBmaid2();
            maid2.Home = new Point3D(1351, 1604, 72);
            maid2.MoveToWorld(maid2.Home, map);

            LBBmaid3 maid3 = new LBBmaid3();
            maid3.Home = new Point3D(1329, 1660, 72);
            maid3.MoveToWorld(maid3.Home, map);

            LBBmaid4 maid4 = new LBBmaid4();
            maid4.Home = new Point3D(1345, 1643, 50);
            maid4.MoveToWorld(maid4.Home, map);

            LBBmaid5 maid5 = new LBBmaid5();
            maid5.Home = new Point3D(1353, 1588, 50);
            maid5.MoveToWorld(maid5.Home, map);

            LBBnorthernMageryShopVendor northernMageryShopVendor = new LBBnorthernMageryShopVendor();
            northernMageryShopVendor.Home = new Point3D(1492, 1547, 35);
            northernMageryShopVendor.MoveToWorld(northernMageryShopVendor.Home, map);

            LBBoriandur oriandur = new LBBoriandur();
            oriandur.Home = new Point3D(5323, 749, -20);
            oriandur.MoveToWorld(oriandur.Home, map);

            LBBpriest priest = new LBBpriest();
            priest.Home = new Point3D(1452, 1589, 20);
            priest.MoveToWorld(priest.Home, map);

            LBBguard guard1 = new LBBguard();
            guard1.Home = new Point3D(1323, 1626, 55);
            guard1.MoveToWorld(guard1.Home, map);
            guard1.Direction = guard1.GetDirectionTo(new Point3D(1330, 1624, 50));

            LBBguard guard2 = new LBBguard();
            guard2.Home = new Point3D(1323, 1622, 55);
            guard2.MoveToWorld(guard2.Home, map);
            guard2.Direction = guard2.GetDirectionTo(new Point3D(1330, 1624, 50));

            LBBguard guard3 = new LBBguard();
            guard3.Home = new Point3D(1328, 1627, 50);
            guard3.MoveToWorld(guard3.Home, map);
            guard3.Direction = guard3.GetDirectionTo(new Point3D(1330, 1624, 50));

            LBBguard guard4 = new LBBguard();
            guard4.Home = new Point3D(1328, 1621, 50);
            guard4.MoveToWorld(guard4.Home, map);
            guard4.Direction = guard4.GetDirectionTo(new Point3D(1330, 1624, 50));

            LBBguard guard5 = new LBBguard();
            guard5.Home = new Point3D(1334, 1627, 50);
            guard5.MoveToWorld(guard5.Home, map);
            guard5.Direction = guard5.GetDirectionTo(new Point3D(1330, 1624, 50));

            LBBguard guard6 = new LBBguard();
            guard6.Home = new Point3D(1334, 1621, 50);
            guard6.MoveToWorld(guard6.Home, map);
            guard6.Direction = guard6.GetDirectionTo(new Point3D(1330, 1624, 50));

            ///////////
            // ITEMS //
            ///////////

            LBBdiary1 diary1 = new LBBdiary1();
            diary1.MoveToWorld(new Point3D(1454, 1582, 30), map);

            LargeBoat boat = new LargeBoat();
            boat.TillerMan = null;
            boat.Facing = Direction.West;
            boat.MoveToWorld(new Point3D(1493, 1854, -5), map);

            LBBdiary2 diary2 = new LBBdiary2();
            diary2.MoveToWorld(new Point3D(1496, 1854, -2), map);

            BattleAxe axe = new BattleAxe();
            axe.MoveToWorld(new Point3D(1490, 1854, -2), map);
            axe.Movable = false;

            GlassBottle bottle = new GlassBottle();
            bottle.MoveToWorld(new Point3D(1497, 1854, -2), map);
            bottle.Movable = false;

            Backpack pack = new Backpack();
            pack.MoveToWorld(new Point3D(1494, 1854, -2), map);
            pack.Movable = false;
            pack.DropItem(new GlassBottle());
            pack.DropItem(new GlassBottle());
            pack.DropItem(new FishingPole());

            BigFish packItem1 = new BigFish();
            packItem1.Amount = 8;
            pack.DropItem(packItem1);

            SpidersSilk packItem2 = new SpidersSilk();
            packItem2.Amount = 3;
            pack.DropItem(packItem2);

            MandrakeRoot packItem3 = new MandrakeRoot();
            packItem3.Amount = 5;
            pack.DropItem(packItem3);

            Bloodmoss packItem4 = new Bloodmoss();
            packItem4.Amount = 3;
            pack.DropItem(packItem4);

            SulfurousAsh packItem5 = new SulfurousAsh();
            packItem5.Amount = 4;
            pack.DropItem(packItem5);

            e.Mobile.SendMessage("All NPCs and Items have been generated. Ready to start Lord British's Books event.");
        }