Пример #1
0
        private TransferStatus TransferItems(string transferFile, List <PlayerItem> items, int maxItemsToTransfer)
        {
            // Remove all items deposited (may or may not be less than the requested amount, if no inventory space is available)
            string error;
            int    numItemsReceived  = (int)items.Sum(item => Math.Max(1, item.StackCount));
            int    numItemsRequested = Math.Min(maxItemsToTransfer, numItemsReceived);


            _itemStatService.ApplyStatsToPlayerItems(items); // For item class? 'IsStackable' maybe?
            _stashManager.Deposit(transferFile, items, maxItemsToTransfer, out error);
            _dao.Update(items, true);


            int NumItemsTransferred = numItemsRequested - (numItemsRequested - (int)items.Sum(item => Math.Max(1, item.StackCount)));

            if (!string.IsNullOrEmpty(error))
            {
                Logger.Warn(error);
                _browser.ShowMessage(error, "Error");
            }

            return(new TransferStatus {
                NumItemsTransferred = NumItemsTransferred,
                NumItemsRequested = numItemsRequested
            });
        }
Пример #2
0
        private TransferStatus TransferItems(string transferFile, List <PlayerItem> items)
        {
            var numReceived = items.Sum(item => Math.Max(1, item.StackCount));

            // Remove all items deposited (may or may not be less than the requested amount, if no inventory space is available)
            string error;
            int    numItemsReceived = (int)items.Sum(item => Math.Max(1, item.StackCount));

            _itemStatService.ApplyStatsToPlayerItems(items); // For item class? 'IsStackable' maybe?
            try {
                _transferStashService.Deposit(transferFile, items, out error);
                _dao.Update(items, true);

                var  numItemsAfterTransfer = items.Sum(item => item.StackCount);
                long numItemsTransferred   = numReceived - numItemsAfterTransfer;

                if (!string.IsNullOrEmpty(error))
                {
                    Logger.Warn(error);
                    _browser.ShowMessage(error, UserFeedbackLevel.Danger);
                }

                return(new TransferStatus {
                    NumItemsTransferred = (int)numItemsTransferred,
                });
            }
            catch (TransferStashService.DepositException) {
                _browser.ShowMessage(RuntimeSettings.Language.GetTag("iatag_feedback_unable_to_deposit"), UserFeedbackLevel.Danger);
                return(new TransferStatus {
                    NumItemsTransferred = 0,
                });
            }
        }