コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }