diff --git a/App.config b/App.config deleted file mode 100644 index 5c73fc5..0000000 --- a/App.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/App.xaml b/App.xaml deleted file mode 100644 index d2d8a61..0000000 --- a/App.xaml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - diff --git a/App.xaml.cs b/App.xaml.cs deleted file mode 100644 index 08bbbe6..0000000 --- a/App.xaml.cs +++ /dev/null @@ -1,47 +0,0 @@ -#region License - -// Copyright 2015 LoLAccountChecker -// -// This file is part of LoLAccountChecker. -// -// LoLAccountChecker is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// LoLAccountChecker is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with LoLAccountChecker. If not, see http://www.gnu.org/licenses/. - -#endregion - -#region - -using System.Windows; -using System.Windows.Threading; -using LoLAccountChecker.Classes; - -#endregion - -namespace LoLAccountChecker -{ - /// - /// Interaction logic for App.xaml - /// - public partial class App : Application - { - public App() - { - Dispatcher.UnhandledException += OnDispatcherUnhandledException; - } - - private void OnDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) - { - Utils.ExportException(e.Exception); - } - } -} \ No newline at end of file diff --git a/Checker.cs b/Checker.cs deleted file mode 100644 index c452f85..0000000 --- a/Checker.cs +++ /dev/null @@ -1,137 +0,0 @@ -#region License - -// Copyright 2015 LoLAccountChecker -// -// This file is part of LoLAccountChecker. -// -// LoLAccountChecker is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// LoLAccountChecker is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with LoLAccountChecker. If not, see http://www.gnu.org/licenses/. - -#endregion - -#region - -using System.Collections.Generic; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using LoLAccountChecker.Classes; -using LoLAccountChecker.Views; - -#endregion - -namespace LoLAccountChecker -{ - internal delegate void NewAccount(Account accout); - - internal static class Checker - { - static Checker() - { - Accounts = new List(); - IsChecking = false; - } - - public static List Accounts { get; set; } - public static bool IsChecking { get; private set; } - - public static void Start() - { - if (IsChecking) - { - return; - } - - IsChecking = true; - - var thread = new Thread(Handler) - { - IsBackground = true - }; - - thread.Start(); - } - - public static void Stop() - { - if (!IsChecking) - { - return; - } - - IsChecking = false; - - MainWindow.Instance.UpdateControls(); - - if (AccountsWindow.Instance != null) - { - AccountsWindow.Instance.RefreshAccounts(); - } - } - - public static void Refresh(bool e = false) - { - if (IsChecking) - { - return; - } - - IsChecking = true; - - foreach (var account in Accounts.Where(a => a.State == Account.Result.Success || e)) - { - account.State = Account.Result.Unchecked; - } - - Start(); - } - - private static async void Handler() - { - while (Accounts.Any(a => a.State == Account.Result.Unchecked)) - { - if (!IsChecking) - { - break; - } - var account = Accounts.FirstOrDefault(a => a.State == Account.Result.Unchecked); - - if (account == null) - { - continue; - } - - var i = Accounts.FindIndex(a => a.Username == account.Username); - Accounts[i] = await CheckAccount(account); - - MainWindow.Instance.UpdateControls(); - - if (AccountsWindow.Instance != null) - { - AccountsWindow.Instance.RefreshAccounts(); - } - } - - Stop(); - } - - public static async Task CheckAccount(Account account) - { - var client = new Client(account.Region, account.Username, account.Password); - - await client.IsCompleted.Task; - - return client.Data; - } - } -} \ No newline at end of file diff --git a/Classes/Account.cs b/Classes/Account.cs deleted file mode 100644 index 76851a6..0000000 --- a/Classes/Account.cs +++ /dev/null @@ -1,110 +0,0 @@ -#region License - -// Copyright 2015 LoLAccountChecker -// -// This file is part of LoLAccountChecker. -// -// LoLAccountChecker is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// LoLAccountChecker is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with LoLAccountChecker. If not, see http://www.gnu.org/licenses/. - -#endregion - -#region - -using System; -using System.Collections.Generic; -using Newtonsoft.Json; -using PVPNetConnect; - -#endregion - -namespace LoLAccountChecker.Classes -{ - public class Account - { - public enum Result - { - Unchecked, - Success, - Error - } - - public string Username { get; set; } - public string Password { get; set; } - public string Summoner { get; set; } - public int Level { get; set; } - public string EmailStatus { get; set; } - public int RpBalance { get; set; } - public int IpBalance { get; set; } - public int RunePages { get; set; } - public int Refunds { get; set; } - public string SoloQRank { get; set; } - public DateTime LastPlay { get; set; } - public DateTime CheckedTime { get; set; } - public List ChampionList { get; set; } - public List SkinList { get; set; } - public List Runes { get; set; } - public List Transfers { get; set; } - public string ErrorMessage { get; set; } - public Result State { get; set; } - public Region Region { get; set; } - - [JsonIgnore] - public int Champions - { - get { return ChampionList != null ? ChampionList.Count : 0; } - } - - [JsonIgnore] - public int Skins - { - get { return SkinList != null ? SkinList.Count : 0; } - } - - [JsonIgnore] - public string PasswordDisplay - { - get - { - if (Settings.Config.ShowPasswords) - { - return Password; - } - - return "••••••••"; - } - } - - [JsonIgnore] - public string StateDisplay - { - get - { - switch (State) - { - case Result.Success: - return "Successfully Checked"; - - case Result.Unchecked: - return "Unchecked"; - - case Result.Error: - return ErrorMessage; - - default: - return string.Empty; - } - } - } - } -} \ No newline at end of file diff --git a/Classes/Champion.cs b/Classes/Champion.cs deleted file mode 100644 index c28ac3c..0000000 --- a/Classes/Champion.cs +++ /dev/null @@ -1,37 +0,0 @@ -#region License - -// Copyright 2015 LoLAccountChecker -// -// This file is part of LoLAccountChecker. -// -// LoLAccountChecker is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// LoLAccountChecker is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with LoLAccountChecker. If not, see http://www.gnu.org/licenses/. - -#endregion - -namespace LoLAccountChecker.Classes -{ - public class Champion - { - public int Id { get; set; } - public string Name { get; set; } - public Skin[] Skins { get; set; } - } - - public class Skin - { - public int Id { get; set; } - public string Name { get; set; } - public int Number { get; set; } - } -} \ No newline at end of file diff --git a/Classes/ChampionData.cs b/Classes/ChampionData.cs deleted file mode 100644 index 33f6dfc..0000000 --- a/Classes/ChampionData.cs +++ /dev/null @@ -1,36 +0,0 @@ -#region License - -// Copyright 2015 LoLAccountChecker -// -// This file is part of LoLAccountChecker. -// -// LoLAccountChecker is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// LoLAccountChecker is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with LoLAccountChecker. If not, see http://www.gnu.org/licenses/. - -#endregion - -#region - -using System; - -#endregion - -namespace LoLAccountChecker.Classes -{ - public class ChampionData - { - public int Id { get; set; } - public string Name { get; set; } - public DateTime PurchaseDate { get; set; } - } -} \ No newline at end of file diff --git a/Classes/JsonFormat.cs b/Classes/JsonFormat.cs deleted file mode 100644 index 4b4a006..0000000 --- a/Classes/JsonFormat.cs +++ /dev/null @@ -1,64 +0,0 @@ -#region License - -// Copyright 2015 LoLAccountChecker -// -// This file is part of LoLAccountChecker. -// -// LoLAccountChecker is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// LoLAccountChecker is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with LoLAccountChecker. If not, see http://www.gnu.org/licenses/. - -#endregion - -#region - -using System.Collections.Generic; -using System.IO; -using System.Reflection; -using Newtonsoft.Json; - -#endregion - -namespace LoLAccountChecker.Classes -{ - internal class JsonFormat - { - public JsonFormat(List accounts) - { - Accounts = accounts; - Version = Assembly.GetExecutingAssembly().GetName().Version.ToString(); - } - - public string Version { get; set; } - public List Accounts { get; set; } - - public static JsonFormat Import(string file) - { - using (var sr = new StreamReader(file)) - { - var jso = sr.ReadToEnd(); - - return JsonConvert.DeserializeObject(jso); - } - } - - public static void Export(string file, List accounts) - { - using (var sw = new StreamWriter(file)) - { - var jso = JsonConvert.SerializeObject(new JsonFormat(accounts)); - - sw.WriteLine(jso); - } - } - } -} \ No newline at end of file diff --git a/Classes/LeagueData.cs b/Classes/LeagueData.cs deleted file mode 100644 index d809f67..0000000 --- a/Classes/LeagueData.cs +++ /dev/null @@ -1,154 +0,0 @@ -#region License - -// Copyright 2015 LoLAccountChecker -// -// This file is part of LoLAccountChecker. -// -// LoLAccountChecker is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// LoLAccountChecker is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with LoLAccountChecker. If not, see http://www.gnu.org/licenses/. - -#endregion - -#region - -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Net; -using System.Threading.Tasks; -using LoLAccountChecker.Views; -using MahApps.Metro.Controls.Dialogs; -using Newtonsoft.Json; - -#endregion - -namespace LoLAccountChecker.Classes -{ - internal static class LeagueData - { - private static string _repoUrl; - private static List _files; - - static LeagueData() - { - _repoUrl = "https://raw.githubusercontent.com/madk/LoLAccountChecker/master/"; - _files = new List - { - "League/Champions.json", - "League/Runes.json" - }; - } - - public static List Champions { get; private set; } - public static List Runes { get; private set; } - - public static async Task Load() - { - var toDownload = _files.Where(f => !File.Exists(f) || IsOutdated(f)); - - if (toDownload.Any()) - { - var fileCount = 0; - - var wc = new WebClient(); - var dialog = await MainWindow.Instance.ShowProgressAsync("Updating", "Downloading required files..."); - wc.DownloadProgressChanged += (o, p) => dialog.SetProgress(p.ProgressPercentage / 100d); - wc.DownloadFileCompleted += (o, a) => - { - if (fileCount >= toDownload.Count()) - { - dialog.CloseAsync(); - } - }; - - if (!Directory.Exists("League")) - { - Directory.CreateDirectory("League"); - } - - foreach (var file in toDownload) - { - fileCount++; - - var versionFile = file.Replace(Path.GetFileName(file), string.Empty) + - Path.GetFileNameWithoutExtension(file) + ".version"; - - await wc.DownloadFileTaskAsync(new Uri(_repoUrl + file), file); - try - { - await wc.DownloadFileTaskAsync(new Uri(_repoUrl + versionFile), versionFile); - } - catch - { - // no version file for this file - } - } - } - - using (var sr = new StreamReader("League/Champions.json")) - { - Champions = JsonConvert.DeserializeObject>(sr.ReadToEnd()); - } - - using (var sr = new StreamReader("League/Runes.json")) - { - Runes = JsonConvert.DeserializeObject>(sr.ReadToEnd()); - } - } - - private static bool IsOutdated(string file) - { - var versionFile = file.Replace(Path.GetFileName(file), string.Empty) + - Path.GetFileNameWithoutExtension(file) + ".version"; - - if (!File.Exists(file) || !File.Exists(versionFile)) - { - return true; - } - - using (var wc = new WebClient()) - { - string version; - - try - { - version = wc.DownloadString(_repoUrl + versionFile); - } - catch - { - return false; // no version file for this file - } - - string currentVersion; - - using (var sr = new StreamReader(versionFile)) - { - currentVersion = sr.ReadLine(); - } - - return currentVersion != null && Version.Parse(version) > Version.Parse(currentVersion); - } - } - - public static Champion GetChampion(int championId) - { - return Champions.FirstOrDefault(c => c.Id == championId); - } - - public static Skin GetSkin(Champion champion, int id) - { - return champion.Skins.FirstOrDefault(s => s.Id == id); - } - } -} \ No newline at end of file diff --git a/Classes/Rune.cs b/Classes/Rune.cs deleted file mode 100644 index 57b7d81..0000000 --- a/Classes/Rune.cs +++ /dev/null @@ -1,41 +0,0 @@ -#region License - -// Copyright 2015 LoLAccountChecker -// -// This file is part of LoLAccountChecker. -// -// LoLAccountChecker is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// LoLAccountChecker is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with LoLAccountChecker. If not, see http://www.gnu.org/licenses/. - -#endregion - -namespace LoLAccountChecker.Classes -{ - public class Rune - { - public enum Types - { - Unknown, - Mark, - Seal, - Glyph, - Quintessence - } - - public int Id { get; set; } - public string Name { get; set; } - public string Description { get; set; } - public int Tier { get; set; } - public Types Type { get; set; } - } -} \ No newline at end of file diff --git a/Classes/RuneData.cs b/Classes/RuneData.cs deleted file mode 100644 index a547c3f..0000000 --- a/Classes/RuneData.cs +++ /dev/null @@ -1,31 +0,0 @@ -#region License - -// Copyright 2015 LoLAccountChecker -// -// This file is part of LoLAccountChecker. -// -// LoLAccountChecker is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// LoLAccountChecker is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with LoLAccountChecker. If not, see http://www.gnu.org/licenses/. - -#endregion - -namespace LoLAccountChecker.Classes -{ - public class RuneData - { - public string Name { get; set; } - public string Description { get; set; } - public int Tier { get; set; } - public int Quantity { get; set; } - } -} \ No newline at end of file diff --git a/Classes/SkinData.cs b/Classes/SkinData.cs deleted file mode 100644 index 95d2eb5..0000000 --- a/Classes/SkinData.cs +++ /dev/null @@ -1,49 +0,0 @@ -#region License - -// Copyright 2015 LoLAccountChecker -// -// This file is part of LoLAccountChecker. -// -// LoLAccountChecker is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// LoLAccountChecker is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with LoLAccountChecker. If not, see http://www.gnu.org/licenses/. - -#endregion - -#region - -using Newtonsoft.Json; - -#endregion - -namespace LoLAccountChecker.Classes -{ - public class SkinData - { - public int Id { get; set; } - public string Name { get; set; } - public int ChampionId { get; set; } - public bool StillObtainable { get; set; } - - [JsonIgnore] - public Champion Champion - { - get { return LeagueData.GetChampion(ChampionId); } - } - - [JsonIgnore] - public Skin Skin - { - get { return LeagueData.GetSkin(Champion, Id); } - } - } -} \ No newline at end of file diff --git a/Classes/TransferData.cs b/Classes/TransferData.cs deleted file mode 100644 index a347148..0000000 --- a/Classes/TransferData.cs +++ /dev/null @@ -1,29 +0,0 @@ -#region License - -// Copyright 2015 LoLAccountChecker -// -// This file is part of LoLAccountChecker. -// -// LoLAccountChecker is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// LoLAccountChecker is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with LoLAccountChecker. If not, see http://www.gnu.org/licenses/. - -#endregion - -namespace LoLAccountChecker.Classes -{ - public class TransferData - { - public string Name { get; set; } - public int Price { get; set; } - } -} \ No newline at end of file diff --git a/Classes/Utils.cs b/Classes/Utils.cs deleted file mode 100644 index faabfb3..0000000 --- a/Classes/Utils.cs +++ /dev/null @@ -1,182 +0,0 @@ -#region License - -// Copyright 2015 LoLAccountChecker -// -// This file is part of LoLAccountChecker. -// -// LoLAccountChecker is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// LoLAccountChecker is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with LoLAccountChecker. If not, see http://www.gnu.org/licenses/. - -#endregion - -#region - -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Net; -using System.Threading.Tasks; -using LoLAccountChecker.Views; -using MahApps.Metro.Controls.Dialogs; -using PVPNetConnect; - -#endregion - -namespace LoLAccountChecker.Classes -{ - internal class Utils - { - public static List GetLogins(string file) - { - var logins = new List(); - - var sr = new StreamReader(file); - string line; - while ((line = sr.ReadLine()) != null) - { - var accountData = line.Split(new[] { ':' }); - - if (accountData.Count() < 2) - { - continue; - } - - Region region; - if (accountData.Count() < 3 || !Enum.TryParse(accountData[2], true, out region)) - { - region = Settings.Config.SelectedRegion; - } - - var loginData = new Account - { - Username = accountData[0], - Password = accountData[1], - State = Account.Result.Unchecked, - Region = region - }; - - logins.Add(loginData); - } - - return logins; - } - - public static void ExportLogins(string file, List accounts, bool exportErrors) - { - using (var sw = new StreamWriter(file)) - { - if (!exportErrors) - { - accounts = accounts.Where(a => a.State == Account.Result.Success).ToList(); - } - - foreach (var account in accounts) - { - sw.WriteLine("{0}:{1}", account.Username, account.Password); - } - } - } - - public static void ExportException(Exception e) - { - var dir = Path.Combine(Directory.GetCurrentDirectory(), "Logs"); - - if (!Directory.Exists(dir)) - { - Directory.CreateDirectory(dir); - } - - var file = string.Format("crash_{0:dd-MM-yyyy_HH-mm-ss}.txt", DateTime.Now); - - using (var sw = new StreamWriter(Path.Combine(dir, file))) - { - sw.WriteLine(e.ToString()); - } - } - - public static async Task UpdateClientVersion() - { - using (var wc = new WebClient()) - { - try - { - var clientVersion = - wc.DownloadString( - "https://raw.githubusercontent.com/madk/LoLAccountChecker/master/League/Client.version"); - - if (Settings.Config.ClientVersion == null) - { - Settings.Config.ClientVersion = clientVersion; - return; - } - - if (clientVersion == Settings.Config.ClientVersion) - { - return; - } - - var result = - await - MainWindow.Instance.ShowMessageAsync( - "Client version outdated", - "The client version of League of Legends looks different, do you wanna update it?", - MessageDialogStyle.AffirmativeAndNegative); - - if (result == MessageDialogResult.Affirmative) - { - Settings.Config.ClientVersion = clientVersion; - } - } - catch - { - // ignore - } - } - } - - public static string GetHtmlResponse(string url, CookieContainer cookieContainer = null) - { - var wr = (HttpWebRequest) WebRequest.Create(url); - - if (cookieContainer != null) - { - wr.CookieContainer = cookieContainer; - } - - try - { - string html; - - using (var resp = wr.GetResponse()) - { - using (var sr = new StreamReader(resp.GetResponseStream())) - { - html = sr.ReadToEnd(); - } - } - - return html; - } - catch (WebException e) - { - using (var response = e.Response) - { - var resp = (HttpWebResponse) response; - } - - return string.Empty; - } - } - } -} \ No newline at end of file diff --git a/Client.cs b/Client.cs deleted file mode 100644 index 4467d02..0000000 --- a/Client.cs +++ /dev/null @@ -1,286 +0,0 @@ -#region License - -// Copyright 2015 LoLAccountChecker -// -// This file is part of LoLAccountChecker. -// -// LoLAccountChecker is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// LoLAccountChecker is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with LoLAccountChecker. If not, see http://www.gnu.org/licenses/. - -#endregion - -#region - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using LoLAccountChecker.Classes; -using PVPNetConnect; - -#endregion - -namespace LoLAccountChecker -{ - public class Client - { - public PVPNetConnection Connection; - public Account Data; - - public TaskCompletionSource IsCompleted; - - public Client(Region region, string username, string password) - { - Data = new Account - { - Username = username, - Password = password, - Region = region, - Refunds = 0 - }; - - IsCompleted = new TaskCompletionSource(); - - Connection = new PVPNetConnection(); - Connection.OnLogin += OnLogin; - Connection.OnError += OnError; - - Connection.Connect(username, password, region, Settings.Config.ClientVersion); - } - - public void Disconnect() - { - if (!Connection.IsConnected()) - { - return; - } - - Connection.Disconnect(); - } - - private void OnLogin(object sender, string username, string ipAddress) - { - GetData(); - } - - private void OnError(object sender, Error error) - { - Data.ErrorMessage = error.Message; - - Data.State = Account.Result.Error; - - IsCompleted.TrySetResult(true); - } - - public async void GetData() - { - try - { - var loginPacket = await Connection.GetLoginDataPacketForUser(); - - if (loginPacket.AllSummonerData == null) - { - Data.ErrorMessage = "Summoner not created."; - Data.State = Account.Result.Error; - - IsCompleted.TrySetResult(true); - return; - } - - await GetChampions(); - await GetStoreData(); - - GetRunes(loginPacket.AllSummonerData.Summoner.SumId); - - Data.Summoner = loginPacket.AllSummonerData.Summoner.Name; - Data.Level = (int) loginPacket.AllSummonerData.SummonerLevel.Level; - Data.RpBalance = (int) loginPacket.RpBalance; - Data.IpBalance = (int) loginPacket.IpBalance; - Data.RunePages = loginPacket.AllSummonerData.SpellBook.BookPages.Count; - - if (loginPacket.EmailStatus != null) - { - var emailStatus = loginPacket.EmailStatus.Replace('_', ' '); - Data.EmailStatus = Char.ToUpper(emailStatus[0]) + emailStatus.Substring(1); - } - else - { - Data.EmailStatus = "Unknown"; - } - - // Leagues - if (Data.Level == 30) - { - var myLeagues = await Connection.GetMyLeaguePositions(); - var soloqLeague = myLeagues.SummonerLeagues.FirstOrDefault(l => l.QueueType == "RANKED_SOLO_5x5"); - Data.SoloQRank = soloqLeague != null - ? string.Format( - "{0}{1} {2}", char.ToUpper(soloqLeague.Tier[0]), soloqLeague.Tier.Substring(1).ToLower(), - soloqLeague.Rank) - : "Unranked"; - } - else - { - Data.SoloQRank = "Unranked"; - } - - // Last Play - var recentGames = await Connection.GetRecentGames(loginPacket.AllSummonerData.Summoner.AcctId); - var lastGame = recentGames.GameStatistics.FirstOrDefault(); - - if (lastGame != null) - { - Data.LastPlay = lastGame.CreateDate; - } - - Data.CheckedTime = DateTime.Now; - Data.State = Account.Result.Success; - } - catch (Exception e) - { - Utils.ExportException(e); - Data.ErrorMessage = string.Format("Exception found: {0}", e.Message); - Data.State = Account.Result.Error; - } - - IsCompleted.TrySetResult(true); - } - - private async Task GetStoreData() - { - Data.Transfers = new List(); - - // Regex - var regexTransfers = new Regex("\\\'account_transfer(.*)\\\'\\)", RegexOptions.Multiline); - var regexTransferData = new Regex("rp_cost\\\":(.*?),(?:.*)name\\\":\\\"(.*?)\\\""); - var regexRefunds = new Regex("credit_counter\\\">(\\d[1-3]?)<"); - var regexRegion = new Regex("\\.(.*?)\\."); - - var storeUrl = await Connection.GetStoreUrl(); - - var region = regexRegion.Match(storeUrl).Groups[1]; - - var storeUrlMisc = string.Format("https://store.{0}.lol.riotgames.com/store/tabs/view/misc", region); - var storeUrlHist = string.Format( - "https://store.{0}.lol.riotgames.com/store/accounts/rental_history", region); - - var cookies = new CookieContainer(); - - Utils.GetHtmlResponse(storeUrl, cookies); - - var miscHtml = Utils.GetHtmlResponse(storeUrlMisc, cookies); - var histHtml = Utils.GetHtmlResponse(storeUrlHist, cookies); - - // Transfers - foreach (Match match in regexTransfers.Matches(miscHtml)) - { - var data = regexTransferData.Matches(match.Value); - - var transfer = new TransferData - { - Price = Int32.Parse(data[0].Groups[1].Value.Replace("\"", "")), - Name = data[0].Groups[2].Value - }; - - Data.Transfers.Add(transfer); - } - - // Refunds credits - if (regexRefunds.IsMatch(histHtml)) - { - Data.Refunds = Int32.Parse(regexRefunds.Match(histHtml).Groups[1].Value); - } - } - - private async Task GetChampions() - { - var champions = await Connection.GetAvailableChampions(); - - Data.ChampionList = new List(); - Data.SkinList = new List(); - - foreach (var champion in champions) - { - var championData = LeagueData.Champions.FirstOrDefault(c => c.Id == champion.ChampionId); - - if (championData == null) - { - continue; - } - - if (champion.Owned) - { - Data.ChampionList.Add( - new ChampionData - { - Id = championData.Id, - Name = championData.Name, - PurchaseDate = - new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds( - Math.Round(champion.PurchaseDate / 1000d)) - }); - } - - foreach (var skin in champion.ChampionSkins.Where(skin => skin.Owned)) - { - var skinData = championData.Skins.FirstOrDefault(s => s.Id == skin.SkinId); - - if (skinData == null) - { - continue; - } - - Data.SkinList.Add( - new SkinData - { - Id = skinData.Id, - Name = skinData.Name, - StillObtainable = skin.StillObtainable, - ChampionId = championData.Id - }); - } - } - } - - private async void GetRunes(double summmonerId) - { - Data.Runes = new List(); - - var runes = await Connection.GetSummonerRuneInventory(summmonerId); - if (runes != null) - { - foreach (var rune in runes.SummonerRunes) - { - var runeData = LeagueData.Runes.FirstOrDefault(r => r.Id == rune.RuneId); - - if (runeData == null) - { - continue; - } - - var rn = new RuneData - { - Name = runeData.Name, - Description = runeData.Description, - Quantity = rune.Quantity, - Tier = runeData.Tier - }; - - Data.Runes.Add(rn); - } - } - } - } -} \ No newline at end of file diff --git a/Custom Export.md b/Custom Export.md deleted file mode 100644 index 1501f97..0000000 --- a/Custom Export.md +++ /dev/null @@ -1,66 +0,0 @@ -# Custom Export - -**This is still under development.** - -In the version 2.0.0.10 you can can export your account's to a text file using the variables bellow. To export lists, you need insert the data you wanna export inside their tags (See the example at the bottom of the document). - -# Variables -#### Account -* ``%USERNAME%`` - Username -* ``%PASSWORD%`` - Password -* ``%SUMMONERNAME%`` - Summoner Name -* ``%LEVEL%`` - Level -* ``%RANK%`` - Solo Queue Rank -* ``%EMAILSTATUS%`` - Email status -* ``%RP%`` - Riot Points -* ``%IP%`` - Influence Points -* ``%CHAMPIONS%`` - Number of champions owned -* ``%SKINS%`` - Number of skins owned -* ``%RUNEPAGES%`` - Number of rune pages owned -* ``%REFUNDS%`` - Number of Refund tokens available -* ``%REGION%`` - Region of the Account -* ``%LASTPLAY%`` - Date and Time of the last match played on the account -* ``%CHECKTIME%`` - Date and Time of the check - -#### Champion List -Tag: ``[%CHAMPIONLIST%] [/%CHAMPIONLIST%]`` -* ``%ID%`` - Champion ID -* ``%NAME%`` - Champion Name -* ``%PUCHASEDATE%`` - Date and Time when the champion was purchased - -#### Skin List -Tag: ``[%SKINLIST%] [/%SKINLIST%]`` -* ``%ID%`` - Skin ID -* ``%CHAMPION%`` - Champion Name -* ``%NAME%`` - Name of the Skin - -#### Rune List - -Tag: ``[%RUNELIST%] [/%RUNELIST%]`` - -* ``%NAME%`` - Name -* ``%DESCRIPTION%`` - Description -* ``%TIER%`` - Tier -* ``%QUANTITY%`` - Quantity - - -# Example - -``` -Summoner: %SUMMONERNAME% -Level: %LEVEL% -Region: %REGION% -Champions: %CHAMPIONS% -Skins: %SKINS% -Rune Pages: %RUNEPAGES% - -Champions List: -[%CHAMPIONLIST%] - > %NAME% - %ID% -[/%CHAMPIONLIST%] - -Skins owned: -[%SKINLIST%] - > %NAME - %ID% -[/%SKINLIST%] -``` diff --git a/League/Champions.json b/League/Champions.json deleted file mode 100644 index 141ac8b..0000000 --- a/League/Champions.json +++ /dev/null @@ -1 +0,0 @@ -[{"Id": 266, "Name": "Aatrox", "Skins": [{"Id": 266000, "Name": "default", "Number": 1}, {"Id": 266001, "Name": "Justicar Aatrox", "Number": 2}, {"Id": 266002, "Name": "Mecha Aatrox", "Number": 3}]}, {"Id": 103, "Name": "Ahri", "Skins": [{"Id": 103000, "Name": "default", "Number": 1}, {"Id": 103001, "Name": "Dynasty Ahri", "Number": 2}, {"Id": 103002, "Name": "Midnight Ahri", "Number": 3}, {"Id": 103003, "Name": "Foxfire Ahri", "Number": 4}, {"Id": 103004, "Name": "Popstar Ahri", "Number": 5}, {"Id": 103005, "Name": "Challenger Ahri", "Number": 6}]}, {"Id": 84, "Name": "Akali", "Skins": [{"Id": 84000, "Name": "default", "Number": 1}, {"Id": 84001, "Name": "Stinger Akali", "Number": 2}, {"Id": 84002, "Name": "Crimson Akali", "Number": 3}, {"Id": 84003, "Name": "All-star Akali", "Number": 4}, {"Id": 84004, "Name": "Nurse Akali", "Number": 5}, {"Id": 84005, "Name": "Blood Moon Akali", "Number": 6}, {"Id": 84006, "Name": "Silverfang Akali", "Number": 7}, {"Id": 84007, "Name": "Headhunter Akali", "Number": 8}]}, {"Id": 12, "Name": "Alistar", "Skins": [{"Id": 12000, "Name": "default", "Number": 1}, {"Id": 12001, "Name": "Black Alistar", "Number": 2}, {"Id": 12002, "Name": "Golden Alistar", "Number": 3}, {"Id": 12003, "Name": "Matador Alistar", "Number": 4}, {"Id": 12004, "Name": "Longhorn Alistar", "Number": 5}, {"Id": 12005, "Name": "Unchained Alistar", "Number": 6}, {"Id": 12006, "Name": "Infernal Alistar", "Number": 7}, {"Id": 12007, "Name": "Sweeper Alistar", "Number": 8}]}, {"Id": 32, "Name": "Amumu", "Skins": [{"Id": 32000, "Name": "default", "Number": 1}, {"Id": 32001, "Name": "Pharaoh Amumu", "Number": 2}, {"Id": 32002, "Name": "Vancouver Amumu", "Number": 3}, {"Id": 32003, "Name": "Emumu", "Number": 4}, {"Id": 32004, "Name": "Re-Gifted Amumu", "Number": 5}, {"Id": 32005, "Name": "Almost-Prom King Amumu", "Number": 6}, {"Id": 32006, "Name": "Little Knight Amumu", "Number": 7}, {"Id": 32007, "Name": "Sad Robot Amumu", "Number": 8}, {"Id": 32008, "Name": "Surprise Party Amumu", "Number": 9}]}, {"Id": 34, "Name": "Anivia", "Skins": [{"Id": 34000, "Name": "default", "Number": 1}, {"Id": 34001, "Name": "Team Spirit Anivia", "Number": 2}, {"Id": 34002, "Name": "Bird of Prey Anivia", "Number": 3}, {"Id": 34003, "Name": "Noxus Hunter Anivia", "Number": 4}, {"Id": 34004, "Name": "Hextech Anivia", "Number": 5}, {"Id": 34005, "Name": "Blackfrost Anivia", "Number": 6}, {"Id": 34006, "Name": "Prehistoric Anivia", "Number": 7}]}, {"Id": 1, "Name": "Annie", "Skins": [{"Id": 1000, "Name": "default", "Number": 1}, {"Id": 1001, "Name": "Goth Annie", "Number": 2}, {"Id": 1002, "Name": "Red Riding Annie", "Number": 3}, {"Id": 1003, "Name": "Annie in Wonderland", "Number": 4}, {"Id": 1004, "Name": "Prom Queen Annie", "Number": 5}, {"Id": 1005, "Name": "Frostfire Annie", "Number": 6}, {"Id": 1006, "Name": "Reverse Annie", "Number": 7}, {"Id": 1007, "Name": "FrankenTibbers Annie", "Number": 8}, {"Id": 1008, "Name": "Panda Annie", "Number": 9}, {"Id": 1009, "Name": "Sweetheart Annie", "Number": 10}]}, {"Id": 22, "Name": "Ashe", "Skins": [{"Id": 22000, "Name": "default", "Number": 1}, {"Id": 22001, "Name": "Freljord Ashe", "Number": 2}, {"Id": 22002, "Name": "Sherwood Forest Ashe", "Number": 3}, {"Id": 22003, "Name": "Woad Ashe", "Number": 4}, {"Id": 22004, "Name": "Queen Ashe", "Number": 5}, {"Id": 22005, "Name": "Amethyst Ashe", "Number": 6}, {"Id": 22006, "Name": "Heartseeker Ashe", "Number": 7}, {"Id": 22007, "Name": "Marauder Ashe", "Number": 8}]}, {"Id": 268, "Name": "Azir", "Skins": [{"Id": 268000, "Name": "default", "Number": 1}, {"Id": 268001, "Name": "Galactic Azir", "Number": 2}]}, {"Id": 432, "Name": "Bard", "Skins": [{"Id": 432000, "Name": "default", "Number": 1}, {"Id": 432001, "Name": "Elderwood Bard", "Number": 2}]}, {"Id": 53, "Name": "Blitzcrank", "Skins": [{"Id": 53000, "Name": "default", "Number": 1}, {"Id": 53001, "Name": "Rusty Blitzcrank", "Number": 2}, {"Id": 53002, "Name": "Goalkeeper Blitzcrank", "Number": 3}, {"Id": 53003, "Name": "Boom Boom Blitzcrank", "Number": 4}, {"Id": 53004, "Name": "Piltover Customs Blitzcrank", "Number": 5}, {"Id": 53005, "Name": "Definitely Not Blitzcrank", "Number": 6}, {"Id": 53006, "Name": "iBlitzcrank", "Number": 7}, {"Id": 53007, "Name": "Riot Blitzcrank", "Number": 8}]}, {"Id": 63, "Name": "Brand", "Skins": [{"Id": 63000, "Name": "default", "Number": 1}, {"Id": 63001, "Name": "Apocalyptic Brand", "Number": 2}, {"Id": 63002, "Name": "Vandal Brand", "Number": 3}, {"Id": 63003, "Name": "Cryocore Brand", "Number": 4}, {"Id": 63004, "Name": "Zombie Brand", "Number": 5}]}, {"Id": 201, "Name": "Braum", "Skins": [{"Id": 201000, "Name": "default", "Number": 1}, {"Id": 201001, "Name": "Dragonslayer Braum", "Number": 2}, {"Id": 201002, "Name": "El Tigre Braum", "Number": 3}]}, {"Id": 51, "Name": "Caitlyn", "Skins": [{"Id": 51000, "Name": "default", "Number": 1}, {"Id": 51001, "Name": "Resistance Caitlyn", "Number": 2}, {"Id": 51002, "Name": "Sheriff Caitlyn", "Number": 3}, {"Id": 51003, "Name": "Safari Caitlyn", "Number": 4}, {"Id": 51004, "Name": "Arctic Warfare Caitlyn", "Number": 5}, {"Id": 51005, "Name": "Officer Caitlyn", "Number": 6}, {"Id": 51006, "Name": "Headhunter Caitlyn", "Number": 7}]}, {"Id": 69, "Name": "Cassiopeia", "Skins": [{"Id": 69000, "Name": "default", "Number": 1}, {"Id": 69001, "Name": "Desperada Cassiopeia", "Number": 2}, {"Id": 69002, "Name": "Siren Cassiopeia", "Number": 3}, {"Id": 69003, "Name": "Mythic Cassiopeia", "Number": 4}, {"Id": 69004, "Name": "Jade Fang Cassiopeia", "Number": 5}]}, {"Id": 31, "Name": "Cho'Gath", "Skins": [{"Id": 31000, "Name": "default", "Number": 1}, {"Id": 31001, "Name": "Nightmare Cho'Gath", "Number": 2}, {"Id": 31002, "Name": "Gentleman Cho'Gath", "Number": 3}, {"Id": 31003, "Name": "Loch Ness Cho'Gath", "Number": 4}, {"Id": 31004, "Name": "Jurassic Cho'Gath", "Number": 5}, {"Id": 31005, "Name": "Battlecast Prime Cho'Gath", "Number": 6}, {"Id": 31006, "Name": "Prehistoric Cho'Gath", "Number": 7}]}, {"Id": 42, "Name": "Corki", "Skins": [{"Id": 42000, "Name": "default", "Number": 1}, {"Id": 42001, "Name": "UFO Corki", "Number": 2}, {"Id": 42002, "Name": "Ice Toboggan Corki", "Number": 3}, {"Id": 42003, "Name": "Red Baron Corki", "Number": 4}, {"Id": 42004, "Name": "Hot Rod Corki", "Number": 5}, {"Id": 42005, "Name": "Urfrider Corki", "Number": 6}, {"Id": 42006, "Name": "Dragonwing Corki", "Number": 7}, {"Id": 42007, "Name": "Fnatic Corki", "Number": 8}]}, {"Id": 122, "Name": "Darius", "Skins": [{"Id": 122000, "Name": "default", "Number": 1}, {"Id": 122001, "Name": "Lord Darius", "Number": 2}, {"Id": 122002, "Name": "Bioforge Darius", "Number": 3}, {"Id": 122003, "Name": "Woad King Darius", "Number": 4}, {"Id": 122004, "Name": "Dunkmaster Darius", "Number": 5}]}, {"Id": 131, "Name": "Diana", "Skins": [{"Id": 131000, "Name": "default", "Number": 1}, {"Id": 131001, "Name": "Dark Valkyrie Diana", "Number": 2}, {"Id": 131002, "Name": "Lunar Goddess Diana", "Number": 3}]}, {"Id": 36, "Name": "Dr. Mundo", "Skins": [{"Id": 36000, "Name": "default", "Number": 1}, {"Id": 36001, "Name": "Toxic Dr. Mundo", "Number": 2}, {"Id": 36002, "Name": "Mr. Mundoverse", "Number": 3}, {"Id": 36003, "Name": "Corporate Mundo", "Number": 4}, {"Id": 36004, "Name": "Mundo Mundo", "Number": 5}, {"Id": 36005, "Name": "Executioner Mundo", "Number": 6}, {"Id": 36006, "Name": "Rageborn Mundo", "Number": 7}, {"Id": 36007, "Name": "TPA Mundo", "Number": 8}, {"Id": 36008, "Name": "Pool Party Mundo", "Number": 9}]}, {"Id": 119, "Name": "Draven", "Skins": [{"Id": 119000, "Name": "default", "Number": 1}, {"Id": 119001, "Name": "Soul Reaver Draven", "Number": 2}, {"Id": 119002, "Name": "Gladiator Draven", "Number": 3}, {"Id": 119003, "Name": "Primetime Draven", "Number": 4}, {"Id": 119004, "Name": "Pool Party Draven", "Number": 5}]}, {"Id": 245, "Name": "Ekko", "Skins": [{"Id": 245000, "Name": "default", "Number": 1}, {"Id": 245001, "Name": "Sandstorm Ekko", "Number": 2}]}, {"Id": 60, "Name": "Elise", "Skins": [{"Id": 60000, "Name": "default", "Number": 1}, {"Id": 60001, "Name": "Death Blossom Elise", "Number": 2}, {"Id": 60002, "Name": "Victorious Elise", "Number": 3}, {"Id": 60003, "Name": "Blood Moon Elise", "Number": 4}]}, {"Id": 28, "Name": "Evelynn", "Skins": [{"Id": 28000, "Name": "default", "Number": 1}, {"Id": 28001, "Name": "Shadow Evelynn", "Number": 2}, {"Id": 28002, "Name": "Masquerade Evelynn", "Number": 3}, {"Id": 28003, "Name": "Tango Evelynn", "Number": 4}, {"Id": 28004, "Name": "Safecracker Evelynn", "Number": 5}]}, {"Id": 81, "Name": "Ezreal", "Skins": [{"Id": 81000, "Name": "default", "Number": 1}, {"Id": 81001, "Name": "Nottingham Ezreal", "Number": 2}, {"Id": 81002, "Name": "Striker Ezreal", "Number": 3}, {"Id": 81003, "Name": "Frosted Ezreal", "Number": 4}, {"Id": 81004, "Name": "Explorer Ezreal", "Number": 5}, {"Id": 81005, "Name": "Pulsefire Ezreal", "Number": 6}, {"Id": 81006, "Name": "TPA Ezreal", "Number": 7}, {"Id": 81007, "Name": "Debonair Ezreal", "Number": 8}, {"Id": 81008, "Name": "Ace of Spades Ezreal", "Number": 9}]}, {"Id": 9, "Name": "Fiddlesticks", "Skins": [{"Id": 9000, "Name": "default", "Number": 1}, {"Id": 9001, "Name": "Spectral Fiddlesticks", "Number": 2}, {"Id": 9002, "Name": "Union Jack Fiddlesticks", "Number": 3}, {"Id": 9003, "Name": "Bandito Fiddlesticks", "Number": 4}, {"Id": 9004, "Name": "Pumpkinhead Fiddlesticks", "Number": 5}, {"Id": 9005, "Name": "Fiddle Me Timbers", "Number": 6}, {"Id": 9006, "Name": "Surprise Party Fiddlesticks", "Number": 7}, {"Id": 9007, "Name": "Dark Candy Fiddlesticks", "Number": 8}, {"Id": 9008, "Name": "Risen Fiddlesticks", "Number": 9}]}, {"Id": 114, "Name": "Fiora", "Skins": [{"Id": 114000, "Name": "default", "Number": 1}, {"Id": 114001, "Name": "Royal Guard Fiora", "Number": 2}, {"Id": 114002, "Name": "Nightraven Fiora", "Number": 3}, {"Id": 114003, "Name": "Headmistress Fiora", "Number": 4}]}, {"Id": 105, "Name": "Fizz", "Skins": [{"Id": 105000, "Name": "default", "Number": 1}, {"Id": 105001, "Name": "Atlantean Fizz", "Number": 2}, {"Id": 105002, "Name": "Tundra Fizz", "Number": 3}, {"Id": 105003, "Name": "Fisherman Fizz", "Number": 4}, {"Id": 105004, "Name": "Void Fizz", "Number": 5}]}, {"Id": 3, "Name": "Galio", "Skins": [{"Id": 3000, "Name": "default", "Number": 1}, {"Id": 3001, "Name": "Enchanted Galio", "Number": 2}, {"Id": 3002, "Name": "Hextech Galio", "Number": 3}, {"Id": 3003, "Name": "Commando Galio", "Number": 4}, {"Id": 3004, "Name": "Gatekeeper Galio", "Number": 5}, {"Id": 3005, "Name": "Debonair Galio", "Number": 6}]}, {"Id": 41, "Name": "Gangplank", "Skins": [{"Id": 41000, "Name": "default", "Number": 1}, {"Id": 41001, "Name": "Spooky Gangplank", "Number": 2}, {"Id": 41002, "Name": "Minuteman Gangplank", "Number": 3}, {"Id": 41003, "Name": "Sailor Gangplank", "Number": 4}, {"Id": 41004, "Name": "Toy Soldier Gangplank", "Number": 5}, {"Id": 41005, "Name": "Special Forces Gangplank", "Number": 6}, {"Id": 41006, "Name": "Sultan Gangplank", "Number": 7}]}, {"Id": 86, "Name": "Garen", "Skins": [{"Id": 86000, "Name": "default", "Number": 1}, {"Id": 86001, "Name": "Sanguine Garen", "Number": 2}, {"Id": 86002, "Name": "Desert Trooper Garen", "Number": 3}, {"Id": 86003, "Name": "Commando Garen", "Number": 4}, {"Id": 86004, "Name": "Dreadknight Garen", "Number": 5}, {"Id": 86005, "Name": "Rugged Garen", "Number": 6}, {"Id": 86006, "Name": "Steel Legion Garen", "Number": 7}]}, {"Id": 150, "Name": "Gnar", "Skins": [{"Id": 150000, "Name": "default", "Number": 1}, {"Id": 150001, "Name": "Dino Gnar", "Number": 2}, {"Id": 150002, "Name": "Gentleman Gnar", "Number": 3}]}, {"Id": 79, "Name": "Gragas", "Skins": [{"Id": 79000, "Name": "default", "Number": 1}, {"Id": 79001, "Name": "Scuba Gragas", "Number": 2}, {"Id": 79002, "Name": "Hillbilly Gragas", "Number": 3}, {"Id": 79003, "Name": "Santa Gragas", "Number": 4}, {"Id": 79004, "Name": "Gragas, Esq.", "Number": 5}, {"Id": 79005, "Name": "Vandal Gragas", "Number": 6}, {"Id": 79006, "Name": "Oktoberfest Gragas", "Number": 7}, {"Id": 79007, "Name": "Superfan Gragas", "Number": 8}, {"Id": 79008, "Name": "Fnatic Gragas", "Number": 9}]}, {"Id": 104, "Name": "Graves", "Skins": [{"Id": 104000, "Name": "default", "Number": 1}, {"Id": 104001, "Name": "Hired Gun Graves", "Number": 2}, {"Id": 104002, "Name": "Jailbreak Graves", "Number": 3}, {"Id": 104003, "Name": "Mafia Graves", "Number": 4}, {"Id": 104004, "Name": "Riot Graves", "Number": 5}, {"Id": 104005, "Name": "Pool Party Graves", "Number": 6}]}, {"Id": 120, "Name": "Hecarim", "Skins": [{"Id": 120000, "Name": "default", "Number": 1}, {"Id": 120001, "Name": "Blood Knight Hecarim", "Number": 2}, {"Id": 120002, "Name": "Reaper Hecarim", "Number": 3}, {"Id": 120003, "Name": "Headless Hecarim", "Number": 4}, {"Id": 120004, "Name": "Arcade Hecarim", "Number": 5}]}, {"Id": 74, "Name": "Heimerdinger", "Skins": [{"Id": 74000, "Name": "default", "Number": 1}, {"Id": 74001, "Name": "Alien Invader Heimerdinger", "Number": 2}, {"Id": 74002, "Name": "Blast Zone Heimerdinger", "Number": 3}, {"Id": 74003, "Name": "Piltover Customs Heimerdinger", "Number": 4}, {"Id": 74004, "Name": "Snowmerdinger", "Number": 5}, {"Id": 74005, "Name": "Hazmat Heimerdinger", "Number": 6}]}, {"Id": 39, "Name": "Irelia", "Skins": [{"Id": 39000, "Name": "default", "Number": 1}, {"Id": 39001, "Name": "Nightblade Irelia", "Number": 2}, {"Id": 39002, "Name": "Aviator Irelia", "Number": 3}, {"Id": 39003, "Name": "Infiltrator Irelia", "Number": 4}, {"Id": 39004, "Name": "Frostblade Irelia", "Number": 5}, {"Id": 39005, "Name": "Order of the Lotus Irelia", "Number": 6}]}, {"Id": 40, "Name": "Janna", "Skins": [{"Id": 40000, "Name": "default", "Number": 1}, {"Id": 40001, "Name": "Tempest Janna", "Number": 2}, {"Id": 40002, "Name": "Hextech Janna", "Number": 3}, {"Id": 40003, "Name": "Frost Queen Janna", "Number": 4}, {"Id": 40004, "Name": "Victorious Janna", "Number": 5}, {"Id": 40005, "Name": "Forecast Janna", "Number": 6}, {"Id": 40006, "Name": "Fnatic Janna", "Number": 7}]}, {"Id": 59, "Name": "Jarvan IV", "Skins": [{"Id": 59000, "Name": "default", "Number": 1}, {"Id": 59001, "Name": "Commando Jarvan IV", "Number": 2}, {"Id": 59002, "Name": "Dragonslayer Jarvan IV", "Number": 3}, {"Id": 59003, "Name": "Darkforge Jarvan IV", "Number": 4}, {"Id": 59004, "Name": "Victorious Jarvan IV", "Number": 5}, {"Id": 59005, "Name": "Warring Kingdoms Jarvan IV", "Number": 6}, {"Id": 59006, "Name": "Fnatic Jarvan IV", "Number": 7}]}, {"Id": 24, "Name": "Jax", "Skins": [{"Id": 24000, "Name": "default", "Number": 1}, {"Id": 24001, "Name": "The Mighty Jax", "Number": 2}, {"Id": 24002, "Name": "Vandal Jax", "Number": 3}, {"Id": 24003, "Name": "Angler Jax", "Number": 4}, {"Id": 24004, "Name": "PAX Jax", "Number": 5}, {"Id": 24005, "Name": "Jaximus", "Number": 6}, {"Id": 24006, "Name": "Temple Jax", "Number": 7}, {"Id": 24007, "Name": "Nemesis Jax", "Number": 8}, {"Id": 24008, "Name": "SKT T1 Jax", "Number": 9}]}, {"Id": 126, "Name": "Jayce", "Skins": [{"Id": 126000, "Name": "default", "Number": 1}, {"Id": 126001, "Name": "Full Metal Jayce", "Number": 2}, {"Id": 126002, "Name": "Debonair Jayce", "Number": 3}, {"Id": 126003, "Name": "Forsaken Jayce", "Number": 4}]}, {"Id": 222, "Name": "Jinx", "Skins": [{"Id": 222000, "Name": "default", "Number": 1}, {"Id": 222001, "Name": "Mafia Jinx", "Number": 2}, {"Id": 222002, "Name": "Firecracker Jinx", "Number": 3}]}, {"Id": 429, "Name": "Kalista", "Skins": [{"Id": 429000, "Name": "default", "Number": 1}, {"Id": 429001, "Name": "Blood Moon Kalista", "Number": 2}]}, {"Id": 43, "Name": "Karma", "Skins": [{"Id": 43000, "Name": "default", "Number": 1}, {"Id": 43001, "Name": "Sun Goddess Karma", "Number": 2}, {"Id": 43002, "Name": "Sakura Karma", "Number": 3}, {"Id": 43003, "Name": "Traditional Karma", "Number": 4}, {"Id": 43004, "Name": "Order of the Lotus Karma", "Number": 5}]}, {"Id": 30, "Name": "Karthus", "Skins": [{"Id": 30000, "Name": "default", "Number": 1}, {"Id": 30001, "Name": "Phantom Karthus", "Number": 2}, {"Id": 30002, "Name": "Statue of Karthus", "Number": 3}, {"Id": 30003, "Name": "Grim Reaper Karthus", "Number": 4}, {"Id": 30004, "Name": "Pentakill Karthus", "Number": 5}, {"Id": 30005, "Name": "Fnatic Karthus", "Number": 6}]}, {"Id": 38, "Name": "Kassadin", "Skins": [{"Id": 38000, "Name": "default", "Number": 1}, {"Id": 38001, "Name": "Festival Kassadin", "Number": 2}, {"Id": 38002, "Name": "Deep One Kassadin", "Number": 3}, {"Id": 38003, "Name": "Pre-Void Kassadin", "Number": 4}, {"Id": 38004, "Name": "Harbinger Kassadin", "Number": 5}]}, {"Id": 55, "Name": "Katarina", "Skins": [{"Id": 55000, "Name": "default", "Number": 1}, {"Id": 55001, "Name": "Mercenary Katarina", "Number": 2}, {"Id": 55002, "Name": "Red Card Katarina", "Number": 3}, {"Id": 55003, "Name": "Bilgewater Katarina", "Number": 4}, {"Id": 55004, "Name": "Kitty Cat Katarina", "Number": 5}, {"Id": 55005, "Name": "High Command Katarina", "Number": 6}, {"Id": 55006, "Name": "Sandstorm Katarina", "Number": 7}, {"Id": 55007, "Name": "Slay Belle Katarina", "Number": 8}, {"Id": 55008, "Name": "Warring Kingdoms Katarina", "Number": 9}]}, {"Id": 10, "Name": "Kayle", "Skins": [{"Id": 10000, "Name": "default", "Number": 1}, {"Id": 10001, "Name": "Silver Kayle", "Number": 2}, {"Id": 10002, "Name": "Viridian Kayle", "Number": 3}, {"Id": 10003, "Name": "Unmasked Kayle", "Number": 4}, {"Id": 10004, "Name": "Battleborn Kayle", "Number": 5}, {"Id": 10005, "Name": "Judgment Kayle", "Number": 6}, {"Id": 10006, "Name": "Aether Wing Kayle", "Number": 7}, {"Id": 10007, "Name": "Riot Kayle", "Number": 8}]}, {"Id": 85, "Name": "Kennen", "Skins": [{"Id": 85000, "Name": "default", "Number": 1}, {"Id": 85001, "Name": "Deadly Kennen", "Number": 2}, {"Id": 85002, "Name": "Swamp Master Kennen", "Number": 3}, {"Id": 85003, "Name": "Karate Kennen", "Number": 4}, {"Id": 85004, "Name": "Kennen M.D.", "Number": 5}, {"Id": 85005, "Name": "Arctic Ops Kennen", "Number": 6}]}, {"Id": 121, "Name": "Kha'Zix", "Skins": [{"Id": 121000, "Name": "default", "Number": 1}, {"Id": 121001, "Name": "Mecha Kha'Zix", "Number": 2}, {"Id": 121002, "Name": "Guardian of the Sands Kha'Zix", "Number": 3}]}, {"Id": 96, "Name": "Kog'Maw", "Skins": [{"Id": 96000, "Name": "default", "Number": 1}, {"Id": 96001, "Name": "Caterpillar Kog'Maw", "Number": 2}, {"Id": 96002, "Name": "Sonoran Kog'Maw", "Number": 3}, {"Id": 96003, "Name": "Monarch Kog'Maw", "Number": 4}, {"Id": 96004, "Name": "Reindeer Kog'Maw", "Number": 5}, {"Id": 96005, "Name": "Lion Dance Kog'Maw", "Number": 6}, {"Id": 96006, "Name": "Deep Sea Kog'Maw", "Number": 7}, {"Id": 96007, "Name": "Jurassic Kog'Maw", "Number": 8}, {"Id": 96008, "Name": "Battlecast Kog'Maw", "Number": 9}]}, {"Id": 7, "Name": "LeBlanc", "Skins": [{"Id": 7000, "Name": "default", "Number": 1}, {"Id": 7001, "Name": "Wicked LeBlanc", "Number": 2}, {"Id": 7002, "Name": "Prestigious LeBlanc", "Number": 3}, {"Id": 7003, "Name": "Mistletoe LeBlanc", "Number": 4}, {"Id": 7004, "Name": "Ravenborn LeBlanc", "Number": 5}]}, {"Id": 64, "Name": "Lee Sin", "Skins": [{"Id": 64000, "Name": "default", "Number": 1}, {"Id": 64001, "Name": "Traditional Lee Sin", "Number": 2}, {"Id": 64002, "Name": "Acolyte Lee Sin", "Number": 3}, {"Id": 64003, "Name": "Dragon Fist Lee Sin", "Number": 4}, {"Id": 64004, "Name": "Muay Thai Lee Sin", "Number": 5}, {"Id": 64005, "Name": "Pool Party Lee Sin", "Number": 6}, {"Id": 64006, "Name": "SKT T1 Lee Sin", "Number": 7}, {"Id": 64010, "Name": "Knockout Lee Sin", "Number": 8}]}, {"Id": 89, "Name": "Leona", "Skins": [{"Id": 89000, "Name": "default", "Number": 1}, {"Id": 89001, "Name": "Valkyrie Leona", "Number": 2}, {"Id": 89002, "Name": "Defender Leona", "Number": 3}, {"Id": 89003, "Name": "Iron Solari Leona", "Number": 4}, {"Id": 89004, "Name": "Pool Party Leona", "Number": 5}]}, {"Id": 127, "Name": "Lissandra", "Skins": [{"Id": 127000, "Name": "default", "Number": 1}, {"Id": 127001, "Name": "Bloodstone Lissandra", "Number": 2}, {"Id": 127002, "Name": "Blade Queen Lissandra", "Number": 3}]}, {"Id": 236, "Name": "Lucian", "Skins": [{"Id": 236000, "Name": "default", "Number": 1}, {"Id": 236001, "Name": "Hired Gun Lucian", "Number": 2}, {"Id": 236002, "Name": "Striker Lucian", "Number": 3}]}, {"Id": 117, "Name": "Lulu", "Skins": [{"Id": 117000, "Name": "default", "Number": 1}, {"Id": 117001, "Name": "Bittersweet Lulu", "Number": 2}, {"Id": 117002, "Name": "Wicked Lulu", "Number": 3}, {"Id": 117003, "Name": "Dragon Trainer Lulu", "Number": 4}, {"Id": 117004, "Name": "Winter Wonder Lulu", "Number": 5}, {"Id": 117005, "Name": "Pool Party Lulu", "Number": 6}]}, {"Id": 99, "Name": "Lux", "Skins": [{"Id": 99000, "Name": "default", "Number": 1}, {"Id": 99001, "Name": "Sorceress Lux", "Number": 2}, {"Id": 99002, "Name": "Spellthief Lux", "Number": 3}, {"Id": 99003, "Name": "Commando Lux", "Number": 4}, {"Id": 99004, "Name": "Imperial Lux", "Number": 5}, {"Id": 99005, "Name": "Steel Legion Lux", "Number": 6}, {"Id": 99006, "Name": "Star Guardian Lux", "Number": 7}]}, {"Id": 54, "Name": "Malphite", "Skins": [{"Id": 54000, "Name": "default", "Number": 1}, {"Id": 54001, "Name": "Shamrock Malphite", "Number": 2}, {"Id": 54002, "Name": "Coral Reef Malphite", "Number": 3}, {"Id": 54003, "Name": "Marble Malphite", "Number": 4}, {"Id": 54004, "Name": "Obsidian Malphite", "Number": 5}, {"Id": 54005, "Name": "Glacial Malphite", "Number": 6}, {"Id": 54006, "Name": "Mecha Malphite", "Number": 7}]}, {"Id": 90, "Name": "Malzahar", "Skins": [{"Id": 90000, "Name": "default", "Number": 1}, {"Id": 90001, "Name": "Vizier Malzahar", "Number": 2}, {"Id": 90002, "Name": "Shadow Prince Malzahar", "Number": 3}, {"Id": 90003, "Name": "Djinn Malzahar", "Number": 4}, {"Id": 90004, "Name": "Overlord Malzahar", "Number": 5}, {"Id": 90005, "Name": "Snow Day Malzahar", "Number": 6}]}, {"Id": 57, "Name": "Maokai", "Skins": [{"Id": 57000, "Name": "default", "Number": 1}, {"Id": 57001, "Name": "Charred Maokai", "Number": 2}, {"Id": 57002, "Name": "Totemic Maokai", "Number": 3}, {"Id": 57003, "Name": "Festive Maokai", "Number": 4}, {"Id": 57004, "Name": "Haunted Maokai", "Number": 5}, {"Id": 57005, "Name": "Goalkeeper Maokai", "Number": 6}]}, {"Id": 11, "Name": "Master Yi", "Skins": [{"Id": 11000, "Name": "default", "Number": 1}, {"Id": 11001, "Name": "Assassin Master Yi", "Number": 2}, {"Id": 11002, "Name": "Chosen Master Yi", "Number": 3}, {"Id": 11003, "Name": "Ionia Master Yi", "Number": 4}, {"Id": 11004, "Name": "Samurai Yi", "Number": 5}, {"Id": 11005, "Name": "Headhunter Master Yi", "Number": 6}]}, {"Id": 21, "Name": "Miss Fortune", "Skins": [{"Id": 21000, "Name": "default", "Number": 1}, {"Id": 21001, "Name": "Cowgirl Miss Fortune", "Number": 2}, {"Id": 21002, "Name": "Waterloo Miss Fortune", "Number": 3}, {"Id": 21003, "Name": "Secret Agent Miss Fortune", "Number": 4}, {"Id": 21004, "Name": "Candy Cane Miss Fortune", "Number": 5}, {"Id": 21005, "Name": "Road Warrior Miss Fortune", "Number": 6}, {"Id": 21006, "Name": "Mafia Miss Fortune", "Number": 7}, {"Id": 21007, "Name": "Arcade Miss Fortune", "Number": 8}]}, {"Id": 62, "Name": "Wukong", "Skins": [{"Id": 62000, "Name": "default", "Number": 1}, {"Id": 62001, "Name": "Volcanic Wukong", "Number": 2}, {"Id": 62002, "Name": "General Wukong", "Number": 3}, {"Id": 62003, "Name": "Jade Dragon Wukong", "Number": 4}, {"Id": 62004, "Name": "Underworld Wukong", "Number": 5}]}, {"Id": 82, "Name": "Mordekaiser", "Skins": [{"Id": 82000, "Name": "default", "Number": 1}, {"Id": 82001, "Name": "Dragon Knight Mordekaiser", "Number": 2}, {"Id": 82002, "Name": "Infernal Mordekaiser", "Number": 3}, {"Id": 82003, "Name": "Pentakill Mordekaiser", "Number": 4}, {"Id": 82004, "Name": "Lord Mordekaiser", "Number": 5}, {"Id": 82005, "Name": "King of Clubs Mordekaiser", "Number": 6}]}, {"Id": 25, "Name": "Morgana", "Skins": [{"Id": 25000, "Name": "default", "Number": 1}, {"Id": 25001, "Name": "Exiled Morgana", "Number": 2}, {"Id": 25002, "Name": "Sinful Succulence Morgana", "Number": 3}, {"Id": 25003, "Name": "Blade Mistress Morgana", "Number": 4}, {"Id": 25004, "Name": "Blackthorn Morgana", "Number": 5}, {"Id": 25005, "Name": "Ghost Bride Morgana", "Number": 6}, {"Id": 25006, "Name": "Victorious Morgana", "Number": 7}]}, {"Id": 267, "Name": "Nami", "Skins": [{"Id": 267000, "Name": "default", "Number": 1}, {"Id": 267001, "Name": "Koi Nami", "Number": 2}, {"Id": 267002, "Name": "River Spirit Nami", "Number": 3}, {"Id": 267003, "Name": "Urf the Nami-tee", "Number": 4}]}, {"Id": 75, "Name": "Nasus", "Skins": [{"Id": 75000, "Name": "default", "Number": 1}, {"Id": 75001, "Name": "Galactic Nasus", "Number": 2}, {"Id": 75002, "Name": "Pharaoh Nasus", "Number": 3}, {"Id": 75003, "Name": "Dreadknight Nasus", "Number": 4}, {"Id": 75004, "Name": "Riot K-9 Nasus", "Number": 5}, {"Id": 75005, "Name": "Infernal Nasus", "Number": 6}, {"Id": 75006, "Name": "Archduke Nasus", "Number": 7}]}, {"Id": 111, "Name": "Nautilus", "Skins": [{"Id": 111000, "Name": "default", "Number": 1}, {"Id": 111001, "Name": "Abyssal Nautilus", "Number": 2}, {"Id": 111002, "Name": "Subterranean Nautilus", "Number": 3}, {"Id": 111003, "Name": "AstroNautilus", "Number": 4}, {"Id": 111004, "Name": "Warden Nautilus", "Number": 5}]}, {"Id": 76, "Name": "Nidalee", "Skins": [{"Id": 76000, "Name": "default", "Number": 1}, {"Id": 76001, "Name": "Snow Bunny Nidalee", "Number": 2}, {"Id": 76002, "Name": "Leopard Nidalee", "Number": 3}, {"Id": 76003, "Name": "French Maid Nidalee", "Number": 4}, {"Id": 76004, "Name": "Pharaoh Nidalee", "Number": 5}, {"Id": 76005, "Name": "Bewitching Nidalee", "Number": 6}, {"Id": 76006, "Name": "Headhunter Nidalee", "Number": 7}, {"Id": 76007, "Name": "Warring Kingdoms Nidalee", "Number": 8}]}, {"Id": 56, "Name": "Nocturne", "Skins": [{"Id": 56000, "Name": "default", "Number": 1}, {"Id": 56001, "Name": "Frozen Terror Nocturne", "Number": 2}, {"Id": 56002, "Name": "Void Nocturne", "Number": 3}, {"Id": 56003, "Name": "Ravager Nocturne", "Number": 4}, {"Id": 56004, "Name": "Haunting Nocturne", "Number": 5}, {"Id": 56005, "Name": "Eternum Nocturne", "Number": 6}]}, {"Id": 20, "Name": "Nunu", "Skins": [{"Id": 20000, "Name": "default", "Number": 1}, {"Id": 20001, "Name": "Sasquatch Nunu", "Number": 2}, {"Id": 20002, "Name": "Workshop Nunu", "Number": 3}, {"Id": 20003, "Name": "Grungy Nunu", "Number": 4}, {"Id": 20004, "Name": "Nunu Bot", "Number": 5}, {"Id": 20005, "Name": "Demolisher Nunu", "Number": 6}, {"Id": 20006, "Name": "TPA Nunu", "Number": 7}]}, {"Id": 2, "Name": "Olaf", "Skins": [{"Id": 2000, "Name": "default", "Number": 1}, {"Id": 2001, "Name": "Forsaken Olaf", "Number": 2}, {"Id": 2002, "Name": "Glacial Olaf", "Number": 3}, {"Id": 2003, "Name": "Brolaf", "Number": 4}, {"Id": 2004, "Name": "Pentakill Olaf", "Number": 5}]}, {"Id": 61, "Name": "Orianna", "Skins": [{"Id": 61000, "Name": "default", "Number": 1}, {"Id": 61001, "Name": "Gothic Orianna", "Number": 2}, {"Id": 61002, "Name": "Sewn Chaos Orianna", "Number": 3}, {"Id": 61003, "Name": "Bladecraft Orianna", "Number": 4}, {"Id": 61004, "Name": "TPA Orianna", "Number": 5}, {"Id": 61005, "Name": "Winter Wonder Orianna", "Number": 6}]}, {"Id": 80, "Name": "Pantheon", "Skins": [{"Id": 80000, "Name": "default", "Number": 1}, {"Id": 80001, "Name": "Myrmidon Pantheon", "Number": 2}, {"Id": 80002, "Name": "Ruthless Pantheon", "Number": 3}, {"Id": 80003, "Name": "Perseus Pantheon", "Number": 4}, {"Id": 80004, "Name": "Full Metal Pantheon", "Number": 5}, {"Id": 80005, "Name": "Glaive Warrior Pantheon", "Number": 6}, {"Id": 80006, "Name": "Dragonslayer Pantheon", "Number": 7}]}, {"Id": 78, "Name": "Poppy", "Skins": [{"Id": 78000, "Name": "default", "Number": 1}, {"Id": 78001, "Name": "Noxus Poppy", "Number": 2}, {"Id": 78002, "Name": "Lollipoppy", "Number": 3}, {"Id": 78003, "Name": "Blacksmith Poppy", "Number": 4}, {"Id": 78004, "Name": "Ragdoll Poppy", "Number": 5}, {"Id": 78005, "Name": "Battle Regalia Poppy", "Number": 6}, {"Id": 78006, "Name": "Scarlet Hammer Poppy", "Number": 7}]}, {"Id": 133, "Name": "Quinn", "Skins": [{"Id": 133000, "Name": "default", "Number": 1}, {"Id": 133001, "Name": "Phoenix Quinn", "Number": 2}, {"Id": 133002, "Name": "Woad Scout Quinn", "Number": 3}]}, {"Id": 33, "Name": "Rammus", "Skins": [{"Id": 33000, "Name": "default", "Number": 1}, {"Id": 33001, "Name": "King Rammus", "Number": 2}, {"Id": 33002, "Name": "Chrome Rammus", "Number": 3}, {"Id": 33003, "Name": "Molten Rammus", "Number": 4}, {"Id": 33004, "Name": "Freljord Rammus", "Number": 5}, {"Id": 33005, "Name": "Ninja Rammus", "Number": 6}, {"Id": 33006, "Name": "Full Metal Rammus", "Number": 7}, {"Id": 33007, "Name": "Guardian of the Sands Rammus", "Number": 8}]}, {"Id": 421, "Name": "Rek'Sai", "Skins": [{"Id": 421000, "Name": "default", "Number": 1}, {"Id": 421001, "Name": "Eternum Rek'Sai", "Number": 2}, {"Id": 421002, "Name": "Pool Party Rek'Sai", "Number": 3}]}, {"Id": 58, "Name": "Renekton", "Skins": [{"Id": 58000, "Name": "default", "Number": 1}, {"Id": 58001, "Name": "Galactic Renekton", "Number": 2}, {"Id": 58002, "Name": "Outback Renekton", "Number": 3}, {"Id": 58003, "Name": "Bloodfury Renekton", "Number": 4}, {"Id": 58004, "Name": "Rune Wars Renekton", "Number": 5}, {"Id": 58005, "Name": "Scorched Earth Renekton", "Number": 6}, {"Id": 58006, "Name": "Pool Party Renekton", "Number": 7}, {"Id": 58007, "Name": "Prehistoric Renekton", "Number": 8}]}, {"Id": 107, "Name": "Rengar", "Skins": [{"Id": 107000, "Name": "default", "Number": 1}, {"Id": 107001, "Name": "Headhunter Rengar", "Number": 2}, {"Id": 107002, "Name": "Night Hunter Rengar", "Number": 3}, {"Id": 107003, "Name": "SSW Rengar", "Number": 4}]}, {"Id": 92, "Name": "Riven", "Skins": [{"Id": 92000, "Name": "default", "Number": 1}, {"Id": 92001, "Name": "Redeemed Riven", "Number": 2}, {"Id": 92002, "Name": "Crimson Elite Riven", "Number": 3}, {"Id": 92003, "Name": "Battle Bunny Riven", "Number": 4}, {"Id": 92004, "Name": "Championship Riven", "Number": 5}, {"Id": 92005, "Name": "Dragonblade Riven", "Number": 6}]}, {"Id": 68, "Name": "Rumble", "Skins": [{"Id": 68000, "Name": "default", "Number": 1}, {"Id": 68001, "Name": "Rumble in the Jungle", "Number": 2}, {"Id": 68002, "Name": "Bilgerat Rumble", "Number": 3}, {"Id": 68003, "Name": "Super Galaxy Rumble", "Number": 4}]}, {"Id": 13, "Name": "Ryze", "Skins": [{"Id": 13000, "Name": "default", "Number": 1}, {"Id": 13001, "Name": "Human Ryze", "Number": 2}, {"Id": 13002, "Name": "Tribal Ryze", "Number": 3}, {"Id": 13003, "Name": "Uncle Ryze", "Number": 4}, {"Id": 13004, "Name": "Triumphant Ryze", "Number": 5}, {"Id": 13005, "Name": "Professor Ryze", "Number": 6}, {"Id": 13006, "Name": "Zombie Ryze", "Number": 7}, {"Id": 13007, "Name": "Dark Crystal Ryze", "Number": 8}, {"Id": 13008, "Name": "Pirate Ryze", "Number": 9}]}, {"Id": 113, "Name": "Sejuani", "Skins": [{"Id": 113000, "Name": "default", "Number": 1}, {"Id": 113001, "Name": "Sabretusk Sejuani", "Number": 2}, {"Id": 113002, "Name": "Darkrider Sejuani", "Number": 3}, {"Id": 113003, "Name": "Traditional Sejuani", "Number": 4}, {"Id": 113004, "Name": "Bear Cavalry Sejuani", "Number": 5}, {"Id": 113005, "Name": "Poro Rider Sejuani", "Number": 6}]}, {"Id": 35, "Name": "Shaco", "Skins": [{"Id": 35000, "Name": "default", "Number": 1}, {"Id": 35001, "Name": "Mad Hatter Shaco", "Number": 2}, {"Id": 35002, "Name": "Royal Shaco", "Number": 3}, {"Id": 35003, "Name": "Nutcracko", "Number": 4}, {"Id": 35004, "Name": "Workshop Shaco", "Number": 5}, {"Id": 35005, "Name": "Asylum Shaco", "Number": 6}, {"Id": 35006, "Name": "Masked Shaco", "Number": 7}, {"Id": 35007, "Name": "Wild Card Shaco", "Number": 8}]}, {"Id": 98, "Name": "Shen", "Skins": [{"Id": 98000, "Name": "default", "Number": 1}, {"Id": 98001, "Name": "Frozen Shen", "Number": 2}, {"Id": 98002, "Name": "Yellow Jacket Shen", "Number": 3}, {"Id": 98003, "Name": "Surgeon Shen", "Number": 4}, {"Id": 98004, "Name": "Blood Moon Shen", "Number": 5}, {"Id": 98005, "Name": "Warlord Shen", "Number": 6}, {"Id": 98006, "Name": "TPA Shen", "Number": 7}]}, {"Id": 102, "Name": "Shyvana", "Skins": [{"Id": 102000, "Name": "default", "Number": 1}, {"Id": 102001, "Name": "Ironscale Shyvana", "Number": 2}, {"Id": 102002, "Name": "Boneclaw Shyvana", "Number": 3}, {"Id": 102003, "Name": "Darkflame Shyvana", "Number": 4}, {"Id": 102004, "Name": "Ice Drake Shyvana", "Number": 5}, {"Id": 102005, "Name": "Championship Shyvana", "Number": 6}]}, {"Id": 27, "Name": "Singed", "Skins": [{"Id": 27000, "Name": "default", "Number": 1}, {"Id": 27001, "Name": "Riot Squad Singed", "Number": 2}, {"Id": 27002, "Name": "Hextech Singed", "Number": 3}, {"Id": 27003, "Name": "Surfer Singed", "Number": 4}, {"Id": 27004, "Name": "Mad Scientist Singed", "Number": 5}, {"Id": 27005, "Name": "Augmented Singed", "Number": 6}, {"Id": 27006, "Name": "Snow Day Singed", "Number": 7}, {"Id": 27007, "Name": "SSW Singed", "Number": 8}]}, {"Id": 14, "Name": "Sion", "Skins": [{"Id": 14000, "Name": "default", "Number": 1}, {"Id": 14001, "Name": "Hextech Sion", "Number": 2}, {"Id": 14002, "Name": "Barbarian Sion", "Number": 3}, {"Id": 14003, "Name": "Lumberjack Sion", "Number": 4}, {"Id": 14004, "Name": "Warmonger Sion", "Number": 5}]}, {"Id": 15, "Name": "Sivir", "Skins": [{"Id": 15000, "Name": "default", "Number": 1}, {"Id": 15001, "Name": "Warrior Princess Sivir", "Number": 2}, {"Id": 15002, "Name": "Spectacular Sivir", "Number": 3}, {"Id": 15003, "Name": "Huntress Sivir", "Number": 4}, {"Id": 15004, "Name": "Bandit Sivir", "Number": 5}, {"Id": 15005, "Name": "PAX Sivir", "Number": 6}, {"Id": 15006, "Name": "Snowstorm Sivir", "Number": 7}, {"Id": 15007, "Name": "Warden Sivir", "Number": 8}]}, {"Id": 72, "Name": "Skarner", "Skins": [{"Id": 72000, "Name": "default", "Number": 1}, {"Id": 72001, "Name": "Sandscourge Skarner", "Number": 2}, {"Id": 72002, "Name": "Earthrune Skarner", "Number": 3}, {"Id": 72003, "Name": "Battlecast Alpha Skarner", "Number": 4}, {"Id": 72004, "Name": "Guardian of the Sands Skarner", "Number": 5}]}, {"Id": 37, "Name": "Sona", "Skins": [{"Id": 37000, "Name": "default", "Number": 1}, {"Id": 37001, "Name": "Muse Sona", "Number": 2}, {"Id": 37002, "Name": "Pentakill Sona", "Number": 3}, {"Id": 37003, "Name": "Silent Night Sona", "Number": 4}, {"Id": 37004, "Name": "Guqin Sona", "Number": 5}, {"Id": 37005, "Name": "Arcade Sona", "Number": 6}, {"Id": 37006, "Name": "DJ Sona", "Number": 7}]}, {"Id": 16, "Name": "Soraka", "Skins": [{"Id": 16000, "Name": "default", "Number": 1}, {"Id": 16001, "Name": "Dryad Soraka", "Number": 2}, {"Id": 16002, "Name": "Divine Soraka", "Number": 3}, {"Id": 16003, "Name": "Celestine Soraka", "Number": 4}, {"Id": 16004, "Name": "Reaper Soraka", "Number": 5}, {"Id": 16005, "Name": "Order of the Banana Soraka", "Number": 6}]}, {"Id": 50, "Name": "Swain", "Skins": [{"Id": 50000, "Name": "default", "Number": 1}, {"Id": 50001, "Name": "Northern Front Swain", "Number": 2}, {"Id": 50002, "Name": "Bilgewater Swain", "Number": 3}, {"Id": 50003, "Name": "Tyrant Swain", "Number": 4}]}, {"Id": 134, "Name": "Syndra", "Skins": [{"Id": 134000, "Name": "default", "Number": 1}, {"Id": 134001, "Name": "Justicar Syndra", "Number": 2}, {"Id": 134002, "Name": "Atlantean Syndra", "Number": 3}, {"Id": 134003, "Name": "Queen of Diamonds Syndra", "Number": 4}]}, {"Id": 223, "Name": "Tahm Kench", "Skins": [{"Id": 223000, "Name": "default", "Number": 1}, {"Id": 223001, "Name": "Master Chef Tahm Kench", "Number": 2}]}, {"Id": 91, "Name": "Talon", "Skins": [{"Id": 91000, "Name": "default", "Number": 1}, {"Id": 91001, "Name": "Renegade Talon", "Number": 2}, {"Id": 91002, "Name": "Crimson Elite Talon", "Number": 3}, {"Id": 91003, "Name": "Dragonblade Talon", "Number": 4}, {"Id": 91004, "Name": "SSW Talon", "Number": 5}]}, {"Id": 44, "Name": "Taric", "Skins": [{"Id": 44000, "Name": "default", "Number": 1}, {"Id": 44001, "Name": "Emerald Taric", "Number": 2}, {"Id": 44002, "Name": "Armor of the Fifth Age Taric", "Number": 3}, {"Id": 44003, "Name": "Bloodstone Taric", "Number": 4}]}, {"Id": 17, "Name": "Teemo", "Skins": [{"Id": 17000, "Name": "default", "Number": 1}, {"Id": 17001, "Name": "Happy Elf Teemo", "Number": 2}, {"Id": 17002, "Name": "Recon Teemo", "Number": 3}, {"Id": 17003, "Name": "Badger Teemo", "Number": 4}, {"Id": 17004, "Name": "Astronaut Teemo", "Number": 5}, {"Id": 17005, "Name": "Cottontail Teemo", "Number": 6}, {"Id": 17006, "Name": "Super Teemo", "Number": 7}, {"Id": 17007, "Name": "Panda Teemo", "Number": 8}, {"Id": 17008, "Name": "Omega Squad Teemo", "Number": 9}]}, {"Id": 412, "Name": "Thresh", "Skins": [{"Id": 412000, "Name": "default", "Number": 1}, {"Id": 412001, "Name": "Deep Terror Thresh", "Number": 2}, {"Id": 412002, "Name": "Championship Thresh", "Number": 3}, {"Id": 412003, "Name": "Blood Moon Thresh", "Number": 4}, {"Id": 412004, "Name": "SSW Thresh", "Number": 5}]}, {"Id": 18, "Name": "Tristana", "Skins": [{"Id": 18000, "Name": "default", "Number": 1}, {"Id": 18001, "Name": "Riot Girl Tristana", "Number": 2}, {"Id": 18002, "Name": "Earnest Elf Tristana", "Number": 3}, {"Id": 18003, "Name": "Firefighter Tristana", "Number": 4}, {"Id": 18004, "Name": "Guerilla Tristana", "Number": 5}, {"Id": 18005, "Name": "Buccaneer Tristana", "Number": 6}, {"Id": 18006, "Name": "Rocket Girl Tristana", "Number": 7}]}, {"Id": 48, "Name": "Trundle", "Skins": [{"Id": 48000, "Name": "default", "Number": 1}, {"Id": 48001, "Name": "Lil' Slugger Trundle", "Number": 2}, {"Id": 48002, "Name": "Junkyard Trundle", "Number": 3}, {"Id": 48003, "Name": "Traditional Trundle", "Number": 4}, {"Id": 48004, "Name": "Constable Trundle", "Number": 5}]}, {"Id": 23, "Name": "Tryndamere", "Skins": [{"Id": 23000, "Name": "default", "Number": 1}, {"Id": 23001, "Name": "Highland Tryndamere", "Number": 2}, {"Id": 23002, "Name": "King Tryndamere", "Number": 3}, {"Id": 23003, "Name": "Viking Tryndamere", "Number": 4}, {"Id": 23004, "Name": "Demonblade Tryndamere", "Number": 5}, {"Id": 23005, "Name": "Sultan Tryndamere", "Number": 6}, {"Id": 23006, "Name": "Warring Kingdoms Tryndamere", "Number": 7}, {"Id": 23007, "Name": "Nightmare Tryndamere", "Number": 8}]}, {"Id": 4, "Name": "Twisted Fate", "Skins": [{"Id": 4000, "Name": "default", "Number": 1}, {"Id": 4001, "Name": "PAX Twisted Fate", "Number": 2}, {"Id": 4002, "Name": "Jack of Hearts Twisted Fate", "Number": 3}, {"Id": 4003, "Name": "The Magnificent Twisted Fate", "Number": 4}, {"Id": 4004, "Name": "Tango Twisted Fate", "Number": 5}, {"Id": 4005, "Name": "High Noon Twisted Fate", "Number": 6}, {"Id": 4006, "Name": "Musketeer Twisted Fate", "Number": 7}, {"Id": 4007, "Name": "Underworld Twisted Fate", "Number": 8}, {"Id": 4008, "Name": "Red Card Twisted Fate", "Number": 9}]}, {"Id": 29, "Name": "Twitch", "Skins": [{"Id": 29000, "Name": "default", "Number": 1}, {"Id": 29001, "Name": "Kingpin Twitch", "Number": 2}, {"Id": 29002, "Name": "Whistler Village Twitch", "Number": 3}, {"Id": 29003, "Name": "Medieval Twitch", "Number": 4}, {"Id": 29004, "Name": "Gangster Twitch", "Number": 5}, {"Id": 29005, "Name": "Vandal Twitch", "Number": 6}, {"Id": 29006, "Name": "Pickpocket Twitch", "Number": 7}, {"Id": 29007, "Name": "SSW Twitch", "Number": 8}]}, {"Id": 77, "Name": "Udyr", "Skins": [{"Id": 77000, "Name": "default", "Number": 1}, {"Id": 77001, "Name": "Black Belt Udyr", "Number": 2}, {"Id": 77002, "Name": "Primal Udyr", "Number": 3}, {"Id": 77003, "Name": "Spirit Guard Udyr", "Number": 4}, {"Id": 77004, "Name": "Definitely Not Udyr", "Number": 5}]}, {"Id": 6, "Name": "Urgot", "Skins": [{"Id": 6000, "Name": "default", "Number": 1}, {"Id": 6001, "Name": "Giant Enemy Crabgot", "Number": 2}, {"Id": 6002, "Name": "Butcher Urgot", "Number": 3}, {"Id": 6003, "Name": "Battlecast Urgot", "Number": 4}]}, {"Id": 110, "Name": "Varus", "Skins": [{"Id": 110000, "Name": "default", "Number": 1}, {"Id": 110001, "Name": "Blight Crystal Varus", "Number": 2}, {"Id": 110002, "Name": "Arclight Varus", "Number": 3}, {"Id": 110003, "Name": "Arctic Ops Varus", "Number": 4}, {"Id": 110004, "Name": "Heartseeker Varus", "Number": 5}]}, {"Id": 67, "Name": "Vayne", "Skins": [{"Id": 67000, "Name": "default", "Number": 1}, {"Id": 67001, "Name": "Vindicator Vayne", "Number": 2}, {"Id": 67002, "Name": "Aristocrat Vayne", "Number": 3}, {"Id": 67003, "Name": "Dragonslayer Vayne", "Number": 4}, {"Id": 67004, "Name": "Heartseeker Vayne", "Number": 5}, {"Id": 67005, "Name": "SKT T1 Vayne", "Number": 6}, {"Id": 67006, "Name": "Arclight Vayne", "Number": 7}]}, {"Id": 45, "Name": "Veigar", "Skins": [{"Id": 45000, "Name": "default", "Number": 1}, {"Id": 45001, "Name": "White Mage Veigar", "Number": 2}, {"Id": 45002, "Name": "Curling Veigar", "Number": 3}, {"Id": 45003, "Name": "Veigar Greybeard", "Number": 4}, {"Id": 45004, "Name": "Leprechaun Veigar", "Number": 5}, {"Id": 45005, "Name": "Baron Von Veigar", "Number": 6}, {"Id": 45006, "Name": "Superb Villain Veigar", "Number": 7}, {"Id": 45007, "Name": "Bad Santa Veigar", "Number": 8}, {"Id": 45008, "Name": "Final Boss Veigar", "Number": 9}]}, {"Id": 161, "Name": "Vel'Koz", "Skins": [{"Id": 161000, "Name": "default", "Number": 1}, {"Id": 161001, "Name": "Battlecast Vel'Koz", "Number": 2}, {"Id": 161002, "Name": "Arclight Vel'Koz", "Number": 3}]}, {"Id": 254, "Name": "Vi", "Skins": [{"Id": 254000, "Name": "default", "Number": 1}, {"Id": 254001, "Name": "Neon Strike Vi", "Number": 2}, {"Id": 254002, "Name": "Officer Vi", "Number": 3}, {"Id": 254003, "Name": "Debonair Vi", "Number": 4}]}, {"Id": 112, "Name": "Viktor", "Skins": [{"Id": 112000, "Name": "default", "Number": 1}, {"Id": 112001, "Name": "Full Machine Viktor", "Number": 2}, {"Id": 112002, "Name": "Prototype Viktor", "Number": 3}, {"Id": 112003, "Name": "Creator Viktor", "Number": 4}]}, {"Id": 8, "Name": "Vladimir", "Skins": [{"Id": 8000, "Name": "default", "Number": 1}, {"Id": 8001, "Name": "Count Vladimir", "Number": 2}, {"Id": 8002, "Name": "Marquis Vladimir", "Number": 3}, {"Id": 8003, "Name": "Nosferatu Vladimir", "Number": 4}, {"Id": 8004, "Name": "Vandal Vladimir", "Number": 5}, {"Id": 8005, "Name": "Blood Lord Vladimir", "Number": 6}, {"Id": 8006, "Name": "Soulstealer Vladimir", "Number": 7}]}, {"Id": 106, "Name": "Volibear", "Skins": [{"Id": 106000, "Name": "default", "Number": 1}, {"Id": 106001, "Name": "Thunder Lord Volibear", "Number": 2}, {"Id": 106002, "Name": "Northern Storm Volibear", "Number": 3}, {"Id": 106003, "Name": "Runeguard Volibear", "Number": 4}, {"Id": 106004, "Name": "Captain Volibear", "Number": 5}]}, {"Id": 19, "Name": "Warwick", "Skins": [{"Id": 19000, "Name": "default", "Number": 1}, {"Id": 19001, "Name": "Grey Warwick", "Number": 2}, {"Id": 19002, "Name": "Urf the Manatee", "Number": 3}, {"Id": 19003, "Name": "Big Bad Warwick", "Number": 4}, {"Id": 19004, "Name": "Tundra Hunter Warwick", "Number": 5}, {"Id": 19005, "Name": "Feral Warwick", "Number": 6}, {"Id": 19006, "Name": "Firefang Warwick", "Number": 7}, {"Id": 19007, "Name": "Hyena Warwick", "Number": 8}, {"Id": 19008, "Name": "Marauder Warwick", "Number": 9}]}, {"Id": 101, "Name": "Xerath", "Skins": [{"Id": 101000, "Name": "default", "Number": 1}, {"Id": 101001, "Name": "Runeborn Xerath", "Number": 2}, {"Id": 101002, "Name": "Battlecast Xerath", "Number": 3}, {"Id": 101003, "Name": "Scorched Earth Xerath", "Number": 4}, {"Id": 101004, "Name": "Guardian of the Sands Xerath", "Number": 5}]}, {"Id": 5, "Name": "Xin Zhao", "Skins": [{"Id": 5000, "Name": "default", "Number": 1}, {"Id": 5001, "Name": "Commando Xin Zhao", "Number": 2}, {"Id": 5002, "Name": "Imperial Xin Zhao", "Number": 3}, {"Id": 5003, "Name": "Viscero Xin Zhao", "Number": 4}, {"Id": 5004, "Name": "Winged Hussar Xin Zhao", "Number": 5}, {"Id": 5005, "Name": "Warring Kingdoms Xin Zhao", "Number": 6}, {"Id": 5006, "Name": "Secret Agent Xin Zhao", "Number": 7}]}, {"Id": 157, "Name": "Yasuo", "Skins": [{"Id": 157000, "Name": "default", "Number": 1}, {"Id": 157001, "Name": "High Noon Yasuo", "Number": 2}, {"Id": 157002, "Name": "PROJECT: Yasuo", "Number": 3}]}, {"Id": 83, "Name": "Yorick", "Skins": [{"Id": 83000, "Name": "default", "Number": 1}, {"Id": 83001, "Name": "Undertaker Yorick", "Number": 2}, {"Id": 83002, "Name": "Pentakill Yorick", "Number": 3}]}, {"Id": 154, "Name": "Zac", "Skins": [{"Id": 154000, "Name": "default", "Number": 1}, {"Id": 154001, "Name": "Special Weapon Zac", "Number": 2}, {"Id": 154002, "Name": "Pool Party Zac", "Number": 3}]}, {"Id": 238, "Name": "Zed", "Skins": [{"Id": 238000, "Name": "default", "Number": 1}, {"Id": 238001, "Name": "Shockblade Zed", "Number": 2}, {"Id": 238002, "Name": "SKT T1 Zed", "Number": 3}]}, {"Id": 115, "Name": "Ziggs", "Skins": [{"Id": 115000, "Name": "default", "Number": 1}, {"Id": 115001, "Name": "Mad Scientist Ziggs", "Number": 2}, {"Id": 115002, "Name": "Major Ziggs", "Number": 3}, {"Id": 115003, "Name": "Pool Party Ziggs", "Number": 4}, {"Id": 115004, "Name": "Snow Day Ziggs", "Number": 5}, {"Id": 115005, "Name": "Master Arcanist Ziggs", "Number": 6}]}, {"Id": 26, "Name": "Zilean", "Skins": [{"Id": 26000, "Name": "default", "Number": 1}, {"Id": 26001, "Name": "Old Saint Zilean", "Number": 2}, {"Id": 26002, "Name": "Groovy Zilean", "Number": 3}, {"Id": 26003, "Name": "Shurima Desert Zilean", "Number": 4}, {"Id": 26004, "Name": "Time Machine Zilean", "Number": 5}, {"Id": 26005, "Name": "Blood Moon Zilean", "Number": 6}]}, {"Id": 143, "Name": "Zyra", "Skins": [{"Id": 143000, "Name": "default", "Number": 1}, {"Id": 143001, "Name": "Wildfire Zyra", "Number": 2}, {"Id": 143002, "Name": "Haunted Zyra", "Number": 3}, {"Id": 143003, "Name": "SKT T1 Zyra", "Number": 4}]}] \ No newline at end of file diff --git a/League/Champions.version b/League/Champions.version deleted file mode 100644 index 6976d86..0000000 --- a/League/Champions.version +++ /dev/null @@ -1 +0,0 @@ -5.13.1.0 diff --git a/League/Client.version b/League/Client.version deleted file mode 100644 index 4561721..0000000 --- a/League/Client.version +++ /dev/null @@ -1 +0,0 @@ -5.13.15_07_07_21_19 \ No newline at end of file diff --git a/League/Runes.json b/League/Runes.json deleted file mode 100644 index 5c659d1..0000000 --- a/League/Runes.json +++ /dev/null @@ -1 +0,0 @@ -[{"Id":5235,"Name":"Quintessence of Ability Power","Description":"+3.85 ability power","Tier":2,"Type":4},{"Id":5234,"Name":"Quintessence of Scaling Cooldown Reduction","Description":"-0.21% cooldowns per level (-3.9% at champion level 18)","Tier":2,"Type":4},{"Id":5233,"Name":"Quintessence of Cooldown Reduction","Description":"-1.95% cooldowns","Tier":2,"Type":4},{"Id":5370,"Name":"Greater Seal of Scaling Energy Regeneration","Description":"+0.064 Energy regen/5 sec per level (+1.15 at champion level 18)","Tier":3,"Type":2},{"Id":5230,"Name":"Quintessence of Scaling Health Regeneration","Description":"+0.22 health regen / 5 sec. per level (+3.96 at champion level 18)","Tier":2,"Type":4},{"Id":8016,"Name":"Quintessence of the Speedy Specter","Description":"+1.39% movement speed","Tier":2,"Type":4},{"Id":5374,"Name":"Greater Quintessence of Energy","Description":"+5.4 Energy","Tier":3,"Type":4},{"Id":8015,"Name":"Quintessence of Bountiful Treats","Description":"+24 health","Tier":2,"Type":4},{"Id":5373,"Name":"Greater Quintessence of Energy Regeneration","Description":"+1.575 Energy regen/5 sec","Tier":3,"Type":4},{"Id":5372,"Name":"Greater Glyph of Scaling Energy","Description":"+0.161 Energy/level (+2.89 at level 18)","Tier":3,"Type":3},{"Id":8017,"Name":"Quintessence of the Witches Brew","Description":"+4.56 ability power","Tier":2,"Type":4},{"Id":5371,"Name":"Greater Glyph of Energy","Description":"+2.2 Energy","Tier":3,"Type":3},{"Id":8012,"Name":"Glyph of the Soaring Slalom","Description":"-0.75% cooldowns","Tier":2,"Type":3},{"Id":8011,"Name":"Lesser Glyph of the Challenger","Description":"+0.66 ability power","Tier":1,"Type":3},{"Id":8014,"Name":"Quintessence of the Piercing Screech","Description":"+1.85 magic penetration","Tier":2,"Type":4},{"Id":8013,"Name":"Quintessence of the Headless Horseman","Description":"+2.37 armor penetration","Tier":2,"Type":4},{"Id":5368,"Name":"Greater Quintessence of Experience","Description":"+2% experience gained","Tier":3,"Type":4},{"Id":5369,"Name":"Greater Seal of Energy Regeneration","Description":"+0.63 Energy regen/5 sec","Tier":3,"Type":2},{"Id":8008,"Name":"Mark of the Combatant","Description":"+2% critical damage","Tier":2,"Type":1},{"Id":8009,"Name":"Lesser Seal of the Medalist","Description":"+3.56 health","Tier":1,"Type":2},{"Id":5229,"Name":"Quintessence of Health Regeneration","Description":"+2.1 health regen / 5 sec.","Tier":2,"Type":4},{"Id":5227,"Name":"Quintessence of Magic Resist","Description":"+3.11 magic resist","Tier":2,"Type":4},{"Id":5228,"Name":"Quintessence of Scaling Magic Resist","Description":"+0.29 magic resist per level (+5.22 at champion level 18)","Tier":2,"Type":4},{"Id":5225,"Name":"Quintessence of Armor","Description":"+3.32 armor","Tier":2,"Type":4},{"Id":5226,"Name":"Quintessence of Scaling Armor","Description":"+0.29 armor per level (+5.22 at champion level 18)","Tier":2,"Type":4},{"Id":8021,"Name":"Greater Quintessence of Frosty Health","Description":"+26 health","Tier":3,"Type":4},{"Id":8020,"Name":"Greater Quintessence of the Deadly Wreath","Description":"+2.56 armor penetration","Tier":3,"Type":4},{"Id":5221,"Name":"Quintessence of Armor Penetration","Description":"+1.99 armor penetration","Tier":2,"Type":4},{"Id":5224,"Name":"Quintessence of Scaling Health","Description":"+2.1 health per level (+37.8 at champion level 18)","Tier":2,"Type":4},{"Id":5223,"Name":"Quintessence of Health","Description":"+20 health","Tier":2,"Type":4},{"Id":5361,"Name":"Greater Quintessence of Mana Regeneration","Description":"+1.25 mana regen / 5 sec.","Tier":3,"Type":4},{"Id":5360,"Name":"Greater Quintessence of Scaling Mana","Description":"+4.17 mana per level (+75.06 at champion level 18)","Tier":3,"Type":4},{"Id":5363,"Name":"Greater Quintessence of Magic Penetration","Description":"+2.01 magic penetration","Tier":3,"Type":4},{"Id":5362,"Name":"Greater Quintessence of Scaling Mana Regeneration","Description":"+0.24 mana regen / 5 sec. per level (+4.32 at champion level 18)","Tier":3,"Type":4},{"Id":5365,"Name":"Greater Quintessence of Movement Speed","Description":"+1.5% movement speed","Tier":3,"Type":4},{"Id":5367,"Name":"Greater Quintessence of Gold","Description":"+1 gold / 10 sec.","Tier":3,"Type":4},{"Id":8022,"Name":"Greater Quintessence of Sugar Rush","Description":"+1.5% movement speed","Tier":3,"Type":4},{"Id":5366,"Name":"Greater Quintessence of Revival","Description":"-5% time dead","Tier":3,"Type":4},{"Id":5357,"Name":"Greater Quintessence of Ability Power","Description":"+4.95 ability power","Tier":3,"Type":4},{"Id":5358,"Name":"Greater Quintessence of Scaling Ability Power","Description":"+0.43 ability power per level (+7.74 at champion level 18)","Tier":3,"Type":4},{"Id":5359,"Name":"Greater Quintessence of Mana","Description":"+37.5 mana","Tier":3,"Type":4},{"Id":8019,"Name":"Greater Quintessence of the Piercing Present","Description":"+2.01 magic penetration","Tier":3,"Type":4},{"Id":5219,"Name":"Quintessence of Critical Chance","Description":"+1.44% critical chance","Tier":2,"Type":4},{"Id":5214,"Name":"Quintessence of Scaling Attack Damage","Description":"+0.19 attack damage per level (+3.42 at champion level 18)","Tier":2,"Type":4},{"Id":5215,"Name":"Quintessence of Attack Speed","Description":"+3.51% attack speed","Tier":2,"Type":4},{"Id":5217,"Name":"Quintessence of Critical Damage","Description":"+3.47% critical damage","Tier":2,"Type":4},{"Id":5253,"Name":"Greater Mark of Armor Penetration","Description":"+1.28 armor penetration","Tier":3,"Type":1},{"Id":5251,"Name":"Greater Mark of Critical Chance","Description":"+0.93% critical chance","Tier":3,"Type":1},{"Id":5257,"Name":"Greater Mark of Armor","Description":"+0.91 armor","Tier":3,"Type":1},{"Id":5256,"Name":"Greater Mark of Scaling Health","Description":"+0.54 health per level (+9.72 at champion level 18)","Tier":3,"Type":1},{"Id":5255,"Name":"Greater Mark of Health","Description":"+3.47 health","Tier":3,"Type":1},{"Id":5356,"Name":"Greater Quintessence of Scaling Cooldown Reduction","Description":"-0.28% cooldowns per level (-5% at champion level 18)","Tier":3,"Type":4},{"Id":5355,"Name":"Greater Quintessence of Cooldown Reduction","Description":"-2.5% cooldowns","Tier":3,"Type":4},{"Id":8035,"Name":"Greater Quintessence of Studio Rumble","Description":"+1.5% movement speed","Tier":3,"Type":4},{"Id":5352,"Name":"Greater Quintessence of Scaling Health Regeneration","Description":"+0.28 health regen / 5 sec. per level (+5.04 at champion level 18)","Tier":3,"Type":4},{"Id":5351,"Name":"Greater Quintessence of Health Regeneration","Description":"+2.7 health regen / 5 sec.","Tier":3,"Type":4},{"Id":5350,"Name":"Greater Quintessence of Scaling Magic Resist","Description":"+0.37 magic resist per level (+6.66 at champion level 18)","Tier":3,"Type":4},{"Id":5348,"Name":"Greater Quintessence of Scaling Armor","Description":"+0.38 armor per level (+6.84 at champion level 18)","Tier":3,"Type":4},{"Id":5349,"Name":"Greater Quintessence of Magic Resist","Description":"+4 magic resist","Tier":3,"Type":4},{"Id":5346,"Name":"Greater Quintessence of Scaling Health","Description":"+2.7 health per level (+48.6 at champion level 18)","Tier":3,"Type":4},{"Id":5347,"Name":"Greater Quintessence of Armor","Description":"+4.26 armor","Tier":3,"Type":4},{"Id":5249,"Name":"Greater Mark of Critical Damage","Description":"+2.23% critical damage","Tier":3,"Type":1},{"Id":5247,"Name":"Greater Mark of Attack Speed","Description":"+1.7% attack speed","Tier":3,"Type":1},{"Id":5240,"Name":"Quintessence of Scaling Mana Regeneration","Description":"+0.19 mana regen / 5 sec. per level (+3.42 at champion level 18)","Tier":2,"Type":4},{"Id":5241,"Name":"Quintessence of Magic Penetration","Description":"+1.56 magic penetration","Tier":2,"Type":4},{"Id":5243,"Name":"Quintessence of Movement Speed","Description":"+1.17% movement speed","Tier":2,"Type":4},{"Id":5246,"Name":"Greater Mark of Scaling Attack Damage","Description":"+0.13 attack damage per level (+2.43 at champion level 18)","Tier":3,"Type":1},{"Id":5245,"Name":"Greater Mark of Attack Damage","Description":"+0.95 attack damage","Tier":3,"Type":1},{"Id":5343,"Name":"Greater Quintessence of Armor Penetration","Description":"+2.56 armor penetration","Tier":3,"Type":4},{"Id":5345,"Name":"Greater Quintessence of Health","Description":"+26 health","Tier":3,"Type":4},{"Id":5341,"Name":"Greater Quintessence of Critical Chance","Description":"+1.86% critical chance","Tier":3,"Type":4},{"Id":5339,"Name":"Greater Quintessence of Critical Damage","Description":"+4.46% critical damage","Tier":3,"Type":4},{"Id":5335,"Name":"Greater Quintessence of Attack Damage","Description":"+2.25 attack damage","Tier":3,"Type":4},{"Id":5336,"Name":"Greater Quintessence of Scaling Attack Damage","Description":"+0.25 attack damage per level (+4.5 at champion level 18)","Tier":3,"Type":4},{"Id":5337,"Name":"Greater Quintessence of Attack Speed","Description":"+4.5% attack speed","Tier":3,"Type":4},{"Id":5236,"Name":"Quintessence of Scaling Ability Power","Description":"+0.34 ability power per level (+6.12 at champion level 18)","Tier":2,"Type":4},{"Id":5237,"Name":"Quintessence of Mana","Description":"+29.17 mana","Tier":2,"Type":4},{"Id":5238,"Name":"Quintessence of Scaling Mana","Description":"+3.24 mana per level (+58.32 at champion level 18)","Tier":2,"Type":4},{"Id":5239,"Name":"Quintessence of Mana Regeneration","Description":"+0.97 mana regen / 5 sec.","Tier":2,"Type":4},{"Id":5330,"Name":"Greater Seal of Scaling Mana","Description":"+1.17 mana per level (+21.06 at champion level 18)","Tier":3,"Type":2},{"Id":5129,"Name":"Mark of Critical Chance","Description":"+0.72% critical chance","Tier":2,"Type":1},{"Id":5127,"Name":"Mark of Critical Damage","Description":"+1.74% critical damage","Tier":2,"Type":1},{"Id":5331,"Name":"Greater Seal of Mana Regeneration","Description":"+0.41 mana regen / 5 sec.","Tier":3,"Type":2},{"Id":5400,"Name":"Lesser Mark of Hybrid Penetration","Description":"+0.5 Armor Penetration / +0.34 Magic Penetration","Tier":1,"Type":1},{"Id":5332,"Name":"Greater Seal of Scaling Mana Regeneration","Description":"+0.065 mana regen / 5 sec. per level (+1.17 at champion level 18)","Tier":3,"Type":2},{"Id":5327,"Name":"Greater Seal of Ability Power","Description":"+0.59 ability power","Tier":3,"Type":2},{"Id":5131,"Name":"Mark of Armor Penetration","Description":"+1 armor penetration","Tier":2,"Type":1},{"Id":5325,"Name":"Greater Seal of Cooldown Reduction","Description":"-0.36% cooldowns","Tier":3,"Type":2},{"Id":5135,"Name":"Mark of Armor","Description":"+0.71 armor","Tier":2,"Type":1},{"Id":5329,"Name":"Greater Seal of Mana","Description":"+6.89 mana","Tier":3,"Type":2},{"Id":5134,"Name":"Mark of Scaling Health","Description":"+0.42 health per level (+7.56 at champion level 18)","Tier":2,"Type":1},{"Id":5328,"Name":"Greater Seal of Scaling Ability Power","Description":"+0.1 ability power per level (+1.8 at champion level 18)","Tier":3,"Type":2},{"Id":5133,"Name":"Mark of Health","Description":"+2.7 health","Tier":2,"Type":1},{"Id":5115,"Name":"Lesser Quintessence of Mana","Description":"+20.83 mana","Tier":1,"Type":4},{"Id":5116,"Name":"Lesser Quintessence of Scaling Mana","Description":"+2.31 mana per level (+41.58 at champion level 18)","Tier":1,"Type":4},{"Id":5117,"Name":"Lesser Quintessence of Mana Regeneration","Description":"+0.69 mana regen / 5 sec.","Tier":1,"Type":4},{"Id":5118,"Name":"Lesser Quintessence of Scaling Mana Regeneration","Description":"+0.14 mana regen / 5 sec. per level (+2.52 at champion level 18)","Tier":1,"Type":4},{"Id":5410,"Name":"Lesser Quintessence of Life Steal","Description":"+0.84% Life Steal","Tier":1,"Type":4},{"Id":5320,"Name":"Greater Seal of Scaling Magic Resist","Description":"+0.1 magic resist per level (+1.8 at champion level 18)","Tier":3,"Type":2},{"Id":5119,"Name":"Lesser Quintessence of Magic Penetration","Description":"+1.11 magic penetration","Tier":1,"Type":4},{"Id":5411,"Name":"Quintessence of Life Steal","Description":"+1.17% Life Steal","Tier":2,"Type":4},{"Id":5321,"Name":"Greater Seal of Health Regeneration","Description":"+0.56 health regen / 5 sec.","Tier":3,"Type":2},{"Id":5322,"Name":"Greater Seal of Scaling Health Regeneration","Description":"+0.11 health regen / 5 sec. per level (+1.98 at champion level 18)","Tier":3,"Type":2},{"Id":5409,"Name":"Greater Quintessence of Spell Vamp","Description":"+2% Spellvamp.","Tier":3,"Type":4},{"Id":5404,"Name":"Lesser Quintessence of Percent Health","Description":"+0.84% increased health.","Tier":1,"Type":4},{"Id":5403,"Name":"Greater Seal of Gold","Description":"+0.25 gold / 10 sec.","Tier":3,"Type":2},{"Id":5402,"Name":"Greater Mark of Hybrid Penetration","Description":"+0.9 Armor Penetration / +0.62 Magic Penetration","Tier":3,"Type":1},{"Id":5316,"Name":"Greater Seal of Scaling Health","Description":"+1.33 health per level (+24 at champion level 18)","Tier":3,"Type":2},{"Id":5121,"Name":"Lesser Quintessence of Movement Speed","Description":"+0.83% movement speed","Tier":1,"Type":4},{"Id":5401,"Name":"Mark of Hybrid Penetration","Description":"+0.7 Armor Penetration / +0.48 Magic Penetration","Tier":2,"Type":1},{"Id":5315,"Name":"Greater Seal of Health","Description":"+8 health","Tier":3,"Type":2},{"Id":5408,"Name":"Quintessence of Spell Vamp","Description":"+1.56% Spellvamp.","Tier":2,"Type":4},{"Id":5318,"Name":"Greater Seal of Scaling Armor","Description":"+0.16 armor per level (+3 at champion level 18)","Tier":3,"Type":2},{"Id":5123,"Name":"Mark of Attack Damage","Description":"+0.74 attack damage","Tier":2,"Type":1},{"Id":5407,"Name":"Lesser Quintessence of Spell Vamp","Description":"+1.12% Spellvamp.","Tier":1,"Type":4},{"Id":5317,"Name":"Greater Seal of Armor","Description":"+1 armor","Tier":3,"Type":2},{"Id":5406,"Name":"Greater Quintessence of Percent Health","Description":"+1.5% increased health.","Tier":3,"Type":4},{"Id":5125,"Name":"Mark of Attack Speed","Description":"+1.32% attack speed","Tier":2,"Type":1},{"Id":5405,"Name":"Quintessence of Percent Health","Description":"+1.17% increased health.","Tier":2,"Type":4},{"Id":5319,"Name":"Greater Seal of Magic Resist","Description":"+0.74 magic resist","Tier":3,"Type":2},{"Id":5124,"Name":"Mark of Scaling Attack Damage","Description":"+0.1 attack damage per level (+1.89 at champion level 18)","Tier":2,"Type":1},{"Id":5311,"Name":"Greater Seal of Critical Chance","Description":"+0.42% critical chance","Tier":3,"Type":2},{"Id":5108,"Name":"Lesser Quintessence of Scaling Health Regeneration","Description":"+0.16 health regen / 5 sec. per level (+2.88 at champion level 18)","Tier":1,"Type":4},{"Id":5106,"Name":"Lesser Quintessence of Scaling Magic Resist","Description":"+0.21 magic resist per level (+3.78 at champion level 18)","Tier":1,"Type":4},{"Id":5107,"Name":"Lesser Quintessence of Health Regeneration","Description":"+1.5 health regen / 5 sec.","Tier":1,"Type":4},{"Id":5104,"Name":"Lesser Quintessence of Scaling Armor","Description":"+0.21 armor per level (+3.78 at champion level 18)","Tier":1,"Type":4},{"Id":5105,"Name":"Lesser Quintessence of Magic Resist","Description":"+2.22 magic resist","Tier":1,"Type":4},{"Id":5007,"Name":"Lesser Mark of Critical Chance","Description":"+0.52% critical chance","Tier":1,"Type":1},{"Id":5005,"Name":"Lesser Mark of Critical Damage","Description":"+1.24% critical damage","Tier":1,"Type":1},{"Id":5213,"Name":"Quintessence of Attack Damage","Description":"+1.75 attack damage","Tier":2,"Type":4},{"Id":5210,"Name":"Seal of Scaling Mana Regeneration","Description":"+0.05 mana regen / 5 sec. per level (+0.9 at champion level 18)","Tier":2,"Type":2},{"Id":5009,"Name":"Lesser Mark of Armor Penetration","Description":"+0.72 armor penetration","Tier":1,"Type":1},{"Id":5206,"Name":"Seal of Scaling Ability Power","Description":"+0.08 ability power per level (+1.44 at champion level 18)","Tier":2,"Type":2},{"Id":5011,"Name":"Lesser Mark of Health","Description":"+1.93 health","Tier":1,"Type":1},{"Id":5205,"Name":"Seal of Ability Power","Description":"+0.46 ability power","Tier":2,"Type":2},{"Id":5203,"Name":"Seal of Cooldown Reduction","Description":"-0.29% cooldowns","Tier":2,"Type":2},{"Id":5015,"Name":"Lesser Mark of Magic Resist","Description":"+0.43 magic resist","Tier":1,"Type":1},{"Id":5209,"Name":"Seal of Mana Regeneration","Description":"+0.32 mana regen / 5 sec.","Tier":2,"Type":2},{"Id":5208,"Name":"Seal of Scaling Mana","Description":"+0.91 mana per level (+16.38 at champion level 18)","Tier":2,"Type":2},{"Id":5013,"Name":"Lesser Mark of Armor","Description":"+0.51 armor","Tier":1,"Type":1},{"Id":5207,"Name":"Seal of Mana","Description":"+5.36 mana","Tier":2,"Type":2},{"Id":5012,"Name":"Lesser Mark of Scaling Health","Description":"+0.3 health per level (+5.4 at champion level 18)","Tier":1,"Type":1},{"Id":5309,"Name":"Greater Seal of Critical Damage","Description":"+0.78% critical damage","Tier":3,"Type":2},{"Id":5114,"Name":"Lesser Quintessence of Scaling Ability Power","Description":"+0.24 ability power per level (+4.32 at champion level 18)","Tier":1,"Type":4},{"Id":5113,"Name":"Lesser Quintessence of Ability Power","Description":"+2.75 ability power","Tier":1,"Type":4},{"Id":5307,"Name":"Greater Seal of Attack Speed","Description":"+0.76% attack speed","Tier":3,"Type":2},{"Id":5112,"Name":"Lesser Quintessence of Scaling Cooldown Reduction","Description":"-0.15% cooldowns per level (-2.8% at champion level 18)","Tier":1,"Type":4},{"Id":5306,"Name":"Greater Seal of Scaling Attack Damage","Description":"+0.06 attack damage per level (+1.09 at champion level 18)","Tier":3,"Type":2},{"Id":5111,"Name":"Lesser Quintessence of Cooldown Reduction","Description":"-1.4% cooldowns","Tier":1,"Type":4},{"Id":5305,"Name":"Greater Seal of Attack Damage","Description":"+0.43 attack damage","Tier":3,"Type":2},{"Id":5303,"Name":"Greater Glyph of Magic Penetration","Description":"+0.63 magic penetration","Tier":3,"Type":3},{"Id":5302,"Name":"Greater Glyph of Scaling Mana Regeneration","Description":"+0.06 mana regen / 5 sec. per level (+1.2 at champion level 18)","Tier":3,"Type":3},{"Id":5300,"Name":"Greater Glyph of Scaling Mana","Description":"+1.42 mana per level (+25.56 at champion level 18)","Tier":3,"Type":3},{"Id":5301,"Name":"Greater Glyph of Mana Regeneration","Description":"+0.33 mana regen / 5 sec.","Tier":3,"Type":3},{"Id":5200,"Name":"Seal of Scaling Health Regeneration","Description":"+0.09 health regen / 5 sec. per level (+1.62 at champion level 18)","Tier":2,"Type":2},{"Id":5002,"Name":"Lesser Mark of Scaling Attack Damage","Description":"+0.08 attack damage per level (+1.35 at champion level 18)","Tier":1,"Type":1},{"Id":5001,"Name":"Lesser Mark of Attack Damage","Description":"+0.53 attack damage","Tier":1,"Type":1},{"Id":5003,"Name":"Lesser Mark of Attack Speed","Description":"+0.94% attack speed","Tier":1,"Type":1},{"Id":5101,"Name":"Lesser Quintessence of Health","Description":"+14.5 health","Tier":1,"Type":4},{"Id":5103,"Name":"Lesser Quintessence of Armor","Description":"+2.37 armor","Tier":1,"Type":4},{"Id":5102,"Name":"Lesser Quintessence of Scaling Health","Description":"+1.5 health per level (+27 at champion level 18)","Tier":1,"Type":4},{"Id":5168,"Name":"Glyph of Scaling Magic Resist","Description":"+0.13 magic resist per level (+2.34 at champion level 18)","Tier":2,"Type":3},{"Id":5169,"Name":"Glyph of Health Regeneration","Description":"+0.21 health regen / 5 sec.","Tier":2,"Type":3},{"Id":5167,"Name":"Glyph of Magic Resist","Description":"+1.04 magic resist","Tier":2,"Type":3},{"Id":5164,"Name":"Glyph of Scaling Health","Description":"+0.42 health per level (+7.56 at champion level 18)","Tier":2,"Type":3},{"Id":5165,"Name":"Glyph of Armor","Description":"+0.55 armor","Tier":2,"Type":3},{"Id":5163,"Name":"Glyph of Health","Description":"+2.08 health","Tier":2,"Type":3},{"Id":5021,"Name":"Lesser Mark of Cooldown Reduction","Description":"-0.11% cooldowns","Tier":1,"Type":1},{"Id":5025,"Name":"Lesser Mark of Mana","Description":"+3.28 mana","Tier":1,"Type":1},{"Id":5026,"Name":"Lesser Mark of Scaling Mana","Description":"+0.65 mana per level (+11.7 at champion level 18)","Tier":1,"Type":1},{"Id":5023,"Name":"Lesser Mark of Ability Power","Description":"+0.33 ability power","Tier":1,"Type":1},{"Id":5024,"Name":"Lesser Mark of Scaling Ability Power","Description":"+0.06 ability power per level (+1.08 at champion level 18)","Tier":1,"Type":1},{"Id":5016,"Name":"Lesser Mark of Scaling Magic Resist","Description":"+0.04 magic resist per level (+0.72 at champion level 18)","Tier":1,"Type":1},{"Id":5159,"Name":"Glyph of Critical Chance","Description":"+0.22% critical chance","Tier":2,"Type":3},{"Id":5177,"Name":"Glyph of Mana","Description":"+8.75 mana","Tier":2,"Type":3},{"Id":5178,"Name":"Glyph of Scaling Mana","Description":"+1.1 mana per level (+19.8 at champion level 18)","Tier":2,"Type":3},{"Id":5179,"Name":"Glyph of Mana Regeneration","Description":"+0.26 mana regen / 5 sec.","Tier":2,"Type":3},{"Id":5173,"Name":"Glyph of Cooldown Reduction","Description":"-0.67% cooldowns","Tier":2,"Type":3},{"Id":5174,"Name":"Glyph of Scaling Cooldown Reduction","Description":"-0.07% cooldowns per level (-1.3% at champion level 18)","Tier":2,"Type":3},{"Id":5175,"Name":"Glyph of Ability Power","Description":"+0.92 ability power","Tier":2,"Type":3},{"Id":5176,"Name":"Glyph of Scaling Ability Power","Description":"+0.13 ability power per level (+2.34 at champion level 18)","Tier":2,"Type":3},{"Id":5031,"Name":"Lesser Glyph of Attack Damage","Description":"+0.16 attack damage","Tier":1,"Type":3},{"Id":5032,"Name":"Lesser Glyph of Scaling Attack Damage","Description":"+0.02 attack damage per level (+0.36 at champion level 18)","Tier":1,"Type":3},{"Id":5033,"Name":"Lesser Glyph of Attack Speed","Description":"+0.35% attack speed","Tier":1,"Type":3},{"Id":5035,"Name":"Lesser Glyph of Critical Damage","Description":"+0.31% critical damage","Tier":1,"Type":3},{"Id":5037,"Name":"Lesser Glyph of Critical Chance","Description":"+0.15% critical chance","Tier":1,"Type":3},{"Id":10001,"Name":"Razer Mark of Precision","Description":"+2.23% critical damage","Tier":3,"Type":1},{"Id":5027,"Name":"Lesser Mark of Mana Regeneration","Description":"+0.15 mana regen / 5 sec.","Tier":1,"Type":1},{"Id":10002,"Name":"Razer Quintessence of Speed","Description":"+1.5% movement speed","Tier":3,"Type":4},{"Id":5029,"Name":"Lesser Mark of Magic Penetration","Description":"+0.49 magic penetration","Tier":1,"Type":1},{"Id":5418,"Name":"Greater Quintessence of Hybrid Penetration","Description":"+1.79 Armor Penetration / +1.4 Magic Penetration","Tier":3,"Type":4},{"Id":5143,"Name":"Mark of Cooldown Reduction","Description":"-0.16% cooldowns","Tier":2,"Type":1},{"Id":5416,"Name":"Lesser Quintessence of Hybrid Penetration","Description":"+0.99 Armor Penetration / +0.78 Magic Penetration","Tier":1,"Type":4},{"Id":5417,"Name":"Quintessence of Hybrid Penetration","Description":"+1.39 Armor Penetration / +1.09 Magic Penetration","Tier":2,"Type":4},{"Id":5414,"Name":"Seal of Percent Health","Description":"+0.39% Health.","Tier":2,"Type":2},{"Id":5146,"Name":"Mark of Scaling Ability Power","Description":"+0.08 ability power per level (+1.44 at champion level 18)","Tier":2,"Type":1},{"Id":5415,"Name":"Greater Seal of Percent Health","Description":"+0.5% Health.","Tier":3,"Type":2},{"Id":5147,"Name":"Mark of Mana","Description":"+4.59 mana","Tier":2,"Type":1},{"Id":5412,"Name":"Greater Quintessence of Life Steal","Description":"+1.5% Life Steal.","Tier":3,"Type":4},{"Id":5413,"Name":"Lesser Seal of Percent Health","Description":"+0.28% Health.","Tier":1,"Type":2},{"Id":5145,"Name":"Mark of Ability Power","Description":"+0.46 ability power","Tier":2,"Type":1},{"Id":5047,"Name":"Lesser Glyph of Health Regeneration","Description":"+0.15 health regen / 5 sec.","Tier":1,"Type":3},{"Id":5045,"Name":"Lesser Glyph of Magic Resist","Description":"+0.74 magic resist","Tier":1,"Type":3},{"Id":5046,"Name":"Lesser Glyph of Scaling Magic Resist","Description":"+0.09 magic resist per level (+1.68 at champion level 18)","Tier":1,"Type":3},{"Id":5043,"Name":"Lesser Glyph of Armor","Description":"+0.39 armor","Tier":1,"Type":3},{"Id":5041,"Name":"Lesser Glyph of Health","Description":"+1.49 health","Tier":1,"Type":3},{"Id":5042,"Name":"Lesser Glyph of Scaling Health","Description":"+0.3 health per level (+5.4 at champion level 18)","Tier":1,"Type":3},{"Id":5138,"Name":"Mark of Scaling Magic Resist","Description":"+0.06 magic resist per level (+1.08 at champion level 18)","Tier":2,"Type":1},{"Id":5137,"Name":"Mark of Magic Resist","Description":"+0.6 magic resist","Tier":2,"Type":1},{"Id":5151,"Name":"Mark of Magic Penetration","Description":"+0.68 magic penetration","Tier":2,"Type":1},{"Id":5153,"Name":"Glyph of Attack Damage","Description":"+0.22 attack damage","Tier":2,"Type":3},{"Id":5154,"Name":"Glyph of Scaling Attack Damage","Description":"+0.03 attack damage per level (+0.57 at champion level 18)","Tier":2,"Type":3},{"Id":5051,"Name":"Lesser Glyph of Cooldown Reduction","Description":"-0.47% cooldowns","Tier":1,"Type":3},{"Id":5155,"Name":"Glyph of Attack Speed","Description":"+0.5% attack speed","Tier":2,"Type":3},{"Id":5157,"Name":"Glyph of Critical Damage","Description":"+0.43% critical damage","Tier":2,"Type":3},{"Id":5056,"Name":"Lesser Glyph of Scaling Mana","Description":"+0.79 mana per level (+14.22 at champion level 18)","Tier":1,"Type":3},{"Id":5057,"Name":"Lesser Glyph of Mana Regeneration","Description":"+0.19 mana regen / 5 sec.","Tier":1,"Type":3},{"Id":5058,"Name":"Lesser Glyph of Scaling Mana Regeneration","Description":"+0.04 mana regen / 5 sec. per level (+0.67 at champion level 18)","Tier":1,"Type":3},{"Id":5059,"Name":"Lesser Glyph of Magic Penetration","Description":"+0.35 magic penetration","Tier":1,"Type":3},{"Id":5052,"Name":"Lesser Glyph of Scaling Cooldown Reduction","Description":"-0.05% cooldowns per level (-0.93% at champion level 18)","Tier":1,"Type":3},{"Id":5053,"Name":"Lesser Glyph of Ability Power","Description":"+0.66 ability power","Tier":1,"Type":3},{"Id":5054,"Name":"Lesser Glyph of Scaling Ability Power","Description":"+0.1 ability power per level (+1.8 at champion level 18)","Tier":1,"Type":3},{"Id":5055,"Name":"Lesser Glyph of Mana","Description":"+6.25 mana","Tier":1,"Type":3},{"Id":5149,"Name":"Mark of Mana Regeneration","Description":"+0.2 mana regen / 5 sec.","Tier":2,"Type":1},{"Id":5148,"Name":"Mark of Scaling Mana","Description":"+0.91 mana per level (+16.38 at champion level 18)","Tier":2,"Type":1},{"Id":5065,"Name":"Lesser Seal of Critical Damage","Description":"+0.43% critical damage","Tier":1,"Type":2},{"Id":5259,"Name":"Greater Mark of Magic Resist","Description":"+0.77 magic resist","Tier":3,"Type":1},{"Id":5063,"Name":"Lesser Seal of Attack Speed","Description":"+0.42% attack speed","Tier":1,"Type":2},{"Id":5067,"Name":"Lesser Seal of Critical Chance","Description":"+0.23% critical chance","Tier":1,"Type":2},{"Id":5062,"Name":"Lesser Seal of Scaling Attack Damage","Description":"+0.03 attack damage per level (+0.61 at champion level 18)","Tier":1,"Type":2},{"Id":5061,"Name":"Lesser Seal of Attack Damage","Description":"+0.24 attack damage","Tier":1,"Type":2},{"Id":5260,"Name":"Greater Mark of Scaling Magic Resist","Description":"+0.07 magic resist per level (+1.26 at champion level 18)","Tier":3,"Type":1},{"Id":5267,"Name":"Greater Mark of Ability Power","Description":"+0.59 ability power","Tier":3,"Type":1},{"Id":5268,"Name":"Greater Mark of Scaling Ability Power","Description":"+0.1 ability power per level (+1.8 at champion level 18)","Tier":3,"Type":1},{"Id":5265,"Name":"Greater Mark of Cooldown Reduction","Description":"-0.2% cooldowns","Tier":3,"Type":1},{"Id":5075,"Name":"Lesser Seal of Magic Resist","Description":"+0.41 magic resist","Tier":1,"Type":2},{"Id":5269,"Name":"Greater Mark of Mana","Description":"+5.91 mana","Tier":3,"Type":1},{"Id":5074,"Name":"Lesser Seal of Scaling Armor","Description":"+0.09 armor per level (+1.68 at champion level 18)","Tier":1,"Type":2},{"Id":5077,"Name":"Lesser Seal of Health Regeneration","Description":"+0.31 health regen / 5 sec.","Tier":1,"Type":2},{"Id":5076,"Name":"Lesser Seal of Scaling Magic Resist","Description":"+0.05 magic resist per level (+0.9 at champion level 18)","Tier":1,"Type":2},{"Id":5078,"Name":"Lesser Seal of Scaling Health Regeneration","Description":"+0.06 health regen / 5 sec. per level (+1.08 at champion level 18)","Tier":1,"Type":2},{"Id":5071,"Name":"Lesser Seal of Health","Description":"+4.48 health","Tier":1,"Type":2},{"Id":5073,"Name":"Lesser Seal of Armor","Description":"+0.56 armor","Tier":1,"Type":2},{"Id":5072,"Name":"Lesser Seal of Scaling Health","Description":"+0.75 health per level (+13.44 at champion level 18)","Tier":1,"Type":2},{"Id":5270,"Name":"Greater Mark of Scaling Mana","Description":"+1.17 mana per level (+21.06 at champion level 18)","Tier":3,"Type":1},{"Id":5271,"Name":"Greater Mark of Mana Regeneration","Description":"+0.26 mana regen / 5 sec.","Tier":3,"Type":1},{"Id":5273,"Name":"Greater Mark of Magic Penetration","Description":"+0.87 magic penetration","Tier":3,"Type":1},{"Id":5275,"Name":"Greater Glyph of Attack Damage","Description":"+0.28 attack damage","Tier":3,"Type":3},{"Id":5276,"Name":"Greater Glyph of Scaling Attack Damage","Description":"+0.04 attack damage per level (+0.73 at champion level 18)","Tier":3,"Type":3},{"Id":5277,"Name":"Greater Glyph of Attack Speed","Description":"+0.64% attack speed","Tier":3,"Type":3},{"Id":5279,"Name":"Greater Glyph of Critical Damage","Description":"+0.56% critical damage","Tier":3,"Type":3},{"Id":5183,"Name":"Seal of Attack Damage","Description":"+0.33 attack damage","Tier":2,"Type":2},{"Id":5088,"Name":"Lesser Seal of Scaling Mana Regeneration","Description":"+0.036 mana regen / 5 sec. per level (+0.65 at champion level 18)","Tier":1,"Type":2},{"Id":5087,"Name":"Lesser Seal of Mana Regeneration","Description":"+0.23 mana regen / 5 sec.","Tier":1,"Type":2},{"Id":5181,"Name":"Glyph of Magic Penetration","Description":"+0.49 magic penetration","Tier":2,"Type":3},{"Id":5086,"Name":"Lesser Seal of Scaling Mana","Description":"+0.65 mana per level (+11.7 at champion level 18)","Tier":1,"Type":2},{"Id":5180,"Name":"Glyph of Scaling Mana Regeneration","Description":"+0.05 mana regen / 5 sec. per level (+0.94 at champion level 18)","Tier":2,"Type":3},{"Id":5085,"Name":"Lesser Seal of Mana","Description":"+3.83 mana","Tier":1,"Type":2},{"Id":5187,"Name":"Seal of Critical Damage","Description":"+0.61% critical damage","Tier":2,"Type":2},{"Id":5084,"Name":"Lesser Seal of Scaling Ability Power","Description":"+0.06 ability power per level (+1.08 at champion level 18)","Tier":1,"Type":2},{"Id":5083,"Name":"Lesser Seal of Ability Power","Description":"+0.33 ability power","Tier":1,"Type":2},{"Id":5185,"Name":"Seal of Attack Speed","Description":"+0.59% attack speed","Tier":2,"Type":2},{"Id":5184,"Name":"Seal of Scaling Attack Damage","Description":"+0.05 attack damage per level (+0.85 at champion level 18)","Tier":2,"Type":2},{"Id":5081,"Name":"Lesser Seal of Cooldown Reduction","Description":"-0.2% cooldowns","Tier":1,"Type":2},{"Id":5189,"Name":"Seal of Critical Chance","Description":"+0.32% critical chance","Tier":2,"Type":2},{"Id":5281,"Name":"Greater Glyph of Critical Chance","Description":"+0.28% critical chance","Tier":3,"Type":3},{"Id":5289,"Name":"Greater Glyph of Magic Resist","Description":"+1.34 magic resist","Tier":3,"Type":3},{"Id":5287,"Name":"Greater Glyph of Armor","Description":"+0.7 armor","Tier":3,"Type":3},{"Id":5285,"Name":"Greater Glyph of Health","Description":"+2.67 health","Tier":3,"Type":3},{"Id":5286,"Name":"Greater Glyph of Scaling Health","Description":"+0.54 health per level (+9.72 at champion level 18)","Tier":3,"Type":3},{"Id":5097,"Name":"Lesser Quintessence of Critical Chance","Description":"+1.03% critical chance","Tier":1,"Type":4},{"Id":5194,"Name":"Seal of Scaling Health","Description":"+1.04 health per level (+18.72 at champion level 18)","Tier":2,"Type":2},{"Id":5099,"Name":"Lesser Quintessence of Armor Penetration","Description":"+1.42 armor penetration","Tier":1,"Type":4},{"Id":5193,"Name":"Seal of Health","Description":"+6.24 health","Tier":2,"Type":2},{"Id":5196,"Name":"Seal of Scaling Armor","Description":"+0.13 armor per level (+2.34 at champion level 18)","Tier":2,"Type":2},{"Id":5093,"Name":"Lesser Quintessence of Attack Speed","Description":"+2.52% attack speed","Tier":1,"Type":4},{"Id":5195,"Name":"Seal of Armor","Description":"+0.78 armor","Tier":2,"Type":2},{"Id":5092,"Name":"Lesser Quintessence of Scaling Attack Damage","Description":"+0.14 attack damage per level (+2.52 at champion level 18)","Tier":1,"Type":4},{"Id":5198,"Name":"Seal of Scaling Magic Resist","Description":"+0.08 magic resist per level (+1.44 at champion level 18)","Tier":2,"Type":2},{"Id":5095,"Name":"Lesser Quintessence of Critical Damage","Description":"+2.48% critical damage","Tier":1,"Type":4},{"Id":5197,"Name":"Seal of Magic Resist","Description":"+0.58 magic resist","Tier":2,"Type":2},{"Id":5199,"Name":"Seal of Health Regeneration","Description":"+0.43 health regen / 5 sec.","Tier":2,"Type":2},{"Id":5091,"Name":"Lesser Quintessence of Attack Damage","Description":"+1.25 attack damage","Tier":1,"Type":4},{"Id":5290,"Name":"Greater Glyph of Scaling Magic Resist","Description":"+0.16 magic resist per level (+3 at champion level 18)","Tier":3,"Type":3},{"Id":8001,"Name":"Mark of the Crippling Candy Cane","Description":"+2% critical damage","Tier":2,"Type":1},{"Id":5291,"Name":"Greater Glyph of Health Regeneration","Description":"+0.27 health regen / 5 sec.","Tier":3,"Type":3},{"Id":8002,"Name":"Lesser Mark of the Yuletide Tannenbaum ","Description":"+0.62% critical chance","Tier":1,"Type":1},{"Id":8003,"Name":"Glyph of the Special Stocking","Description":"-0.75% cooldowns","Tier":2,"Type":3},{"Id":8005,"Name":"Lesser Glyph of the Gracious Gift","Description":"+0.12 ability power per level (+2.16 at champion level 18)","Tier":1,"Type":3},{"Id":8006,"Name":"Lesser Seal of the Stout Snowman","Description":"+0.72 health per level (+12.96 at champion level 18)","Tier":1,"Type":2},{"Id":8007,"Name":"Lesser Mark of Alpine Attack Speed","Description":"+1.13% attack speed","Tier":1,"Type":1},{"Id":5298,"Name":"Greater Glyph of Scaling Ability Power","Description":"+0.17 ability power per level (+3.06 at champion level 18)","Tier":3,"Type":3},{"Id":5299,"Name":"Greater Glyph of Mana","Description":"+11.25 mana","Tier":3,"Type":3},{"Id":5295,"Name":"Greater Glyph of Cooldown Reduction","Description":"-0.83% cooldowns","Tier":3,"Type":3},{"Id":5296,"Name":"Greater Glyph of Scaling Cooldown Reduction","Description":"-0.09% cooldowns per level (-1.67% at champion level 18)","Tier":3,"Type":3},{"Id":5297,"Name":"Greater Glyph of Ability Power","Description":"+1.19 ability power","Tier":3,"Type":3}] \ No newline at end of file diff --git a/League/Runes.version b/League/Runes.version deleted file mode 100644 index 8ea073a..0000000 --- a/League/Runes.version +++ /dev/null @@ -1 +0,0 @@ -5.4.1.0 \ No newline at end of file diff --git a/LoLAccountChecker.csproj b/LoLAccountChecker.csproj deleted file mode 100644 index da6bbae..0000000 --- a/LoLAccountChecker.csproj +++ /dev/null @@ -1,198 +0,0 @@ - - - - - Debug - AnyCPU - {066CDE87-0788-4547-8B24-ACDC95E445EB} - WinExe - Properties - LoLAccountChecker - LoL Account Checker - v4.5 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - icon.ico - - - - False - packages\MahApps.Metro.1.1.2.0\lib\net45\MahApps.Metro.dll - - - False - packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll - - - ..\PVPNetConnect\bin\Release\PVPNetConnect.dll - - - - packages\MahApps.Metro.1.1.2.0\lib\net45\System.Windows.Interactivity.dll - - - - - 4.0 - - - - - - - - MSBuild:Compile - Designer - - - - - - - - - - - - - - AccountsWindow.xaml - - - AccountEditWindow.xaml - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - - App.xaml - Code - - - - AccountWindow.xaml - - - ExportWindow.xaml - - - ImportWindow.xaml - - - MainWindow.xaml - Code - - - MSBuild:Compile - Designer - - - - - Code - - - True - True - Resources.resx - - - True - Settings.settings - True - - - ResXFileCodeGenerator - Resources.Designer.cs - - - PreserveNewest - - - PreserveNewest - - - Always - - - PreserveNewest - - - PreserveNewest - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/LoLAccountChecker.sln b/LoLAccountChecker.sln deleted file mode 100644 index d2ec8f8..0000000 --- a/LoLAccountChecker.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.21005.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoLAccountChecker", "LoLAccountChecker.csproj", "{066CDE87-0788-4547-8B24-ACDC95E445EB}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {066CDE87-0788-4547-8B24-ACDC95E445EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {066CDE87-0788-4547-8B24-ACDC95E445EB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {066CDE87-0788-4547-8B24-ACDC95E445EB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {066CDE87-0788-4547-8B24-ACDC95E445EB}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/LoLAccountChecker.zip b/LoLAccountChecker.zip new file mode 100644 index 0000000..022d7e8 Binary files /dev/null and b/LoLAccountChecker.zip differ diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs deleted file mode 100644 index e40b879..0000000 --- a/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,80 +0,0 @@ -#region License - -// Copyright 2015 LoLAccountChecker -// -// This file is part of LoLAccountChecker. -// -// LoLAccountChecker is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// LoLAccountChecker is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with LoLAccountChecker. If not, see http://www.gnu.org/licenses/. - -#endregion - -#region - -using System.Reflection; -using System.Runtime.InteropServices; -using System.Windows; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("LoL Account Checker")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("LoL Account Checker")] -[assembly: AssemblyCopyright("Copyright © madk 2015")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. - -[assembly: ComVisible(false)] - -//In order to begin building localizable applications, set -//CultureYouAreCodingWith in your .csproj file -//inside a . For example, if you are using US english -//in your source files, set the to en-US. Then uncomment -//the NeutralResourceLanguage attribute below. Update the "en-US" in -//the line below to match the UICulture setting in the project file. - -//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] - - -[assembly: ThemeInfo(ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located - //(used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located - //(used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) - )] - - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] - -[assembly: AssemblyVersion("2.0.0.11")] -[assembly: AssemblyFileVersion("2.0.0.11")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs deleted file mode 100644 index c259974..0000000 --- a/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace LoLAccountChecker.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LoLAccountChecker.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/Properties/Resources.resx b/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs deleted file mode 100644 index 07c4e44..0000000 --- a/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace LoLAccountChecker.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/Properties/Settings.settings b/Properties/Settings.settings deleted file mode 100644 index c14891b..0000000 --- a/Properties/Settings.settings +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/README.md b/README.md index d3610bb..698e3df 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,25 @@ -# LoLAccountChecker +## LoLAccountChecker -This tool will give you some information about your league of legends accounts and store them in a text file. - -### How to use: -To add accounts, open the Accounts window and from there you can add a single account or import a text file with your account's username and password line-by-line in the following format: -`` -username:password -`` - -Then, click on **Start** to start checking. Your account's should start appearing in the table, if not, verify the Accounts window to see the state of the account. You can stop whenever you want, and click **Start** again if you wanna resume. - -You can also import and export checked accounts that you want to see later. - -* Summoner name -* Level -* RP -* IP -* Champions -* Skins -* Rune Pages -* Email Status -* SoloQ Rank -* Date of Last Match Played +* This tool will give you some information about your League of Legends accounts and store them in a file. ### Requirements: + * Windows 7 or later + * [.NET Framework 4.5](https://www.microsoft.com/en-us/download/details.aspx?id=30653) or later - * [PvPNetConnect](https://github.com/madk/PVPNetConnect) +### Special Thanks: +* [imiuka](https://github.com/imiuka) for [rtmp-sharp](https://github.com/imiuka/rtmp-sharp) library +* [madk](https://github.com/madk) for the initial version of [LoLAccountChecker](https://github.com/madk/LoLAccountChecker) -### Export -You can export your accounts to a JSON file (this way you can import it later), or by creating your own layout. Check [Custom Export](https://github.com/madk/LoLAccountChecker/blob/master/Custom%20Export.md) to see the variables and some examples. +#[DOWNLOAD](https://github.com/yokrysty/LoLAccountChecker/raw/master/LoLAccountChecker.zip) -### Reupload -The reason i'm reuploading this projects it's because people are selling it to others, this is a free open-source tool, i'm not going to change anything, the only thing i will probably update is the changes that are required between patches. +[![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X9559SH2MKQ7S) -[![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=CHEV6LWPMHUMW) +![alt tag](https://raw.githubusercontent.com/yokrysty/LoLAccountChecker/master/preview_001.jpg) +
+![alt tag](https://raw.githubusercontent.com/yokrysty/LoLAccountChecker/master/preview_002.jpg) +
+![alt tag](https://raw.githubusercontent.com/yokrysty/LoLAccountChecker/master/preview_003.jpg) +
+![alt tag](https://raw.githubusercontent.com/yokrysty/LoLAccountChecker/master/preview_004.jpg) +
diff --git a/Resources/Entypo-license.txt b/Resources/Entypo-license.txt deleted file mode 100644 index 1db3d78..0000000 --- a/Resources/Entypo-license.txt +++ /dev/null @@ -1,3 +0,0 @@ -Entypo (http://www.entypo.com/) is created by Daniel Bruce and released under the Creative Commons, Share Alike/Attribution license. - -http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/Resources/Entypo.ttf b/Resources/Entypo.ttf deleted file mode 100644 index d6d7687..0000000 Binary files a/Resources/Entypo.ttf and /dev/null differ diff --git a/Resources/Icons.xaml b/Resources/Icons.xaml deleted file mode 100644 index a7782fd..0000000 --- a/Resources/Icons.xaml +++ /dev/null @@ -1,5133 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/Resources/WindowsIcons-license.txt b/Resources/WindowsIcons-license.txt deleted file mode 100644 index d22c6d0..0000000 --- a/Resources/WindowsIcons-license.txt +++ /dev/null @@ -1,62 +0,0 @@ -# License - -Please carefully understand the license and download the latest icons at ModernUIIcons.com. - -## Understand Your Rights -No Attribution and No Derived Works -http://creativecommons.org/licenses/by-nd/3.0/ * - -- If your project is open source include this license file in the source. -- Nothing is needed in the front facing project (UNLESS you - are using any of the icons listed below in the attribution section). -- Commercial use is not only allowed but encouraged. If it is an icon - in the attribution list below, you still need to attribute those! -- Do not distribute the entire package (I've allowed this dozens of - times for open source projects, but email me first). - -## Creator -- Austin Andrews (@templarian) - -## Contributor** -- Jay Zawrotny (@JayZawrotny) - - A Bunch -- Oren Nachman - - appbar.chevron.down - - appbar.chevron.up - - appbar.chevron.left - - appbar.chevron.right - -## Derived Works -- Alex Peattie - - Social: http://www.alexpeattie.com/projects/justvector_icons/ - -## Attribution*** -- Kris Vandermotten (@kvandermotten) - - appbar.medical.pulse -- Constantin Kichinsky (@kichinsky) - - appbar.currency.rubles - - appbar.currency.grivna -- Massimo Savazzi (@msavazzi) - - List of missing exported icons -- Proletkult Graphik, from The Noun Project - - appbar.draw.pen (inspired) -- Olivier Guin, from The Noun Project - - appbar.draw.marker -- Gibran Bisio, from The Noun Project - - appbar.draw.bucket -Andrew Forrester, from The Noun Project - - appbar.fingerprint - -* The license is for attribution, but this is not required. -** Developers and designers that emailed Templarian the source .design icons to be added into the package. PNGs also accepted, but may take longer to be added. -*** Icons I've copied so closely you want to attribute them and are also under the CC license. - -Contact -- http://templarian.com/ -- admin[@]templarian[.]com - -* Does not apply to copyrighted logos -- Skype -- Facebook -- Twitter -- etc... diff --git a/Settings.cs b/Settings.cs deleted file mode 100644 index 1a618e5..0000000 --- a/Settings.cs +++ /dev/null @@ -1,76 +0,0 @@ -#region License - -// Copyright 2015 LoLAccountChecker -// -// This file is part of LoLAccountChecker. -// -// LoLAccountChecker is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// LoLAccountChecker is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with LoLAccountChecker. If not, see http://www.gnu.org/licenses/. - -#endregion - -#region - -using System.IO; -using Newtonsoft.Json; -using PVPNetConnect; - -#endregion - -namespace LoLAccountChecker -{ - internal class Settings - { - private static string _file; - - public static Settings Config; - - static Settings() - { - _file = "settings.json"; - - if (!File.Exists(_file)) - { - Config = new Settings - { - ShowPasswords = true, - SelectedRegion = Region.NA - }; - Save(); - return; - } - - Load(); - } - - public bool ShowPasswords { get; set; } - public Region SelectedRegion { get; set; } - public string ClientVersion { get; set; } - - public static void Save() - { - using (var sw = new StreamWriter(_file)) - { - sw.Write(JsonConvert.SerializeObject(Config, Formatting.Indented)); - } - } - - public static void Load() - { - using (var sr = new StreamReader(_file)) - { - Config = JsonConvert.DeserializeObject(sr.ReadToEnd()); - } - } - } -} \ No newline at end of file diff --git a/Tools/Champions_updater.py b/Tools/Champions_updater.py deleted file mode 100644 index 667139c..0000000 --- a/Tools/Champions_updater.py +++ /dev/null @@ -1,23 +0,0 @@ -import urllib.request, json - -r = urllib.request.urlopen('http://ddragon.leagueoflegends.com/cdn/5.9.1/data/en_US/championFull.json') - -str_r = r.readall().decode('utf-8') -obj = json.loads(str_r) - -output = [] - -for ck,champion in sorted(obj['data'].items()): - - skins = [] - - for c,skin in enumerate(champion['skins']): - skins.append({'Id': int(skin['id']), 'Name': skin['name'], 'Number': c+1}) - - output.append({'Id': int(champion['key']), 'Name': champion['name'], 'Skins': skins}) - print(champion['name']) - - -f = open('Champions.json', 'w') -json.dump(output, f) -f.close() diff --git a/Views/AccountEditWindow.xaml b/Views/AccountEditWindow.xaml deleted file mode 100644 index 15290a2..0000000 --- a/Views/AccountEditWindow.xaml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - -