125 lines
2.4 KiB
C#
125 lines
2.4 KiB
C#
using System;
|
|
using EFT.InventoryLogic;
|
|
using stupid.solutions;
|
|
using stupid.solutions.Data;
|
|
using stupid.solutions.Utils;
|
|
|
|
namespace stupid.solutions.stupid.solutions.Data;
|
|
|
|
public class ContainerItem
|
|
{
|
|
public Item Item { get; }
|
|
|
|
public string ItemID { get; private set; }
|
|
|
|
public string LocalizedName { get; private set; }
|
|
|
|
public string ShortName { get; private set; }
|
|
|
|
public ItemCategories Itemcat { get; private set; }
|
|
|
|
public int? itemprice { get; private set; }
|
|
|
|
public int Count { get; set; } = 1;
|
|
|
|
public ContainerItem(Item lootItem)
|
|
{
|
|
if (lootItem == null)
|
|
{
|
|
throw new ArgumentNullException("lootItem");
|
|
}
|
|
Item = lootItem;
|
|
LocalizedName = string.Empty;
|
|
ItemID = string.Empty;
|
|
ShortName = string.Empty;
|
|
Itemcat = ItemCategories.Uninitialized;
|
|
itemprice = null;
|
|
Count = 1;
|
|
}
|
|
|
|
public void CalculateItemPrice()
|
|
{
|
|
if (Item == null)
|
|
return;
|
|
|
|
if (Item.Template == null)
|
|
return;
|
|
|
|
itemprice = GameUtils.GetItemPriceBYID(Item.TemplateId) * Count;
|
|
}
|
|
|
|
public void SetItemCat()
|
|
{
|
|
if (Item == null)
|
|
return;
|
|
|
|
if (Item.Template == null)
|
|
return;
|
|
|
|
string text = Item.LocalizedName();
|
|
string item = Item.TemplateId;
|
|
if (QuestESP.QuestItemIds.Contains(text))
|
|
{
|
|
Itemcat = ItemCategories.Quest;
|
|
return;
|
|
}
|
|
if (Main.IsSuperrare(text))
|
|
{
|
|
Itemcat = ItemCategories.Superrare;
|
|
return;
|
|
}
|
|
if (Main.IsKappa(text))
|
|
{
|
|
Itemcat = ItemCategories.Kappa;
|
|
return;
|
|
}
|
|
if (Main.IsStim(text))
|
|
{
|
|
Itemcat = ItemCategories.Stim;
|
|
return;
|
|
}
|
|
if (Main.SearchedItem(text))
|
|
{
|
|
Itemcat = ItemCategories.Searched;
|
|
return;
|
|
}
|
|
if (Main.wishlistitemids.Contains(item))
|
|
{
|
|
Itemcat = ItemCategories.Wishlist;
|
|
return;
|
|
}
|
|
if (Main.hideoutitemids.Contains(item))
|
|
{
|
|
Itemcat = ItemCategories.Hideout;
|
|
return;
|
|
}
|
|
|
|
Itemcat = ItemCategories.Common;
|
|
}
|
|
|
|
public bool IsSameItem(ContainerItem other)
|
|
{
|
|
if (other == null)
|
|
return false;
|
|
|
|
return ItemID == other.ItemID;
|
|
}
|
|
|
|
public void RecalculateDynamics()
|
|
{
|
|
if (Item == null)
|
|
return;
|
|
|
|
if (Item.Template == null)
|
|
return;
|
|
|
|
if (string.IsNullOrEmpty(LocalizedName))
|
|
LocalizedName = Item.LocalizedName();
|
|
|
|
if (string.IsNullOrEmpty(ItemID))
|
|
ItemID = Item.TemplateId.ToString();
|
|
|
|
if (string.IsNullOrEmpty(ShortName))
|
|
ShortName = Item.ShortName.Localized();
|
|
}
|
|
}
|