Esempio n. 1
0
 public override void OnResponse( Server.Network.NetState sender, RelayInfo info )
 {
     Mobile from = sender.Mobile;
     Item banner = new Banner(m_Id+info.ButtonID);
     banner.Map = from.Map;
     banner.Location = new Point3D( m_Loc );
 }
 public override void OnResponse( NetState state, RelayInfo info )
 {
     Mobile from = state.Mobile;
     switch ( info.ButtonID )
     {
         case 0:{ break; }
     }
 }
Esempio n. 3
0
 public override void OnResponse( Server.Network.NetState sender, RelayInfo info )
 {
     if (info.ButtonID == 1)
     {
         m_Item.Delete();
         sender.Mobile.AddToBackpack( new BannerDeed() );
     }
 }
Esempio n. 4
0
		public override void OnResponse( Server.Network.NetState state, RelayInfo info )
		{		
			if ( info.ButtonID == (int) Buttons.Confirm )
			{
				if ( info.IsSwitched( (int) Buttons.Break ) )
					Confirm( state.Mobile );
				else
					Refuse( state.Mobile );
			}
		}
        public override void OnResponse( NetState state, RelayInfo info )
        {
            Mobile from = state.Mobile;

            if ( m_Stone.Deleted )
                return;

            string currency = "";
            string[] tr = new string[ 1 ];
            foreach( TextRelay t in info.TextEntries )
                tr[ t.EntryID ] = t.Text;
            if ( tr[ 0 ] != null )
                currency = tr[ 0 ];
            m_Stone.Currency = currency;

            if ( info.ButtonID == 0 )
            {
                from.SendMessage( "Closed." );
            }
            if ( info.ButtonID == 1 )
            {
                from.SendGump( new VendorGump( new VSShopper( from, m_Stone ), m_Stone ) );
            }
            if ( info.ButtonID == 2 )
            {
                from.SendGump( new TokenVendorStoneAddItemGump( from, m_Stone ) );
            }
            if ( info.ButtonID == 3 )
            {
                if ( m_Stone.AccessLevel == AccessLevel.Administrator )
                    m_Stone.AccessLevel = AccessLevel.Player;
                else if ( m_Stone.AccessLevel == AccessLevel.Seer )
                    m_Stone.AccessLevel = AccessLevel.Administrator;
                else if ( m_Stone.AccessLevel == AccessLevel.GameMaster )
                    m_Stone.AccessLevel = AccessLevel.Seer;
                else if ( m_Stone.AccessLevel == AccessLevel.Counselor )
                    m_Stone.AccessLevel = AccessLevel.GameMaster;
                else if ( m_Stone.AccessLevel == AccessLevel.Player )
                    m_Stone.AccessLevel = AccessLevel.Counselor;

                from.SendGump( new StaffVendorGump( from, m_Stone ) );
            }
            if ( info.ButtonID == 4 )
            {
                if ( m_Stone.EditMode )
                    m_Stone.EditMode = false;
                else
                    m_Stone.EditMode = true;

                from.SendGump( new StaffVendorGump( from, m_Stone ) );
            }
        }
        public override void OnResponse( Server.Network.NetState sender, RelayInfo info )
        {
            if (info.ButtonID > 0 && info.ButtonID <= 5)
            {
                m_From.CloseGump( typeof( DonationStoreGump ) );

                long giftId = m_GiftIDs[info.ButtonID-1];
                IEntity gift = DonationStore.RedeemGift(giftId, m_From.Account.Username);
                if (gift != null)
                {
                    m_From.AddToBackpack((Item)gift);
                    m_From.SendMessage("{0} has been placed in your backpack. Thank you for your donation!", ((Item)gift).Name);
                }
            }
        }
Esempio n. 7
0
        public override void OnResponse( NetState sender, RelayInfo info )
        {
            int button = info.ButtonID;

            switch ( button )
            {
                case 1:
                {
                    if ( temp > m_Post.MinRange )
                        temp -= 1;
                    else
                        sender.Mobile.SendMessage( "You cant lower this value any further." );
                    m_Post.HomeRange = temp;
                    sender.Mobile.CloseGump( typeof( HitchGump ) );
                    sender.Mobile.SendGump( new HitchGump( m_Post ) );
                    break;
                }
                case 2:
                {
                    if ( temp < m_Post.MaxRange )
                        temp += 1;
                    else
                        sender.Mobile.SendMessage( "You cant raise this value any further." );
                    m_Post.HomeRange = temp;
                    sender.Mobile.CloseGump( typeof( HitchGump ) );
                    sender.Mobile.SendGump( new HitchGump( m_Post ) );
                    break;
                }
                case 3:
                {
                    if ( temp > 5 )
                        temp = 5;
                    if ( temp < 0 )
                        temp = 0;

                    m_Post.HomeRange = temp;
                    m_Post.Controlled.RangeHome = m_Post.HomeRange;
                    sender.Mobile.CloseGump( typeof( HitchGump ) );
                    break;
                }
            }
        }
Esempio n. 8
0
 public override void OnResponse( NetState sender, RelayInfo info )
 {
     switch ( info.ButtonID )
     {
         case 1: // #1 Site's Url
         {
             sender.LaunchBrowser( "http://11.freebb.com/?freebb=legends" );
             break;
         }
         case 2: // #2 Site's url
         {
             sender.LaunchBrowser( "http://www.gamesites200.com/ultimaonline/vote.php?id=4432" );
             break;
         }
         case 3: // #3 Site's url
         {
             sender.LaunchBrowser( "http://11.freebb.com/viewtopic.php?t=26&freebb=legends" );
             break;
         }
     }
 }
Esempio n. 9
0
        public override void OnResponse( NetState state, RelayInfo info )
        {
            Mobile from = state.Mobile;

            switch( info.ButtonID )
            {
                case 0: // Closed or Cancel
                {
                    return;
                }

                default:
                {
                    // Make sure that the OK, button was pressed
                    if( info.ButtonID == 1 )
                    {
                        // Get the array of switches selected
                        ArrayList Selections = new ArrayList( info.Switches );
                        string prefix = Server.Commands.CommandSystem.Prefix;

                        from.Say( "SPAWNING ILSHENAR..." );

                        // Now spawn any selected maps

                        if( Selections.Contains( 101 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen ilshenar/Ancientlair.map", prefix ) );
                        }
                        if( Selections.Contains( 102 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen ilshenar/Ankh.map", prefix ) );
                        }
                        if( Selections.Contains( 103 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen ilshenar/Blood.map", prefix ) );
                        }
                        if( Selections.Contains( 104 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen ilshenar/Exodus.map", prefix ) );
                        }
                        if( Selections.Contains( 105 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen ilshenar/Mushroom.map", prefix ) );
                        }
                        if( Selections.Contains( 106 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen ilshenar/Outdoors.map", prefix ) );
                        }
                        if( Selections.Contains( 107 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen ilshenar/Ratmancave.map", prefix ) );
                        }
                        if( Selections.Contains( 108 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen ilshenar/Rock.map", prefix ) );
                        }
                        if( Selections.Contains( 109 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen ilshenar/Sorcerers.map", prefix ) );
                        }
                        if( Selections.Contains( 110 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen ilshenar/Spectre.map", prefix ) );
                        }
                        if( Selections.Contains( 111 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen ilshenar/Towns.map", prefix ) );
                        }
                        if( Selections.Contains( 112 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen ilshenar/Vendors.map", prefix ) );
                        }
                        if( Selections.Contains( 113 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen ilshenar/Wisp.map", prefix ) );
                        }
                        if( Selections.Contains( 114 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen ilshenar/TwistedWeald.map", prefix ) );
                        }
                    }

                    from.Say( "Spawn generation completed!" );

                    break;
                }
            }
        }
Esempio n. 10
0
        public override void OnResponse(NetState state, RelayInfo info)
        {
            Mobile m = state.Mobile;

            switch (info.ButtonID)
            {
            case 0: { break; }

            case 1:
            {
                if (info.Switches.Length < switches)
                {
                    m.SendGump(new SkillPickGump(m_SkillBallPlus));
                    m.SendMessage(0, "You must pick {0} more skills.", switches - info.Switches.Length);
                    break;
                }
                else if (info.Switches.Length > switches)
                {
                    m.SendGump(new SkillPickGump(m_SkillBallPlus));
                    m.SendMessage(0, "Please get rid of {0} skills, you have exceeded the 7 skills that are allowed.", info.Switches.Length - switches);
                    break;
                }

                else
                {
                    Server.Skills skills = m.Skills;

                    for (int i = 0; i < skills.Length; ++i)
                    {
                        //       skills[i].Base = 0;
                        if (info.IsSwitched(1)) // ------------------------------------------------ Alchemy
                        {
                            m.Skills[SkillName.Alchemy].Base = val;
                            Container pack = m.Backpack;
                            if (pack != null)
                            {
                                pack.DropItem(new Bottle(10));
                                pack.DropItem(new MortarPestle());
                                pack.DropItem(new BagOfReagents(50));
                            }
                        }
                    }
                    if (info.IsSwitched(2))     // ------------------------------------------------ Anatomy
                    {
                        m.Skills[SkillName.Anatomy].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Bandage(50));
                        }
                    }
                    if (info.IsSwitched(3))     // ------------------------------------------------ AnimalLore
                    {
                        m.Skills[SkillName.AnimalLore].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new ShepherdsCrook());
                        }
                    }
                    if (info.IsSwitched(4))     // ------------------------------------------------ AnimalTaming
                    {
                        m.Skills[SkillName.AnimalTaming].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Apple(10));
                        }
                    }
                    if (info.IsSwitched(5))     // ------------------------------------------------ Archery
                    {
                        m.Skills[SkillName.Archery].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Arrow(200));
                            pack.DropItem(new Bow( ));
                        }
                    }
                    if (info.IsSwitched(6)) // ------------------------------------------------ ArmsLore
                    {
                        m.Skills[SkillName.ArmsLore].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new IronIngot(50));
                        }
                    }
                    if (info.IsSwitched(7)) // ------------------------------------------------ Begging
                    {
                        m.Skills[SkillName.Begging].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new BankCheck(5000));
                        }
                    }
                    if (info.IsSwitched(9)) // ------------------------------------------------ Blacksmith
                    {
                        m.Skills[SkillName.Blacksmith].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new IronIngot(50));
                            pack.DropItem(new Tongs());
                            pack.DropItem(new Pickaxe());
                            pack.DropItem(new Pickaxe());
                            pack.DropItem(new Shovel());
                        }
                    }
                    if (info.IsSwitched(11)) // ------------------------------------------------ Camping
                    {
                        m.Skills[SkillName.Camping].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Bedroll());
                            pack.DropItem(new Kindling(20));
                        }
                    }
                    if (info.IsSwitched(13)) // ------------------------------------------------ Carpentry
                    {
                        m.Skills[SkillName.Carpentry].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Saw());
                            pack.DropItem(new Board(100));
                        }
                    }
                    if (info.IsSwitched(14)) // ------------------------------------------------ Cooking
                    {
                        m.Skills[SkillName.Cooking].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Kindling(10));
                            pack.DropItem(new RawLambLeg());
                            pack.DropItem(new RawChickenLeg());
                            pack.DropItem(new RawFishSteak());
                            pack.DropItem(new SackFlour());
                            pack.DropItem(new Pitcher(BeverageType.Water));
                        }
                    }
                    if (info.IsSwitched(15)) // ------------------------------------------------ Fishing
                    {
                        m.Skills[SkillName.Fishing].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new FishingPole());
                            pack.DropItem(new FishingPole());
                            pack.DropItem(new FishingPole());
                            pack.DropItem(new FloppyHat(Utility.RandomYellowHue()));
                        }
                    }
                    if (info.IsSwitched(17)) // ------------------------------------------------ Healing
                    {
                        m.Skills[SkillName.Healing].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Bandage(50));
                            pack.DropItem(new Scissors());
                        }
                    }
                    if (info.IsSwitched(18)) // ------------------------------------------------ Herding
                    {
                        m.Skills[SkillName.Herding].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new ShepherdsCrook());
                        }
                    }
                    if (info.IsSwitched(19)) // ------------------------------------------------ Lockpicking
                    {
                        m.Skills[SkillName.Lockpicking].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Lockpick(20));
                        }
                    }
                    if (info.IsSwitched(20)) // ------------------------------------------------ Lumberjacking
                    {
                        m.Skills[SkillName.Lumberjacking].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Hatchet());
                            pack.DropItem(new FullApron(Utility.RandomYellowHue()));
                        }
                    }
                    if (info.IsSwitched(21)) // ------------------------------------------------ Magery
                    {
                        m.Skills[SkillName.Magery].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Spellbook(UInt64.MaxValue));
                            pack.DropItem(new BagOfReagents(50));
                        }
                    }
                    if (info.IsSwitched(22))     // ------------------------------------------------ Meditation
                    {
                        m.Skills[SkillName.Meditation].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new DecoCrystalBall());
                        }
                    }
                    if (info.IsSwitched(23)) // ------------------------------------------------ Mining
                    {
                        m.Skills[SkillName.Mining].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Pickaxe());
                            pack.DropItem(new Pickaxe());
                            pack.DropItem(new Pickaxe());
                            pack.DropItem(new Shovel());
                            pack.DropItem(new Shovel());
                            pack.DropItem(new Shovel());
                        }
                    }
                    if (info.IsSwitched(24)) // ------------------------------------------------ Musicianship
                    {
                        m.Skills[SkillName.Musicianship].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Lute());
                            pack.DropItem(new LapHarp());
                            pack.DropItem(new TambourineTassel());
                            pack.DropItem(new Drums());
                        }
                    }
                    if (info.IsSwitched(27)) // ------------------------------------------------ RemoveTrap
                    {
                        m.Skills[SkillName.RemoveTrap].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new GreaterHealPotion(3));
                        }
                    }
                    if (info.IsSwitched(28)) // ------------------------------------------------ MagicResist
                    {
                        m.Skills[SkillName.MagicResist].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new FireballWand());
                            pack.DropItem(new LightningWand());
                            pack.DropItem(new MagicArrowWand());
                        }
                    }
                    if (info.IsSwitched(29)) // ------------------------------------------------ Snooping
                    {
                        m.Skills[SkillName.Snooping].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new BankCheck(5000));
                        }
                    }
                    if (info.IsSwitched(31)) // ------------------------------------------------ Stealing
                    {
                        m.Skills[SkillName.Stealing].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new BankCheck(5000));
                        }
                    }
                    if (info.IsSwitched(32)) // ------------------------------------------------ Stealth
                    {
                        m.Skills[SkillName.Stealth].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new BurglarsBandana());
                        }
                    }
                    if (info.IsSwitched(33)) // ------------------------------------------------ Tailoring
                    {
                        m.Skills[SkillName.Tailoring].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new BoltOfCloth( ));
                            pack.DropItem(new Cloth(100));
                            pack.DropItem(new SewingKit( ));
                            pack.DropItem(new SewingKit( ));
                            pack.DropItem(new SewingKit( ));
                        }
                    }
                    if (info.IsSwitched(34)) // ------------------------------------------------ Tinkering
                    {
                        m.Skills[SkillName.Tinkering].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new TinkerTools());
                            pack.DropItem(new IronIngot(20));
                        }
                    }
                    if (info.IsSwitched(35)) // ------------------------------------------------ Veterinary
                    {
                        m.Skills[SkillName.Veterinary].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Bandage(50));
                        }
                    }
                    if (info.IsSwitched(36)) // ------------------------------------------------ Fencing
                    {
                        m.Skills[SkillName.Fencing].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Kryss());
                        }
                    }
                    if (info.IsSwitched(37)) // ------------------------------------------------ Macing
                    {
                        m.Skills[SkillName.Macing].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Mace());
                        }
                    }
                    if (info.IsSwitched(38)) // ------------------------------------------------ Parry
                    {
                        m.Skills[SkillName.Parry].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new MetalKiteShield());
                        }
                    }
                    if (info.IsSwitched(39)) // ------------------------------------------------ Swords
                    {
                        m.Skills[SkillName.Swords].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Longsword());
                        }
                    }
                    if (info.IsSwitched(40)) // ------------------------------------------------ Tactics
                    {
                        m.Skills[SkillName.Tactics].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Gold(500));
                        }
                    }
                    if (info.IsSwitched(41)) // ------------------------------------------------ Wrestling
                    {
                        m.Skills[SkillName.Wrestling].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new LeatherGloves());
                        }
                    }
                    if (info.IsSwitched(42)) // ------------------------------------------------ Cartography
                    {
                        m.Skills[SkillName.Cartography].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new BlankMap());
                            pack.DropItem(new BlankMap());
                            pack.DropItem(new BlankMap());
                            pack.DropItem(new BlankMap());
                            pack.DropItem(new Sextant());
                        }
                    }
                    if (info.IsSwitched(43)) // ------------------------------------------------ DetectHidden
                    {
                        m.Skills[SkillName.DetectHidden].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Cloak(0x455));
                        }
                    }
                    if (info.IsSwitched(44)) // ------------------------------------------------ Inscribe
                    {
                        m.Skills[SkillName.Inscribe].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new BlankScroll(10));
                            pack.DropItem(new BlueBook( ));
                        }
                    }
                    if (info.IsSwitched(45)) // ------------------------------------------------ Peacemaking
                    {
                        m.Skills[SkillName.Peacemaking].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Tambourine());
                        }
                    }
                    if (info.IsSwitched(46)) // ------------------------------------------------ Poisoning
                    {
                        m.Skills[SkillName.Poisoning].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new LesserPoisonPotion());
                            pack.DropItem(new LesserPoisonPotion());
                            pack.DropItem(new LesserPoisonPotion());
                        }
                    }
                    if (info.IsSwitched(47)) // ------------------------------------------------ Provocation
                    {
                        m.Skills[SkillName.Provocation].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new BambooFlute());
                        }
                    }
                    if (info.IsSwitched(48)) // ------------------------------------------------ SpiritSpeak
                    {
                        m.Skills[SkillName.SpiritSpeak].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new BagOfNecroReagents(50));
                        }
                    }
                    if (info.IsSwitched(49)) // ------------------------------------------------ Tracking
                    {
                        m.Skills[SkillName.Tracking].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new BearMask(0x1545));
                        }
                    }
                    if (info.IsSwitched(50)) // ------------------------------------------------ EvalInt
                    {
                        m.Skills[SkillName.EvalInt].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new BagOfReagents(50));
                        }
                    }
                    if (info.IsSwitched(51)) // ------------------------------------------------ Forensics
                    {
                        m.Skills[SkillName.Forensics].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new SkinningKnife(0xEC4));
                        }
                    }
                    if (info.IsSwitched(52)) // ------------------------------------------------ ItemID
                    {
                        m.Skills[SkillName.ItemID].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new IDWand(25));
                        }
                    }
                    if (info.IsSwitched(53)) // ------------------------------------------------ TasteID
                    {
                        m.Skills[SkillName.TasteID].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new GreaterHealPotion(1));
                            pack.DropItem(new GreaterAgilityPotion(1));
                            pack.DropItem(new GreaterStrengthPotion(1));
                        }
                    }
                    if (info.IsSwitched(55)) // ------------------------------------------------ Hiding
                    //           {
                    //           m.Skills[SkillName.Hiding].Base = val;
                    //                       Container pack = m.Backpack;
                    //               if (pack != null)
                    //               {
                    //                   pack.DropItem( new BagOfSmokeBombs(20) );
                    //               }
                    //           }
                    {
                        if (info.IsSwitched(56)) // ------------------------------------------------ Fletching
                        {
                            m.Skills[SkillName.Fletching].Base = val;
                            Container pack = m.Backpack;
                            if (pack != null)
                            {
                                pack.DropItem(new FletcherTools(0x1022));
                                pack.DropItem(new Shaft(50));
                                pack.DropItem(new Feather(50));
                            }
                        }
                    }
                    if (info.IsSwitched(57)) // ------------------------------------------------ Focus
                    {
                        m.Skills[SkillName.Focus].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Chessboard(0xFA6));
                        }
                    }
                    if (info.IsSwitched(58)) // ------------------------------------------------ Throwing
                    {
                        m.Skills[SkillName.Throwing].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new ThrowingDagger());
                        }
                    }
                    if (info.IsSwitched(59))     // ------------------------------------------------ Bushido
                    {
                        m.Skills[SkillName.Bushido].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new BookOfBushido());
                        }
                    }
                    if (info.IsSwitched(60))     // ------------------------------------------------ Chivalry
                    {
                        m.Skills[SkillName.Chivalry].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new BookOfChivalry((UInt64)0x3FF));
                        }
                    }
                    if (info.IsSwitched(61)) // ------------------------------------------------ Imbuing
                    {
                        m.Skills[SkillName.Imbuing].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new RunicHammer(CraftResource.Valorite));
                        }
                    }
                    if (info.IsSwitched(62)) // ------------------------------------------------ Mysticism
                    {
                        m.Skills[SkillName.Mysticism].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Bone(50));
                            pack.DropItem(new DaemonBone(50));
                            pack.DropItem(new FertileDirt(50));
                        }
                    }
                    if (info.IsSwitched(63)) // ------------------------------------------------ Necromancy
                    {
                        m.Skills[SkillName.Necromancy].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new NecromancerSpellbook((UInt64)0xFFFF));
                            pack.DropItem(new BagOfNecroReagents(50));
                        }
                    }
                    if (info.IsSwitched(64))     // ------------------------------------------------ Ninjitsu
                    {
                        m.Skills[SkillName.Ninjitsu].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new BookOfNinjitsu());
                        }
                    }

                    if (info.IsSwitched(65)) // ------------------------------------------------ Spellweaving
                    {
                        m.Skills[SkillName.Spellweaving].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            new SpellweavingBook((Int64)0xFFFF);
                        }
                    }
                    if (info.IsSwitched(66)) // ------------------------------------------------ Discordance
                    {
                        m.Skills[SkillName.Discordance].Base = val;
                        Container pack = m.Backpack;
                        if (pack != null)
                        {
                            pack.DropItem(new Harp());
                        }
                    }

                    m_SkillBallPlus.Delete();
                }

                break;
            }
            }
        }
