using EFT.InventoryLogic; using LootValueEX.Extensions; using SPT.Reflection.Utils; namespace LootValueEX.Utils { internal static class ItemUtils { internal static float GetArmorDurability(IEnumerable repairableComponents) => repairableComponents.Sum(x => x.Durability); internal static Task GetBestTraderValueAsync(Item item) { Structs.TradeOfferStruct bestOffer = new(); item = item.UnstackItem(); foreach (TraderClass trader in ClientAppUtils.GetMainApp().GetClientBackEndSession().DisplayableTraders) { Structs.TradeOfferStruct currentOffer = EconomyUtils.GetTraderItemOffer(trader, item); if (currentOffer.Equals(default) || currentOffer.Price <= 0) continue; if (currentOffer.PriceInRouble > bestOffer.PriceInRouble) bestOffer = currentOffer; } return Task.FromResult(bestOffer); } public static Structs.TradeOfferStruct GetBestTraderValue(Item item) => Task.Run(() => GetBestTraderValueAsync(item)).Result; } }