Пример #1
0
            public InternalSellInfo()
            {
                Add(typeof(Bottle), Bottle.GetSBSellValue());
                Add(typeof(MortarPestle), MortarPestle.GetSBSellValue());

                Add(typeof(BlackPearl), BlackPearl.GetSBSellValue());
                Add(typeof(Bloodmoss), Bloodmoss.GetSBSellValue());
                Add(typeof(MandrakeRoot), MandrakeRoot.GetSBSellValue());
                Add(typeof(Garlic), Garlic.GetSBSellValue());
                Add(typeof(Ginseng), Ginseng.GetSBSellValue());
                Add(typeof(Nightshade), Nightshade.GetSBSellValue());
                Add(typeof(SpidersSilk), SpidersSilk.GetSBSellValue());
                Add(typeof(SulfurousAsh), SulfurousAsh.GetSBSellValue());

                Add(typeof(LesserMagicResistPotion), LesserMagicResistPotion.GetSBSellValue());
                Add(typeof(AgilityPotion), AgilityPotion.GetSBSellValue());
                Add(typeof(StrengthPotion), StrengthPotion.GetSBSellValue());
                Add(typeof(RefreshPotion), RefreshPotion.GetSBSellValue());
                Add(typeof(LesserCurePotion), LesserCurePotion.GetSBSellValue());
                Add(typeof(LesserHealPotion), LesserHealPotion.GetSBSellValue());
                Add(typeof(LesserPoisonPotion), LesserPoisonPotion.GetSBSellValue());
                Add(typeof(LesserExplosionPotion), LesserExplosionPotion.GetSBSellValue());

                Add(typeof(HairDye), HairDye.GetSBSellValue());
            }
Пример #2
0
            public InternalBuyInfo()
            {
                Add(new GenericBuyInfo("Bottle", typeof(Bottle), Bottle.GetSBPurchaseValue(), 200, 0xF0E, 0));
                Add(new GenericBuyInfo("Mortar and Pestle", typeof(MortarPestle), MortarPestle.GetSBPurchaseValue(), 10, 0xE9B, 0));

                Add(new GenericBuyInfo("Black Pearl", typeof(BlackPearl), BlackPearl.GetSBPurchaseValue(), 500, 0xF7A, 0));
                Add(new GenericBuyInfo("Bloodmoss", typeof(Bloodmoss), Bloodmoss.GetSBPurchaseValue(), 500, 0xF7B, 0));
                Add(new GenericBuyInfo("Mandrake Root", typeof(MandrakeRoot), MandrakeRoot.GetSBPurchaseValue(), 500, 0xF86, 0));
                Add(new GenericBuyInfo("Garlic", typeof(Garlic), Garlic.GetSBPurchaseValue(), 500, 0xF84, 0));
                Add(new GenericBuyInfo("Ginseng", typeof(Ginseng), Ginseng.GetSBPurchaseValue(), 500, 0xF85, 0));
                Add(new GenericBuyInfo("Nightshade", typeof(Nightshade), Nightshade.GetSBPurchaseValue(), 500, 0xF88, 0));
                Add(new GenericBuyInfo("Spider Silk", typeof(SpidersSilk), SpidersSilk.GetSBPurchaseValue(), 500, 0xF8D, 0));
                Add(new GenericBuyInfo("Sulfurous Ash", typeof(SulfurousAsh), SulfurousAsh.GetSBPurchaseValue(), 500, 0xF8C, 0));

                Add(new GenericBuyInfo("Lesser Heal Potion", typeof(LesserHealPotion), LesserHealPotion.GetSBPurchaseValue(), 50, 0xF0C, 0));
                Add(new GenericBuyInfo("Lesser Cure Potion", typeof(LesserCurePotion), LesserCurePotion.GetSBPurchaseValue(), 50, 0xF07, 0));
                Add(new GenericBuyInfo("Refresh Potion", typeof(RefreshPotion), RefreshPotion.GetSBPurchaseValue(), 50, 0xF0B, 0));
                Add(new GenericBuyInfo("Agility Potion", typeof(AgilityPotion), AgilityPotion.GetSBPurchaseValue(), 50, 0xF08, 0));
                Add(new GenericBuyInfo("Strength Potion", typeof(StrengthPotion), StrengthPotion.GetSBPurchaseValue(), 50, 0xF09, 0));
                Add(new GenericBuyInfo("Lesser Magic Resist Potion", typeof(LesserMagicResistPotion), LesserMagicResistPotion.GetSBPurchaseValue(), 10, 0xF06, 0));
                Add(new GenericBuyInfo("Lesser Poison Potion", typeof(LesserPoisonPotion), LesserPoisonPotion.GetSBPurchaseValue(), 50, 0xF0A, 0));
                Add(new GenericBuyInfo("Lesser Explosion Potion", typeof(LesserExplosionPotion), LesserExplosionPotion.GetSBPurchaseValue(), 50, 0xF0D, 0));

                Add(new GenericBuyInfo("Hair Dye", typeof(HairDye), HairDye.GetSBPurchaseValue(), 10, 0xEFF, 0));
            }