Esempio n. 11
0
        public override void OnResponse( NetState state, RelayInfo info )
        {
            Mobile from = state.Mobile;

            if ( m_Stone.Deleted )
                return;

            switch ( info.ButtonID )
            {
                case 0:
                {
                    from.SendMessage( "You decide not to edit the stone." );
                    break;
                }
                case 1:
                {
                    string item1 = "";
                    string gname1 = "";
                    int price1 = 0;
                    string item2 = "";
                    string gname2 = "";
                    int price2 = 0;
                    string item3 = "";
                    string gname3 = "";
                    int price3 = 0;
                    string item4 = "";
                    string gname4 = "";
                    int price4 = 0;
                    string item5 = "";
                    string gname5 = "";
                    int price5 = 0;
                    string item6 = "";
                    string gname6 = "";
                    int price6 = 0;
                    string item7 = "";
                    string gname7 = "";
                    int price7 = 0;
                    string item8 = "";
                    string gname8 = "";
                    int price8 = 0;
                    string item9 = "";
                    string gname9 = "";
                    int price9 = 0;
                    string item10 = "";
                    string gname10 = "";
                    int price10 = 0;
                    string item11 = "";
                    string gname11 = "";
                    int price11 = 0;
                    string item12 = "";
                    string gname12 = "";
                    int price12 = 0;
                    string item13 = "";
                    string gname13 = "";
                    int price13 = 0;
                    string item14 = "";
                    string gname14 = "";
                    int price14 = 0;
                    string item15 = "";
                    string gname15 = "";
                    int price15 = 0;
                    string item16 = "";
                    string gname16 = "";
                    int price16 = 0;
                    string item17 = "";
                    string gname17 = "";
                    int price17 = 0;
                    string item18 = "";
                    string gname18 = "";
                    int price18 = 0;
                    string item19 = "";
                    string gname19 = "";
                    int price19 = 0;
                    string item20 = "";
                    string gname20 = "";
                    int price20 = 0;
                    string item21 = "";
                    string gname21 = "";
                    int price21 = 0;
                    string item22 = "";
                    string gname22 = "";
                    int price22 = 0;
                    string item23 = "";
                    string gname23 = "";
                    int price23 = 0;
                    string item24 = "";
                    string gname24 = "";
                    int price24 = 0;
                    string item25 = "";
                    string gname25 = "";
                    int price25 = 0;
                    string item26 = "";
                    string gname26 = "";
                    int price26 = 0;
                    string item27 = "";
                    string gname27 = "";
                    int price27 = 0;
                    string item28 = "";
                    string gname28 = "";
                    int price28 = 0;
                    string item29 = "";
                    string gname29 = "";
                    int price29 = 0;
                    string item30 = "";
                    string gname30 = "";
                    int price30 = 0;
                    string item31 = "";
                    string gname31 = "";
                    int price31 = 0;
                    string item32 = "";
                    string gname32 = "";
                    int price32 = 0;
                    string item33 = "";
                    string gname33 = "";
                    int price33 = 0;
                    string item34 = "";
                    string gname34 = "";
                    int price34 = 0;
                    string item35 = "";
                    string gname35 = "";
                    int price35 = 0;
                    string item36 = "";
                    string gname36 = "";
                    int price36 = 0;
                    string item37 = "";
                    string gname37 = "";
                    int price37 = 0;
                    string item38 = "";
                    string gname38 = "";
                    int price38 = 0;
                    string item39 = "";
                    string gname39 = "";
                    int price39 = 0;
                    string item40 = "";
                    string gname40 = "";
                    int price40 = 0;

                    string stonename = "";
                    int huedprice = 0;
                    int blessedprice = 0;
                    int bondedprice = 0;

                    string[] tr = new string[ 124 ];

                    foreach( TextRelay t in info.TextEntries )
                    {
                        tr[ t.EntryID ] = t.Text;
                    }
                    try { price1 = (int) uint.Parse( tr[ 2 ] ); }
                    catch {}
                    try { price2 = (int) uint.Parse( tr[ 5 ] ); }
                    catch {}
                    try { price3 = (int) uint.Parse( tr[ 8 ] ); }
                    catch {}
                    try { price4 = (int) uint.Parse( tr[ 11 ] ); }
                    catch {}
                    try { price5 = (int) uint.Parse( tr[ 14 ] ); }
                    catch {}
                    try { price6 = (int) uint.Parse( tr[ 17 ] ); }
                    catch {}
                    try { price7 = (int) uint.Parse( tr[ 20 ] ); }
                    catch {}
                    try { price8 = (int) uint.Parse( tr[ 23 ] ); }
                    catch {}
                    try { price9 = (int) uint.Parse( tr[ 26 ] ); }
                    catch {}
                    try { price10 = (int) uint.Parse( tr[ 29 ] ); }
                    catch {}
                    try { price11 = (int) uint.Parse( tr[ 32 ] ); }
                    catch {}
                    try { price12 = (int) uint.Parse( tr[ 35 ] ); }
                    catch {}
                    try { price13 = (int) uint.Parse( tr[ 38 ] ); }
                    catch {}
                    try { price14 = (int) uint.Parse( tr[ 41 ] ); }
                    catch {}
                    try { price15 = (int) uint.Parse( tr[ 44 ] ); }
                    catch {}
                    try { price16 = (int) uint.Parse( tr[ 47 ] ); }
                    catch {}
                    try { price17 = (int) uint.Parse( tr[ 50 ] ); }
                    catch {}
                    try { price18 = (int) uint.Parse( tr[ 53 ] ); }
                    catch {}
                    try { price19 = (int) uint.Parse( tr[ 56 ] ); }
                    catch {}
                    try { price20 = (int) uint.Parse( tr[ 59 ] ); }
                    catch {}
                    try { price21 = (int) uint.Parse( tr[ 62 ] ); }
                    catch {}
                    try { price22 = (int) uint.Parse( tr[ 65 ] ); }
                    catch {}
                    try { price23 = (int) uint.Parse( tr[ 68 ] ); }
                    catch {}
                    try { price24 = (int) uint.Parse( tr[ 71 ] ); }
                    catch {}
                    try { price25 = (int) uint.Parse( tr[ 74 ] ); }
                    catch {}
                    try { price26 = (int) uint.Parse( tr[ 77 ] ); }
                    catch {}
                    try { price27 = (int) uint.Parse( tr[ 80 ] ); }
                    catch {}
                    try { price28 = (int) uint.Parse( tr[ 83 ] ); }
                    catch {}
                    try { price29 = (int) uint.Parse( tr[ 86 ] ); }
                    catch {}
                    try { price30 = (int) uint.Parse( tr[ 89 ] ); }
                    catch {}
                    try { price31 = (int) uint.Parse( tr[ 92 ] ); }
                    catch {}
                    try { price32 = (int) uint.Parse( tr[ 95 ] ); }
                    catch {}
                    try { price33 = (int) uint.Parse( tr[ 98] ); }
                    catch {}
                    try { price34 = (int) uint.Parse( tr[ 101 ] ); }
                    catch {}
                    try { price35 = (int) uint.Parse( tr[ 104 ] ); }
                    catch {}
                    try { price36 = (int) uint.Parse( tr[ 107 ] ); }
                    catch {}
                    try { price37 = (int) uint.Parse( tr[ 110 ] ); }
                    catch {}
                    try { price38 = (int) uint.Parse( tr[ 113 ] ); }
                    catch {}
                    try { price39 = (int) uint.Parse( tr[ 116 ] ); }
                    catch {}
                    try { price40 = (int) uint.Parse( tr[ 119 ] ); }
                    catch {}
                    try { huedprice = (int) uint.Parse( tr[ 120 ] ); }
                    catch {}
                    try { blessedprice = (int) uint.Parse( tr[ 121 ] ); }
                    catch {}
                    try { bondedprice = (int) uint.Parse( tr[ 122 ] ); }
                    catch {}

                    if ( tr[ 0 ] != null )
                    {
                        item1 = tr[ 0 ];
                    }
                    if ( tr[ 1 ] != null )
                    {
                        gname1 = tr[ 1 ];
                    }
                    if ( tr[ 3 ] != null )
                    {
                        item2 = tr[ 3 ];
                    }
                    if ( tr[ 4 ] != null )
                    {
                        gname2 = tr[ 4 ];
                    }
                    if ( tr[ 6 ] != null )
                    {
                        item3 = tr[ 6 ];
                    }
                    if ( tr[ 7 ] != null )
                    {
                        gname3 = tr[ 7 ];
                    }
                    if ( tr[ 9 ] != null )
                    {
                        item4 = tr[ 9 ];
                    }
                    if ( tr[ 10 ] != null )
                    {
                        gname4 = tr[ 10 ];
                    }
                    if ( tr[ 12 ] != null )
                    {
                        item5 = tr[ 12 ];
                    }
                    if ( tr[ 13 ] != null )
                    {
                        gname5 = tr[ 13 ];
                    }
                    if ( tr[ 15 ] != null )
                    {
                        item6 = tr[ 15 ];
                    }
                    if ( tr[ 16 ] != null )
                    {
                        gname6 = tr[ 16 ];
                    }
                    if ( tr[ 18 ] != null )
                    {
                        item7 = tr[ 18 ];
                    }
                    if ( tr[ 19 ] != null )
                    {
                        gname7 = tr[ 19 ];
                    }
                    if ( tr[ 21 ] != null )
                    {
                        item8 = tr[ 21 ];
                    }
                    if ( tr[ 22 ] != null )
                    {
                        gname8 = tr[ 22 ];
                    }
                    if ( tr[ 24 ] != null )
                    {
                        item9 = tr[ 24 ];
                    }
                    if ( tr[ 25 ] != null )
                    {
                        gname9 = tr[ 25 ];
                    }
                    if ( tr[ 27 ] != null )
                    {
                        item10 = tr[ 27 ];
                    }
                    if ( tr[ 28 ] != null )
                    {
                        gname10 = tr[ 28 ];
                    }
                    if ( tr[ 30 ] != null )
                    {
                        item11 = tr[ 30 ];
                    }
                    if ( tr[ 31 ] != null )
                    {
                        gname11 = tr[ 31 ];
                    }
                    if ( tr[ 33 ] != null )
                    {
                        item12 = tr[ 33 ];
                    }
                    if ( tr[ 34 ] != null )
                    {
                        gname12 = tr[ 34 ];
                    }
                    if ( tr[ 36 ] != null )
                    {
                        item13 = tr[ 36 ];
                    }
                    if ( tr[ 37 ] != null )
                    {
                        gname13 = tr[ 37 ];
                    }
                    if ( tr[ 39 ] != null )
                    {
                        item14 = tr[ 39 ];
                    }
                    if ( tr[ 40 ] != null )
                    {
                        gname14 = tr[ 40 ];
                    }
                    if ( tr[ 42 ] != null )
                    {
                        item15 = tr[ 42 ];
                    }
                    if ( tr[ 43 ] != null )
                    {
                        gname15 = tr[ 43 ];
                    }
                    if ( tr[ 45 ] != null )
                    {
                        item16 = tr[ 45 ];
                    }
                    if ( tr[ 46 ] != null )
                    {
                        gname16 = tr[ 46 ];
                    }
                    if ( tr[ 48 ] != null )
                    {
                        item17 = tr[ 48 ];
                    }
                    if ( tr[ 49 ] != null )
                    {
                        gname17 = tr[ 49 ];
                    }
                    if ( tr[ 51 ] != null )
                    {
                        item18 = tr[ 51 ];
                    }
                    if ( tr[ 52 ] != null )
                    {
                        gname18 = tr[ 52 ];
                    }
                    if ( tr[ 54 ] != null )
                    {
                        item19 = tr[ 54 ];
                    }
                    if ( tr[ 55 ] != null )
                    {
                        gname19 = tr[ 55 ];
                    }
                    if ( tr[ 57 ] != null )
                    {
                        item20 = tr[ 57 ];
                    }
                    if ( tr[ 58 ] != null )
                    {
                        gname20 = tr[ 58 ];
                    }
                    if ( tr[ 60 ] != null )
                    {
                        item21 = tr[ 60 ];
                    }
                    if ( tr[ 61 ] != null )
                    {
                        gname21 = tr[ 61 ];
                    }
                    if ( tr[ 63 ] != null )
                    {
                        item22 = tr[ 63 ];
                    }
                    if ( tr[ 64 ] != null )
                    {
                        gname22 = tr[ 64 ];
                    }
                    if ( tr[ 66 ] != null )
                    {
                        item23 = tr[ 66 ];
                    }
                    if ( tr[ 67 ] != null )
                    {
                        gname23 = tr[ 67 ];
                    }
                    if ( tr[ 69 ] != null )
                    {
                        item24 = tr[ 69 ];
                    }
                    if ( tr[ 70 ] != null )
                    {
                        gname24 = tr[ 70 ];
                    }
                    if ( tr[ 72 ] != null )
                    {
                        item25 = tr[ 72 ];
                    }
                    if ( tr[ 73 ] != null )
                    {
                        gname25 = tr[ 73 ];
                    }
                    if ( tr[ 75 ] != null )
                    {
                        item26 = tr[ 75 ];
                    }
                    if ( tr[ 76 ] != null )
                    {
                        gname26 = tr[ 76 ];
                    }
                    if ( tr[ 78 ] != null )
                    {
                        item27 = tr[ 78 ];
                    }
                    if ( tr[ 79 ] != null )
                    {
                        gname27 = tr[ 79 ];
                    }
                    if ( tr[ 81 ] != null )
                    {
                        item28 = tr[ 81 ];
                    }
                    if ( tr[ 82 ] != null )
                    {
                        gname28 = tr[ 82 ];
                    }
                    if ( tr[ 84 ] != null )
                    {
                        item29 = tr[ 84 ];
                    }
                    if ( tr[ 85 ] != null )
                    {
                        gname29 = tr[ 85 ];
                    }
                    if ( tr[ 87 ] != null )
                    {
                        item30 = tr[ 87 ];
                    }
                    if ( tr[ 88 ] != null )
                    {
                        gname30 = tr[ 88 ];
                    }
                    if ( tr[ 90 ] != null )
                    {
                        item31 = tr[ 90 ];
                    }
                    if ( tr[ 91 ] != null )
                    {
                        gname31 = tr[ 91 ];
                    }
                    if ( tr[ 93 ] != null )
                    {
                        item32 = tr[ 93 ];
                    }
                    if ( tr[ 94 ] != null )
                    {
                        gname32 = tr[ 94 ];
                    }
                    if ( tr[ 96 ] != null )
                    {
                        item33 = tr[ 96 ];
                    }
                    if ( tr[ 97 ] != null )
                    {
                        gname33 = tr[ 97 ];
                    }
                    if ( tr[ 99 ] != null )
                    {
                        item34 = tr[ 99 ];
                    }
                    if ( tr[ 100 ] != null )
                    {
                        gname34 = tr[ 100 ];
                    }
                    if ( tr[ 102 ] != null )
                    {
                        item35 = tr[ 102 ];
                    }
                    if ( tr[ 103 ] != null )
                    {
                        gname35 = tr[ 103 ];
                    }
                    if ( tr[ 105 ] != null )
                    {
                        item36 = tr[ 105 ];
                    }
                    if ( tr[ 106 ] != null )
                    {
                        gname36 = tr[ 106 ];
                    }
                    if ( tr[ 108 ] != null )
                    {
                        item37 = tr[ 108 ];
                    }
                    if ( tr[ 109 ] != null )
                    {
                        gname37 = tr[ 109 ];
                    }
                    if ( tr[ 111 ] != null )
                    {
                        item38 = tr[ 111 ];
                    }
                    if ( tr[ 112 ] != null )
                    {
                        gname38 = tr[ 112 ];
                    }
                    if ( tr[ 114 ] != null )
                    {
                        item39 = tr[ 114 ];
                    }
                    if ( tr[ 115 ] != null )
                    {
                        gname39 = tr[ 115 ];
                    }
                    if ( tr[ 117 ] != null )
                    {
                        item40 = tr[ 117 ];
                    }
                    if ( tr[ 118 ] != null )
                    {
                        gname40 = tr[ 118 ];
                    }
                    if ( tr[ 123 ] != null )
                    {
                        stonename = tr[ 123 ];
                    }

                        m_Stone.Item1 = item1;
                        m_Stone.GumpName1 = gname1;
                        m_Stone.Price1 = price1;
                        m_Stone.Item2 = item2;
                        m_Stone.GumpName2 = gname2;
                        m_Stone.Price2 = price2;
                        m_Stone.Item3 = item3;
                        m_Stone.GumpName3 = gname3;
                        m_Stone.Price3 = price3;
                        m_Stone.Item4 = item4;
                        m_Stone.GumpName4 = gname4;
                        m_Stone.Price4 = price4;
                        m_Stone.Item5 = item5;
                        m_Stone.GumpName5 = gname5;
                        m_Stone.Price5 = price5;
                        m_Stone.Item6 = item6;
                        m_Stone.GumpName6 = gname6;
                        m_Stone.Price6 = price6;
                        m_Stone.Item7 = item7;
                        m_Stone.GumpName7 = gname7;
                        m_Stone.Price7 = price7;
                        m_Stone.Item8 = item8;
                        m_Stone.GumpName8 = gname8;
                        m_Stone.Price8 = price8;
                        m_Stone.Item9 = item9;
                        m_Stone.GumpName9 = gname9;
                        m_Stone.Price9 = price9;
                        m_Stone.Item10 = item10;
                        m_Stone.GumpName10 = gname10;
                        m_Stone.Price10 = price10;
                        m_Stone.Item11 = item11;
                        m_Stone.GumpName11 = gname11;
                        m_Stone.Price11 = price11;
                        m_Stone.Item12 = item12;
                        m_Stone.GumpName12 = gname12;
                        m_Stone.Price12 = price12;
                        m_Stone.Item13 = item13;
                        m_Stone.GumpName13 = gname13;
                        m_Stone.Price13 = price13;
                        m_Stone.Item14 = item14;
                        m_Stone.GumpName14 = gname14;
                        m_Stone.Price14 = price14;
                        m_Stone.Item15 = item15;
                        m_Stone.GumpName15 = gname15;
                        m_Stone.Price15 = price15;
                        m_Stone.Item16 = item16;
                        m_Stone.GumpName16 = gname16;
                        m_Stone.Price16 = price16;
                        m_Stone.Item17 = item17;
                        m_Stone.GumpName17 = gname17;
                        m_Stone.Price17 = price17;
                        m_Stone.Item18 = item18;
                        m_Stone.GumpName18 = gname18;
                        m_Stone.Price18 = price18;
                        m_Stone.Item19 = item19;
                        m_Stone.GumpName19 = gname19;
                        m_Stone.Price19 = price19;
                        m_Stone.Item20 = item20;
                        m_Stone.GumpName20 = gname20;
                        m_Stone.Price20 = price20;
                        m_Stone.Item21 = item21;
                        m_Stone.GumpName21 = gname21;
                        m_Stone.Price21 = price21;
                        m_Stone.Item22 = item22;
                        m_Stone.GumpName22 = gname22;
                        m_Stone.Price22 = price22;
                        m_Stone.Item23 = item23;
                        m_Stone.GumpName23 = gname23;
                        m_Stone.Price23 = price23;
                        m_Stone.Item24 = item24;
                        m_Stone.GumpName24 = gname24;
                        m_Stone.Price24 = price24;
                        m_Stone.Item25 = item25;
                        m_Stone.GumpName25 = gname25;
                        m_Stone.Price25 = price25;
                        m_Stone.Item26 = item26;
                        m_Stone.GumpName26 = gname26;
                        m_Stone.Price26 = price26;
                        m_Stone.Item27 = item27;
                        m_Stone.GumpName27 = gname27;
                        m_Stone.Price27 = price27;
                        m_Stone.Item28 = item28;
                        m_Stone.GumpName28 = gname28;
                        m_Stone.Price28 = price28;
                        m_Stone.Item29 = item29;
                        m_Stone.GumpName29 = gname29;
                        m_Stone.Price29 = price29;
                        m_Stone.Item30 = item30;
                        m_Stone.GumpName30 = gname30;
                        m_Stone.Price30 = price30;
                        m_Stone.Item31 = item31;
                        m_Stone.GumpName31 = gname31;
                        m_Stone.Price31 = price31;
                        m_Stone.Item32 = item32;
                        m_Stone.GumpName32 = gname32;
                        m_Stone.Price32 = price32;
                        m_Stone.Item33 = item33;
                        m_Stone.GumpName33 = gname33;
                        m_Stone.Price33 = price33;
                        m_Stone.Item34 = item34;
                        m_Stone.GumpName34 = gname34;
                        m_Stone.Price34 = price34;
                        m_Stone.Item35 = item35;
                        m_Stone.GumpName35 = gname35;
                        m_Stone.Price35 = price35;
                        m_Stone.Item36 = item36;
                        m_Stone.GumpName36 = gname36;
                        m_Stone.Price36 = price36;
                        m_Stone.Item37 = item37;
                        m_Stone.GumpName37 = gname37;
                        m_Stone.Price37 = price37;
                        m_Stone.Item38 = item38;
                        m_Stone.GumpName38 = gname38;
                        m_Stone.Price38 = price38;
                        m_Stone.Item39 = item39;
                        m_Stone.GumpName39 = gname39;
                        m_Stone.Price39 = price39;
                        m_Stone.Item40 = item40;
                        m_Stone.GumpName40 = gname40;
                        m_Stone.Price40 = price40;

                    m_Stone.Name = stonename;
                    m_Stone.HuedPrice = huedprice;
                    m_Stone.BlessedPrice = blessedprice;
                    m_Stone.BondedPrice = bondedprice;

                    from.SendMessage( "Your changes have been submitted." );
                    break;
                }
            }
        }
        public override void OnResponse( NetState sender, RelayInfo info )
        {
            Mobile from  = sender.Mobile;

            if ( info.ButtonID >= 1 )
            {
                BaseAddon addon = new VinyardGroundAddon( info.ButtonID-1, m_Width, m_Height );

                Server.Spells.SpellHelper.GetSurfaceTop( ref m_P3D );

                ArrayList houses = null;

                AddonFitResult res = addon.CouldFit( m_P3D, m_Map, from, ref houses );

                if ( res == AddonFitResult.Valid )
                    addon.MoveToWorld( new Point3D( m_P3D ), m_Map );
                else if ( res == AddonFitResult.Blocked )
                    from.SendLocalizedMessage( 500269 ); // You cannot build that there.
                else if ( res == AddonFitResult.NotInHouse )
                    from.SendLocalizedMessage( 500274 ); // You can only place this in a house that you own!
                else if ( res == AddonFitResult.DoorsNotClosed )
                    from.SendMessage( "You must close all house doors before placing this." );

                if ( res == AddonFitResult.Valid )
                {
                    m_Deed.Delete();

                    if ( houses != null )
                    {
                        foreach ( Server.Multis.BaseHouse h in houses )
                            h.Addons.Add( addon );

                        from.SendGump( new VinyardGroundPlacedGump( m_Deed ) );
                    }
                }
                else
                {
                    addon.Delete();
                }
            }
        }
