Exemplo n.º 1
0
        private bool SetItemBuilds(int championId, BlitzChampions.Data recommendedData, string path)
        {
            try
            {
                string configPath = Path.Combine(path, "Config/Champions/" + champions.GetAlias(championId) + "/Recommended");

                if (!Directory.Exists(configPath))
                {
                    Directory.CreateDirectory(configPath);
                }

                var itemBuilds = new IngameItemRecommended();

                itemBuilds.title = "LightBlitz";

                itemBuilds.AddBlock("Starting Items & Trinkets", recommendedData.stats.starting_items.build);
                itemBuilds.AddBlock("Consumables", new int[] { 2003, 2031, 2033, 2138, 2139, 2140 });
                itemBuilds.AddBlock("Core Build Path", recommendedData.stats.core_builds.build);
                itemBuilds.AddBlock("Core Final Build", recommendedData.stats.big_item_builds.build);

                var json = JsonConvert.SerializeObject(itemBuilds);

                File.WriteAllText(Path.Combine(configPath, itemBuildsFileName), json);
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.ToString());
                return(false);
            }

            return(true);
        }
Exemplo n.º 2
0
        private async Task <bool> SetRunes(int championId, BlitzChampions.Data recommendedData)
        {
            // Get pages
            var pages = await LeagueRequest <LeaguePerksPage[]>(HttpMethod.Get, "lol-perks/v1/pages");

            if (pages == null)
            {
                return(false);
            }

            // Set to any default pages
            var anyDefaultPage = pages.FirstOrDefault(x => !x.isEditable);

            if (anyDefaultPage == null)
            {
                return(false);
            }

            await LeagueRequestRaw(HttpMethod.Put, "lol-perks/v1/currentpage", new StringContent(anyDefaultPage.id.ToString(), Encoding.UTF8));

            // Delete exist LightBlitz pages
            foreach (var page in pages.Where(x => x.isEditable && x.name.StartsWith(runePagePrefix)))
            {
                await LeagueRequestRaw(HttpMethod.Delete, "lol-perks/v1/pages/" + page.id.ToString());
            }

            // Create page
            if (recommendedData.stats.runes.build.Length < 8 || recommendedData.stats.rune_stat_shards.build.Length < 3)
            {
                return(false);
            }

            var data         = new LeaguePerksPagePost();
            var championName = champions.GetName(championId);

            data.name           = runePagePrefix + championName + (recommendedData.role.Length > 0 ? string.Format(" ({0})", recommendedData.role) : string.Empty);
            data.primaryStyleId = recommendedData.stats.runes.build[0];

            data.selectedPerkIds = new int[]
            {
                recommendedData.stats.runes.build[1],
                recommendedData.stats.runes.build[2],
                recommendedData.stats.runes.build[3],
                recommendedData.stats.runes.build[4],
                recommendedData.stats.runes.build[6],
                recommendedData.stats.runes.build[7],
                recommendedData.stats.rune_stat_shards.build[0],
                recommendedData.stats.rune_stat_shards.build[1],
                recommendedData.stats.rune_stat_shards.build[2],
            };

            data.subStyleId = recommendedData.stats.runes.build[5];

            var json    = JsonConvert.SerializeObject(data);
            var newPage = await LeagueRequest <LeaguePerksPage>(HttpMethod.Post, "lol-perks/v1/pages", new StringContent(json, Encoding.UTF8, "application/json"));

            if (newPage == null)
            {
                return(false);
            }

            // Set page
            var setResult = await LeagueRequestRaw(HttpMethod.Put, "lol-perks/v1/currentpage", new StringContent(newPage.id.ToString(), Encoding.UTF8));

            if (setResult == null)
            {
                return(false);
            }

            return(true);
        }
Exemplo n.º 3
0
        private async Task <bool> SetSpells(LeagueSummonerCurrentSummoner summonerData, BlitzChampions.Data recommendedData)
        {
            var result = await LeagueRequest <LeagueChampSelectSession>(HttpMethod.Get, "lol-champ-select/v1/session");

            if (result == null)
            {
                return(false);
            }

            var summoner = result.myTeam.FirstOrDefault(x => x.summonerId == summonerData.summonerId);

            if (summoner == null)
            {
                return(false);
            }

            var data = new LeagueChampSelectSessionMySelectionPatch();

            data.selectedSkinId = summoner.selectedSkinId;
            data.wardSkinId     = summoner.wardSkinId;

            if (Settings.Current.BlinkToRight && recommendedData.stats.spells.build[0] == 4)
            {
                data.spell1Id = recommendedData.stats.spells.build[1];
                data.spell2Id = recommendedData.stats.spells.build[0];
            }
            else
            {
                data.spell1Id = recommendedData.stats.spells.build[0];
                data.spell2Id = recommendedData.stats.spells.build[1];
            }

            var json         = JsonConvert.SerializeObject(data);
            var selectResult = await LeagueRequestRaw(new HttpMethod("PATCH"), "lol-champ-select/v1/session/my-selection", new StringContent(json, Encoding.UTF8, "application/json"));

            if (selectResult == null)
            {
                return(false);
            }

            return(true);
        }