private static void processContainer(PlayerVendor vendor, Container container) { foreach (Item i in container.Items) { VendorItem vi = vendor.GetVendorItem(i); if (vi != null) { if (vi.IsForSale) { MyVendorItem mvi = new MyVendorItem(); mvi.Name = vi.Item is BaseContainer ? "container" : StringUtils.GetString(vi.Item.Name, Sphere.ComputeName(vi.Item)); mvi.Description = vi.Description; mvi.Price = vi.Price; if (vi.Item is CommodityDeed) { Item commodity = (vi.Item as CommodityDeed).Commodity; if (commodity == null) // skip empty deeds { continue; } mvi.Amount = commodity.Amount; mvi.Name += " - " + Sphere.ComputeName(commodity); } else { mvi.Amount = vi.Item.Amount; } if (mvi.Amount != 0) { mvi.PricePer = mvi.Price / mvi.Amount; } else { mvi.PricePer = mvi.Price; } mvi.VendorName = vendor.Name; mvi.OwnerName = vendor.Owner.Name; mvi.Location = StringUtils.GetString(vendor.Region.Name, BaseRegion.GetRuneNameFor(vendor.Region)) + " " + vendor.Location.X + "," + vendor.Location.Y; m_VendorItems.Add(mvi); } else if (vi.Item is Container) { processContainer(vendor, vi.Item as Container); } } } }
private static void processContainer(PlayerVendor vendor, Container container) { foreach (Item i in container.Items) { VendorItem vi = vendor.GetVendorItem(i); if (vi != null) { if (vi.IsForSale) { MyVendorItem mvi = new MyVendorItem(); mvi.Name = vi.Item is BaseContainer ? "container" : StringUtils.GetString(vi.Item.Name, Sphere.ComputeName(vi.Item)); mvi.Description = vi.Description; mvi.Price = vi.Price; if (vi.Item is CommodityDeed) { Item commodity = (vi.Item as CommodityDeed).Commodity; if (commodity == null) // skip empty deeds continue; mvi.Amount = commodity.Amount; mvi.Name += " - " + Sphere.ComputeName(commodity); } else { mvi.Amount = vi.Item.Amount; } if (mvi.Amount != 0) { mvi.PricePer = mvi.Price / mvi.Amount; } else { mvi.PricePer = mvi.Price; } mvi.VendorName = vendor.Name; mvi.OwnerName = vendor.Owner.Name; mvi.Location = StringUtils.GetString(vendor.Region.Name, BaseRegion.GetRuneNameFor(vendor.Region)) + " " + vendor.Location.X + "," + vendor.Location.Y; m_VendorItems.Add(mvi); } else if (vi.Item is Container) { processContainer(vendor, vi.Item as Container); } } } }