Esempio n. 13
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            if (m_FacialHair && (m_From.Female || m_From.Body.IsFemale))
            {
                return;
            }

            if (m_From.Race == Race.Elf)
            {
                m_From.SendMessage("This isn't implemented for elves yet.  Sorry!");
                return;
            }

            if (info.ButtonID == 1)
            {
                var switches = info.Switches;

                if (switches.Length > 0)
                {
                    int index = switches[0];

                    if (index >= 0 && index < m_Entries.Length)
                    {
                        ChangeHairstyleEntry entry = m_Entries[index];

                        if (m_From is PlayerMobile)
                        {
                            ((PlayerMobile)m_From).SetHairMods(-1, -1);
                        }

                        int hairID       = m_From.HairItemID;
                        int facialHairID = m_From.FacialHairItemID;

                        if (entry.ItemID == 0)
                        {
                            if (m_FacialHair ? (facialHairID == 0) : (hairID == 0))
                            {
                                return;
                            }

                            if (Banker.Withdraw(m_From, m_Price))
                            {
                                if (m_FacialHair)
                                {
                                    m_From.FacialHairItemID = 0;
                                }
                                else
                                {
                                    m_From.HairItemID = 0;
                                }
                            }
                            else
                            {
                                m_Vendor.PrivateOverheadMessage(MessageType.Regular, 0x3B2, 1042293, m_From.NetState);
                                // You cannot afford my services for that style.
                            }
                        }
                        else
                        {
                            if (m_FacialHair)
                            {
                                if (facialHairID > 0 && facialHairID == entry.ItemID)
                                {
                                    return;
                                }
                            }
                            else
                            {
                                if (hairID > 0 && hairID == entry.ItemID)
                                {
                                    return;
                                }
                            }

                            if (Banker.Withdraw(m_From, m_Price))
                            {
                                if (m_FacialHair)
                                {
                                    m_From.FacialHairItemID = entry.ItemID;
                                }
                                else
                                {
                                    m_From.HairItemID = entry.ItemID;
                                }
                            }
                            else
                            {
                                m_Vendor.PrivateOverheadMessage(MessageType.Regular, 0x3B2, 1042293, m_From.NetState);
                                // You cannot afford my services for that style.
                            }
                        }
                    }
                }
                else
                {
                    // You decide not to change your hairstyle.
                    m_Vendor.PrivateOverheadMessage(MessageType.Regular, 0x3B2, 1013009, m_From.NetState);
                }
            }
            else
            {
                // You decide not to change your hairstyle.
                m_Vendor.PrivateOverheadMessage(MessageType.Regular, 0x3B2, 1013009, m_From.NetState);
            }
        }
        public override void OnResponse( NetState state, RelayInfo info )
        {
            Mobile from = state.Mobile;

            if ( m_Stone.Deleted )
                return;

            if ( info.ButtonID == 0 )
            {
                if ( m_Objects.Count > 0 && m_Objects[0] is Item )
                    from.SendMessage( "You decide not to bless this item." );
                else if ( m_Objects.Count > 0 && m_Objects[0] is Mobile )
                    from.SendMessage( "You decide not to bond this pet." );
            }
            if ( info.ButtonID == 1 )
            {
                if ( m_Stone.Currency.ToLower() == "daat99tokens" )
                {
                    Item[] tls = from.Backpack.FindItemsByType( typeof( TokenLedger ) );

                    TokenLedger ledger = null;

                    foreach( TokenLedger tl in tls )
                    {
                        if ( tl.Owner == from.Serial )
                        {
                            if ( ledger != null && tl.Tokens > ledger.Tokens )
                                ledger = tl;
                            else if ( ledger == null )
                                ledger = tl;
                        }
                    }

                    if ( ledger == null )
                    {
                        from.SendMessage( "You do not have a token ledger." );
                        return;
                    }
                    else if ( ledger.Tokens < m_VSI.BBPrice )
                    {
                        from.SendMessage( "Your ledger does not have enouh tokens in it to do this." );
                        return;
                    }

                    ledger.Tokens -= m_VSI.BBPrice;

                    for( int i = 0; i < m_Objects.Count; i++ )
                    {
                        object o = m_Objects[i];

                        if ( o is Item )
                            ((Item)o).LootType = LootType.Blessed;
                        if ( o is Mobile && (Mobile)o is BaseCreature )
                            ((BaseCreature)o).IsBonded = true;
                    }
                }
                else if ( from.Backpack.ConsumeTotal( m_Stone.GetCurrency(), m_VSI.BBPrice, true ) || m_VSI.BBPrice == 0 )
                {
                    for( int i = 0; i < m_Objects.Count; i++ )
                    {
                        object o = m_Objects[i];

                        if ( o is Item )
                            ((Item)o).LootType = LootType.Blessed;
                        if ( o is Mobile && (Mobile)o is BaseCreature )
                            ((BaseCreature)o).IsBonded = true;
                    }
                }
                else if ( from.BankBox.ConsumeTotal( m_Stone.GetCurrency(), m_VSI.BBPrice, true ) )
                {
                    for( int i = 0; i < m_Objects.Count; i++ )
                    {
                        object o = m_Objects[i];

                        if ( o is Item )
                            ((Item)o).LootType = LootType.Blessed;
                        if ( o is Mobile && (Mobile)o is BaseCreature )
                            ((BaseCreature)o).IsBonded = true;
                    }
                }
                else
                    from.SendMessage( "You cannot not afford to do this." );
            }
        }
        public override void OnResponse( NetState state, RelayInfo info )
        {
            Mobile from = state.Mobile;

            if ( m_Stone.Deleted )
                return;

            if ( info.ButtonID == 0 )
            {
                from.SendMessage( "Back." );
                from.SendGump( new VendorGump( new VSShopper( from, m_Stone ), m_Stone ) );
            }
            if ( info.ButtonID == 1 )
            {
                string item = "";
                string gumpname = "";
                int price = 0;
                int amount = 0;
                int bbprice = 0;
                bool blessbond = info.IsSwitched( 1 );
                string description = "";

                string[] tr = new string[ 6 ];
                foreach( TextRelay t in info.TextEntries )
                {
                    tr[ t.EntryID ] = t.Text;
                }

                try { price = (int) uint.Parse( tr[ 2 ] ); }
                catch {}
                try { amount = (int) uint.Parse( tr[ 3 ] ); }
                catch {}
                try { bbprice = (int) uint.Parse( tr[ 4 ] ); }
                catch {}
                if ( tr[ 0 ] != null )
                    item = tr[ 0 ];
                if ( tr[ 0 ] != null )
                    gumpname = tr[ 1 ];
                if ( tr[ 5 ] != null )
                    description = tr[ 5 ];

                m_VSI.Item = item;
                m_VSI.Name = gumpname;
                m_VSI.Price = price;
                m_VSI.Amount = amount;
                m_VSI.BBPrice = bbprice;
                m_VSI.BlessBond = blessbond;
                m_VSI.Description = description;

                from.SendGump( new VendorGump( new VSShopper( from, m_Stone ), m_Stone ) );
            }
            if ( info.ButtonID == 2 )
            {
                if ( m_Stone.ItemList.Contains( m_VSI ) )
                    m_Stone.ItemList.Remove( m_VSI );

                from.SendGump( new VendorGump( new VSShopper( from, m_Stone ), m_Stone ) );
            }
        }
Esempio n. 16
0
        public override void OnResponse(NetState state, RelayInfo info)
        {
            if (info.ButtonID != 0 && PageQueue.List.IndexOf(m_Entry) < 0)
            {
                state.Mobile.SendGump(new PageQueueGump());
                state.Mobile.SendMessage("That page has been removed.");
                return;
            }

            switch (info.ButtonID)
            {
            case 0:     // close
            {
                if (m_Entry.Handler != state.Mobile)
                {
                    var g = new PageQueueGump();

                    g.SendTo(state);
                }

                break;
            }

            case 1:     // go to sender
            {
                var m = state.Mobile;

                if (m_Entry.Sender.Deleted)
                {
                    m.SendMessage("That character no longer exists.");
                }
                else if (m_Entry.Sender.Map == null || m_Entry.Sender.Map == Map.Internal)
                {
                    m.SendMessage("That character is not in the world.");
                }
                else
                {
                    // m_Entry.AddResponse(state.Mobile, "[Go Sender]");
                    m.MoveToWorld(m_Entry.Sender.Location, m_Entry.Sender.Map);

                    m.SendMessage("You have been teleported to that page's sender.");

                    Resend(state);
                }

                break;
            }

            case 2:     // go to handler
            {
                var m = state.Mobile;
                var h = m_Entry.Handler;

                if (h != null)
                {
                    if (h.Deleted)
                    {
                        m.SendMessage("That character no longer exists.");
                    }
                    else if (h.Map == null || h.Map == Map.Internal)
                    {
                        m.SendMessage("That character is not in the world.");
                    }
                    else
                    {
                        // m_Entry.AddResponse(state.Mobile, "[Go Handler]");
                        m.MoveToWorld(h.Location, h.Map);

                        m.SendMessage("You have been teleported to that page's handler.");
                        Resend(state);
                    }
                }
                else
                {
                    m.SendMessage("Nobody is handling that page.");
                    Resend(state);
                }

                break;
            }

            case 3:     // go to page location
            {
                var m = state.Mobile;

                if (m_Entry.PageMap == null || m_Entry.PageMap == Map.Internal)
                {
                    m.SendMessage("That location is not in the world.");
                }
                else
                {
                    // m_Entry.AddResponse(state.Mobile, "[Go PageLoc]");
                    m.MoveToWorld(m_Entry.PageLocation, m_Entry.PageMap);

                    state.Mobile.SendMessage("You have been teleported to the original page location.");

                    Resend(state);
                }

                break;
            }

            case 4:     // handle page
            {
                if (m_Entry.Handler == null)
                {
                    // m_Entry.AddResponse(state.Mobile, "[Handling]");
                    m_Entry.Handler = state.Mobile;

                    state.Mobile.SendMessage("You are now handling the page.");
                }
                else
                {
                    state.Mobile.SendMessage("Someone is already handling that page.");
                }

                Resend(state);

                break;
            }

            case 5:     // delete page
            {
                if (m_Entry.Handler == null)
                {
                    // m_Entry.AddResponse(state.Mobile, "[Deleting]");
                    PageQueue.Remove(m_Entry);

                    state.Mobile.SendMessage("You delete the page.");

                    var g = new PageQueueGump();

                    g.SendTo(state);
                }
                else
                {
                    state.Mobile.SendMessage("Someone is handling that page, it can not be deleted.");

                    Resend(state);
                }

                break;
            }

            case 6:     // abandon page
            {
                if (m_Entry.Handler == state.Mobile)
                {
                    // m_Entry.AddResponse(state.Mobile, "[Abandoning]");
                    state.Mobile.SendMessage("You abandon the page.");

                    m_Entry.Handler = null;
                }
                else
                {
                    state.Mobile.SendMessage("You are not handling that page.");
                }

                Resend(state);

                break;
            }

            case 7:     // page handled
            {
                if (m_Entry.Handler == state.Mobile)
                {
                    // m_Entry.AddResponse(state.Mobile, "[Handled]");
                    PageQueue.Remove(m_Entry);

                    m_Entry.Handler = null;

                    state.Mobile.SendMessage("You mark the page as handled, and remove it from the queue.");

                    var g = new PageQueueGump();

                    g.SendTo(state);
                }
                else
                {
                    state.Mobile.SendMessage("You are not handling that page.");

                    Resend(state);
                }

                break;
            }

            case 8:     // Send message
            {
                var text = info.GetTextEntry(0);

                if (text != null)
                // m_Entry.AddResponse(state.Mobile, "[Response] " + text.Text);
                {
                    m_Entry.Sender.SendGump(new MessageSentGump(m_Entry.Sender, state.Mobile.Name, text.Text));
                }
                // m_Entry.Sender.SendMessage( 0x482, "{0} tells you:", state.Mobile.Name );
                // m_Entry.Sender.SendMessage( 0x482, text.Text );

                Resend(state);

                break;
            }

            case 9:     // predef overview
            {
                Resend(state);
                state.Mobile.SendGump(new PredefGump(state.Mobile, null));

                break;
            }

            case 10:     // View Speech Log
            {
                Resend(state);

                if (m_Entry.SpeechLog != null)
                {
                    state.Mobile.SendGump(new SpeechLogGump(m_Entry.Sender, m_Entry.SpeechLog));
                }

                break;
            }

            default:
            {
                var index   = info.ButtonID - 100;
                var preresp = PredefinedResponse.List;

                if (index >= 0 && index < preresp.Count)
                // m_Entry.AddResponse(state.Mobile, "[PreDef] " + preresp[index].Title);
                {
                    m_Entry.Sender.SendGump(
                        new MessageSentGump(
                            m_Entry.Sender,
                            state.Mobile.Name,
                            preresp[index].Message
                            )
                        );
                }

                Resend(state);

                break;
            }
            }
        }
Esempio n. 17
0
        public override void OnResponse(Server.Network.NetState sender, RelayInfo info)
        {
            Mobile from = sender.Mobile;

            string TypeName = string.Empty;
            int    GiveRule = 0;
            int    Access   = 0;

            foreach (int sw in info.Switches)
            {
                switch (sw)
                {
                case (int)Switches.GiveToCharacter:
                {
                    GiveRule = (int)Switches.GiveToCharacter;
                    break;
                }

                case (int)Switches.GiveToAccount:
                {
                    GiveRule = (int)Switches.GiveToAccount;
                    break;
                }

                case (int)Switches.GiveToAccessLevel:
                {
                    GiveRule = (int)Switches.GiveToAccessLevel;
                    break;
                }

                case (int)Switches.Administrator:
                case (int)Switches.GameMaster:
                case (int)Switches.Seer:
                case (int)Switches.Counselor:
                {
                    Access += sw;
                    break;
                }
                }
            }
            if (GiveRule == 0)
            {
                from.SendMessage("You must select the audience rule to receive the item.");
                from.SendGump(new AddToBankGump(GiveRule, Access, TypeName, m_Amount));
                return;
            }
            else if (GiveRule == (int)Switches.GiveToAccessLevel && Access == 0)
            {
                from.SendMessage("You must select the AccessLevel to receive the item.");
                from.SendGump(new AddToBankGump(GiveRule, Access, TypeName, m_Amount));
                return;
            }

            switch (info.ButtonID)
            {
            case (int)Buttons.GiveByTarget:
            {
                from.Target = new AddToBank.DupeTarget(false, m_Amount, GiveRule, Access);
                from.SendMessage("What do you wish to give out?");
                break;
            }

            case (int)Buttons.GiveByType:
            {
                if (info.TextEntries.Length > 0)
                {
                    TypeName = info.TextEntries[0].Text;
                }

                if (TypeName == string.Empty)
                {
                    from.SendMessage("You must specify a type");
                    from.SendGump(new AddToBankGump(GiveRule, Access, TypeName, m_Amount));
                }
                else
                {
                    Type type = ScriptCompiler.FindTypeByName(TypeName, true);
                    if (type == null)
                    {
                        from.SendMessage("{0} is not a valid type", type);
                        from.SendGump(new AddToBankGump(GiveRule, Access, string.Empty, m_Amount));
                        return;
                    }
                    else
                    {
                        object obj = Activator.CreateInstance(type);
                        if (obj is Item)
                        {
                            AddToBank.GiveItem(from, (Item)obj, m_Amount, GiveRule, Access);
                        }
                        else
                        {
                            from.SendMessage("You may only duplicate items.");
                        }
                    }
                }
                break;
            }

            case (int)Buttons.IncAmount:
            {
                from.SendGump(new AddToBankGump(GiveRule, Access, TypeName, ++m_Amount));
                break;
            }

            case (int)Buttons.DecAmount:
            {
                if (m_Amount > 1)
                {
                    m_Amount -= 1;
                }
                else
                {
                    from.SendMessage("You cannot give less than 1 item.");
                }
                from.SendGump(new AddToBankGump(GiveRule, Access, TypeName, m_Amount));
                break;
            }
            }
        }
Esempio n. 18
0
        public override void OnResponse(Server.Network.NetState sender, RelayInfo info)
        {
            if (info.ButtonID == 2)
            {
                PlayerVendor pv = m_Book.RootParent as PlayerVendor;

                if (m_Book.Entries.Contains(m_Object) && pv != null)
                {
                    int price = 0;

                    VendorItem vi = pv.GetVendorItem(m_Book);

                    if (vi != null && !vi.IsForSale)
                    {
                        if (m_Object is BOBLargeEntry)
                        {
                            price = ((BOBLargeEntry)m_Object).Price;
                        }
                        else if (m_Object is BOBSmallEntry)
                        {
                            price = ((BOBSmallEntry)m_Object).Price;
                        }
                    }

                    if (price != m_Price)
                    {
                        pv.SayTo(m_From, "The price has been been changed. If you like, you may offer to purchase the item again.");
                    }
                    else if (price == 0)
                    {
                        pv.SayTo(m_From, 1062382);                           // The deed selected is not available.
                    }
                    else
                    {
                        Item item = null;

                        if (m_Object is BOBLargeEntry)
                        {
                            item = ((BOBLargeEntry)m_Object).Reconstruct();
                        }
                        else if (m_Object is BOBSmallEntry)
                        {
                            item = ((BOBSmallEntry)m_Object).Reconstruct();
                        }

                        if (item == null)
                        {
                            m_From.SendMessage("Internal error. The bulk order deed could not be reconstructed.");
                        }
                        else
                        {
                            pv.Say(m_From.Name);

                            Container pack = m_From.Backpack;

                            if ((pack == null) || ((pack != null) && (!pack.CheckHold(m_From, item, true, true, 0, item.PileWeight + item.TotalWeight))))
                            {
                                pv.SayTo(m_From, 503204);                                 // You do not have room in your backpack for this
                                m_From.SendGump(new BOBGump(m_From, m_Book, m_Page, null));
                            }
                            else
                            {
                                if ((pack != null && pack.ConsumeTotal(typeof(Gold), price)) || Banker.Withdraw(m_From, price))
                                {
                                    m_Book.Entries.Remove(m_Object);
                                    m_Book.InvalidateProperties();
                                    pv.HoldGold += price;
                                    m_From.AddToBackpack(item);
                                    m_From.SendLocalizedMessage(1045152);                                       // The bulk order deed has been placed in your backpack.

                                    if (m_Book.Entries.Count / 5 < m_Book.ItemCount)
                                    {
                                        m_Book.ItemCount--;
                                        m_Book.InvalidateItems();
                                    }

                                    if (m_Book.Entries.Count > 0)
                                    {
                                        m_From.SendGump(new BOBGump(m_From, m_Book, m_Page, null));
                                    }
                                    else
                                    {
                                        m_From.SendLocalizedMessage(1062381);                                           // The book is empty.
                                    }
                                }
                                else
                                {
                                    pv.SayTo(m_From, 503205);                                       // You cannot afford this item.
                                    item.Delete();
                                }
                            }
                        }
                    }
                }
                else
                {
                    if (pv == null)
                    {
                        m_From.SendLocalizedMessage(1062382);                           // The deed selected is not available.
                    }
                    else
                    {
                        pv.SayTo(m_From, 1062382);                           // The deed selected is not available.
                    }
                }
            }
            else
            {
                m_From.SendLocalizedMessage(503207);                   // Cancelled purchase.
            }
        }
Esempio n. 19
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            if (m_From.AccessLevel < AccessLevel.Administrator)
            {
                return;
            }

            if (m_Response == null)
            {
                var index = info.ButtonID - 1;

                if (index == 0)
                {
                    var resp = new PredefinedResponse("", "");

                    var list = PredefinedResponse.List;
                    list.Add(resp);

                    m_From.SendGump(new PredefGump(m_From, resp));
                }
                else
                {
                    --index;

                    var type = index % 3;
                    index /= 3;

                    var list = PredefinedResponse.List;

                    if (index >= 0 && index < list.Count)
                    {
                        var resp = list[index];

                        switch (type)
                        {
                        case 0:     // edit
                        {
                            m_From.SendGump(new PredefGump(m_From, resp));
                            break;
                        }

                        case 1:     // move up
                        {
                            if (index > 0)
                            {
                                list.RemoveAt(index);
                                list.Insert(index - 1, resp);

                                PredefinedResponse.Save();
                                m_From.SendGump(new PredefGump(m_From, null));
                            }

                            break;
                        }

                        case 2:     // move down
                        {
                            if (index < list.Count - 1)
                            {
                                list.RemoveAt(index);
                                list.Insert(index + 1, resp);

                                PredefinedResponse.Save();
                                m_From.SendGump(new PredefGump(m_From, null));
                            }

                            break;
                        }
                        }
                    }
                }
            }
            else
            {
                var list = PredefinedResponse.List;

                switch (info.ButtonID)
                {
                case 1:
                {
                    list.Remove(m_Response);

                    PredefinedResponse.Save();
                    m_From.SendGump(new PredefGump(m_From, null));
                    break;
                }

                case 2:
                {
                    var te = info.GetTextEntry(0);

                    if (te != null)
                    {
                        m_Response.Title = te.Text;
                    }

                    PredefinedResponse.Save();
                    m_From.SendGump(new PredefGump(m_From, m_Response));

                    break;
                }

                case 3:
                {
                    var te = info.GetTextEntry(1);

                    if (te != null)
                    {
                        m_Response.Message = te.Text;
                    }

                    PredefinedResponse.Save();
                    m_From.SendGump(new PredefGump(m_From, m_Response));

                    break;
                }
                }
            }
        }
Esempio n. 20
0
        public override void OnResponse(Server.Network.NetState sender, RelayInfo info)
        {
            if (!AuctionSystem.Running)
            {
                sender.Mobile.SendMessage(AuctionConfig.MessageHue, AuctionSystem.ST[15]);

                m_Auction.Cancel();

                return;
            }

            bool allowBuyNow = info.Switches.Length > 0;             // Just one switch

            switch (info.ButtonID)
            {
            case 0:                     // Cancel the auction

                m_Auction.Cancel();
                m_User.SendGump(new AuctionGump(m_User));
                break;

            case 1:                     // Commit the auction

                // Collect information
                int    minbid      = 0;               // text 0
                int    reserve     = 0;               // text 1
                int    days        = 0;               // text 2
                string name        = "";              // text 3
                string description = "";              // text 4
                string weblink     = "";              // text 5
                int    buynow      = 0;               // text 6

                // The 3D client sucks

                string[] tr = new string[7];

                foreach (TextRelay t in info.TextEntries)
                {
                    tr[t.EntryID] = t.Text;
                }

                try { minbid = (int)uint.Parse(tr[0], NumberStyles.AllowThousands); }
                catch {}

                try { reserve = (int)uint.Parse(tr[1], NumberStyles.AllowThousands); }
                catch {}

                try { days = (int)uint.Parse(tr[2]); }
                catch {}

                try { buynow = (int)uint.Parse(tr[6], NumberStyles.AllowThousands); }
                catch {}

                if (tr[3] != null)
                {
                    name = tr[3];
                }

                if (tr[4] != null)
                {
                    description = tr[4];
                }

                if (tr[5] != null)
                {
                    weblink = tr[5];
                }

                bool ok = true;

                if (minbid < 1)
                {
                    m_User.SendMessage(AuctionConfig.MessageHue, AuctionSystem.ST[109]);
                    ok = false;
                }

                if (reserve < 1 || reserve < minbid)
                {
                    m_User.SendMessage(AuctionConfig.MessageHue, AuctionSystem.ST[110]);
                    ok = false;
                }

                if (days < AuctionSystem.MinAuctionDays && m_User.AccessLevel < AccessLevel.GameMaster || days < 1)
                {
                    m_User.SendMessage(AuctionConfig.MessageHue, AuctionSystem.ST[111], AuctionSystem.MinAuctionDays);
                    ok = false;
                }

                if (days > AuctionSystem.MaxAuctionDays && m_User.AccessLevel < AccessLevel.GameMaster)
                {
                    m_User.SendMessage(AuctionConfig.MessageHue, AuctionSystem.ST[112], AuctionSystem.MaxAuctionDays);
                    ok = false;
                }

                if (name.Length == 0)
                {
                    m_User.SendMessage(AuctionConfig.MessageHue, AuctionSystem.ST[113]);
                    ok = false;
                }

                if (minbid * AuctionConfig.MaxReserveMultiplier < reserve && m_User.AccessLevel < AccessLevel.GameMaster)
                {
                    m_User.SendMessage(AuctionConfig.MessageHue, AuctionSystem.ST[114]);
                    ok = false;
                }

                if (allowBuyNow && buynow <= reserve)
                {
                    m_User.SendMessage(AuctionConfig.MessageHue, AuctionSystem.ST[209]);
                    ok = false;
                }

                if (ok && AuctionConfig.CostOfAuction > 0.0)
                {
                    int toPay = 0;

                    if (AuctionConfig.CostOfAuction <= 1.0)
                    {
                        toPay = (int)(Math.Max(minbid, reserve) * AuctionConfig.CostOfAuction);
                    }
                    else
                    {
                        toPay = (int)AuctionConfig.CostOfAuction;
                    }

                    if (toPay > 0)
                    {
                        if (Server.Mobiles.Banker.Withdraw(m_User, toPay))
                        {
                            m_User.SendMessage(AuctionConfig.MessageHue, AuctionSystem.ST[228], toPay);
                        }
                        else
                        {
                            m_User.SendMessage(AuctionConfig.MessageHue, AuctionSystem.ST[229], toPay);
                            goto case 0;                                     // Pretty much cancel the auction
                        }
                    }
                }

                m_Auction.MinBid      = minbid;
                m_Auction.Reserve     = reserve;
                m_Auction.ItemName    = name;
                m_Auction.Duration    = TimeSpan.FromDays(days);
                m_Auction.Description = description;
                m_Auction.WebLink     = weblink;
                m_Auction.BuyNow      = allowBuyNow ? buynow : 0;

                if (ok && AuctionSystem.Running)
                {
                    m_Auction.Confirm();
                    m_User.SendGump(new AuctionViewGump(m_User, m_Auction, new AuctionGumpCallback(AuctionCallback)));
                }
                else if (AuctionSystem.Running)
                {
                    m_User.SendGump(new NewAuctionGump(m_User, m_Auction));
                }
                else
                {
                    m_User.SendMessage(AuctionConfig.MessageHue, AuctionSystem.ST[115]);
                }

                break;
            }
        }
