public LargeTamingBOD()
        {
            LargeMobileBulkEntry[] entries;

            switch (Utility.Random(10))
            {
            default:
            case  0: entries = LargeMobileBulkEntry.ConvertEntries(this, LargeMobileBulkEntry.Mounts);  break;

            case  1: entries = LargeMobileBulkEntry.ConvertEntries(this, LargeMobileBulkEntry.HardMounts); break;

            case  2: entries = LargeMobileBulkEntry.ConvertEntries(this, LargeMobileBulkEntry.Dragons); break;

            case  3: entries = LargeMobileBulkEntry.ConvertEntries(this, LargeMobileBulkEntry.FarmAnimals); break;

            case  4: entries = LargeMobileBulkEntry.ConvertEntries(this, LargeMobileBulkEntry.Spiders); break;

            case  5: entries = LargeMobileBulkEntry.ConvertEntries(this, LargeMobileBulkEntry.Felines); break;

            case  6: entries = LargeMobileBulkEntry.ConvertEntries(this, LargeMobileBulkEntry.Kanines); break;

            case  7: entries = LargeMobileBulkEntry.ConvertEntries(this, LargeMobileBulkEntry.Bears); break;

            case  8: entries = LargeMobileBulkEntry.ConvertEntries(this, LargeMobileBulkEntry.Birds); break;

            case  9: entries = LargeMobileBulkEntry.ConvertEntries(this, LargeMobileBulkEntry.Rodents); break;
            }

            int hue       = 0x1CA;
            int amountMax = Utility.RandomList(10, 15, 20, 20);

            this.Hue       = hue;
            this.AmountMax = amountMax;
            this.Entries   = entries;
        }
		public TamingBOBLargeSubEntry( LargeMobileBulkEntry lmbe )
		{
			m_Type = lmbe.Details.Type;
			m_AmountCur = lmbe.Amount;
			m_AnimalName = lmbe.Details.AnimalName;
			m_Graphic = lmbe.Details.Graphic;
		}
Example #3
0
 public TamingBOBLargeSubEntry(LargeMobileBulkEntry lmbe)
 {
     m_Type       = lmbe.Details.Type;
     m_AmountCur  = lmbe.Amount;
     m_AnimalName = lmbe.Details.AnimalName;
     m_Graphic    = lmbe.Details.Graphic;
 }
Example #4
0
        public void EndMobileCombine(Mobile from, object o)
        {
            if (o is Item && ((Item)o).IsChildOf(from.Backpack))
            {
                if (o is SmallMobileBOD)
                {
                    SmallMobileBOD small = (SmallMobileBOD)o;

                    LargeMobileBulkEntry entry = null;

                    for (int i = 0; entry == null && i < m_Entries.Length; ++i)
                    {
                        if (m_Entries[i].Details.Type == small.Type)
                        {
                            entry = m_Entries[i];
                        }
                    }

                    if (entry == null)
                    {
                        from.SendLocalizedMessage(1045160);                           // That is not a bulk order for this large request.
                    }
                    else if (m_AmountMax != small.AmountMax)
                    {
                        from.SendLocalizedMessage(1045163);                           // The two orders have different requested amounts and cannot be combined.
                    }
                    else if (small.AmountCur < small.AmountMax)
                    {
                        from.SendLocalizedMessage(1045164);                           // The order to combine with is not completed.
                    }
                    else if (entry.Amount >= m_AmountMax)
                    {
                        from.SendLocalizedMessage(1045166);                           // The maximum amount of requested items have already been combined to this deed.
                    }
                    else
                    {
                        entry.Amount += small.AmountCur;
                        small.Delete();

                        from.SendLocalizedMessage(1045165);                           // The orders have been combined.

                        from.SendGump(new LargeMobileBODGump(from, this));

                        if (!Complete)
                        {
                            BeginMobileCombine(from);
                        }
                    }
                }
                else
                {
                    from.SendLocalizedMessage(1045159);                       // That is not a bulk order.
                }
            }
            else
            {
                from.SendLocalizedMessage(1045158);                   // You must have the item in your backpack to target it.
            }
        }
		public override int LabelNumber{ get{ return 1045151; } } // a bulk order deed

		public LargeMobileBOD( int hue, int amountMax, LargeMobileBulkEntry[] entries ) : base( Core.AOS ? 0x2258 : 0x14EF )
		{
			Weight = 1.0;
			Hue = hue; // Blacksmith: 0x44E; Tailoring: 0x483
			LootType = LootType.Blessed;

			m_AmountMax = amountMax;
			m_Entries = entries;
		}
        public static LargeMobileBulkEntry[] ConvertEntries(LargeMobileBOD owner, SmallMobileBulkEntry[] small)
        {
            LargeMobileBulkEntry[] large = new LargeMobileBulkEntry[small.Length];

            for (int i = 0; i < small.Length; ++i)
            {
                large[i] = new LargeMobileBulkEntry(owner, small[i]);
            }

            return(large);
        }
		private LargeMobileBulkEntry[] ReconstructEntries()
		{
			LargeMobileBulkEntry[] entries = new LargeMobileBulkEntry[m_Entries.Length];

			for ( int i = 0; i < m_Entries.Length; ++i )
			{
				entries[i] = new LargeMobileBulkEntry( null, new SmallMobileBulkEntry( m_Entries[i].Type, m_Entries[i].AnimalName, m_Entries[i].Graphic ) );
				entries[i].Amount = m_Entries[i].AmountCur;
			}

			return entries;
		}
        private LargeMobileBulkEntry[] ReconstructEntries()
        {
            LargeMobileBulkEntry[] entries = new LargeMobileBulkEntry[m_Entries.Length];

            for (int i = 0; i < m_Entries.Length; ++i)
            {
                entries[i]        = new LargeMobileBulkEntry(null, new SmallMobileBulkEntry(m_Entries[i].Type, m_Entries[i].AnimalName, m_Entries[i].Graphic));
                entries[i].Amount = m_Entries[i].AmountCur;
            }

            return(entries);
        }
