public SetPricePrompt(BulkOrderBook book, IBOBEntry entry, int page, List <IBOBEntry> list) { m_Book = book; m_Entry = entry; m_Page = page; m_List = list; }
public bool CheckFilter(IBOBEntry entry) { if (entry is BOBLargeEntry largeEntry) { return(CheckFilter( entry.Material, entry.AmountMax, true, entry.RequireExceptional, entry.DeedType, largeEntry.Entries.Length > 0 ? largeEntry.Entries[0].ItemType : null )); } if (entry is BOBSmallEntry smallEntry) { return(CheckFilter( entry.Material, entry.AmountMax, false, entry.RequireExceptional, entry.DeedType, smallEntry.ItemType )); } return(false); }
public override void OnResponse(Mobile from, string text) { if (m_Entry != null && !m_Book.Entries.Contains(m_Entry)) { from.SendLocalizedMessage(1062382); // The deed selected is not available. return; } int price = Utility.ToInt32(text); if (price < 0 || price > 250000000) { from.SendLocalizedMessage(1062390); // The price you requested is outrageous! } else if (m_Entry == null) { for (int i = 0; i < m_List.Count; ++i) { IBOBEntry entry = m_List[i]; if (!m_Book.Entries.Contains(entry)) { continue; } entry.Price = price; } from.SendMessage("Deed prices set."); if (from is PlayerMobile mobile) { mobile.SendGump(new BOBGump(mobile, m_Book, m_Page, m_List)); } } else { m_Entry.Price = price; from.SendLocalizedMessage(1062384); // Deed price set. if (from is PlayerMobile mobile) { mobile.SendGump(new BOBGump(mobile, m_Book, m_Page, m_List)); } } }
public BODBuyGump(PlayerMobile from, BulkOrderBook book, IBOBEntry entry, int page, int price) : base(100, 200) { m_From = from; m_Book = book; m_Entry = entry; m_Price = price; m_Page = page; AddPage(0); AddBackground(100, 10, 300, 150, 5054); AddHtmlLocalized(125, 20, 250, 24, 1019070); // You have agreed to purchase: AddHtmlLocalized(125, 45, 250, 24, 1045151); // a bulk order deed AddHtmlLocalized(125, 70, 250, 24, 1019071); // for the amount of: AddLabel(125, 95, 0, price.ToString()); AddButton(250, 130, 4005, 4007, 1); AddHtmlLocalized(282, 130, 100, 24, 1011012); // CANCEL AddButton(120, 130, 4005, 4007, 2); AddHtmlLocalized(152, 130, 100, 24, 1011036); // OKAY }
public BOBGump(PlayerMobile from, BulkOrderBook book, int page = 0, List <IBOBEntry> list = null) : base(12, 24) { from.CloseGump <BOBGump>(); from.CloseGump <BOBFilterGump>(); m_From = from; m_Book = book; m_Page = page; if (list == null) { list = new List <IBOBEntry>(book.Entries.Count); for (int i = 0; i < book.Entries.Count; ++i) { IBOBEntry entry = book.Entries[i]; if (CheckFilter(entry)) { list.Add(entry); } } } m_List = list; int index = GetIndexForPage(page); int count = GetCountForIndex(index); int tableIndex = 0; PlayerVendor pv = book.RootParent as PlayerVendor; bool canDrop = book.IsChildOf(from.Backpack); bool canBuy = pv != null; bool canPrice = canDrop || canBuy; if (canBuy) { VendorItem vi = pv.GetVendorItem(book); canBuy = vi?.IsForSale == false; } int width = 600; if (!canPrice) { width = 516; } X = (624 - width) / 2; AddPage(0); AddBackground(10, 10, width, 439, 5054); AddImageTiled(18, 20, width - 17, 420, 2624); if (canPrice) { AddImageTiled(573, 64, 24, 352, 200); AddImageTiled(493, 64, 78, 352, 1416); } if (canDrop) { AddImageTiled(24, 64, 32, 352, 1416); } AddImageTiled(58, 64, 36, 352, 200); AddImageTiled(96, 64, 133, 352, 1416); AddImageTiled(231, 64, 80, 352, 200); AddImageTiled(313, 64, 100, 352, 1416); AddImageTiled(415, 64, 76, 352, 200); for (int i = index; i < index + count && i >= 0 && i < list.Count; ++i) { IBOBEntry entry = list[i]; if (!CheckFilter(entry)) { continue; } AddImageTiled(24, 94 + tableIndex * 32, canPrice ? 573 : 489, 2, 2624); tableIndex += entry is BOBLargeEntry largeEntry ? largeEntry.Entries.Length : 1; } AddAlphaRegion(18, 20, width - 17, 420); AddImage(5, 5, 10460); AddImage(width - 15, 5, 10460); AddImage(5, 424, 10460); AddImage(width - 15, 424, 10460); AddHtmlLocalized(canPrice ? 266 : 224, 32, 200, 32, 1062220, LabelColor); // Bulk Order Book AddHtmlLocalized(63, 64, 200, 32, 1062213, LabelColor); // Type AddHtmlLocalized(147, 64, 200, 32, 1062214, LabelColor); // Item AddHtmlLocalized(246, 64, 200, 32, 1062215, LabelColor); // Quality AddHtmlLocalized(336, 64, 200, 32, 1062216, LabelColor); // Material AddHtmlLocalized(429, 64, 200, 32, 1062217, LabelColor); // Amount AddButton(35, 32, 4005, 4007, 1); AddHtmlLocalized(70, 32, 200, 32, 1062476, LabelColor); // Set Filter BOBFilter f = from.UseOwnFilter ? from.BOBFilter : book.Filter; if (f.IsDefault) { AddHtmlLocalized(canPrice ? 470 : 386, 32, 120, 32, 1062475, 16927); // Using No Filter } else if (from.UseOwnFilter) { AddHtmlLocalized(canPrice ? 470 : 386, 32, 120, 32, 1062451, 16927); // Using Your Filter } else { AddHtmlLocalized(canPrice ? 470 : 386, 32, 120, 32, 1062230, 16927); // Using Book Filter } AddButton(375, 416, 4017, 4018, 0); AddHtmlLocalized(410, 416, 120, 20, 1011441, LabelColor); // EXIT if (canDrop) { AddHtmlLocalized(26, 64, 50, 32, 1062212, LabelColor); // Drop } if (canPrice) { AddHtmlLocalized(516, 64, 200, 32, 1062218, LabelColor); // Price if (canBuy) { AddHtmlLocalized(576, 64, 200, 32, 1062219, LabelColor); // Buy } else { AddHtmlLocalized(576, 64, 200, 32, 1062227, LabelColor); // Set AddButton(450, 416, 4005, 4007, 4); AddHtml(485, 416, 120, 20, "<BASEFONT COLOR=#FFFFFF>Price all</FONT>"); } } tableIndex = 0; if (page > 0) { AddButton(75, 416, 4014, 4016, 2); AddHtmlLocalized(110, 416, 150, 20, 1011067, LabelColor); // Previous page } if (GetIndexForPage(page + 1) < list.Count) { AddButton(225, 416, 4005, 4007, 3); AddHtmlLocalized(260, 416, 150, 20, 1011066, LabelColor); // Next page } for (int i = index; i < index + count && i >= 0 && i < list.Count; ++i) { IBOBEntry entry = list[i]; if (!CheckFilter(entry)) { continue; } if (entry is BOBLargeEntry largeEntry) { int y = 96 + tableIndex * 32; if (canDrop) { AddButton(35, y + 2, 5602, 5606, 5 + i * 2); } if (canDrop || (canBuy && entry.Price > 0)) { AddButton(579, y + 2, 2117, 2118, 6 + i * 2); AddLabel(495, y, 1152, entry.Price.ToString()); } AddHtmlLocalized(61, y, 50, 32, 1062225, LabelColor); // Large for (int j = 0; j < largeEntry.Entries.Length; ++j) { BOBLargeSubEntry sub = largeEntry.Entries[j]; AddHtmlLocalized(103, y, 130, 32, sub.Number, LabelColor); if (entry.RequireExceptional) { AddHtmlLocalized(235, y, 80, 20, 1060636, LabelColor); // exceptional } else { AddHtmlLocalized(235, y, 80, 20, 1011542, LabelColor); // normal } TextDefinition name = GetMaterialName(entry.Material, entry.DeedType, sub.ItemType); if (name.Number > 0) { AddHtmlLocalized(316, y, 100, 20, name, LabelColor); } else { AddLabel(316, y, 1152, name); } AddLabel(421, y, 1152, $"{sub.AmountCur} / {entry.AmountMax}"); ++tableIndex; y += 32; } } else { BOBSmallEntry smallEntry = (BOBSmallEntry)entry; int y = 96 + tableIndex++ *32; if (canDrop) { AddButton(35, y + 2, 5602, 5606, 5 + i * 2); } if (canDrop || (canBuy && smallEntry.Price > 0)) { AddButton(579, y + 2, 2117, 2118, 6 + i * 2); AddLabel(495, y, 1152, smallEntry.Price.ToString()); } AddHtmlLocalized(61, y, 50, 32, 1062224, LabelColor); // Small AddHtmlLocalized(103, y, 130, 32, smallEntry.Number, LabelColor); if (smallEntry.RequireExceptional) { AddHtmlLocalized(235, y, 80, 20, 1060636, LabelColor); // exceptional } else { AddHtmlLocalized(235, y, 80, 20, 1011542, LabelColor); // normal } TextDefinition name = GetMaterialName(smallEntry.Material, smallEntry.DeedType, smallEntry.ItemType); if (name.Number > 0) { AddHtmlLocalized(316, y, 100, 20, name, LabelColor); } else { AddLabel(316, y, 1152, name); } AddLabel(421, y, 1152, $"{smallEntry.AmountCur} / {smallEntry.AmountMax}"); } } }