Esempio n. 21
0
        public override void OnResponse(Server.Network.NetState sender, RelayInfo info)
        {
            int bp;            //button pushed

            switch (info.ButtonID)
            {
            case 1: bp = 0; break;

            case 2: bp = 1; break;

            case 3: bp = 2; break;

            case 4: bp = 3; break;

            case 5: bp = 4; break;

            case 6: bp = 5; break;

            case 7: bp = 6; break;

            case 8: bp = 7; break;

            case 9: bp = 8; break;

            case 10: bp = 9; break;

            case 11: bp = 10; break;

            case 12: bp = 11; break;

            case 13: bp = 12; break;

            case 14: bp = 13; break;

            case 15: bp = 14; break;

            case 16: bp = 15; break;

            case 17: bp = 16; break;

            case 18: bp = 17; break;

            case 19: bp = 18; break;

            case 20: bp = 19; break;

            case 21: bp = 20; break;

            case 22: bp = 21; break;

            case 23: bp = 22; break;

            case 24: bp = 23; break;

            case 25: bp = 24; break;

            case 26: bp = 25; break;

            case 27: bp = 26; break;

            case 28: bp = 27; break;

            case 29: bp = 28; break;

            case 30: bp = 29; break;

            case 31: bp = 30; break;

            case 32: bp = 31; break;

            case 33: bp = 32; break;

            case 34: bp = 33; break;

            case 35: bp = 34; break;

            case 36: bp = 35; break;

            case 37: bp = 36; break;

            case 38: bp = 37; break;

            case 39: bp = 38; break;

            case 40: bp = 39; break;

            case 41: bp = 40; break;

            case 42: bp = 41; break;

            case 43: bp = 42; break;

            case 44: bp = 43; break;

            case 45: bp = 44; break;

            case 46: bp = 45; break;

            case 47: bp = 46; break;

            case 48: bp = 47; break;

            case 49: bp = 48; break;

            case 50: bp = 49; break;

            default: return;
            }

            ScrollofTranscendence scroll = m_Book.Entries[bp] as ScrollofTranscendence;
            SkillName             sklnm  = scroll.Skill;
            double sklval = scroll.Value;
            ScrollofTranscendence newScroll = new ScrollofTranscendence(sklnm, sklval);

            m_From.AddToBackpack(newScroll);
            m_Book.Entries.RemoveAt(bp);
            m_Book.InvalidateProperties();
        }
Esempio n. 22
0
        public override void OnResponse(NetState state, RelayInfo info)
        {
            if (info.ButtonID == 0) // Cancel
            {
                return;
            }
            else if (this.m_Mobile.Deleted || this.m_Moongate.Deleted || this.m_Mobile.Map == null)
            {
                return;
            }

            int[] switches = info.Switches;

            if (switches.Length == 0)
            {
                return;
            }

            int switchID  = switches[0];
            int listIndex = switchID / 100;
            int listEntry = switchID % 100;

            if (listIndex < 0 || listIndex >= this.m_Lists.Length)
            {
                return;
            }

            PMList list = this.m_Lists[listIndex];

            if (listEntry < 0 || listEntry >= list.Entries.Length)
            {
                return;
            }

            PMEntry entry = list.Entries[listEntry];

            if (!this.m_Mobile.InRange(this.m_Moongate.GetWorldLocation(), 1) || this.m_Mobile.Map != this.m_Moongate.Map)
            {
                this.m_Mobile.SendLocalizedMessage(1019002); // You are too far away to use the gate.
            }
            else if (this.m_Mobile.Player && this.m_Mobile.Kills >= 5 && list.Map != Map.Felucca)
            {
                this.m_Mobile.SendLocalizedMessage(1019004); // You are not allowed to travel there.
            }
            else if (Factions.Sigil.ExistsOn(this.m_Mobile) && list.Map != Factions.Faction.Facet)
            {
                this.m_Mobile.SendLocalizedMessage(1019004); // You are not allowed to travel there.
            }
            else if (this.m_Mobile.Criminal)
            {
                this.m_Mobile.SendLocalizedMessage(1005561, "", 0x22); // Thou'rt a criminal and cannot escape so easily.
            }
            else if (SpellHelper.CheckCombat(this.m_Mobile))
            {
                this.m_Mobile.SendLocalizedMessage(1005564, "", 0x22); // Wouldst thou flee during the heat of battle??
            }
            else if (this.m_Mobile.Spell != null)
            {
                this.m_Mobile.SendLocalizedMessage(1049616); // You are too busy to do that at the moment.
            }
            else if (this.m_Mobile.Map == list.Map && this.m_Mobile.InRange(entry.Location, 1))
            {
                this.m_Mobile.SendLocalizedMessage(1019003); // You are already there.
            }
            else
            {
                BaseCreature.TeleportPets(this.m_Mobile, entry.Location, list.Map);

                this.m_Mobile.Combatant = null;
                this.m_Mobile.Warmode   = false;
                this.m_Mobile.Hidden    = true;

                this.m_Mobile.MoveToWorld(entry.Location, list.Map);

                Effects.PlaySound(entry.Location, list.Map, 0x1FE);
            }
        }
