public async Task <HextechInventory> GetInventory() { var all = await this.session.LootService.GetAllPlayerLootAndDefinitions(0, 0) as PlayerLootAndDefinitionsObject; itemDefinitions = all.Content.LootItemList.LootItems.ToDictionary(item => item.LootName); inventory = new HextechInventory(); foreach (var loot in all.Content.PlayerLoot) { Add(inventory, true, loot.LootName, loot.Count, loot.RefId); } return(inventory); }
internal static void Add(HextechInventory inventory, bool add, string lootName, int count, string refId) { var item = itemDefinitions[lootName]; if (!add) { count *= -1; } switch (item.Type) { case LootItemType.CHAMPION: Add(inventory.Champs, item.StoreItemId, count); break; case LootItemType.CHAMPION_RENTAL: Add(inventory.ChampShards, item.StoreItemId, count); break; case LootItemType.SKIN: Add(inventory.Skins, item.StoreItemId, count); break; case LootItemType.SKIN_RENTAL: Add(inventory.SkinShards, item.StoreItemId, count); break; case LootItemType.WARDSKIN: Add(inventory.WardSkins, item.StoreItemId, count); break; case LootItemType.WARDSKIN_RENTAL: Add(inventory.WardSkinShards, item.StoreItemId, count); break; case LootItemType.CHAMPION_TOKEN: int champ = int.Parse(refId); switch (item.LootName) { case LootNames.MASTERY_TOKEN_6: Add(inventory.Mastery6Tokens, champ, count); break; case LootNames.MASTERY_TOKEN_7: Add(inventory.Mastery7Tokens, champ, count); break; default: Session.Log("Unknown champion token: " + item.LootName); break; } break; case LootItemType.CHEST: inventory.Chests += count; break; case LootItemType.CURRENCY: switch (item.LootName) { case LootNames.BLUE_ESSENCE: inventory.BlueEssence += count; break; case LootNames.ORANGE_ESSENCE: inventory.OrangeEssence += count; break; default: Session.Log("Unknown currency: " + item.LootName); break; } break; case LootItemType.MATERIAL: switch (item.LootName) { case LootNames.KEY: inventory.Keys += count; break; case LootNames.KEY_FRAGMENT: inventory.KeyFragments += count; break; default: Session.Log("Unknown material: " + item.LootName); break; } break; default: Session.Log(item.Type); break; } }