Пример #3
0
            public InternalSellInfo()
            {
                //TEST: FIX THIS !!!!!

                //TEST: DETERMINE SPELL SCROLL PRICES

                /*
                 * Type[] types = Loot.RegularScrollTypes;
                 *
                 * for (int i = 0; i < types.Length; ++i)
                 * {
                 *  Type type = types[i];
                 *
                 *  var ci = Server.Engines.Craft.DefInscription.CraftSystem.CraftItems.SearchFor(type);
                 *
                 *  if (ci == null)
                 *      continue;
                 *
                 *  var res = ci.Resources;
                 *
                 *  int cost = 0;
                 *
                 *  foreach (CraftRes c in ci.Resources)
                 *      cost += CostOfResource(c.ItemType);
                 *
                 *  int level = ((i + 1) / 8) / 2;
                 *
                 *  cost += LevelBonusFor(level);
                 *
                 *  cost *= 3;
                 *
                 *  int count = res.Count;
                 *
                 *  //TEST: DETERMINE SCROLL SELL PRICES
                 *  Add(type, Math.Min(6 + ((i / 8) * 5), cost));
                 * }
                 */

                Add(typeof(BlackPearl), BlackPearl.GetSBSellValue());
                Add(typeof(Bloodmoss), Bloodmoss.GetSBSellValue());
                Add(typeof(MandrakeRoot), MandrakeRoot.GetSBSellValue());
                Add(typeof(Garlic), Garlic.GetSBSellValue());
                Add(typeof(Ginseng), Ginseng.GetSBSellValue());
                Add(typeof(Nightshade), Nightshade.GetSBSellValue());
                Add(typeof(SpidersSilk), SpidersSilk.GetSBSellValue());
                Add(typeof(SulfurousAsh), SulfurousAsh.GetSBSellValue());

                Add(typeof(RecallRune), RecallRune.GetSBSellValue());
                Add(typeof(BlankScroll), BlankScroll.GetSBSellValue());
                Add(typeof(Spellbook), Spellbook.GetSBSellValue());
                Add(typeof(ScribesPen), ScribesPen.GetSBSellValue());
                Add(typeof(MagicWizardsHat), MagicWizardsHat.GetSBSellValue());
            }
Пример #4
0
            public InternalSellInfo()
            {
                Add(typeof(Bottle), Bottle.GetSBSellValue());
                Add(typeof(MortarPestle), MortarPestle.GetSBSellValue());

                Add(typeof(BlackPearl), BlackPearl.GetSBSellValue());
                Add(typeof(Bloodmoss), Bloodmoss.GetSBSellValue());
                Add(typeof(MandrakeRoot), MandrakeRoot.GetSBSellValue());
                Add(typeof(Garlic), Garlic.GetSBSellValue());
                Add(typeof(Ginseng), Ginseng.GetSBSellValue());
                Add(typeof(Nightshade), Nightshade.GetSBSellValue());
                Add(typeof(SpidersSilk), SpidersSilk.GetSBSellValue());
                Add(typeof(SulfurousAsh), SulfurousAsh.GetSBSellValue());
            }
Пример #5
0
            public InternalBuyInfo()
            {
                Add(new GenericBuyInfo("Bottle", typeof(Bottle), Bottle.GetSBPurchaseValue(), 200, 0xF0E, 0));
                Add(new GenericBuyInfo("Mortar and Pestle", typeof(MortarPestle), MortarPestle.GetSBPurchaseValue(), 10, 0xE9B, 0));

                Add(new GenericBuyInfo("Black Pearl", typeof(BlackPearl), BlackPearl.GetSBPurchaseValue(), 500, 0xF7A, 0));
                Add(new GenericBuyInfo("Bloodmoss", typeof(Bloodmoss), Bloodmoss.GetSBPurchaseValue(), 500, 0xF7B, 0));
                Add(new GenericBuyInfo("Mandrake Root", typeof(MandrakeRoot), MandrakeRoot.GetSBPurchaseValue(), 500, 0xF86, 0));
                Add(new GenericBuyInfo("Garlic", typeof(Garlic), Garlic.GetSBPurchaseValue(), 500, 0xF84, 0));
                Add(new GenericBuyInfo("Ginseng", typeof(Ginseng), Ginseng.GetSBPurchaseValue(), 500, 0xF85, 0));
                Add(new GenericBuyInfo("Nightshade", typeof(Nightshade), Nightshade.GetSBPurchaseValue(), 500, 0xF88, 0));
                Add(new GenericBuyInfo("Spider Silk", typeof(SpidersSilk), SpidersSilk.GetSBPurchaseValue(), 500, 0xF8D, 0));
                Add(new GenericBuyInfo("Sulfurous Ash", typeof(SulfurousAsh), SulfurousAsh.GetSBPurchaseValue(), 500, 0xF8C, 0));
            }