Esempio n. 23
0
        public override void OnResponse( NetState state, RelayInfo info )
        {
            Mobile from = state.Mobile;

            switch( info.ButtonID )
            {
                case 0: // Closed or Cancel
                {
                    return;
                }

                default:
                {
                    // Make sure that the OK, button was pressed
                    if( info.ButtonID == 1 )
                    {
                        // Get the array of switches selected
                        ArrayList Selections = new ArrayList( info.Switches );
                        string prefix = Server.Commands.CommandSystem.Prefix;

                        from.Say( "SPAWNING TOKUNO..." );

                        // Now spawn any selected maps

                        if( Selections.Contains( 101 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen tokuno/FanDancersDojo.map", prefix ) );
                        }
                        if( Selections.Contains( 102 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen tokuno/Outdoors.map", prefix ) );
                        }
                        if( Selections.Contains( 103 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen tokuno/TownsLife.map", prefix ) );
                        }
                        if( Selections.Contains( 104 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen tokuno/Vendors.map", prefix ) );
                        }
                        if( Selections.Contains( 105 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen tokuno/WildLife.map", prefix ) );
                        }
                        if( Selections.Contains( 106 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen tokuno/YomutsoMines.map", prefix ) );
                        }
                    }

                    from.Say( "Spawn generation completed!" );

                    break;
                }
            }
        }
Esempio n. 24
0
        public override void OnResponse(NetState state, RelayInfo info)
        {
            if (info == null || state == null || state.Mobile == null)
            {
                return;
            }

            int radiostate = -1;

            if (info.Switches.Length > 0)
            {
                radiostate = info.Switches[0];
            }

            // read the text entries for the search criteria

            Searchage = 0;

            TextRelay tr = info.GetTextEntry(400);             // displayfrom info

            try
            {
                DisplayFrom = int.Parse(tr.Text);
            }
            catch
            { }

            switch (info.ButtonID)
            {
            case 0:                     // Close
            {
                return;
            }

            case 156:                     // Delete selected items
            {
                Refresh(state);
                int allcount = 0;
                if (m_SearchList != null)
                {
                    allcount = m_SearchList.Count;
                }
                state.Mobile.SendGump(
                    new XmlConfirmDeleteGump(
                        state.Mobile, m_TargetObject, m_SearchList, m_SelectionList, DisplayFrom, SelectAll, allcount));
                return;
            }

            case 201:                     // forward block
            {
                // clear the selections
                if (m_SelectionList != null && !SelectAll)
                {
                    Array.Clear(m_SelectionList, 0, m_SelectionList.Length);
                }
                if (m_SearchList != null && DisplayFrom + MaxEntries < m_SearchList.Count)
                {
                    DisplayFrom += MaxEntries;
                    // clear any selection
                    Selected = -1;
                }
                break;
            }

            case 202:                     // backward block
            {
                // clear the selections
                if (m_SelectionList != null && !SelectAll)
                {
                    Array.Clear(m_SelectionList, 0, m_SelectionList.Length);
                }
                DisplayFrom -= MaxEntries;
                if (DisplayFrom < 0)
                {
                    DisplayFrom = 0;
                }
                // clear any selection
                Selected = -1;
                break;
            }

            case 700:                     // Sort
            {
                // clear any selection
                Selected = -1;
                // clear the selections
                if (m_SelectionList != null && !SelectAll)
                {
                    Array.Clear(m_SelectionList, 0, m_SelectionList.Length);
                }
                Sorttype = false;
                Sortname = false;

                // read the toggle switches that determine the sort
                if (radiostate == 0)                                 // sort by type
                {
                    Sorttype = true;
                }
                if (radiostate == 1)                                 // sort by name
                {
                    Sortname = true;
                }
                SortFindList();
                break;
            }

            case 701:                     // descending sort
            {
                Descendingsort = !Descendingsort;
                break;
            }

            case 9998:                     // refresh the gump
            {
                // clear any selection
                Selected = -1;
                break;
            }

            default:
            {
                if (info.ButtonID >= 3000 && info.ButtonID < 3000 + MaxEntries)
                {
                    Selected = info.ButtonID - 3000;
                    // Show the props window
                    Refresh(state);

                    DoShowProps(info.ButtonID - 3000 + DisplayFrom);
                    return;
                }

                if (info.ButtonID == 3998)
                {
                    SelectAll = !SelectAll;

                    // dont allow individual selection with the selectall button selected
                    if (m_SelectionList != null)
                    {
                        for (int i = 0; i < MaxEntries; i++)
                        {
                            if (i < m_SelectionList.Length)
                            {
                                // only toggle the selection list entries for things that actually have entries
                                m_SelectionList[i] = SelectAll;
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                }
                if (info.ButtonID == 3999)
                {
                    // dont allow individual selection with the selectall button selected
                    if (m_SelectionList != null && m_SearchList != null && !SelectAll)
                    {
                        for (int i = 0; i < MaxEntries; i++)
                        {
                            if (i < m_SelectionList.Length)
                            {
                                // only toggle the selection list entries for things that actually have entries
                                if ((m_SearchList.Count - DisplayFrom > i))
                                {
                                    m_SelectionList[i] = !m_SelectionList[i];
                                }
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                }
                if (info.ButtonID >= 4000 && info.ButtonID < 4000 + MaxEntries)
                {
                    int i = info.ButtonID - 4000;
                    // dont allow individual selection with the selectall button selected
                    if (m_SelectionList != null && i >= 0 && i < m_SelectionList.Length && !SelectAll)
                    {
                        // only toggle the selection list entries for things that actually have entries
                        if (m_SearchList != null && (m_SearchList.Count - DisplayFrom > i))
                        {
                            m_SelectionList[i] = !m_SelectionList[i];
                        }
                    }
                }
                if (info.ButtonID >= 5000 && info.ButtonID < 5000 + MaxEntries)
                {
                    int i = info.ButtonID - 5000;
                    // dont allow individual selection with the selectall button selected
                    if (m_SelectionList != null && i >= 0 && i < m_SelectionList.Length && !SelectAll)
                    {
                        // only toggle the selection list entries for things that actually have entries
                        if (m_SearchList != null && (m_SearchList.Count - DisplayFrom > i))
                        {
                            XmlAttachment a = m_SearchList[i + DisplayFrom] as XmlAttachment;
                            if (a != null)
                            {
                                state.Mobile.SendMessage(a.OnIdentify(state.Mobile));
                            }
                        }
                    }
                }
                break;
            }
            }
            // Create a new gump
            //m_Spawner.OnDoubleClick( state.Mobile);
            Refresh(state);
        }
        public override void OnResponse( NetState state, RelayInfo info )
        {
            Mobile from = state.Mobile;

            if ( m_Stone.Deleted )
                return;

            if ( info.ButtonID == 0 )
            {
                from.SendMessage( "You decide not to buy anything." );
            }

            if ( info.ButtonID == 1 )
            {
                from.SendGump( new TokenVendorStoneBuyGump( m_Shopper, m_Stone ) );
            }

            if ( info.ButtonID >= 3 && info.ButtonID-2 > m_Stone.ItemList.Count )
            {
                from.SendGump( new VendorGump( m_Shopper, m_Stone ) );
                from.SendGump( new TokenVendorStoneDescriptionGump( from, ((VSItem)m_Stone.ItemList[info.ButtonID-m_Stone.ItemList.Count-3]).Description, ((VSItem)m_Stone.ItemList[info.ButtonID-m_Stone.ItemList.Count-3]).Name ) );
            }
            else if ( info.ButtonID >= 2 )
            {
                if ( !m_Stone.EditMode )
                {
                    m_Shopper.AddItem( info.ButtonID-2 );
                    from.SendMessage( "You add it to your list." );
                    from.SendGump( new VendorGump( m_Shopper, m_Stone ) );
                }
                else
                {
                    if ( info.ButtonID-2 > m_Stone.ItemList.Count-1 || info.ButtonID-2 < 0 )
                        return;

                    m_Stone.CloseGumps( from );
                    from.SendGump( new TokenVendorStoneEditGump( from, (VSItem)m_Stone.ItemList[info.ButtonID-2], m_Stone ) );
                }
            }
        }
        public override void OnResponse( NetState state, RelayInfo info )
        {
            Mobile from = state.Mobile;

            if ( from == null || m_SkillBall.Deleted )
                return;

            if ( m_SkillBall.Expires && DateTime.Now >= m_SkillBall.ExpireDate )
                m_SkillBall.SendLocalizedMessageTo( from, 1042544 ); // This item is out of charges.
            else if ( !m_SkillBall.IsChildOf( from.Backpack ) )
                from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
            else if ( m_SkillBall.ValidateUser( from ) )
                from.SendMessage( "Only the owner can use this skill ball." );
            else if ( info.ButtonID > 0 )
            {
                SkillName skillname = (m_SkillBall.GetAllowedSkills( m_Target ))[info.ButtonID-1];
                m_Skill = m_Target.Skills[skillname];

                if ( m_Skill == null )
                    return;

                int count = m_Target.SkillsTotal;
                int cap = m_Target.SkillsCap;
                int decreaseamount;
                int bonus = m_SkillBall.SkillBonusFixedPoint; // Fix by Silver, old: m_SkillBall.SkillBonus;

                List<Skill> decreased = m_SkillBall.GetDecreasableSkills( from, m_Target, count, cap, out decreaseamount );

                int skillamt = m_Skill.BaseFixedPoint + m_SkillBall.SkillBonusFixedPoint;
                int skillmax = m_SkillBall.MaxCapFixedPoint;
                int skillmin = m_SkillBall.MinCapFixedPoint;

                if ( skillname == SkillName.Stealth && m_Target.Skills[SkillName.Hiding].BaseFixedPoint < 800 )
                    from.SendMessage("You cannot train stealth until you have at least 80% hiding skill." );
                else if ( m_Skill.BaseFixedPoint > skillmin )
                    from.SendMessage("You may only choose skills which are below {0}.", m_SkillBall.MinCap );
                else if ( m_Skill.Lock != SkillLock.Up )
                    from.SendMessage( "You must set the skill to be increased in order to raise it further." );
                else
                {// SILVER: >= 0 instead of >= bonus. Added fourth argument for IncreaseSkill

                    int toIncrease = bonus;
                    if( bonus > (cap - count + decreaseamount) )
                        toIncrease = cap - count + decreaseamount;
                    if( m_Skill.BaseFixedPoint + toIncrease > skillmax )
                        toIncrease = skillmax - m_Skill.BaseFixedPoint;
                    if( m_Skill.BaseFixedPoint + toIncrease > m_Skill.CapFixedPoint )
                        toIncrease = m_Skill.CapFixedPoint - m_Skill.BaseFixedPoint;

                    if ( toIncrease > 0 )
                    {
                        m_SkillBall.DecreaseSkills( from, m_Target, decreased, count, cap );
                        m_SkillBall.IncreaseSkill( from, m_Target, m_Skill, toIncrease );
                        if ( !m_SkillBall.Rechargable )
                            m_SkillBall.Delete();
                    }
                    else // SILVER: "any skill" instead of "enough skill"
                        from.SendMessage( "You have exceeded the skill cap and do not have any skill set to be decreased." );
                }
            }
        }
Esempio n. 27
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            Mobile from = sender.Mobile;

            if (info.ButtonID == 0 || m_Plant.Deleted || m_Plant.PlantStatus >= PlantStatus.DecorativePlant || m_Plant.PlantStatus == PlantStatus.BowlOfDirt)
            {
                return;
            }

            if ((info.ButtonID >= 6 && info.ButtonID <= 8) && !from.InRange(m_Plant.GetWorldLocation(), 3))
            {
                from.LocalOverheadMessage(MessageType.Regular, 0x3E9, 500446);                   // That is too far away.
                return;
            }

            if (!m_Plant.IsUsableBy(from))
            {
                m_Plant.LabelTo(from, 1061856);                   // You must have the item in your backpack or locked down in order to use it.
                return;
            }

            switch (info.ButtonID)
            {
            case 1:                     // Main menu
            {
                from.SendGump(new MainPlantGump(m_Plant));

                break;
            }

            case 2:                     // Set to decorative
            {
                if (m_Plant.PlantStatus == PlantStatus.Stage9)
                {
                    from.SendGump(new SetToDecorativeGump(m_Plant));
                }

                break;
            }

            case 3:                                        // Pollination
            {
                from.Send(new DisplayHelpTopic(67, true)); // POLLINATION STATE

                from.SendGump(new ReproductionGump(m_Plant));

                break;
            }

            case 4:                                        // Resources
            {
                from.Send(new DisplayHelpTopic(69, true)); // RESOURCE PRODUCTION

                from.SendGump(new ReproductionGump(m_Plant));

                break;
            }

            case 5:                                        // Seeds
            {
                from.Send(new DisplayHelpTopic(68, true)); // SEED PRODUCTION

                from.SendGump(new ReproductionGump(m_Plant));

                break;
            }

            case 6:                     // Gather pollen
            {
                if (!m_Plant.IsCrossable)
                {
                    m_Plant.LabelTo(from, 1053050);                               // You cannot gather pollen from a mutated plant!
                }
                else if (!m_Plant.PlantSystem.PollenProducing)
                {
                    m_Plant.LabelTo(from, 1053051);                               // You cannot gather pollen from a plant in this stage of development!
                }
                else if (m_Plant.PlantSystem.Health < PlantHealth.Healthy)
                {
                    m_Plant.LabelTo(from, 1053052);                               // You cannot gather pollen from an unhealthy plant!
                }
                else
                {
                    from.Target = new PollinateTarget(m_Plant);
                    from.SendLocalizedMessage(1053054);                               // Target the plant you wish to cross-pollinate to.

                    break;
                }

                from.SendGump(new ReproductionGump(m_Plant));

                break;
            }

            case 7:                     // Gather resources
            {
                PlantResourceInfo resInfo = PlantResourceInfo.GetInfo(m_Plant.PlantType, m_Plant.PlantHue);
                PlantSystem       system  = m_Plant.PlantSystem;

                if (resInfo == null)
                {
                    if (m_Plant.IsCrossable)
                    {
                        m_Plant.LabelTo(from, 1053056);                                   // This plant has no resources to gather!
                    }
                    else
                    {
                        m_Plant.LabelTo(from, 1053055);                                   // Mutated plants do not produce resources!
                    }
                }
                else if (system.AvailableResources == 0)
                {
                    m_Plant.LabelTo(from, 1053056);                               // This plant has no resources to gather!
                }
                else
                {
                    Item resource = resInfo.CreateResource();

                    if (from.PlaceInBackpack(resource))
                    {
                        system.AvailableResources--;
                        m_Plant.LabelTo(from, 1053059);                                   // You gather resources from the plant.
                    }
                    else
                    {
                        resource.Delete();
                        m_Plant.LabelTo(from, 1053058);                                   // You attempt to gather as many resources as you can hold, but your backpack is full.
                    }
                }

                from.SendGump(new ReproductionGump(m_Plant));

                break;
            }

            case 8:                     // Gather seeds
            {
                PlantSystem system = m_Plant.PlantSystem;

                if (!m_Plant.Reproduces)
                {
                    m_Plant.LabelTo(from, 1053060);                               // Mutated plants do not produce seeds!
                }
                else if (system.AvailableSeeds == 0)
                {
                    m_Plant.LabelTo(from, 1053061);                               // This plant has no seeds to gather!
                }
                else
                {
                    Seed seed = new Seed(system.SeedType, system.SeedHue, true);

                    if (from.PlaceInBackpack(seed))
                    {
                        system.AvailableSeeds--;
                        m_Plant.LabelTo(from, 1053063);                                   // You gather seeds from the plant.
                    }
                    else
                    {
                        seed.Delete();
                        m_Plant.LabelTo(from, 1053062);                                   // You attempt to gather as many seeds as you can hold, but your backpack is full.
                    }
                }

                from.SendGump(new ReproductionGump(m_Plant));

                break;
            }
            }
        }
Esempio n. 28
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            Mobile m = sender.Mobile;

            _TextRelays = CreateList(info.TextEntries);

            switch (info.ButtonID)
            {
            case 0:
                break;

            case 1:
            {
                _Info.Skin++;
                m.SendGump(new ToolbarEdit(_Info, _Expanded));
                break;
            }

            case 2:
            {
                _Info.Skin--;
                m.SendGump(new ToolbarEdit(_Info, _Expanded));
                break;
            }

            case 3:
            {
                _Info.Rows++;
                m.SendGump(new ToolbarEdit(_Info, _Expanded));
                break;
            }

            case 4:
            {
                _Info.Rows--;
                m.SendGump(new ToolbarEdit(_Info, _Expanded));
                break;
            }

            case 5:
            {
                _Info.Collumns++;
                m.SendGump(new ToolbarEdit(_Info, _Expanded));
                break;
            }

            case 6:
            {
                _Info.Collumns--;
                m.SendGump(new ToolbarEdit(_Info, _Expanded));
                break;
            }

            case 9:                     // Default
            {
                var toolbarinfo = ToolbarInfo.DefaultEntries(m.AccessLevel);
                CombineEntries(toolbarinfo);
                toolbarinfo.AddRange(AnalyzeEntries(toolbarinfo.Count));
                _Info.Entries = toolbarinfo;
                m.SendGump(new ToolbarEdit(_Info, _Expanded));
                break;
            }

            case 10:                     // Okay
                goto case 12;

            case 11:                     // Cancel
                goto case 0;

            case 12:                     // Apply
            {
                ToolbarModule module = m.GetModule(typeof(ToolbarModule)) as ToolbarModule ?? new ToolbarModule(m);

                module.ToolbarInfo.Entries = AnalyzeEntries();

                module.ToolbarInfo.Phantom = info.IsSwitched(21);
                module.ToolbarInfo.Stealth = info.IsSwitched(23);
                module.ToolbarInfo.Reverse = info.IsSwitched(25);
                module.ToolbarInfo.Lock    = info.IsSwitched(27);

                if (info.ButtonID == 12)
                {
                    m.SendGump(new ToolbarEdit(_Info, _Expanded));
                }

                m.CloseGump(typeof(ToolbarGump));
                m.SendGump(new ToolbarGump(module.ToolbarInfo, m));

                break;
            }

            case 18:
            {
                _Info.Font++;
                m.SendGump(new ToolbarEdit(_Info, _Expanded));
                break;
            }

            case 19:
            {
                _Info.Font--;
                m.SendGump(new ToolbarEdit(_Info, _Expanded));
                break;
            }

            case 20:
            {
                m.SendGump(new ToolbarEdit(_Info, _Expanded));
                m.SendMessage(2101, "Phantom mode turns the toolbar semi-transparent.");
                break;
            }

            case 22:
            {
                m.SendGump(new ToolbarEdit(_Info, _Expanded));
                m.SendMessage(2101, "Stealth mode makes the toolbar automatically minimize when you click a button.");
                break;
            }

            case 24:
            {
                m.SendGump(new ToolbarEdit(_Info, _Expanded));
                m.SendMessage(2101, "Reverse mode puts the minimize bar above the toolbar instead of below.");
                break;
            }

            case 26:
            {
                m.SendGump(new ToolbarEdit(_Info, _Expanded));
                m.SendMessage(2101, "Lock mode disables closing the toolbar with right-click.");
                break;
            }

            case 28:                     // Expand
            {
                m.SendGump(new ToolbarEdit(_Info, !_Expanded));
                m.SendMessage(2101, "Expanded view {0}activated.", _Expanded ? "de" : "");
                break;
            }
            }
        }
        public override void OnResponse( NetState state, RelayInfo info )
        {
            base.OnResponse( state, info );

            if( info.ButtonID >= 1 && info.ButtonID <= 8 )
                state.Mobile.SendGump( new WeaponStoneGump(state.Mobile, m_Stone, info.ButtonID ) );
            else if( info.ButtonID != 0 )
            {
                if( m_Stone.UseLimit )
                {
                    bool foundName = false;
                    foreach( WeaponStone.WeaponStoneEntry nameEntry in m_Stone.m_alNameList )
                    {
                        if( nameEntry.m_sName == state.Mobile.Account.ToString() )
                        {
                            foundName = true;
                            if( nameEntry.m_iCount < m_iAmountToGive )
                                nameEntry.m_iCount++;
                            else
                            {
                                state.Mobile.SendMessage( "You may not take anymore items from this stone." );
                                return;
                            }
                        }
                    }

                    if( !foundName )
                        m_Stone.m_alNameList.Add( new WeaponStone.WeaponStoneEntry( state.Mobile.Account.ToString(), 1 ) );
                }

                ItemEntry entry = (ItemEntry)m_MainTable[info.ButtonID-999];

                Item item = (Item) Activator.CreateInstance( entry.m_Type );
                if( item.Stackable )
                    item.Amount = m_iStackableAmount;

                state.Mobile.AddToBackpack( item );

                state.Mobile.SendMessage( "The {0} has been placed into your packpack.", entry.m_sName );
                state.Mobile.SendGump( new WeaponStoneGump(state.Mobile, m_Stone, m_iPos ) );
            }
        }
        public override void OnResponse(NetState state, RelayInfo info)
        {
            Mobile from = state.Mobile;

            switch ( info.ButtonID )
            {
                case 0: // close the gump
                {
                    break;
                }

                case 101:
                {
                    TextRelay oX1 = info.GetTextEntry( 0 );
                    TextRelay oY1 = info.GetTextEntry( 1 );
                    TextRelay oX2 = info.GetTextEntry( 2 );
                    TextRelay oY2 = info.GetTextEntry( 3 );
                    string sX1 = oX1.Text;
                    string sY1 = oY1.Text;
                    string sX2 = oX2.Text;
                    string sY2 = oY2.Text;
                    if( sX1 != "" && sY1 != "" && sX2 != "" && sY2 != "" )
                    {
                        try
                        {
                            int iX1 = Convert.ToInt32( sX1 );
                            int iY1 = Convert.ToInt32( sY1 );
                            int iX2 = Convert.ToInt32( sX2 );
                            int iY2 = Convert.ToInt32( sY2 );
                            string prefix = Server.Commands.CommandSystem.Prefix;
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen save {1} {2} {3} {4}", prefix, iX1, iY1, iX2, iY2 ) );
                        }
                        catch
                        {
                            from.SendMessage( "Coordinates must be numbers!" );
                            string prefix = Server.Commands.CommandSystem.Prefix;
                            CommandSystem.Handle( from, String.Format( "{0}GumpSaveCoordinate", prefix ) );
                        }
                    }

                    else
                    {
                        from.SendMessage( "You must specify all coordinates!" );
                        string prefix = Server.Commands.CommandSystem.Prefix;
                        CommandSystem.Handle( from, String.Format( "{0}GumpSaveCoordinate", prefix ) );
                    }
                    break;
                }
            }
        }
Esempio n. 31
0
        public override void OnResponse(Server.Network.NetState state, RelayInfo info)
        {
            if (m_From != null)
            {
                m_From.CloseGump(typeof(NewQuestGump));
            }

            switch (info.ButtonID)
            {
            // close quest list
            case (int)Buttons.Close:
                break;

            // close quest
            case (int)Buttons.CloseQuest:
                m_From.SendGump(new NewQuestGump(m_From));
                break;

            // accept quest
            case (int)Buttons.AcceptQuest:
                if (m_Offer)
                {
                    m_Quest.OnAccept();
                }
                break;

            // refuse quest
            case (int)Buttons.RefuseQuest:
                if (m_Offer)
                {
                    m_Quest.OnRefuse();
                    m_From.SendGump(new NewQuestGump(m_Quest, Section.Refuse, true));
                }
                break;

            // resign quest
            case (int)Buttons.ResignQuest:
                if (!m_Offer)
                {
                    m_From.SendGump(new NewResignGump(m_Quest));
                }
                break;

            // accept reward
            case (int)Buttons.AcceptReward:
                if (!m_Offer && m_Section == Section.Rewards && m_Completed)
                {
                    m_Quest.GiveRewards();
                }
                break;

            // refuse reward
            case (int)Buttons.RefuseReward:
                if (!m_Offer && m_Section == Section.Rewards && m_Completed)
                {
                    m_Quest.RefuseRewards();
                }
                break;

            // previous page
            case (int)Buttons.PreviousPage:
                if (m_Section == Section.Objectives || (m_Section == Section.Rewards && !m_Completed))
                {
                    m_Section = (Section)((int)m_Section - 1);
                    m_From.SendGump(new NewQuestGump(m_Quest, m_Section, m_Offer));
                }
                break;

            // next page
            case (int)Buttons.NextPage:
                if (m_Section == Section.Description || m_Section == Section.Objectives)
                {
                    m_Section = (Section)((int)m_Section + 1);
                    m_From.SendGump(new NewQuestGump(m_Quest, m_Section, m_Offer));
                }
                break;

            // player complete quest
            case (int)Buttons.Complete:
                if (!m_Offer && m_Section == Section.Complete)
                {
                    if (!m_Quest.Completed)
                    {
                        m_From.SendLocalizedMessage(1074861);                                 // You do not have everything you need!
                    }
                    else
                    {
                        if (QuestHelper.TryDeleteItems(m_Quest))
                        {
                            if (m_Quester != null)
                            {
                                m_Quest.Quester = m_Quester;
                            }

                            if (!QuestHelper.AnyRewards(m_Quest))
                            {
                                m_Quest.GiveRewards();
                            }
                            else
                            {
                                m_From.SendGump(new NewQuestGump(m_Quest, Section.Rewards, false, true));
                            }
                        }
                        else
                        {
                            m_From.SendLocalizedMessage(1074861);                                     // You do not have everything you need!
                        }
                    }
                }
                break;

            // admin complete quest
            case (int)Buttons.CompleteQuest:
                if ((int)m_From.AccessLevel > (int)AccessLevel.Counselor && m_Quest != null)
                {
                    QuestHelper.CompleteQuest(m_From, m_Quest);
                }
                break;

            // show quest
            default:
                if (m_Section != Section.Main || info.ButtonID >= m_From.Quests.Count + ButtonOffset || info.ButtonID < ButtonOffset)
                {
                    break;
                }

                m_From.SendGump(new NewQuestGump(m_From.Quests[(int)info.ButtonID - ButtonOffset], Section.Description, false));
                break;
            }
        }
Esempio n. 32
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            Mobile m = sender.Mobile;

            TextRelays = CreateList(info.TextEntries);


            bool[] switches = new bool[4]
            {
                info.IsSwitched(21),
                info.IsSwitched(23),
                info.IsSwitched(25),
                info.IsSwitched(27)
            };

            switch (info.ButtonID)
            {
            case 0: break;

            case 1: m.SendGump(new ToolbarEdit(p_Info, this.p_Expanded, AnalyzeEntries(), Skin + 1, Columns, Rows, Font, switches)); break;

            case 2: m.SendGump(new ToolbarEdit(p_Info, this.p_Expanded, AnalyzeEntries(), Skin - 1, Columns, Rows, Font, switches)); break;

            case 3: m.SendGump(new ToolbarEdit(p_Info, this.p_Expanded, AnalyzeEntries(), Skin, Columns, Rows + 1, Font, switches)); break;

            case 4: m.SendGump(new ToolbarEdit(p_Info, this.p_Expanded, AnalyzeEntries(), Skin, Columns, Rows - 1, Font, switches)); break;

            case 5: m.SendGump(new ToolbarEdit(p_Info, this.p_Expanded, AnalyzeEntries(), Skin, Columns + 1, Rows, Font, switches)); break;

            case 6: m.SendGump(new ToolbarEdit(p_Info, this.p_Expanded, AnalyzeEntries(), Skin, Columns - 1, Rows, Font, switches)); break;

            //case 7:
            //m.SendGump( new ToolbarEdit( p_Info, this.p_Expanded, AnalyzeEntries(), Skin, Columns, Rows, Font, switches ));
            //m.SendMessage( 32, "The Marker utility is not an active feature yet; please be patient." );
            //goto case 0;
            case 9:                             // Default
                List <string> toolbarinfo = ToolbarInfo.DefaultEntries((int)m.AccessLevel);
                CombineEntries(toolbarinfo);
                toolbarinfo.AddRange(AnalyzeEntries(toolbarinfo.Count));
                m.SendGump(new ToolbarEdit(p_Info, this.p_Expanded, toolbarinfo, Skin, Columns, Rows, Font, switches));
                break;

            case 10:                            // Okay
                goto case 12;

            case 11:                            // Cancel
                goto case 0;

            case 12:                            // Apply
                Account     acc   = m.Account as Account;
                ToolbarInfo infos = null;
                for (int i = 0; i < ToolbarHelper.Infos.Info.Count; i++)
                {
                    if (ToolbarHelper.Infos.Info[i].Account == acc.Username)
                    {
                        infos = ToolbarHelper.Infos.Info[i];
                    }
                }
                if (infos == null)
                {
                    infos = ToolbarInfo.CreateNew(m, acc);
                }
                List <int> dims = new List <int>();
                dims.Add(Columns);
                dims.Add(Rows);

                infos.SetAttributes(acc.Username, dims, AnalyzeEntries(), Skin, infos.Points, Font, switches);

                if (info.ButtonID == 12)
                {
                    m.SendGump(new ToolbarEdit(infos, this.p_Expanded));
                }
                m.CloseGump(typeof(Toolbar));
                m.SendGump(new Toolbar(infos));
                break;

            case 18: m.SendGump(new ToolbarEdit(p_Info, this.p_Expanded, AnalyzeEntries(), Skin, Columns, Rows, Font + 1, switches)); break;

            case 19: m.SendGump(new ToolbarEdit(p_Info, this.p_Expanded, AnalyzeEntries(), Skin, Columns, Rows, Font - 1, switches)); break;

            case 20:
                m.SendGump(new ToolbarEdit(p_Info, this.p_Expanded, AnalyzeEntries(), Skin, Columns, Rows, Font, switches));
                m.SendMessage(2101, "Phantom mode turns the toolbar semi-transparent.");
                break;

            case 22:
                m.SendGump(new ToolbarEdit(p_Info, this.p_Expanded, AnalyzeEntries(), Skin, Columns, Rows, Font, switches));
                m.SendMessage(2101, "Stealth mode makes the toolbar automatically minimize when you click a button.");
                break;

            case 24:
                m.SendGump(new ToolbarEdit(p_Info, this.p_Expanded, AnalyzeEntries(), Skin, Columns, Rows, Font, switches));
                m.SendMessage(2101, "Reverse mode puts the minimize bar above the toolbar instead of below.");
                break;

            case 26:
                m.SendGump(new ToolbarEdit(p_Info, this.p_Expanded, AnalyzeEntries(), Skin, Columns, Rows, Font, switches));
                m.SendMessage(2101, "Lock mode disables closing the toolbar with right-click.");
                break;

            case 28:                            // Expand
                m.SendGump(new ToolbarEdit(p_Info, !this.p_Expanded, AnalyzeEntries(), Skin, Columns, Rows, Font, switches));
                m.SendMessage(2101, "Expanded view {0}activated.", this.p_Expanded ? "de" : "");
                break;
            }
        }
Esempio n. 33
0
 public override void OnResponse(NetState sender, RelayInfo info)
 {
     if (player == null)
     {
         return;
     }
     if (info.ButtonID == (int)BUTTONS_ENUM.OK)
     {
         CloseGump(player);
     }
     else if (info.ButtonID == (int)BUTTONS_ENUM.WEBSITE)
     {
         player.LaunchBrowser("http://daat99.home.dyndns.org/index.html");
     }
     else if (info.ButtonID == (int)BUTTONS_ENUM.RESET_FILTER)
     {
         SendGump(player, backpack, page, NoFilter);
     }
     else if (info.ButtonID == (int)BUTTONS_ENUM.PREVIOUS_PAGE)
     {
         SendGump(player, backpack, page - 1, filter);
     }
     else if (info.ButtonID == (int)BUTTONS_ENUM.NEXT_PAGE)
     {
         SendGump(player, backpack, page + 1, filter);
     }
     //extracting items
     else if (info.ButtonID >= (int)BUTTONS_ENUM.WITHDRAW_ITEM_START && info.ButtonID < (int)BUTTONS_ENUM.WITHDRAW_ITEM_START + items.Length)
     {
         //calculate extract amount
         TextRelay trText = info.GetTextEntry((int)BUTTONS_ENUM.AMOUNT_TEXT);
         int       amount = 0;
         if (trText != null)
         {
             try { amount = Convert.ToInt32(trText.Text, 10); }
             catch { player.SendMessage(1173, "Unable to parse the extract amount into a number."); }
         }
         int itemIndex = info.ButtonID - (int)BUTTONS_ENUM.WITHDRAW_ITEM_START;
         if (amount < 0)
         {
             player.SendMessage(1173, "You must enter a positive number to extract.");
         }
         else if (itemIndex < 0 || itemIndex > items.Length)
         {
             player.SendMessage(1173, "Unrecognized item.");
         }
         else
         {
             StoredItemGumpObject storedItem = items[itemIndex];
             ulong available = storedItem.Amount;
             if (available <= 0)
             {
                 player.SendMessage(1173, "You don't have that items.");
                 return;
             }
             if (available < (ulong)amount)
             {
                 amount = (int)available;
                 player.SendMessage(1173, "You don't have enough of that item, extracting only " + amount + " instead.");
             }
             List <Item> extractedItems = backpack.TryExtractType(storedItem.ItemType, amount);
             if (extractedItems == null || extractedItems.Count <= 0)
             {
                 player.SendMessage(1173, "Unable to extract the items.");
             }
             else
             {
                 foreach (Item item in extractedItems)
                 {
                     MasterStorageUtils.DropItemInBagOrFeet(player, backpack, item);
                 }
                 player.SendMessage(1173, "You successfully extracted " + amount + " items.");
                 SendGump(player, backpack, page, filter);
             }
         }
     }
     //changing filter
     else if (info.ButtonID >= (int)BUTTONS_ENUM.FILTER_START && info.ButtonID < (int)BUTTONS_ENUM.WITHDRAW_ITEM_START)
     {
         int filterIndex = info.ButtonID - (int)BUTTONS_ENUM.FILTER_START;
         if (filterIndex < 0 || filterIndex > backpack.StorageList.Count)
         {
             player.SendMessage(1173, "Unrecognized filter.");
         }
         else
         {
             SendGump(player, backpack, page, backpack.StorageList[filterIndex]);
         }
     }
     else if (info.ButtonID == (int)BUTTONS_ENUM.REFILL)
     {
         backpack.RefillStorage(player);
         SendGump(player, backpack, page, filter);
     }
 }
Esempio n. 34
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            if (m_Guild.BadMember(m_Mobile))
            {
                return;
            }

            if (info.ButtonID >= 1000 && info.ButtonID < (1000 + m_List.Count))
            {
                Mobile m = (Mobile)m_List[info.ButtonID - 1000];

                if (m != null && !m.Deleted)
                {
                    m_Mobile.SendGump(new RosterMiscGump(m_Mobile, m, m_Guild));
                }
            }

            /* Main Gump Buttons */
            if (info.ButtonID == 100)               // My Guild
            {
                m_Mobile.SendGump(new MyGuildGump(m_Mobile, m_Guild));
            }
            else if (info.ButtonID == 110)               // Roster
            {
                m_Mobile.SendGump(new RosterGump(m_Mobile, m_Guild, 2, ""));
            }
            else if (info.ButtonID == 120)               // Diplomacy
            {
                BaseGuild[] guilds = Guild.Search("");
                if (guilds.Length > 0)
                {
                    m_Mobile.SendGump(new DiplomacyGump(m_Mobile, m_Guild, new ArrayList(guilds), 2));
                }
            }

            /* Search Button */
            else if (info.ButtonID == 750)
            {
                string text = info.GetTextEntry(3535).Text;

                text = text.Trim();

                if (text.Length >= 3)
                {
                    m_Mobile.SendGump(new RosterGump(m_Mobile, m_Guild, 4, text));
                }
                else
                {
                    m_Mobile.SendMessage("Search string must be at least three letters in length.");
                }
            }

            /* Sort buttons */
            else if (info.ButtonID == 400)               // Sort for Name
            {
                m_Mobile.SendGump(new RosterGump(m_Mobile, m_Guild, 10, ""));
            }
            else if (info.ButtonID == 401)               // Sort for Name
            {
                m_Mobile.SendGump(new RosterGump(m_Mobile, m_Guild, 0, ""));
            }

            else if (info.ButtonID == 402)               // Sort for Rank
            {
                m_Mobile.SendGump(new RosterGump(m_Mobile, m_Guild, 11, ""));
            }
            else if (info.ButtonID == 403)               // Sort for Rank
            {
                m_Mobile.SendGump(new RosterGump(m_Mobile, m_Guild, 1, ""));
            }

            else if (info.ButtonID == 404)               // Sort for LastOn
            {
                m_Mobile.SendGump(new RosterGump(m_Mobile, m_Guild, 12, ""));
            }
            else if (info.ButtonID == 405)               // Sort for LastOn
            {
                m_Mobile.SendGump(new RosterGump(m_Mobile, m_Guild, 2, ""));
            }

            else if (info.ButtonID == 406)               // Sort for Guild Title
            {
                m_Mobile.SendGump(new RosterGump(m_Mobile, m_Guild, 13, ""));
            }
            else if (info.ButtonID == 407)               // Sort for Guild Title
            {
                m_Mobile.SendGump(new RosterGump(m_Mobile, m_Guild, 3, ""));
            }

            /* Pag Buttons */
            else if (info.ButtonID == 800)               // Av. Pag
            {
                m_Mobile.SendGump(new RosterGump(m_Mobile, m_Guild, m_SortType, m_FindText, m_Page + 1));
            }
            else if (info.ButtonID == 801)               // Re. Page
            {
                m_Mobile.SendGump(new RosterGump(m_Mobile, m_Guild, m_SortType, m_FindText, m_Page - 1));
            }

            /* Invite Player Button */
            else if (info.ButtonID == 900)
            {
                if ((m_Guild.Leader == m_Mobile) || ((m_Mobile as PlayerMobile).GuildRank == 3))
                {
                    m_Mobile.Target = new InviteTarget(m_Mobile, m_Guild);
                    m_Mobile.SendLocalizedMessage(1063048);                       // Whom do you wish to invite into your guild?
                }
                else
                {
                    m_Mobile.SendLocalizedMessage(503301);                       //	 You don't have permission to do that.
                }
            }
        }
Esempio n. 35
0
        public override void OnResponse( GameClient sender, RelayInfo info )
        {
            if ( info.ButtonID == 1 )
            {
                Mobile from = sender.Mobile;

                if ( !m_Token.Deleted && m_Token.IsChildOf( from ) )
                    m_Token.Info.GiveReward( m_Token, from );
            }
        }
Esempio n. 36
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            Mobile from = sender.Mobile;

            CloseGump(from);
            PlayerMobile player = from as PlayerMobile;

            if (player == null)
            {
                return;
            }
            switch (info.ButtonID)
            {
            case (int)BUTTONS_ENUM.OK:
                //don't send new gump
                break;

            case (int)BUTTONS_ENUM.ADD_ITEM:
                player.Target = new MasterStorageAddTypeTarget(backpack, player, MasterStorageAddTypeTarget.SELECTION.ITEM_SELECTION);
                break;

            case (int)BUTTONS_ENUM.ADD_TYPE:
                player.Target = new MasterStorageAddTypeTarget(backpack, player, MasterStorageAddTypeTarget.SELECTION.TYPE_SELECTION);
                break;

            case (int)BUTTONS_ENUM.PREVIOUS_PAGE:
                SendGump(from, backpack, page - 1);
                break;

            case (int)BUTTONS_ENUM.NEXT_PAGE:
                SendGump(from, backpack, page + 1);
                break;

            case (int)BUTTONS_ENUM.LOOT_SETTINGS:
                backpack.NextLootSettings();
                SendGump(from, backpack, page);
                break;

            case (int)BUTTONS_ENUM.DELETE_ALL_CORPSES:
                backpack.DeleteAllCorpses = !backpack.DeleteAllCorpses;
                SendGump(from, backpack, page);
                break;

            case (int)BUTTONS_ENUM.RESTORE_DEFAULTS:
                backpack.RestoreDefaultList();
                SendGump(from, backpack, page);
                break;

            case (int)BUTTONS_ENUM.SWITCH_ACTIVE_LIST:
                backpack.SwitchActiveList();
                SendGump(from, backpack, page);
                break;

            default:
                if (info.ButtonID < (int)BUTTONS_ENUM.REMOVE_TYPE_START ||
                    info.ButtonID >= (int)BUTTONS_ENUM.REMOVE_TYPE_START + types.Length)
                {
                    return;
                }
                backpack.RemoveLootableType(types[info.ButtonID - (int)BUTTONS_ENUM.REMOVE_TYPE_START]);
                SendGump(from, backpack, page);
                break;
            }
        }
        public override void OnResponse(NetState state, RelayInfo info)
        {
            Mobile from = state.Mobile;

            switch ( info.ButtonID )
            {
                case 0: // close the gump
                {
                    break;
                }

                case 101:
                {
                    TextRelay oID = info.GetTextEntry( 0 );
                    string sID = oID.Text;
                    if( sID != "" )
                    {
                        try
                        {
                            int UnloadID = Convert.ToInt32( sID );
                            string prefix = Server.Commands.CommandSystem.Prefix;
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen unload {1}", prefix, UnloadID ) );
                        }
                        catch
                        {
                            from.SendMessage( "SpawnID must be a number!" );
                            string prefix = Server.Commands.CommandSystem.Prefix;
                            CommandSystem.Handle( from, String.Format( "{0}GumpRemoveID", prefix ) );
                        }
                    }

                    else
                    {
                        from.SendMessage( "You must specify an SpawnID!" );
                        string prefix = Server.Commands.CommandSystem.Prefix;
                        CommandSystem.Handle( from, String.Format( "{0}GumpRemoveID", prefix ) );
                    }
                    break;
                }
            }
        }
Esempio n. 38
0
        public override void OnResponse(NetState state, RelayInfo info)
        {
            Mobile from = state.Mobile;

            if (info.ButtonID == (int)BUTTONS.OK || backpack.Deleted || !(from is PlayerMobile))
            {
                CloseGump(from);
                return;
            }
            if (info.ButtonID == (int)BUTTONS.ADD)
            {
                from.Target = new MasterStorageAddCurrencyTarget(from, backpack);
                return;
            }
            else if (info.ButtonID == (int)BUTTONS.FILL)
            {
                backpack.AddCurrencyFromBackpack(from as PlayerMobile);
            }
            else
            {
                TextRelay amountRelay = info.GetTextEntry((int)BUTTONS.AMOUNT);
                if (amountRelay != null)
                {
                    ulong amount = 0;
                    try
                    {
                        int iAmount = Convert.ToInt32(amountRelay.Text, 10);
                        if (iAmount > 0)
                        {
                            amount = (ulong)iAmount;
                        }
                    }
                    catch { }
                    if (amount > 0)
                    {
                        if (info.ButtonID == (int)BUTTONS.GOLD && amount <= 60000 && amount <= backpack.GoldAmount)
                        {
                            backpack.GoldAmount -= amount;
                            from.AddToBackpack(new Gold((int)amount));
                            from.SendMessage(1173, "You extracted {0} gold from your Master Storage Backpack.", amount);
                        }
                        else if (info.ButtonID == (int)BUTTONS.GOLD_CHECK && amount <= 1000000 && amount <= backpack.GoldAmount)
                        {
                            backpack.GoldAmount -= amount;
                            from.AddToBackpack(new BankCheck((int)amount));
                            from.SendMessage(1173, "You extracted {0} gold from your Master Storage Backpack.", amount);
                        }
#if USE_TOKENS
                        else if (info.ButtonID == (int)BUTTONS.TOKENS && amount <= 60000 && amount <= backpack.TokensAmount)
                        {
                            backpack.TokensAmount -= amount;
                            from.AddToBackpack(new Daat99Tokens((int)amount));
                            from.SendMessage(1173, "You extracted {0} tokens from your Master Storage Backpack.", amount);
                        }
                        else if (info.ButtonID == (int)BUTTONS.TOKENS_CHECK && amount <= 1000000 && amount <= backpack.TokensAmount)
                        {
                            backpack.TokensAmount -= amount;
                            from.AddToBackpack(new TokenCheck((int)amount));
                            from.SendMessage(1173, "You extracted {0} tokens from your Master Storage Backpack.", amount);
                        }
#endif
                        else
                        {
                            from.SendMessage(1173, "You can't extract that.");
                        }
                    }
                }
            }
            SendGump(from, backpack);
        }
        public override void OnResponse(NetState state, RelayInfo info)
        {
            Mobile from = state.Mobile;

            switch ( info.ButtonID )
            {
                case 0: // close the gump
                {
                    break;
                }

                case 101:
                {
                    TextRelay oRegion = info.GetTextEntry( 0 );
                    string sRegion = oRegion.Text;
                    if( sRegion != "" )
                    {
                        string prefix = Server.Commands.CommandSystem.Prefix;
                        CommandSystem.Handle( from, String.Format( "{0}Spawngen save {1}", prefix, sRegion ) );
                    }
                    else
                    {
                        from.SendMessage( "You must specify a region!" );
                        string prefix = Server.Commands.CommandSystem.Prefix;
                        CommandSystem.Handle( from, String.Format( "{0}GumpSaveRegion", prefix ) );
                    }
                    break;
                }
            }
        }
Esempio n. 40
0
        public override void OnResponse(Server.Network.NetState sender, RelayInfo info)
        {
            try
            {
                // kill our timeout timer
                if (m_timeout != null)
                {
                    m_timeout.Stop();
                    m_timeout = null;
                }

                int      button = info.ButtonID;
                TimeSpan diff   = DateTime.Now - m_RTTLaunched;

                if (button == m_CorrectResponse + m_CorrectResponseOffset)
                {
                    // record answer
                    Server.Commands.LogHelper lh = new Server.Commands.LogHelper("RTT.log", false, true);
                    lh.Log(Server.Commands.LogType.Mobile, m_Mobile, string.Format("PASSED the RTT in {0} ms", diff.TotalMilliseconds));
                    lh.Finish();

                    m_Mobile.SendMessage("Thanks for verifying that you're at your computer.");
                    ((PlayerMobile)m_Mobile).RTTResult(true);

                    if (CoreAI.IsDynamicFeatureSet(CoreAI.FeatureBits.RTTNotifyEnabled))
                    {
                        if (diff <= TimeSpan.FromSeconds(1.0))
                        {
                            Server.Commands.CommandHandlers.BroadcastMessage(AccessLevel.Counselor,
                                                                             0x22,
                                                                             String.Format("{0}({1}) has quickly passed the RTT ({2} ms) ({3}).", m_Mobile.Name, m_Mobile.Serial, diff.TotalMilliseconds, m_strNotify));
                        }
                        else
                        {
                            Server.Commands.CommandHandlers.BroadcastMessage(AccessLevel.Counselor,
                                                                             0x482,
                                                                             String.Format("{0}({1}) has passed the RTT ({2} ms).  ({3})", m_Mobile.Name, m_Mobile.Serial, diff.TotalMilliseconds, m_strNotify));
                        }

                        // Look for and record suspiciously fast answers
                        if (diff <= TimeSpan.FromSeconds(3.0))
                        {
                            Server.Commands.LogHelper lh2 = new Server.Commands.LogHelper("RTTAlert.log", false, true);
                            lh2.Log(Server.Commands.LogType.Mobile, m_Mobile, string.Format("{0} ms", diff.TotalMilliseconds));
                            lh2.Finish();
                        }
                    }
                }
                else
                {
                    // record answer
                    Server.Commands.LogHelper lh = new Server.Commands.LogHelper("RTT.log", false, true);
                    lh.Log(Server.Commands.LogType.Mobile, m_Mobile, string.Format("FAILED the RTT in {0} ms", diff.TotalMilliseconds));
                    lh.Finish();

                    m_Mobile.SendMessage("You have failed the AFK test.");
                    ((PlayerMobile)m_Mobile).RTTResult(false);

                    if (CoreAI.IsDynamicFeatureSet(CoreAI.FeatureBits.RTTNotifyEnabled))
                    {
                        Server.Commands.CommandHandlers.BroadcastMessage(AccessLevel.Counselor,
                                                                         0x482,
                                                                         String.Format("{0}({1}) has failed the RTT. ({2})", m_Mobile.Name, m_Mobile.Serial, this.m_strNotify));
                    }
                }
            }
            catch (Exception e)
            {
                Server.Commands.LogHelper.LogException(e);
            }
        }
Esempio n. 41
0
        public override void OnResponse( NetState state, RelayInfo info )
        {
            Mobile from = state.Mobile;

            if ( m_Stone.Deleted )
                return;

            m_SubmitData[0] = info.IsSwitched( 1 );
            m_SubmitData[1] = info.IsSwitched( 2 );
            m_SubmitData[2] = info.IsSwitched( 3 );

            m_Stone.Hued = (bool)m_SubmitData[0];
            m_Stone.Blessed = (bool)m_SubmitData[1];
            m_Stone.Bonded = (bool)m_SubmitData[2];

            switch ( info.ButtonID )
            {
                case 0:
                {
                    from.SendMessage( "You decide not to buy anything." );
                    m_Stone.Hued = false;
                    m_Stone.Blessed = false;
                    m_Stone.Bonded = false;
                    break;
                }
                case 1:
                {
                    if ( m_Stone.Item1 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price1, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item1 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price1, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item1 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 2:
                {
                    if ( m_Stone.Item2 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price2, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item2 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price2, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item2 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 3:
                {
                    if ( m_Stone.Item3 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price3, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item3 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price3, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item3 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 4:
                {
                    if ( m_Stone.Item4 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price4, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item4 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price4, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item4 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 5:
                {
                    if ( m_Stone.Item5 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price5, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item5 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price5, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item5 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 6:
                {
                    if ( m_Stone.Item6 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price6, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item6 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price6, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item6 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 7:
                {
                    if ( m_Stone.Item7 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price7, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item7 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price7, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item7 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 8:
                {
                    if ( m_Stone.Item8 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price8, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item8 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price8, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item8 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 9:
                {
                    if ( m_Stone.Item9 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price9, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item9 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price9, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item9 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 10:
                {
                    if ( m_Stone.Item10 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price10, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item10 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price10, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item10 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 11:
                {
                    if ( m_Stone.Item11 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price11, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item11 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price11, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item11 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 12:
                {
                    if ( m_Stone.Item12 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price12, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item12 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price12, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item12 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 13:
                {
                    if ( m_Stone.Item13 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price13, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item13 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price13, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item13 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 14:
                {
                    if ( m_Stone.Item14 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price14, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item14 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price14, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item14 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 15:
                {
                    if ( m_Stone.Item15 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price15, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item15 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price15, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item15 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 16:
                {
                    if ( m_Stone.Item16 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price16, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item16 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price16, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item16 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 17:
                {
                    if ( m_Stone.Item17 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price17, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item17 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price17, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item17 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 18:
                {
                    if ( m_Stone.Item18 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price18, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item18 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price18, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item18 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 19:
                {
                    if ( m_Stone.Item19 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price19, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item19 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price19, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item19 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 20:
                {
                    if ( m_Stone.Item20 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price20, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item20 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price20, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item20 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 21:
                {
                    if ( m_Stone.Item21 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price21, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item21 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price21, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item21 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 22:
                {
                    if ( m_Stone.Item22 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price22, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item22 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price22, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item22 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 23:
                {
                    if ( m_Stone.Item23 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price23, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item23 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price23, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item23 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 24:
                {
                    if ( m_Stone.Item24 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price24, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item24 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price24, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item24 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 25:
                {
                    if ( m_Stone.Item25 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price25, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item25 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price25, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item25 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 26:
                {
                    if ( m_Stone.Item26 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price26, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item26 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price26, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item26 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 27:
                {
                    if ( m_Stone.Item27 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price27, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item27 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price27, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item27 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 28:
                {
                    if ( m_Stone.Item28 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price28, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item28 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price28, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item28 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 29:
                {
                    if ( m_Stone.Item29 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price29, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item29 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price29, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item29 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 30:
                {
                    if ( m_Stone.Item30 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price30, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item30 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price30, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item30 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 31:
                {
                    if ( m_Stone.Item31 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price31, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item31 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price31, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item31 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 32:
                {
                    if ( m_Stone.Item32 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price32, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item32 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price32, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item32 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 33:
                {
                    if ( m_Stone.Item33 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price33, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item33 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price33, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item33 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 34:
                {
                    if ( m_Stone.Item34 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price34, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item34 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price34, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item34 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 35:
                {
                    if ( m_Stone.Item35 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price35, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item35 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price35, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item35 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 36:
                {
                    if ( m_Stone.Item36 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price36, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item36 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price36, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item36 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 37:
                {
                    if ( m_Stone.Item37 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price37, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item37 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price37, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item37 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 38:
                {
                    if ( m_Stone.Item38 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price38, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item38 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price38, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item38 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 39:
                {
                    if ( m_Stone.Item39 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price39, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item39 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price39, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item39 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 40:
                {
                    if ( m_Stone.Item40 == null )
                        return;

                    if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.Price40, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item40 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else if ( from.BankBox.ConsumeTotal( m_Stone.Currency, m_Stone.Price40, true ) )
                    {
                        try
                        {
                            Type type = VendorType.GetType( m_Stone.Item40 );
                            if ( type != null )
                            {
                                try
                                {
                                    object o = Activator.CreateInstance( type );

                                    if ( o is Mobile )
                                    {
                                        Mobile m = (Mobile)o;

                                        m.Map = from.Map;
                                        m.Location = from.Location;
                                        if ( m is BaseCreature )
                                        {
                                            BaseCreature c = (BaseCreature)m;
                                            c.ControlMaster = from;
                                            c.Controlled = true;
                                            c.ControlOrder = OrderType.Follow;
                                            c.ControlTarget = from;
                                            if ( m_Stone.Bonded == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BondedPrice, true ) )
                                                {
                                                    c.IsBonded = true;
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;
                                                }
                                                else
                                                {
                                                    m_Stone.Blessed = false;
                                                    m_Stone.Bonded = false;

                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bond the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to bond the creature." );
                                                }
                                            }
                                            if ( m_Stone.Hued == true )
                                            {
                                                if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                                {
                                                    from.SendHuePicker( new CreatureHuePicker( c, this ) );
                                                    m_Stone.Hued = false;
                                                    m_Stone.Blessed = false;
                                                }
                                                else
                                                {
                                                    if ( m_Stone.Currency.Name != null )
                                                        from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the creature." );
                                                    else
                                                        from.SendMessage( "You do not have enough of this stone's currency to hue the creature." );
                                                }
                                            }

                                            if ( c.Name != null )
                                                from.SendMessage( "You have bought "+ c.Name +"." );
                                            else
                                                from.SendMessage( "You have bought a creature" );
                                        }
                                    }
                                    if ( o is Item )
                                    {
                                        Item item = (Item)o;
                                        if ( m_Stone.Blessed == true )
                                        {
                                            if ( item.LootType == LootType.Blessed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item already comes blessed." );
                                            }
                                            else if ( item.LootType == LootType.Cursed )
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                from.SendMessage( "This item is of the loot type 'cursed' you may not bless it." );
                                            }
                                            else if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.BlessedPrice, true ) )
                                            {
                                                item.LootType = LootType.Blessed;
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                m_Stone.Blessed = false;
                                                m_Stone.Bonded = false;

                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to bless the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to bless the item." );
                                            }
                                        }
                                        if ( m_Stone.Hued == true )
                                        {
                                            if ( from.Backpack.ConsumeTotal( m_Stone.Currency, m_Stone.HuedPrice, true ) )
                                            {
                                                from.SendHuePicker( new ItemHuePicker( item, this ) );
                                                m_Stone.Hued = false;
                                                m_Stone.Bonded = false;
                                            }
                                            else
                                            {
                                                if ( m_Stone.Currency.Name != null )
                                                    from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" to hue the item." );
                                                else
                                                    from.SendMessage( "You do not have enough of this stone's currency to hue the item." );
                                            }
                                        }

                                        from.Backpack.DropItem( item );

                                        if ( item.Name != null )
                                            from.SendMessage( "You have bought "+ item.Name +"." );
                                        else
                                            from.SendMessage( "You have bought an item." );
                                    }
                                }
                                catch
                                {
                                    from.SendMessage( "This item doesn't seem to be constructable, please call the shard staff to come and fix this problem." );
                                }
                            }
                        }
                        catch
                        {
                            from.SendMessage( "This is not an item, please call the shard staff to come and fix this problem." );
                        }
                    }
                    else
                    {
                        if ( m_Stone.Currency.Name != null )
                            from.SendMessage( "You do not have enough "+ m_Stone.Currency.Name +" for that." );
                        else
                            from.SendMessage( "You do not have enough of this stone's currency for that." );
                    }
                    break;
                }
                case 41:
                {
                    from.SendGump( new EditVendorGump( from, m_Stone ) );
                    break;
                }
            }
        }
Esempio n. 42
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            int type, index;

            if (!FromButtonID(info.ButtonID, out type, out index))
            {
                return;
            }

            switch (type)
            {
            case 0:     // general
            {
                switch (index)
                {
                case 0:             // vote
                {
                    if (m_Faction.Election != null)
                    {
                        m_From.SendGump(new ElectionGump(m_From, m_Faction.Election));
                    }
                    break;
                }

                case 1:             // leave
                {
                    m_From.SendGump(new LeaveFactionGump(m_From, m_Faction));
                    break;
                }
                }

                break;
            }

            case 1:     // merchant title
            {
                if (index >= 0 && index <= MerchantTitles.Info.Length)
                {
                    PlayerState pl = PlayerState.Find(m_From);

                    MerchantTitle     newTitle = (MerchantTitle)index;
                    MerchantTitleInfo mti      = MerchantTitles.GetInfo(newTitle);

                    if (mti == null)
                    {
                        m_From.SendLocalizedMessage(1010120);         // Your merchant title has been removed

                        if (pl != null)
                        {
                            pl.MerchantTitle = newTitle;
                        }
                    }
                    else if (MerchantTitles.IsQualified(m_From, mti))
                    {
                        m_From.SendLocalizedMessage(mti.Assigned);

                        if (pl != null)
                        {
                            pl.MerchantTitle = newTitle;
                        }
                    }
                }

                break;
            }

            case 2:     // transfer silver
            {
                if (!m_Faction.IsCommander(m_From))
                {
                    return;
                }

                List <Town> towns = Town.Towns;

                if (index >= 0 && index < towns.Count)
                {
                    Town town = towns[index];

                    if (town.Owner == m_Faction)
                    {
                        if (m_Faction.Silver >= 10000)
                        {
                            m_Faction.Silver -= 10000;
                            town.Silver      += 10000;

                            // 10k in silver has been received by:
                            m_From.SendLocalizedMessage(1042726, true, " " + town.Definition.FriendlyName);
                        }
                    }
                }

                break;
            }

            case 3:     // change tithe
            {
                if (!m_Faction.IsCommander(m_From))
                {
                    return;
                }

                if (index >= 0 && index <= 10)
                {
                    m_Faction.Tithe = index * 10;
                }

                break;
            }
            }
        }
Esempio n. 43
0
        public override void OnResponse( NetState state, RelayInfo info )
        {
            Mobile from = state.Mobile;

            switch( info.ButtonID )
            {
                case 0: // Closed or Cancel
                {
                    return;
                }
                default:
                {
                    // Make sure that the OK, button was pressed
                    if( info.ButtonID == 1 )
                    {
                        // Get the array of switches selected
                        ArrayList Selections = new ArrayList( info.Switches );
                        string prefix = Server.Commands.CommandSystem.Prefix;

                        from.Say( "SPAWNING FELUCCA..." );

                        // Now spawn any selected maps

                        if( Selections.Contains( 101 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/BlightedGrove.map", prefix ) );
                        }
                        if( Selections.Contains( 102 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/BritainSewer.map", prefix ) );
                        }
                        if( Selections.Contains( 103 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/Covetous.map", prefix ) );
                        }
                        if( Selections.Contains( 104 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/Deceit.map", prefix ) );
                        }
                        if( Selections.Contains( 105 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/Despise.map", prefix ) );
                        }
                        if( Selections.Contains( 106 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/Destard.map", prefix ) );
                        }
                        if( Selections.Contains( 107 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/Fire.map", prefix ) );
                        }
                        if( Selections.Contains( 108 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/Graveyards.map", prefix ) );
                        }
                        if( Selections.Contains( 109 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/Hythloth.map", prefix ) );
                        }
                        if( Selections.Contains( 110 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/Ice.map", prefix ) );
                        }
                        if( Selections.Contains( 111 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/Khaldun.map", prefix ) );
                        }
                        if( Selections.Contains( 112 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/LostLands.map", prefix ) );
                        }
                        if( Selections.Contains( 113 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/OrcCaves.map", prefix ) );
                        }
                        if( Selections.Contains( 114 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/Outdoors.map", prefix ) );
                        }
                        if( Selections.Contains( 115 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/PaintedCaves.map", prefix ) );
                        }
                        if( Selections.Contains( 116 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/PalaceOfParoxysmus.map", prefix ) );
                        }
                        if( Selections.Contains( 117 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/PrismOfLight.map", prefix ) );
                        }
                        if( Selections.Contains( 118 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/Sanctuary.map", prefix ) );
                        }
                        if( Selections.Contains( 119 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/SeaLife.map", prefix ) );
                        }
                        if( Selections.Contains( 120 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/Shame.map", prefix ) );
                        }
                        if( Selections.Contains( 121 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/SolenHive.map", prefix ) );
                        }
                        if( Selections.Contains( 122 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/TerathanKeep.map", prefix ) );
                        }
                        if( Selections.Contains( 123 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/TownsLife.map", prefix ) );
                        }
                        if( Selections.Contains( 124 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/TownsPeople.map", prefix ) );
                        }
                        if( Selections.Contains( 125 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/TrinsicPassage.map", prefix ) );
                        }
                        if( Selections.Contains( 126 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/Vendors.map", prefix ) );
                        }
                        if( Selections.Contains( 127 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/WildLife.map", prefix ) );
                        }
                        if( Selections.Contains( 128 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen felucca/Wrong.map", prefix ) );
                        }
                    }

                    from.Say( "Spawn generation completed!" );
                    break;
                }
            }
        }
Esempio n. 44
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            if (m_Player == null)
            {
                return;
            }

            bool closeGump = true;

            if (m_Player == null)
            {
                return;
            }
            if (m_SocietiesJobContract == null)
            {
                m_Player.SendMessage("That job contract is no longer accessible");
                return;
            }

            if (m_SocietiesJobContract.Deleted)
            {
                m_Player.SendMessage("That job contract is no longer accessible");
                return;
            }

            if (m_SocietiesJobContract.m_Job == null)
            {
                m_Player.SendMessage("That job is no longer available");
                return;
            }

            if (m_SocietiesJobContract.m_Job.Deleted)
            {
                m_Player.SendMessage("That job is no longer available");
                return;
            }

            SocietyJob societyJob = m_SocietiesJobContract.m_Job;
            SocietyJobPlayerProgress jobPlayerProgress = Societies.GetSocietiesJobPlayerProgress(m_Player, societyJob);

            switch (info.ButtonID)
            {
            //Guide
            case 1:
                closeGump = false;
                break;

            //Turn In
            case 2:
                if (m_SocietiesJobContract.m_Player != m_Player)
                {
                    m_Player.SendMessage("That job contract does not belong to you.");
                }

                else if (societyJob.m_Expiration <= DateTime.UtcNow)
                {
                    m_Player.SendMessage("That job contract has expired.");
                }

                else if (jobPlayerProgress != null)
                {
                    if (jobPlayerProgress.m_ProgressAmount < societyJob.m_TargetNumber)
                    {
                        m_Player.SendMessage("You have not completed all of the requirements of that contract yet.");
                    }

                    else if (societyJob.m_DestinationTown != null)
                    {
                        if (m_Player.Region != societyJob.m_DestinationTown.region)
                        {
                            m_Player.SendMessage("You must be within " + societyJob.m_DestinationTown.TownName + " to turn in that contract.");
                        }

                        else
                        {
                            Mobile matchingMobile = null;

                            IPooledEnumerable m_NearbyMobiles = m_Player.Map.GetMobilesInRange(m_Player.Location, 8);

                            int closestMobile = 10000;

                            foreach (Mobile mobile in m_NearbyMobiles)
                            {
                                if (!mobile.Alive)
                                {
                                    continue;
                                }
                                if (mobile.Hidden)
                                {
                                    continue;
                                }

                                if (mobile.GetType() == societyJob.m_DestinationMobile)
                                {
                                    int distance = Utility.GetDistance(m_Player.Location, mobile.Location);

                                    if (distance < closestMobile)
                                    {
                                        matchingMobile = mobile;
                                        closestMobile  = distance;
                                    }
                                }
                            }

                            m_NearbyMobiles.Free();

                            if (matchingMobile != null)
                            {
                                bool validCompletion = societyJob.TurnIn(m_Player, matchingMobile);

                                if (validCompletion)
                                {
                                    societyJob.Complete(m_Player);
                                }
                            }

                            else
                            {
                                m_Player.SendMessage("You must be near a " + societyJob.m_DestinationMobileName + " in order to turn in that contract.");
                            }
                        }
                    }
                }

                closeGump = false;
                break;
            }

            if (!closeGump)
            {
                m_Player.CloseGump(typeof(SocitiesJobContractGump));
                m_Player.SendGump(new SocitiesJobContractGump(m_Player, m_SocietiesJobContract));
            }

            else
            {
                m_Player.SendSound(CloseGumpSound);
            }
        }
Esempio n. 45
0
        public override void OnResponse( NetState state, RelayInfo info )
        {
            Mobile from = state.Mobile;

            switch( info.ButtonID )
            {
                case 0: // Closed or Cancel
                {
                    return;
                }

                default:
                {
                    // Make sure that the OK, button was pressed
                    if( info.ButtonID == 1 )
                    {
                        // Get the array of switches selected
                        ArrayList Selections = new ArrayList( info.Switches );
                        string prefix = Server.Commands.CommandSystem.Prefix;

                        from.Say( "SPAWNING MALAS..." );

                        // Now spawn any selected maps

                        if( Selections.Contains( 101 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen malas/Doom.map", prefix ) );
                        }
                        if( Selections.Contains( 102 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen malas/North.map", prefix ) );
                        }
                        if( Selections.Contains( 103 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen malas/OrcForts.map", prefix ) );
                        }
                        if( Selections.Contains( 104 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen malas/South.map", prefix ) );
                        }
                        if( Selections.Contains( 105 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen malas/Vendors.map", prefix ) );
                        }
                        if( Selections.Contains( 106 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen malas/Citadel.map", prefix ) );
                        }
                        if( Selections.Contains( 107 ) == true )
                        {
                            CommandSystem.Handle( from, String.Format( "{0}Spawngen malas/Labyrinth.map", prefix ) );
                        }
                    }

                    from.Say( "Spawn generation completed!" );

                    break;
                }
            }
        }
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            int          page  = m_Page;
            Mobile       from  = m_From;
            BaseHouse    house = m_House;
            BasePlayerBB board = m_Board;

            if (house == null || !house.IsLockedDown(board))
            {
                from.SendLocalizedMessage(1062396);                   // This bulletin board must be locked down in a house to be usable.
                return;
            }
            else if (!from.InRange(board.GetWorldLocation(), 2) || !from.InLOS(board))
            {
                from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045);                   // I can't reach that.
                return;
            }
            else if (!BasePlayerBB.CheckAccess(house, from))
            {
                from.SendLocalizedMessage(1062398);                   // You are not allowed to post to this bulletin board.
                return;
            }

            switch (info.ButtonID)
            {
            case 1:                     // Post message
            {
                from.Prompt = new BasePlayerBB.PostPrompt(page, house, board, false);
                from.SendLocalizedMessage(1062397);                           // Please enter your message:

                break;
            }

            case 2:                     // Set title
            {
                if (house.IsOwner(from))
                {
                    from.Prompt = new BasePlayerBB.SetTitlePrompt(page, house, board);
                    from.SendLocalizedMessage(1062402);                               // Enter new title:
                }

                break;
            }

            case 3:                     // Post greeting
            {
                if (house.IsOwner(from))
                {
                    from.Prompt = new BasePlayerBB.PostPrompt(page, house, board, true);
                    from.SendLocalizedMessage(1062404);                               // Enter new greeting (this will always be the first post):
                }

                break;
            }

            case 4:                     // Scroll up
            {
                if (page == 0)
                {
                    page = board.Messages.Count;
                }
                else
                {
                    page -= 1;
                }

                from.SendGump(new PlayerBBGump(from, house, board, page));

                break;
            }

            case 5:                     // Scroll down
            {
                page += 1;
                page %= board.Messages.Count + 1;

                from.SendGump(new PlayerBBGump(from, house, board, page));

                break;
            }

            case 6:                     // Banish poster
            {
                if (house.IsOwner(from))
                {
                    if (page >= 1 && page <= board.Messages.Count)
                    {
                        PlayerBBMessage message = (PlayerBBMessage)board.Messages[page - 1];
                        Mobile          poster  = message.Poster;

                        if (poster == null)
                        {
                            from.SendGump(new PlayerBBGump(from, house, board, page));
                            return;
                        }

                        if (poster.AccessLevel > AccessLevel.Player && from.AccessLevel <= poster.AccessLevel)
                        {
                            from.SendLocalizedMessage(501354);                                       // Uh oh...a bigger boot may be required.
                        }
                        else if (house.IsFriend(poster))
                        {
                            from.SendLocalizedMessage(1060750);                                       // That person is a friend, co-owner, or owner of this house, and therefore cannot be banished!
                        }
                        else if (poster is PlayerVendor)
                        {
                            from.SendLocalizedMessage(501351);                                       // You cannot eject a vendor.
                        }
                        else if (house.Bans.Count >= BaseHouse.MaxBans)
                        {
                            from.SendLocalizedMessage(501355);                                       // The ban limit for this house has been reached!
                        }
                        else if (house.IsBanned(poster))
                        {
                            from.SendLocalizedMessage(501356);                                       // This person is already banned!
                        }
                        else if (poster is BaseCreature && ((BaseCreature)poster).NoHouseRestrictions)
                        {
                            from.SendLocalizedMessage(1062040);                                       // You cannot ban that.
                        }
                        else
                        {
                            if (!house.Bans.Contains(poster))
                            {
                                house.Bans.Add(poster);
                            }

                            from.SendLocalizedMessage(1062417);                                       // That person has been banned from this house.

                            if (house.IsInside(poster) && !BasePlayerBB.CheckAccess(house, poster))
                            {
                                poster.MoveToWorld(house.BanLocation, house.Map);
                            }
                        }
                    }

                    from.SendGump(new PlayerBBGump(from, house, board, page));
                }

                break;
            }

            case 7:                     // Delete message
            {
                if (house.IsOwner(from))
                {
                    if (page >= 1 && page <= board.Messages.Count)
                    {
                        board.Messages.RemoveAt(page - 1);
                    }

                    from.SendGump(new PlayerBBGump(from, house, board, 0));
                }

                break;
            }

            case 8:                     // Post props
            {
                if (from.AccessLevel >= AccessLevel.GameMaster)
                {
                    PlayerBBMessage message = board.Greeting;

                    if (page >= 1 && page <= board.Messages.Count)
                    {
                        message = (PlayerBBMessage)board.Messages[page - 1];
                    }

                    from.SendGump(new PlayerBBGump(from, house, board, page));
                    from.SendGump(new PropertiesGump(from, message));
                }

                break;
            }
            }
        }
Esempio n. 47
0
 public override void OnResponse( NetState state, RelayInfo info )
 {
     if ( info.ButtonID == 1 )
             m_Gate.EndConfirmation( m_From );
 }
        public override void OnResponse(NetState state, RelayInfo info)
        {
            if (to != state.Mobile)
            {
                to = state.Mobile;
            }

            if (of is BaseCreature && info.ButtonID >= 100 && of.SkillPoints > 0)
            {
                ((BaseCreature)of).Skills[(info.ButtonID / 100)].Base += 1;
                of.SkillPoints -= 1;
                ReloadGump(to);
                return;
            }

            #region [Enum Buttons]
            switch (info.ButtonID)
            {
            case (int)Buttons.StatGump:
            {
                to.SendGump(new StatsGump(to)); break;
            }

            case (int)Buttons.Previous_SkillsPage:
            {
                if (CurrentPage > 1)
                {
                    CurrentPage -= 1;
                    ReloadGump(to);
                }

                break;
            }

            case (int)Buttons.Next_SkillsPage:
            {
                if (CurrentPage < 7)
                {
                    CurrentPage += 1;
                    ReloadGump(to);
                }
                break;
            }

            case (int)Buttons.Increase_Str:
            {
                if (of.StatPoints > 0 && of.RawStr < 150)
                {
                    of.RawStr     += 1;
                    of.StatPoints -= 1;
                }

                ReloadGump(to);
                break;
            }

            case (int)Buttons.Increase_Dex:
            {
                if (of.StatPoints > 0 && of.RawDex < 150)
                {
                    of.RawDex     += 1;
                    of.StatPoints -= 1;
                }

                ReloadGump(to);
                break;
            }

            case (int)Buttons.Increase_Int:
            {
                if (of.StatPoints > 0 && of.RawInt < 150)
                {
                    of.RawInt     += 1;
                    of.StatPoints -= 1;
                }

                ReloadGump(to);
                break;
            }

            case (int)Buttons.Increase_Skill1:
            {
                if (of.SkillPoints > 0 && Skill1.Base < 140)
                {
                    Skill1.Base    += 1;
                    of.SkillPoints -= 1;

                    if (of is PlayerMobile && ((PlayerMobile)of).Class == Class.Ranger)
                    {
                        ((PlayerMobile)of).FollowersMax = ((int)(Skill1.Base / 23)) + 4;
                    }
                }

                ReloadGump(to);
                break;
            }

            case (int)Buttons.Increase_Skill2:
            {
                if (of.SkillPoints > 0 && Skill2.Base < 140)
                {
                    Skill2.Base    += 1;
                    of.SkillPoints -= 1;
                }

                ReloadGump(to);
                break;
            }

            case (int)Buttons.Increase_Skill3:
            {
                if (of.SkillPoints > 0 && Skill3.Base < 140)
                {
                    Skill3.Base    += 1;
                    of.SkillPoints -= 1;
                }

                ReloadGump(to);
                break;
            }

            case (int)Buttons.Increase_Skill4:
            {
                if (of.SkillPoints > 0 && Skill4.Base < 140)
                {
                    Skill4.Base    += 1;
                    of.SkillPoints -= 1;
                }

                ReloadGump(to);
                break;
            }

            case (int)Buttons.Increase_Skill5:
            {
                if (of.SkillPoints > 0 && Skill5.Base < 140)
                {
                    Skill5.Base    += 1;
                    of.SkillPoints -= 1;
                }

                ReloadGump(to);
                break;
            }

            case (int)Buttons.Increase_Skill6:
            {
                if (of.SkillPoints > 0 && Skill6.Base < 140)
                {
                    Skill6.Base    += 1;
                    of.SkillPoints -= 1;
                }

                ReloadGump(to);
                break;
            }

            case (int)Buttons.Increase_Skill7:
            {
                if (of.SkillPoints > 0 && Skill7.Base < 140)
                {
                    Skill7.Base    += 1;
                    of.SkillPoints -= 1;
                }

                ReloadGump(to);
                break;
            }

            case (int)Buttons.Increase_Skill8:
            {
                if (of.SkillPoints > 0 && Skill8.Base < 140)
                {
                    Skill8.Base    += 1;
                    of.SkillPoints -= 1;
                }

                ReloadGump(to);
                break;
            }

            case (int)Buttons.Exit:
            {
                to.CloseGump(typeof(PointDistributionGump));
                if (of.StatPoints > 0 || of.SkillPoints > 0)
                {
                    to.CloseGump(typeof(NoticeGump));
                    to.SendGump(new NoticeGump(to, of));
                }

                break;
            }
            }
            #endregion
        }
        public override void OnResponse( NetState state, RelayInfo info )
        {
            Mobile from = state.Mobile;

            if ( from == null )
                return;

            if ( info.ButtonID == 0 )
            {
                from.SendGump( new StaffVendorGump( from, m_Stone ) );
            }
            if ( info.ButtonID == 1 )
            {
                string item = "";
                string gumpname = "";
                int price = 0;
                int amount = 0;
                int bbprice = 0;
                bool blessbond = info.IsSwitched( 1 );
                string description = "";

                string[] tr = new string[ 6 ];
                foreach( TextRelay t in info.TextEntries )
                {
                    tr[ t.EntryID ] = t.Text;
                }

                try { price = (int) uint.Parse( tr[ 2 ] ); }
                catch {}
                try { amount = (int) uint.Parse( tr[ 3 ] ); }
                catch {}
                try { bbprice = (int) uint.Parse( tr[ 4 ] ); }
                catch {}
                if ( tr[ 0 ] != null )
                    item = tr[ 0 ];
                if ( tr[ 1 ] != null )
                    gumpname = tr[ 1 ];
                if ( tr[ 5 ] != null )
                    description = tr[ 5 ];

                if ( amount <= 0 )
                    amount = 1;

                if ( item != "" && gumpname != "" )
                {
                    VSItem vsi = new VSItem( item, gumpname, price, amount, blessbond, bbprice, description );
                    m_Stone.ItemList.Add( vsi );

                    from.SendMessage( "Item Added." );
                }
                else
                {
                    from.SendMessage( "You must set a property for each one." );
                }

                from.SendGump( new TokenVendorStoneAddItemGump( from, m_Stone ) );
            }
        }
Esempio n. 50
0
        public override void OnResponse(NetState state, RelayInfo info)
        {
            if (m_Spawner.Deleted || state.Mobile.AccessLevel < AccessLevel.GameMaster)
            {
                return;
            }

            switch (info.ButtonID)
            {
            case 0:     // Closed
            {
                return;
            }

            case 1:     // Apply
            {
                m_Spawner.SpawnNames = CreateArray(info, state.Mobile);

                break;
            }

            case 2:     // Bring to Home
            {
                m_Spawner.BringToHome();

                break;
            }

            case 3:     // Total Respawn
            {
                m_Spawner.Respawn();

                break;
            }

            default:
            {
                int buttonID = info.ButtonID - 4;
                int index    = buttonID / 2;
                int type     = buttonID % 2;

                TextRelay entry = info.GetTextEntry(index);

                if (entry != null && entry.Text.Length > 0)
                {
                    if (type == 0)         // Spawn creature
                    {
                        m_Spawner.Spawn(entry.Text);
                    }
                    else         // Remove creatures
                    {
                        m_Spawner.RemoveSpawned(entry.Text);
                    }

                    m_Spawner.SpawnNames = CreateArray(info, state.Mobile);
                }

                break;
            }
            }

            state.Mobile.SendGump(new SpawnerGump(m_Spawner));
        }
        public override void OnResponse( NetState state, RelayInfo info )
        {
            Mobile from = state.Mobile;

            if ( from.Backpack == null || from.BankBox == null )
                return;

            if ( info.ButtonID == 0 )
            {
                from.SendGump( new VendorGump( m_Shopper, m_Stone ) );
            }
            if ( info.ButtonID == 1 )
            {
                if ( m_Stone.GetCurrency() == null && m_Shopper.TotalPrice() > 0 )
                    from.SendMessage( "There was no set currency to this stone." );
                else if ( m_Shopper.ItemList.Count <= 0 )
                {
                    from.SendMessage( "You did not select anything to buy." );
                    from.SendGump( new TokenVendorStoneBuyGump( m_Shopper, m_Stone ) );
                }
                else if ( m_Stone.Currency.ToLower() == "daat99tokens" )
                {
                    Item[] tls = from.Backpack.FindItemsByType( typeof( TokenLedger ) );

                    TokenLedger ledger = null;

                    foreach( TokenLedger tl in tls )
                    {
                        if ( tl.Owner == from.Serial )
                        {
                            if ( ledger != null && tl.Tokens > ledger.Tokens )
                                ledger = tl;
                            else if ( ledger == null )
                                ledger = tl;
                        }
                    }

                    if ( ledger == null )
                    {
                        from.SendMessage( "You do not have a token ledger." );
                        return;
                    }
                    else if ( ledger.Tokens < m_Shopper.TotalPrice() )
                    {
                        from.SendMessage( "Your ledger does not have enouh tokens in it to buy this." );
                        return;
                    }

                    ledger.Tokens -= m_Shopper.TotalPrice();

                    for( int i = 0; i < m_Shopper.ItemList.Count; ++i )
                    {
                        int n = (int)m_Shopper.ItemList[i];

                        VSItem vsi = (VSItem)m_Stone.ItemList[n];

                        Type type = vsi.GetItemType();

                        if ( type != null )
                        {
                            object o = Activator.CreateInstance( type );

                            if ( o is Mobile )
                            {
                                Mobile m = (Mobile)o;

                                ArrayList items = new ArrayList();

                                m.MoveToWorld( from.Location, from.Map );
                                if ( m is BaseCreature )
                                {
                                    BaseCreature c = (BaseCreature)m;
                                    c.ControlMaster = from;
                                    c.Controlled = true;
                                    c.ControlTarget = from;
                                    c.ControlOrder = OrderType.Follow;

                                    items.Add( c );

                                    if ( vsi.BlessBond )
                                        from.SendGump( new TokenVendorStoneBlessBondGump( from, vsi, m_Stone, items ) );
                                }
                                int total = 0;
                                while( vsi.Amount-1 > total )
                                {
                                    object o2 = Activator.CreateInstance( type );
                                    Mobile m2 = (Mobile)o2;

                                    m2.MoveToWorld( from.Location, from.Map );
                                    if ( m2 is BaseCreature )
                                    {
                                        BaseCreature c = (BaseCreature)m2;
                                        c.ControlMaster = from;
                                        c.Controlled = true;
                                        c.ControlTarget = from;
                                        c.ControlOrder = OrderType.Follow;

                                        items.Add( c );
                                    }
                                    total++;
                                }
                            }
                            if ( o is Item )
                            {
                                Item item = (Item)o;

                                ArrayList items = new ArrayList();

                                items.Add( item );

                                if ( item.Stackable )
                                {
                                    if ( vsi.Amount > 60000 )
                                    {
                                        item.Amount = 60000;

                                        int aleft = vsi.Amount-60000;

                                        while( aleft > 0 )
                                        {
                                            object o2 = Activator.CreateInstance( type );
                                            if ( o2 is Item )
                                            {
                                                Item item2 = (Item)o2;

                                                if ( aleft > 60000 )
                                                {
                                                    item2.Amount = 60000;
                                                    aleft -= 60000;
                                                }
                                                else
                                                {
                                                    item2.Amount = aleft;
                                                    aleft = 0;
                                                }
                                                from.AddToBackpack( item2 );
                                                items.Add( item2 );
                                            }
                                        }
                                    }
                                    else
                                        item.Amount = vsi.Amount;
                                }
                                else
                                {
                                    int total = 0;
                                    while( vsi.Amount-1 > total )
                                    {
                                        object o2 = Activator.CreateInstance( type );
                                        if ( o2 is Item )
                                        {
                                            Item item2 = (Item)o2;
                                            from.AddToBackpack( item2 );
                                            items.Add( item2 );
                                        }
                                        total++;
                                    }
                                }

                                if ( vsi.BlessBond )
                                    from.SendGump( new TokenVendorStoneBlessBondGump( from, vsi, m_Stone, items ) );
                                from.AddToBackpack( item );
                            }
                        }
                    }
                    if ( m_Stone.Currency != null && m_Stone.Currency != "" )
                        from.SendMessage( "You buy the items with the "+m_Stone.Currency+" in your backpack." );
                    else
                        from.SendMessage( "You buy the items with the currency in your backpack." );
                }
                else if ( m_Shopper.TotalPrice() == 0 || from.Backpack.ConsumeTotal( m_Stone.GetCurrency(), m_Shopper.TotalPrice(), true ) )
                {
                    for( int i = 0; i < m_Shopper.ItemList.Count; ++i )
                    {
                        int n = (int)m_Shopper.ItemList[i];

                        VSItem vsi = (VSItem)m_Stone.ItemList[n];

                        Type type = vsi.GetItemType();

                        if ( type != null )
                        {
                            object o = Activator.CreateInstance( type );

                            if ( o is Mobile )
                            {
                                Mobile m = (Mobile)o;

                                ArrayList items = new ArrayList();

                                m.MoveToWorld( from.Location, from.Map );
                                if ( m is BaseCreature )
                                {
                                    BaseCreature c = (BaseCreature)m;
                                    c.ControlMaster = from;
                                    c.Controlled = true;
                                    c.ControlTarget = from;
                                    c.ControlOrder = OrderType.Follow;

                                    items.Add( c );
                                }
                                int total = 0;
                                while( vsi.Amount-1 > total )
                                {
                                    object o2 = Activator.CreateInstance( type );
                                    Mobile m2 = (Mobile)o2;

                                    m2.MoveToWorld( from.Location, from.Map );
                                    if ( m2 is BaseCreature )
                                    {
                                        BaseCreature c = (BaseCreature)m2;
                                        c.ControlMaster = from;
                                        c.Controlled = true;
                                        c.ControlTarget = from;
                                        c.ControlOrder = OrderType.Follow;

                                        items.Add( c );
                                    }
                                    total++;
                                }

                                if ( vsi.BlessBond )
                                    from.SendGump( new TokenVendorStoneBlessBondGump( from, vsi, m_Stone, items ) );
                            }
                            if ( o is Item )
                            {
                                Item item = (Item)o;

                                ArrayList items = new ArrayList();

                                items.Add( item );

                                if ( item.Stackable )
                                {
                                    if ( vsi.Amount > 60000 )
                                    {
                                        item.Amount = 60000;

                                        int aleft = vsi.Amount-60000;

                                        while( aleft > 0 )
                                        {
                                            object o2 = Activator.CreateInstance( type );
                                            if ( o2 is Item )
                                            {
                                                Item item2 = (Item)o2;

                                                if ( aleft > 60000 )
                                                {
                                                    item2.Amount = 60000;
                                                    aleft -= 60000;
                                                }
                                                else
                                                {
                                                    item2.Amount = aleft;
                                                    aleft = 0;
                                                }
                                                from.AddToBackpack( item2 );
                                                items.Add( item2 );
                                            }
                                        }
                                    }
                                    else
                                        item.Amount = vsi.Amount;
                                }
                                else
                                {
                                    int total = 0;
                                    while( vsi.Amount-1 > total )
                                    {
                                        object o2 = Activator.CreateInstance( type );
                                        if ( o2 is Item )
                                        {
                                            Item item2 = (Item)o2;
                                            from.AddToBackpack( item2 );
                                            items.Add( item2 );
                                        }
                                        total++;
                                    }
                                }

                                if ( vsi.BlessBond )
                                    from.SendGump( new TokenVendorStoneBlessBondGump( from, vsi, m_Stone, items ) );
                                from.AddToBackpack( item );
                            }
                        }
                    }
                    if ( m_Shopper.TotalPrice() == 0 )
                        from.SendMessage( "You recieve the item for free." );
                    else if ( m_Stone.Currency != null && m_Stone.Currency != "" )
                        from.SendMessage( "You buy the items with the "+m_Stone.Currency+" in your backpack." );
                    else
                        from.SendMessage( "You buy the items with the currency in your backpack." );
                }
                else if ( from.BankBox.ConsumeTotal( m_Stone.GetCurrency(), m_Shopper.TotalPrice(), true ) )
                {
                    for( int i = 0; i < m_Shopper.ItemList.Count; ++i )
                    {
                        int n = (int)m_Shopper.ItemList[i];

                        VSItem vsi = (VSItem)m_Stone.ItemList[n];

                        Type type = vsi.GetItemType();

                        if ( type != null )
                        {
                            object o = Activator.CreateInstance( type );

                            if ( o is Mobile )
                            {
                                Mobile m = (Mobile)o;

                                ArrayList items = new ArrayList();

                                m.MoveToWorld( from.Location, from.Map );
                                if ( m is BaseCreature )
                                {
                                    BaseCreature c = (BaseCreature)m;
                                    c.ControlMaster = from;
                                    c.Controlled = true;
                                    c.ControlTarget = from;
                                    c.ControlOrder = OrderType.Follow;

                                    items.Add( c );

                                    if ( vsi.BlessBond )
                                        from.SendGump( new TokenVendorStoneBlessBondGump( from, vsi, m_Stone, items ) );
                                }
                                int total = 0;
                                while( vsi.Amount-1 > total )
                                {
                                    object o2 = Activator.CreateInstance( type );
                                    Mobile m2 = (Mobile)o2;

                                    m2.MoveToWorld( from.Location, from.Map );
                                    if ( m2 is BaseCreature )
                                    {
                                        BaseCreature c = (BaseCreature)m2;
                                        c.ControlMaster = from;
                                        c.Controlled = true;
                                        c.ControlTarget = from;
                                        c.ControlOrder = OrderType.Follow;

                                        items.Add( c );
                                    }
                                    total++;
                                }
                            }
                            if ( o is Item )
                            {
                                Item item = (Item)o;

                                ArrayList items = new ArrayList();

                                items.Add( item );

                                if ( item.Stackable )
                                {
                                    if ( vsi.Amount > 60000 )
                                    {
                                        item.Amount = 60000;

                                        int aleft = vsi.Amount-60000;

                                        while( aleft > 0 )
                                        {
                                            object o2 = Activator.CreateInstance( type );
                                            if ( o2 is Item )
                                            {
                                                Item item2 = (Item)o2;

                                                if ( aleft > 60000 )
                                                {
                                                    item2.Amount = 60000;
                                                    aleft -= 60000;
                                                }
                                                else
                                                {
                                                    item2.Amount = aleft;
                                                    aleft = 0;
                                                }
                                                from.AddToBackpack( item2 );
                                                items.Add( item2 );
                                            }
                                        }
                                    }
                                    else
                                        item.Amount = vsi.Amount;
                                }
                                else
                                {
                                    int total = 0;
                                    while( vsi.Amount-1 > total )
                                    {
                                        object o2 = Activator.CreateInstance( type );
                                        if ( o2 is Item )
                                        {
                                            Item item2 = (Item)o2;
                                            from.AddToBackpack( item2 );
                                            items.Add( item2 );
                                        }
                                        total++;
                                    }
                                }

                                if ( vsi.BlessBond )
                                    from.SendGump( new TokenVendorStoneBlessBondGump( from, vsi, m_Stone, items ) );
                                from.AddToBackpack( item );
                            }
                        }
                    }
                    if ( m_Stone.Currency != null && m_Stone.Currency != "" )
                        from.SendMessage( "You buy the items with the "+m_Stone.Currency+" in your bank box." );
                    else
                        from.SendMessage( "You buy the items with the currency in your bank box." );
                }
                else
                {
                    from.SendGump( new TokenVendorStoneBuyGump( m_Shopper, m_Stone ) );
                    from.SendMessage( "You cannot not afford the items on your list." );
                }
            }
            if ( info.ButtonID >= 2 )
            {
                if ( info.ButtonID-2 > m_Shopper.ItemList.Count-1 || info.ButtonID-2 < 0 )
                    return;
                m_Shopper.ItemList.Remove( m_Shopper.ItemList[info.ButtonID-2] );
                from.SendGump( new TokenVendorStoneBuyGump( m_Shopper, m_Stone ) );
            }
        }
Esempio n. 52
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            if (info.ButtonID != 2)
            {
                m_From.SendLocalizedMessage(503207); // Cancelled purchase.
                return;
            }

            if (!(m_Book.RootParent is PlayerVendor pv))
            {
                m_From.SendLocalizedMessage(1062382); // The deed selected is not available.
                return;
            }

            if (!m_Book.Entries.Contains(m_Entry))
            {
                pv.SayTo(m_From, 1062382); // The deed selected is not available.
                return;
            }

            var price = 0;

            if (pv.GetVendorItem(m_Book)?.IsForSale == false)
            {
                price = m_Entry.Price;
            }

            if (price != m_Price)
            {
                pv.SayTo(
                    m_From,
                    "The price has been been changed. If you like, you may offer to purchase the item again."
                    );
                return;
            }

            if (price == 0)
            {
                pv.SayTo(m_From, 1062382); // The deed selected is not available.
                return;
            }

            var item = m_Entry.Reconstruct();

            pv.Say(m_From.Name);

            var pack = m_From.Backpack;

            if (pack?.CheckHold(
                    m_From,
                    item,
                    true,
                    true,
                    0,
                    item.PileWeight + item.TotalWeight
                    ) != true)
            {
                pv.SayTo(m_From, 503204); // You do not have room in your backpack for this
                m_From.SendGump(new BOBGump(m_From, m_Book, m_Page));
                item.Delete();
            }
            else
            {
                if (pack.ConsumeTotal(typeof(Gold), price) || Banker.Withdraw(m_From, price))
                {
                    m_Book.Entries.Remove(m_Entry);
                    m_Book.InvalidateProperties();
                    pv.HoldGold += price;
                    m_From.AddToBackpack(item);
                    m_From.SendLocalizedMessage(
                        1045152
                        ); // The bulk order deed has been placed in your backpack.

                    if (m_Book.Entries.Count / 5 < m_Book.ItemCount)
                    {
                        m_Book.ItemCount--;
                        m_Book.InvalidateItems();
                    }

                    if (m_Book.Entries.Count > 0)
                    {
                        m_From.SendGump(new BOBGump(m_From, m_Book, m_Page));
                    }
                    else
                    {
                        m_From.SendLocalizedMessage(1062381); // The book is empty.
                    }
                }
                else
                {
                    pv.SayTo(m_From, 503205); // You cannot afford this item.
                    item.Delete();
                }
            }
        }
        public override void OnResponse( NetState state, RelayInfo info )
        {
            Mobile from = state.Mobile;

            if ( info.ButtonID == 0 )
                from.SendMessage( "Closed." );
        }
Esempio n. 54
0
        public override void OnResponse(RelayInfo info)
        {
            if (Addon == null || Addon.Deleted)
            {
                return;
            }

            int armslorebonus = (int)Math.Floor(User.Skills[SkillName.ArmsLore].Base / 20);
            int maxexp        = 15 + armslorebonus;
            int maxrunic      = 6 + armslorebonus;

            if (!Entry.Ready)
            {
                int index = 0;

                for (int i = 0; i < _ResistOrder.Length; i++)
                {
                    var textEntry = info.GetTextEntry(index);

                    if (textEntry != null)
                    {
                        var value = Utility.ToInt32(textEntry.Text);

                        if (value >= 0)
                        {
                            if (value > maxexp)
                            {
                                value = maxexp;
                            }

                            Entry.Exceptional[_ResistOrder[i]] = value;
                        }
                    }

                    index++;
                }

                for (int i = 0; i < _ResistOrder.Length; i++)
                {
                    var textEntry = info.GetTextEntry(index);

                    if (textEntry != null)
                    {
                        var value = Utility.ToInt32(textEntry.Text);

                        if (value >= 0)
                        {
                            if (value > maxexp)
                            {
                                value = maxexp;
                            }

                            Entry.Runic[_ResistOrder[i]] = value;
                        }
                    }

                    index++;
                }
            }

            if (info.ButtonID == 1)
            {
                if (Entry.Ready)
                {
                    if (Entry.Anvil == null || Entry.Anvil.Deleted)
                    {
                        User.SendLocalizedMessage(1159438); // A charge could not be refunded to the last Anvil of Artifacts tool you used, you must use this charge.
                    }
                    else if (!User.InRange(Entry.Anvil.GetWorldLocation(), 5))
                    {
                        User.SendLocalizedMessage(1159439); // A charge could not be refunded to the last Anvil of Artifacts tool you used because the item is not in range.
                    }
                    else
                    {
                        Entry.Anvil.UsesRemaining++;
                        Entry.Anvil = null;

                        User.SendLocalizedMessage(1159440); // A charged has been refunded to your Anvil of Artifacts tool.
                        User.SendLocalizedMessage(1159448); // The magical aura that surrounded you dissipates and you feel that your exceptional item resist chances have returned to normal.
                    }
                }
                else if (Addon.UsesRemaining > 0 && Entry.Exceptional.Sum(x => x.Value) == maxexp && Entry.Runic.Sum(x => x.Value) == maxrunic)
                {
                    Entry.Anvil = Addon;
                    Entry.Anvil.UsesRemaining--;

                    User.SendLocalizedMessage(1159449); // A magical aura surrounds you and you feel that your next attempt to craft an exceptional piece of armor will have favorable bonus resists.
                    Effects.SendPacket(User.Location, User.Map, new ParticleEffect(EffectType.FixedFrom, User.Serial, Server.Serial.Zero, 0x37C4, User.Location, User.Location, 1, 35, false, false, 1161, 0, 2, 0, 1, User.Serial, 209, 0));
                    User.PlaySound(580);
                }
                else
                {
                    Timer.DelayCall(TimeSpan.FromSeconds(0.2), () => Refresh());
                }
            }
        }
Esempio n. 55
0
        public override void OnResponse(NetState state, RelayInfo info)
        {
            Mobile from = state.Mobile;
            BaseCreature creature = null;
            TextRelay trMessageText = info.GetTextEntry((int)Buttons.MessageEntry);

            if (info.ButtonID == (int)Buttons.Close)
                return;

            if (info.ButtonID != (int)Buttons.SetCreature && !CheckCreature(from))
            {
                from.SendMessage("No Mobile Assigned");
                from.SendGump(new BCCGump(from, trMessageText.Text));
                return;
            }
            else if (info.ButtonID != (int)Buttons.SetCreature)
                creature = BCC.CreatureList[from];

            switch (info.ButtonID)
            {
                default: return;
                case (int)Buttons.SendMessage:
                    if (trMessageText.Text.Length >= 1)
                        creature.Say(trMessageText.Text);
                    from.SendGump(new BCCGump(from, ""));
                    return;
                case (int)Buttons.ToggleFrozen:
                    creature.Frozen = !creature.Frozen;
                    break;
                case (int)Buttons.ToggleHidden:
                    creature.Hidden = !creature.Hidden;
                    break;
                case (int)Buttons.SetCreature:
                    from.SendMessage("Click on the BaseCreature to Assign.");
                    from.Target = new BCC.CMAssignTarget();
                    return;
                case (int)Buttons.Teleport:
                    creature.PublicOverheadMessage(MessageType.Spell, creature.SpeechHue, true, "Rel Por", false);
                    from.Target = new BCC.TeleportTarget();
                    break;
                case (int)Buttons.GoTo:
                    from.MoveToWorld(creature.Location, creature.Map);
                    break;
            }

            from.SendGump(new BCCGump(from, trMessageText.Text));
        }
Esempio n. 56
0
 public override void OnResponse(RelayInfo info)
 {
     m_PollingTimer.Stop();
 }
        public override void OnResponse( NetState sender, RelayInfo info )
        {
            Mobile from = sender.Mobile;

            switch ( info.ButtonID )
            {
                case 0: //Case uses the ActionIDs defined above. Case 0 defines the actions for the button with the action id 0
                {
                    //Cancel
                    from.SendMessage( "Enjoy your new vinyard." );
                    break;
                }

            }
        }
Esempio n. 58
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            base.OnResponse(sender, info);

            PlayerMobile pm = sender.Mobile as PlayerMobile;

            if (!IsMember(pm, this.guild))
            {
                return;
            }

            pm.DisplayGuildTitle = info.IsSwitched(0);

            switch (info.ButtonID)
            {
            //1-3 handled by base.OnResponse
            case 4:
            {
                if (IsLeader(pm, this.guild))
                {
                    pm.SendLocalizedMessage(1013071);                              // Enter the new guild charter (50 characters max):

                    pm.BeginPrompt(new PromptCallback(SetCharter_Callback), true); //Have the same callback handle both canceling and deletion cause the 2nd callback would just get a text of ""
                }
                break;
            }

            case 5:
            {
                if (IsLeader(pm, this.guild))
                {
                    pm.SendLocalizedMessage(1013072);                              // Enter the new website for the guild (50 characters max):
                    pm.BeginPrompt(new PromptCallback(SetWebsite_Callback), true); //Have the same callback handle both canceling and deletion cause the 2nd callback would just get a text of ""
                }
                break;
            }

            case 6:
            {
                //Alliance Roster
                if (this.guild.Alliance != null && this.guild.Alliance.IsMember(this.guild))
                {
                    pm.SendGump(new AllianceInfo.AllianceRosterGump(pm, this.guild, this.guild.Alliance));
                }

                break;
            }

            case 7:
            {
                //Resign
                if (!this.m_IsResigning)
                {
                    pm.SendLocalizedMessage(1063332);         // Are you sure you wish to resign from your guild?
                    pm.SendGump(new GuildInfoGump(pm, this.guild, true, false));
                }
                else
                {
                    this.guild.RemoveMember(pm, 1063411);         // You resign from your guild.
                }
                break;
            }

            case 8:
                if (IsLeader(pm, guild))
                {
                    if (pm.Young)
                    {
                        pm.SendLocalizedMessage(1155562);     // Young players may not join Vice vs Virtue. Renounce your young player status by saying, "I renounce my young player status" and try again.
                    }
                    else
                    {
                        pm.SendGump(new Server.Engines.VvV.ConfirmSignupGump(pm));
                    }
                }
                break;

            case 9:
                if (IsLeader(pm, guild))
                {
                    if (Server.Engines.Points.PointsSystem.ViceVsVirtue.IsResigning(pm, guild))
                    {
                        pm.SendLocalizedMessage(1155560);     // You are currently in the process of quitting Vice vs Virtue.
                    }
                    else if (m_IsResigningVvV)
                    {
                        pm.SendLocalizedMessage(1155559);     // You have begun the Vice vs Virtue resignation process.  You will be removed from VvV in 3 days.
                        Server.Engines.Points.PointsSystem.ViceVsVirtue.ResignGuild(guild);
                    }
                    else
                    {
                        pm.SendLocalizedMessage(1155558);     // Are you sure you wish to resign from Vice vs Virtue? You will not be allowed to rejoin for 3 days.
                        pm.SendGump(new GuildInfoGump(pm, guild, false, true));
                    }
                }
                break;

            case 10:
                pm.SendGump(new Server.Engines.VvV.ViceVsVirtueLeaderboardGump(pm));
                break;
            }
        }
Esempio n. 59
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            if (info.ButtonID == (int)Buttons.weaponBtn)
            {
                if (beheld is BaseWeapon)
                {
                    if (!from.HasGump(typeof(WeaponAttributeGump)))
                    {
                        WeaponAttributeGump gump = new WeaponAttributeGump(beheld, from, imbuePoints, this);
                        from.SendGump(gump);
                        child = gump;
                    }

                    from.SendGump(new BasicAttributeGump(_values, imbuePoints, beheld, from, child, tool));
                }

                else
                {
                    from.SendMessage("This is not a weapon!");
                    from.SendGump(new BasicAttributeGump(_values, imbuePoints, beheld, from, child, tool));
                }
            }

            if (info.ButtonID == (int)Buttons.applyButton)
            {
                ApplyAttributes();
                return;
            }

            //Increase
            else if (info.ButtonID >= (int)Buttons.dmgIncBtn && info.ButtonID <= (int)Buttons.manaRegenBtn)
            {
                if (imbuePoints <= 0)
                {
                    from.SendMessage("You do not have any imbue points lefts.");
                    UpdateGump(); return;
                }

                if (_values[info.ButtonID] + 1 > _caps[info.ButtonID])
                {
                    from.SendMessage("This object can not withstand more imbuement of that type.");
                    UpdateGump(); return;
                }

                imbuePoints--;
                _values[info.ButtonID]++;
                UpdateGump();

                if (child != null)
                {
                    child.imbuePoints--;
                    child.parent = this;
                    child.UpdateGump();
                }
            }

            //Decrease
            else if (info.ButtonID >= (int)Buttons.dmgDecBtn && info.ButtonID <= (int)Buttons.manaRegenDecBtn)
            {
                if (_values[(info.ButtonID - 12)] <= 0)
                {
                    from.SendMessage("You can not lower this value any further.");
                    UpdateGump(); return;
                }

                _values[(info.ButtonID - 12)]--;
                imbuePoints++; UpdateGump();

                if (child != null)
                {
                    child.imbuePoints++;
                    child.parent = this;
                    child.UpdateGump();
                }
            }
        }
Esempio n. 60
0
        public override void OnResponse(NetState state, RelayInfo info)
        {
            Mobile from = state.Mobile;

            PageType type = (PageType)(-1);

            switch (info.ButtonID)
            {
            case 0:                                          // Close/Cancel
            {
                from.SendLocalizedMessage(501235, "", 0x35); // Help request aborted.

                break;
            }

            case 1:     // General question
            {
                type = PageType.Question;
                break;
            }

            case 2:     // Stuck
            {
                BaseHouse house = BaseHouse.FindHouseAt(from);

                if (house != null && house.IsAosRules && !from.Region.IsPartOf(typeof(Engines.ConPVP.SafeZone)))         // Dueling
                {
                    from.Location = house.BanLocation;
                }
                else if (from.Region.IsPartOf(typeof(Server.Regions.Jail)))
                {
                    from.SendLocalizedMessage(1114345, "", 0x35);         // You'll need a better jailbreak plan than that!
                }
                else if (Factions.Sigil.ExistsOn(from))
                {
                    from.SendLocalizedMessage(1061632);         // You can't do that while carrying the sigil.
                }
                else if (from.CanUseStuckMenu() && from.Region.CanUseStuckMenu(from) && !CheckCombat(from) && !from.Frozen && !from.Criminal && (Core.AOS || from.Kills < 5))
                {
                    StuckMenu menu = new StuckMenu(from, from, true);

                    menu.BeginClose();

                    from.SendGump(menu);
                }
                else
                {
                    type = PageType.Stuck;
                }

                break;
            }

            case 3:     // Report bug or contact Origin
            {
                type = PageType.Bug;
                break;
            }

            case 4:     // Game suggestion
            {
                type = PageType.Suggestion;
                break;
            }

            case 5:     // Account management
            {
                type = PageType.Account;
                break;
            }

            case 6:     // Other
            {
                type = PageType.Other;
                break;
            }

            case 7:     // Harassment: verbal/exploit
            {
                type = PageType.VerbalHarassment;
                break;
            }

            case 8:     // Harassment: physical
            {
                type = PageType.PhysicalHarassment;
                break;
            }

            case 9:     // Young player transport
            {
                if (IsYoung(from))
                {
                    if (from.Region.IsPartOf(typeof(Regions.Jail)))
                    {
                        from.SendLocalizedMessage(1114345, "", 0x35);         // You'll need a better jailbreak plan than that!
                    }
                    else if (from.Region.IsPartOf("Haven Island"))
                    {
                        from.SendLocalizedMessage(1041529);         // You're already in Haven
                    }
                    else
                    {
                        from.MoveToWorld(new Point3D(3503, 2574, 14), Map.Trammel);
                    }
                }

                break;
            }
            }

            if (type != (PageType)(-1) && PageQueue.CheckAllowedToPage(from))
            {
                from.SendGump(new PagePromptGump(from, type));
            }
        }