public UIInventoryItem[] GetDealerGoods(string filter) { List <UIInventoryItem> traderGoods = new List <UIInventoryItem>(); var filterfunc = Trader.GetFilter(filter); for (int i = 0; i < dealerItems.Count; i++) { var item = dealerItems[i]; if (!item.Show) { continue; } var g = (item.Cargo?.Equipment ?? item.Include.Equipment).Good; if (g == null) { continue; } if (!filterfunc(g.Equipment)) { continue; } var price = GetPrice(g); if (g.Equipment is not CommodityEquipment && item.Cargo != null) { price = (ulong)(price * TradeConstants.EQUIP_RESALE_MULTIPLIER); } traderGoods.Add(new UIInventoryItem() { ID = i, Count = item.Amount, Icon = g.Ini.ItemIcon, Good = g.Ini.Nickname, Combinable = g.Ini.Combinable, IdsInfo = g.Equipment.IdsInfo, IdsName = g.Equipment.IdsName, Price = price }); } Trader.SortGoods(session, traderGoods); return(traderGoods.ToArray()); }
public UIInventoryItem[] GetPlayerGoods(string filter) { List <UIInventoryItem> inventory = new List <UIInventoryItem>(); var filterfunc = Trader.GetFilter(filter); foreach (var hardpoint in selectedShip.HardpointTypes) { var ui = new UIInventoryItem() { Hardpoint = hardpoint.Key, Price = -1 }; var hptype = hardpoint.Value.OrderByDescending(x => x.Class).First(); switch (filter.ToLowerInvariant()) { case "commodity": case "ammo": continue; case "weapons": if (hptype.Category != HpCategory.Weapon) { continue; } break; case "internal": if (hptype.Category != HpCategory.Internal) { continue; } break; case "external": if (hptype.Category != HpCategory.External) { continue; } break; } ui.IdsHardpoint = hptype.IdsName; ui.HpSortIndex = hptype.SortIndex; ui.IdsHardpointDescription = hptype.IdsHpDescription; var mounted = playerItems.FirstOrDefault(x => hardpoint.Key.Equals(x.Hardpoint, StringComparison.OrdinalIgnoreCase)); if (mounted != null) { var equip = (mounted.Cargo?.Equipment ?? mounted.Include?.Equipment); if (equip == null || equip.Good == null) { continue; } ui.ID = playerItems.IndexOf(mounted); ui.Count = 1; ui.Good = equip.Good.Ini.Nickname; ui.Icon = equip.Good.Ini.ItemIcon; ui.IdsInfo = equip.IdsInfo; ui.IdsName = equip.IdsName; ui.Price = GetPrice(equip.Good); ui.MountIcon = true; ui.CanMount = true; if (equip is not CommodityEquipment && mounted.Cargo != null) { ui.Price = (ulong)(ui.Price * TradeConstants.EQUIP_RESALE_MULTIPLIER); } } inventory.Add(ui); } for (int i = 0; i < playerItems.Count; i++) { var item = playerItems[i]; if (!item.Show || item.Hardpoint != null) { continue; } var g = (item.Cargo?.Equipment ?? item.Include.Equipment).Good; if (g == null) { continue; } if (!filterfunc(g.Equipment)) { continue; } var price = GetPrice(g); if (g.Equipment is not CommodityEquipment && item.Cargo != null) { price = (ulong)(price * TradeConstants.EQUIP_RESALE_MULTIPLIER); } inventory.Add(new UIInventoryItem() { ID = i, Count = item.Amount, Icon = g.Ini.ItemIcon, Good = g.Ini.Nickname, Combinable = g.Ini.Combinable, IdsInfo = g.Equipment.IdsInfo, IdsName = g.Equipment.IdsName, MountIcon = !string.IsNullOrEmpty(g.Equipment.HpType), CanMount = CanMount(g.Equipment.HpType, null), Price = price }); } Trader.SortGoods(session, inventory); return(inventory.ToArray()); }