Esempio n. 1
0
        private IndexItem BuildIndexItem(Item item, CharacterFile character)
        {
            if (string.IsNullOrEmpty(item.baseName))
            {
                return(null);
            }

            var itemDef = _itemCache.GetItem(item.baseName);

            if (itemDef == null)
            {
                return(null);
            }

            //itemStatDef is the item definition that is used for stats (relevant in case of blueprints, where the item itself doesn't have stats, but the crafted item does)
            var itemStatDefIdentifier = ItemHelper.GetItemStatSource(itemDef);

            ItemRaw itemStatDef = itemDef;

            if (itemStatDefIdentifier != null)
            {
                itemStatDef = _itemCache.GetItem(itemStatDefIdentifier);
                // Some items are defined slightly differently - where the target item actually refers to a loot table instead of the item itself.
                if (itemStatDef != null && itemStatDef.StringParametersRaw.ContainsKey("Class") && itemStatDef.StringParametersRaw["Class"] == "LootItemTable_DynWeight")
                {
                    var lootName1 = itemStatDef.StringParametersRaw.ContainsKey("lootName1") ? itemStatDef.StringParametersRaw["lootName1"] : null;
                    if (lootName1 == null)
                    {
                        itemStatDef = null;
                    }
                    else
                    {
                        itemStatDef = _itemCache.GetItem(lootName1);
                    }
                }
            }

            if (itemStatDef == null)
            {
                itemStatDef = itemDef;
            }

            var indexItem = new IndexItem();

            indexItem.ItemName = ItemHelper.GetFullItemName(item, itemDef);
            indexItem.Owner    = character.Header.Name;
            if (itemStatDef.NumericalParametersRaw.ContainsKey("levelRequirement"))
            {
                indexItem.LevelRequirement = (int)itemStatDef.NumericalParametersRaw["levelRequirement"];
            }

            indexItem.Rarity         = ItemHelper.GetItemRarity(itemDef);
            indexItem.ItemType       = ItemHelper.GetItemType(itemStatDef);
            indexItem.Source         = itemDef;
            indexItem.SourceInstance = item;
            indexItem.ItemStats      = ItemHelper.GetStats(item, itemStatDef).Select(x => x.Replace("{^E}", "").Replace("{%+.0f0}", "").Replace("{%t0}", "").Trim()).ToList();
            indexItem.Searchable     = BuildSearchableString(character, item, itemDef, indexItem.ItemStats);

            return(indexItem);
        }
Esempio n. 2
0
        private string BuildSearchableString(CharacterFile character, Item item, ItemRaw itemDef, List <string> itemStats)
        {
            List <string> searchableStrings = new List <string>();

            searchableStrings.Add(ItemHelper.GetFullItemName(item, itemDef).ToLower());
            searchableStrings.AddRange(itemStats);
            searchableStrings.Add(character.Header.Name);

            return(string.Join(" ", searchableStrings).ToLower());
        }
Esempio n. 3
0
    public ItemRaw GetItemRawWithItemCode(int itemCode)
    {
        if (itemCode >= m_itemInfo_list.Count)
        {
            Debug.Log("[WARN] : ItemManager::GetItemRawWithItemCode(int itemCode) : out range itemCode");
            return(null);
        }

        ItemRaw retItemRaw = m_itemInfo_list[itemCode];

        return(retItemRaw);
    }
Esempio n. 4
0
    public ItemBox(ItemRaw itemRaw, int itemNum)
    {
        if (itemRaw == null)
        {
            this.m_itemCode = -1;
        }
        else
        {
            this.m_itemCode = itemRaw.m_ItemCode;
        }

        this.m_itemNum = itemNum;
    }
Esempio n. 5
0
    public void Init_ItemManager()
    {
        for (int i = 0; i < m_itemInfo_list.Count; i++)
        {
            if (m_itemInfo_list[i] == null)
            {
                i++;
                continue;
            }

            ItemRaw inInfo = m_itemInfo_list[i];
            inInfo.m_ItemCode = i;
        }
    }