Пример #6
0
        public override bool LootItem(Mobile from)
        {
            if (Utility.RandomDouble() <= .05)
            {
                BloodmossSeed item = new BloodmossSeed();
                from.AddToBackpack(item);
                from.SendMessage("You manage to gather 1 bloodmoss seed.");
            }
            Bloodmoss c = new Bloodmoss();

            c.ItemID = 3963;
            from.AddToBackpack(c);
            from.SendMessage("You manage to gather 1 bloodmoss.");
            return(true);
        }
Пример #7
0
            public InternalBuyInfo()
            {
                //TEST: FIX THIS!!!!


                /*
                 *              Type[] types = Loot.RegularScrollTypes;
                 *
                 *              //for ( int i = 0; i < types.Length; ++i )
                 *              for ( int i = 0; i < 32; ++i )
                 *
                 *              {
                 *                      int itemID = 0x1F2E + i;
                 *
                 *                      if ( i == 6 )
                 *                              itemID = 0x1F2D;
                 *
                 *                      else if ( i > 6 )
                 *                              --itemID;
                 *
                 *  //TEST: DETERMINE SCROLL PRICES
                 *                      Add( new GenericBuyInfo( types[i], 12 + ((i / 3) * 10), 20, itemID, 0 ) );
                 *              }
                 */

                Add(new GenericBuyInfo("Black Pearl", typeof(BlackPearl), BlackPearl.GetSBPurchaseValue(), 500, 0xF7A, 0));
                Add(new GenericBuyInfo("Bloodmoss", typeof(Bloodmoss), Bloodmoss.GetSBPurchaseValue(), 500, 0xF7B, 0));
                Add(new GenericBuyInfo("Mandrake Root", typeof(MandrakeRoot), MandrakeRoot.GetSBPurchaseValue(), 500, 0xF86, 0));
                Add(new GenericBuyInfo("Garlic", typeof(Garlic), Garlic.GetSBPurchaseValue(), 500, 0xF84, 0));
                Add(new GenericBuyInfo("Ginseng", typeof(Ginseng), Ginseng.GetSBPurchaseValue(), 500, 0xF85, 0));
                Add(new GenericBuyInfo("Nightshade", typeof(Nightshade), Nightshade.GetSBPurchaseValue(), 500, 0xF88, 0));
                Add(new GenericBuyInfo("Spider Silk", typeof(SpidersSilk), SpidersSilk.GetSBPurchaseValue(), 500, 0xF8D, 0));
                Add(new GenericBuyInfo("Sulfurous Ash", typeof(SulfurousAsh), SulfurousAsh.GetSBPurchaseValue(), 500, 0xF8C, 0));

                Add(new GenericBuyInfo("Recall Rune", typeof(RecallRune), RecallRune.GetSBPurchaseValue(), 50, 0x1f14, 0));
                Add(new GenericBuyInfo("Spellbook", typeof(Spellbook), Spellbook.GetSBPurchaseValue(), 25, 0xEFA, 0));
                Add(new GenericBuyInfo("Blank Scroll", typeof(BlankScroll), BlankScroll.GetSBPurchaseValue(), 500, 0x0E34, 0));
                Add(new GenericBuyInfo("Scribe's Pen", typeof(ScribesPen), ScribesPen.GetSBPurchaseValue(), 50, 0xFBF, 0));
                Add(new GenericBuyInfo("Magical Wizard's Hat", typeof(MagicWizardsHat), MagicWizardsHat.GetSBPurchaseValue(), 25, 0x1718, 0));
            }
Пример #8
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.");
        }
