コード例 #1
0
        public void UpdateItem(string package)
        {
            string newPackage = package.Substring(2);

            if (!string.IsNullOrEmpty(newPackage))
            {
                string[] separator = newPackage.Split('|');

                if (Items.TryGetValue(int.Parse(separator[0]), out Item item))
                {
                    int quantity = int.Parse(separator[1]);

                    item.Quantity = quantity;

                    Items[item.GuidItem].Quantity = quantity;

                    InventoryRefresh?.Invoke();
                }
            }
        }
コード例 #2
0
        public void RemoveItem(string package, int quantity, bool isDeletePackage)
        {
            int.TryParse(package.Substring(2), out int GuidItem);

            if (Items.TryGetValue(GuidItem, out Item deleteItem))
            {
                if (deleteItem.Quantity > quantity)
                {
                    deleteItem.Quantity -= quantity;
                    Items[GuidItem]      = deleteItem;
                }
                else
                {
                    Items.TryRemove(GuidItem, out deleteItem);
                }

                if (isDeletePackage)
                {
                    Account.Send($"Od{deleteItem.GuidItem}|{deleteItem.Quantity}");
                }
                InventoryRefresh?.Invoke();
            }
        }
コード例 #3
0
        public void getInventory(string package)
        {
            Task.Run(() =>
            {
                try
                {
                    foreach (string data in package.Split(';'))
                    {
                        if (!string.IsNullOrEmpty(data))
                        {
                            string[] values = data.Split('~');
                            Item @object    = new Item(data);
                            Items.TryAdd(@object.GuidItem, @object);
                        }
                    }
                }
                catch (Exception)
                {
                }
            }).Wait();

            InventoryRefresh?.Invoke();
        }
コード例 #4
0
        /// <summary>
        /// Load Inventory methodes.
        /// </summary>
        public void UpdateInventory(InventoryRefresh type)
        {
            if (!_client.LoggedIn)
            {
                return;
            }

            LogCaller(new LoggerEventArgs($"Updating inventory. Items to load: {type}", LoggerTypes.Debug));

            try
            {
                foreach (var item in _client.ClientSession.Player.Inventory.InventoryItems)
                {
                    AddRemoveOrUpdateItem(item);
                }

                switch (type)
                {
                case InventoryRefresh.All:
                    Items.Clear();
                    Pokemon.Clear();
                    Pokedex.Clear();
                    PokemonCandy.Clear();
                    Incubators.Clear();
                    Eggs.Clear();
                    Stats        = GetPlayerStats();
                    Items        = GetItemsData().ToList();
                    Pokedex      = GetPokedex().ToList();
                    PokemonCandy = GetCandies().ToList();
                    Incubators   = GetIncubators().ToList();
                    Eggs         = GetEggs().ToList();
                    Pokemon      = GetPokemons().ToList();
                    break;

                case InventoryRefresh.Items:
                    Items.Clear();
                    Items = GetItemsData().ToList();
                    break;

                case InventoryRefresh.Pokemon:
                    Pokemon.Clear();
                    Pokemon = GetPokemons().ToList();
                    break;

                case InventoryRefresh.Pokedex:
                    Pokedex.Clear();
                    Pokedex = GetPokedex().ToList();
                    break;

                case InventoryRefresh.PokemonCandy:
                    PokemonCandy.Clear();
                    PokemonCandy = GetCandies().ToList();
                    break;

                case InventoryRefresh.Incubators:
                    Incubators.Clear();
                    Incubators = GetIncubators().ToList();
                    break;

                case InventoryRefresh.Eggs:
                    Eggs.Clear();
                    Eggs = GetEggs().ToList();
                    break;

                case InventoryRefresh.Stats:
                    Stats = GetPlayerStats();
                    break;
                }
            }
            catch (Exception ex1)
            {
                LogCaller(new LoggerEventArgs(String.Format("Failed updating inventory."), LoggerTypes.Exception, ex1));
                ++_failedInventoryReponses;
            }
        }