Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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());
        }