private void parseItems(GetUserInventoryResult result, Action <List <RawPlayerItem>, RawCurrencySet> successHandler) { List <RawPlayerItem> rawPlayerItems = new List <RawPlayerItem>(); for (int i = 0; i < result.Inventory.Count; i++) { ItemInstance itemInstance = result.Inventory[i]; RawPlayerItem rawPlayerItem = new RawPlayerItem(); rawPlayerItem.ID = int.Parse(itemInstance.ItemId); rawPlayerItem.InstanceID = itemInstance.ItemInstanceId; rawPlayerItem.StackedCount = itemInstance.RemainingUses == null ? 1 : (int)itemInstance.RemainingUses; string levelZeroBased = null; if (itemInstance.CustomData != null) { itemInstance.CustomData.TryGetValue(LEVEL_ZERO_BASED_PROP, out levelZeroBased); } rawPlayerItem.Level_ZeroBased = string.IsNullOrEmpty(levelZeroBased) ? 0 : int.Parse(levelZeroBased); rawPlayerItem.CustomData = itemInstance.CustomData; rawPlayerItems.Add(rawPlayerItem); } RawCurrencySet currencySet = new RawCurrencySet(); result.VirtualCurrency.TryGetValue(CurrencySymbol.GC.ToString(), out currencySet.Gold); result.VirtualCurrency.TryGetValue(CurrencySymbol.XP.ToString(), out currencySet.Experience); successHandler(rawPlayerItems, currencySet); }
private PlayerInventoryModel buildPlayerInventory(List <RawPlayerItem> rawPlayerItems, RawCurrencySet currencySet) { CatalogModel catalogModel = DIContainer.GetInstanceByContextID <CatalogModel>(GameContext.ID); PlayerInventoryModel playerInventory = new PlayerInventoryModel(); for (int i = 0; i < rawPlayerItems.Count; i++) { RawPlayerItem rawItem = rawPlayerItems[i]; ItemModel playerOwnedItemModel = catalogModel.GetItemByID(rawItem.ID).Clone(); playerOwnedItemModel.InstanceID = rawItem.InstanceID; playerOwnedItemModel.StackedCount = rawItem.StackedCount; playerOwnedItemModel.Level_ZeroBased = rawItem.Level_ZeroBased; playerInventory.AddItemWithStackCount(playerOwnedItemModel); } playerInventory.GoldCurrency = currencySet.Gold; playerInventory.ExperienceCurrency = currencySet.Experience; return(playerInventory); }