public VendorBuyGump(AEntity vendorBackpack, VendorBuyListPacket packet) : base(0, 0) { // sanity checking: don't show buy gumps for empty containers. if (!(vendorBackpack is Container) || ((vendorBackpack as Container).Contents.Count <= 0) || (packet.Items.Count <= 0)) { Dispose(); return; } IsMoveable = true; // note: original gumplings start at index 0x0870. AddControl(m_Background = new ExpandableScroll(this, 0, 0, 360, false)); AddControl(new HtmlGumpling(this, 0, 6, 300, 20, 0, 0, " <center><span color='#004' style='font-family:uni0;'>Shop Inventory")); m_ScrollBar = (IScrollBar)AddControl(new ScrollFlag(this)); AddControl(m_ShopContents = new RenderedTextList(this, 22, 32, 250, 260, m_ScrollBar)); BuildShopContents(vendorBackpack, packet); AddControl(m_TotalCost = new HtmlGumpling(this, 44, 334, 200, 30, 0, 0, string.Empty)); UpdateCost(); Button okButton = (Button)AddControl(new Button(this, 220, 333, 0x907, 0x908, ButtonTypes.Activate, 0, 0)); okButton.GumpOverID = 0x909; okButton.MouseClickEvent += okButton_MouseClickEvent; }
private void BuildShopContents(AEntity vendorBackpack, VendorBuyListPacket packet) { if (!(vendorBackpack is Container)) { m_ShopContents.AddEntry("<span color='#800'>Err: vendorBackpack is not Container."); return; } Container contents = (vendorBackpack as Container); AEntity vendor = contents.Parent; if (vendor == null || !(vendor is Mobile)) { m_ShopContents.AddEntry("<span color='#800'>Err: vendorBackpack item does not belong to a vendor Mobile."); return; } m_VendorSerial = vendor.Serial; m_Items = new VendorItemInfo[packet.Items.Count]; for (int i = 0; i < packet.Items.Count; i++) { Item item = contents.Contents[packet.Items.Count - 1 - i]; if (item.Amount > 0) { string cliLocAsString = packet.Items[i].Description; int price = packet.Items[i].Price; int clilocDescription; string description; if (!(int.TryParse(cliLocAsString, out clilocDescription))) { description = cliLocAsString; } else { // get the resource provider IResourceProvider provider = ServiceRegistry.GetService<IResourceProvider>(); description = Utility.CapitalizeAllWords(provider.GetString(clilocDescription)); } string html = string.Format(c_Format, description, price.ToString(), item.DisplayItemID, item.Amount, i); m_ShopContents.AddEntry(html); m_Items[i] = new VendorItemInfo(item, description, price, item.Amount); } } // list starts displaying first item. m_ScrollBar.Value = 0; }