private void OnItemFromMarketMsg(AppChangingItemsMessage message)
        {
            if (!IsCanMakeDMarketOperation(message))
            {
                return;
            }
            var assetId = _dMarketConverter.GetAssetId(message.WorldId);

            DMarketApi.FromMarket(Model.MarketToken, assetId,
                                  (responce, request) =>
            {
                var inventory = GetInventory(message.ConnectionId);
                var item      = inventory.GetItem(message.WorldId);
                if (item == null)
                {
                    item = new PlayerItemInfo(message.ItemType, message.WorldId);
                    inventory.AddItem(item);
                }
                item.IsInMarket = false;
                OnAfterSuccesDMarketOperation(message);
            },
                                  error =>
            {
                OnItemOperationError(message, error);
            });
        }
예제 #2
0
        public void Update(PlayerInventoryInfo inventory)
        {
            //TODO need optimization
            _items.Clear();

            foreach (PlayerItemInfo gameItem in inventory.Items)
            {
                if (!gameItem.IsInMarket && !inventory.IsEquipped(gameItem.WorldId))
                {
                    var newItem = new InGameItemInfo
                    {
                        Title   = _infoCatalog.GetInfo(gameItem.ItemType).Name,
                        Sprite  = _imageCatalog.GetInventoryItemSprite(gameItem.ItemType),
                        AssetId = _dMarketConverter.GetAssetId(gameItem.WorldId),
                        ClassId = _dMarketConverter.GetClassId(gameItem.ItemType)
                    };
                    _items.Add(newItem);
                }
            }
            ItemsChanged.SafeRaise();
        }