Example #9
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 0:
            {
                m_AmountMax = reader.ReadInt();

                m_Entries = new LargeMobileBulkEntry[reader.ReadInt()];

                for (int i = 0; i < m_Entries.Length; ++i)
                {
                    m_Entries[i] = new LargeMobileBulkEntry(this, reader);
                }

                break;
            }
            }

            if (Weight == 0.0)
            {
                Weight = 1.0;
            }

            if (Core.AOS && ItemID == 0x14EF)
            {
                ItemID = 0x2258;
            }

            if (Parent == null && Map == Map.Internal && Location == Point3D.Zero)
            {
                Delete();
            }
        }
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 0:
				{
					m_AmountMax = reader.ReadInt();

					m_Entries = new LargeMobileBulkEntry[reader.ReadInt()];

					for ( int i = 0; i < m_Entries.Length; ++i )
						m_Entries[i] = new LargeMobileBulkEntry( this, reader );

					break;
				}
			}

			if ( Weight == 0.0 )
				Weight = 1.0;

			if ( Core.AOS && ItemID == 0x14EF )
				ItemID = 0x2258;

			if ( Parent == null && Map == Map.Internal && Location == Point3D.Zero )
				Delete();
		}
		public LargeTamingBOD( int amountMax, LargeMobileBulkEntry[] entries )
		{
			this.Hue = 0x1CA;
			this.AmountMax = amountMax;
			this.Entries = entries;
		}
		public static LargeMobileBulkEntry[] ConvertEntries( LargeMobileBOD owner, SmallMobileBulkEntry[] small )
		{
			LargeMobileBulkEntry[] large = new LargeMobileBulkEntry[small.Length];

			for ( int i = 0; i < small.Length; ++i )
				large[i] = new LargeMobileBulkEntry( owner, small[i] );

			return large;
		}
        public LargeMobileBODGump(Mobile from, LargeMobileBOD deed) : base(25, 25)
        {
            m_From = from;
            m_Deed = deed;

            m_From.CloseGump(typeof(LargeMobileBODGump));
            m_From.CloseGump(typeof(SmallMobileBODGump));

            LargeMobileBulkEntry[] entries = deed.Entries;

            AddPage(0);

            AddBackground(50, 10, 455, 236 + (entries.Length * 24), 5054);

            AddImageTiled(58, 20, 438, 217 + (entries.Length * 24), 2624);
            AddAlphaRegion(58, 20, 438, 217 + (entries.Length * 24));

            AddImage(45, 5, 10460);
            AddImage(480, 5, 10460);
            AddImage(45, 221 + (entries.Length * 24), 10460);
            AddImage(480, 221 + (entries.Length * 24), 10460);

            AddHtmlLocalized(225, 25, 120, 20, 1045134, 0x7FFF, false, false); // A large bulk order

            AddLabel(75, 48, 0x480, @"Amount to tame:");                       // Amount to make:
            AddLabel(275, 48, 1152, deed.AmountMax.ToString());

            AddHtmlLocalized(75, 72, 120, 20, 1045137, 0x7FFF, false, false);               // Items requested:
            AddHtmlLocalized(275, 76, 200, 20, 1045153, 0x7FFF, false, false);              // Amount finished:

            int y = 96;

            for (int i = 0; i < entries.Length; ++i)
            {
                LargeMobileBulkEntry entry   = entries[i];
                SmallMobileBulkEntry details = entry.Details;

                string s = details.AnimalName;

                int capsbreak = s.IndexOfAny("ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray(), 1);

                if (capsbreak > -1)
                {
                    string secondhalf = s.Substring(capsbreak);
                    string firsthalf  = s.Substring(0, capsbreak);

                    string newname = firsthalf + " " + secondhalf;

                    AddLabel(75, y, 0x480, newname.ToString());
                    AddLabel(275, y, 0x480, entry.Amount.ToString());
                }
                else
                {
                    AddLabel(75, y, 0x480, details.AnimalName.ToString());
                    AddLabel(275, y, 0x480, entry.Amount.ToString());
                }

                y += 24;
            }

            AddButton(125, 168 + (entries.Length * 24), 4005, 4007, 2, GumpButtonType.Reply, 0);
            AddHtmlLocalized(160, 168 + (entries.Length * 24), 300, 20, 1045155, 0x7FFF, false, false);               // Combine this deed with another deed.

            AddButton(125, 192 + (entries.Length * 24), 4005, 4007, 1, GumpButtonType.Reply, 0);
            AddHtmlLocalized(160, 192 + (entries.Length * 24), 120, 20, 1011441, 0x7FFF, false, false);               // EXIT
        }