private static IEnumerable <IVendorSearchItem> GetContainedItems(VendorItem vi, Container cont) { foreach (Item item in cont.Items) { if (item is Container) { foreach (var contained in GetContainedItems(vi, (Container)item)) { yield return(contained); } } else { yield return(VendorSearchItem.CreateForContainedItem(vi, item)); } } }
private IEnumerable <IVendorSearchItem> FindWorldVendorItems() { var allVendors = World.Mobiles.OfType <PlayerVendor>(); var allVendorItems = allVendors.SelectMany(v => v.GetAllVendorItems().Where(vi => vi.IsForSale)); foreach (VendorItem vi in allVendorItems) { if (vi.Item is Container) { foreach (var contained in GetContainedItems(vi, (Container)vi.Item)) { yield return(contained); } } else { yield return(VendorSearchItem.CreateForItem(vi)); } } }