Пример #9
0
        public override void OnDoubleClick(Mobile from)
        {
            if (m_sower == null || m_sower.Deleted)
            {
                m_sower = from;
            }

            if (from.Mounted && !CropHelper.CanWorkMounted)
            {
                from.SendMessage("You cannot harvest a crop while mounted.");
                return;
            }

            if (DateTime.Now > lastpicked.AddSeconds(1))               // 3 seconds between picking changed to 1 sec
            {
                lastpicked = DateTime.Now;

                int mageryValue = (int)from.Skills[SkillName.Magery].Value / 20;                  //FUTURE add two skill checks...
                if (mageryValue == 0)
                {
                    from.SendMessage("You have no idea how to harvest this crop.");
                    return;
                }

                if (from.InRange(this.GetWorldLocation(), 1))
                {
                    if (m_yield < 1)
                    {
                        from.SendMessage("There is nothing here to harvest.");

                        if (PlayerCanDestroy && !(m_sower.AccessLevel > AccessLevel.Counselor))
                        {
                            UpRootGump g = new UpRootGump(from, this);
                            from.SendGump(g);
                        }
                    }
                    else                     //check skill and sower
                    {
                        from.Direction = from.GetDirectionTo(this);

                        from.Animate(from.Mounted ? 29:32, 5, 1, true, false, 0);

                        if (from == m_sower)
                        {
                            mageryValue *= 2;
                            m_lastvisit  = DateTime.Now;
                        }

                        if (mageryValue > m_yield)
                        {
                            mageryValue = m_yield + 1;
                        }

                        int pick = Utility.Random(mageryValue);
                        if (pick == 0)
                        {
                            from.SendMessage("You do not manage to harvest any crops.");
                            return;
                        }

                        m_yield -= pick;
                        from.SendMessage("You harvest {0} crop{1}!", pick, (pick == 1 ? "" : "s"));

                        //PublicOverheadMessage( MessageType.Regular, 0x3BD, false, string.Format( "{0}", m_yield ));
                        ((Item)this).ItemID = pickedGraphic;

                        Bloodmoss crop = new Bloodmoss(pick);                           //I MODED
                        from.AddToBackpack(crop);

                        if (SowerPickTime != TimeSpan.Zero && m_lastvisit + SowerPickTime < DateTime.Now && !(m_sower.AccessLevel > AccessLevel.Counselor))
                        {
                            this.UpRoot(from);
                            return;
                        }

                        if (!regrowTimer.Running)
                        {
                            regrowTimer.Start();
                        }
                    }
                }
                else
                {
                    from.SendMessage("You are too far away to harvest anything.");
                }
            }
        }
Пример #10
0
        public override void OnDoubleClick(Mobile from)
        {
            if (m_sower == null || m_sower.Deleted)
            {
                m_sower = from;
            }

            if (from.Mounted && !CropHelper.CanWorkMounted)
            {
                from.SendMessage("You cannot gather anything while mounted.");
                return;
            }

            if (DateTime.Now > lastpicked.AddSeconds(3))               // 3 seconds between picking
            {
                lastpicked = DateTime.Now;

                int mageValue = (int)from.Skills[SkillName.Magery].Value / 10;                  //FUTURE add two skill checks...
                if (mageValue == 0)
                {
                    from.SendMessage("You have no idea how to pick this.");
                    return;
                }

                if (from.InRange(this.GetWorldLocation(), 1))
                {
                    if (m_yield < 1)
                    {
                        from.SendMessage("There is nothing here to harvest.");

                        if (PlayerCanDestroy && !(m_sower.AccessLevel > AccessLevel.Counselor))
                        {
                            UpRootGump g = new UpRootGump(from, this);
                            from.SendGump(g);
                        }
                    }
                    else                     //check skill and sower
                    {
                        from.Direction = from.GetDirectionTo(this);

                        from.Animate(from.Mounted ? 29:32, 5, 1, true, false, 0);

                        if (from == m_sower)
                        {
                            mageValue  *= 2;
                            m_lastvisit = DateTime.Now;
                        }

                        if (mageValue > m_yield)
                        {
                            mageValue = m_yield + 1;
                        }

                        int pick = Utility.Random(mageValue);
                        if (pick == 0)
                        {
                            from.SendMessage("You do not manage to harvest anything.");
                            return;
                        }

                        m_yield -= pick;
                        from.SendMessage("You manage to gather {0} bloodmoss!", pick);

                        double chance = Utility.RandomDouble(); // chance to get a seed is 20%
                        if (0.20 > chance)
                        {
                            from.AddToBackpack(new BloodMossSeed(1));
                            from.SendMessage("You found a seed!");
                        }

                        //PublicOverheadMessage( MessageType.Regular, 0x3BD, false, string.Format( "{0}", m_yield ));
                        ((Item)this).ItemID = pickedGraphic;

                        Bloodmoss crop = new Bloodmoss(pick);
                        from.AddToBackpack(crop);

                        chance = Utility.RandomDouble(); // chance to pull out plant is 10%
                        if ((0.10 > chance) && !(m_sower.AccessLevel > AccessLevel.Counselor))
                        {
                            from.SendMessage("You accidently uproot all of the bloodmoss plant.");
                            regrowTimer.Stop();
                            this.Delete();
                            return;
                        }

                        if (SowerPickTime != TimeSpan.Zero && m_lastvisit + SowerPickTime < DateTime.Now && !(m_sower.AccessLevel > AccessLevel.Counselor))
                        {
                            this.UpRoot(from);
                            return;
                        }

                        if (!regrowTimer.Running)
                        {
                            regrowTimer.Start();
                        }
                    }
                }
                else
                {
                    from.SendMessage("You are too far away to gather anything.");
                }
            }
        }
Пример #11
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.");
                    }
                }
            }
        }