continued work on ~lolchamp, added items
@ -43,7 +43,7 @@ namespace NadekoBot.Classes.Trivia {
|
|||||||
CurrentQuestion = TriviaQuestionPool.Instance.GetRandomQuestion(oldQuestions);
|
CurrentQuestion = TriviaQuestionPool.Instance.GetRandomQuestion(oldQuestions);
|
||||||
if (CurrentQuestion == null) {
|
if (CurrentQuestion == null) {
|
||||||
await _channel.SendMessage($":exclamation: Failed loading a trivia question");
|
await _channel.SendMessage($":exclamation: Failed loading a trivia question");
|
||||||
End();
|
End().Wait();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
oldQuestions.Add(CurrentQuestion); //add it to exclusion list so it doesn't show up again
|
oldQuestions.Add(CurrentQuestion); //add it to exclusion list so it doesn't show up again
|
||||||
@ -64,7 +64,6 @@ namespace NadekoBot.Classes.Trivia {
|
|||||||
//timeout
|
//timeout
|
||||||
await Task.Delay(QuestionDurationMiliseconds - HintTimeoutMiliseconds, triviaCancelSource.Token);
|
await Task.Delay(QuestionDurationMiliseconds - HintTimeoutMiliseconds, triviaCancelSource.Token);
|
||||||
|
|
||||||
|
|
||||||
} catch (TaskCanceledException) {
|
} catch (TaskCanceledException) {
|
||||||
Console.WriteLine("Trivia cancelled");
|
Console.WriteLine("Trivia cancelled");
|
||||||
|
|
||||||
@ -81,6 +80,7 @@ namespace NadekoBot.Classes.Trivia {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async Task End() {
|
private async Task End() {
|
||||||
|
ShouldStopGame = true;
|
||||||
await _channel.SendMessage("**Trivia game ended**");
|
await _channel.SendMessage("**Trivia game ended**");
|
||||||
await _channel.SendMessage(GetLeaderboard());
|
await _channel.SendMessage(GetLeaderboard());
|
||||||
TriviaGame throwAwayValue;
|
TriviaGame throwAwayValue;
|
||||||
|
@ -7,24 +7,90 @@ using Discord.Commands;
|
|||||||
using NadekoBot;
|
using NadekoBot;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using NadekoBot.Extensions;
|
using NadekoBot.Extensions;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
namespace NadekoBot.Commands {
|
namespace NadekoBot.Commands {
|
||||||
class LoLCommands : DiscordCommand {
|
class LoLCommands : DiscordCommand {
|
||||||
public override Func<CommandEventArgs, Task> DoFunc() {
|
public override Func<CommandEventArgs, Task> DoFunc() {
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class MatchupModel {
|
||||||
|
public int Games { get; set; }
|
||||||
|
public float WinRate { get; set; }
|
||||||
|
[Newtonsoft.Json.JsonProperty("key")]
|
||||||
|
public string Name { get; set; }
|
||||||
|
public float StatScore { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public override void Init(CommandGroupBuilder cgb) {
|
public override void Init(CommandGroupBuilder cgb) {
|
||||||
cgb.CreateCommand("~lolchamp")
|
cgb.CreateCommand("~lolchamp")
|
||||||
.Description("Checks champion statistic for a lol champion.")
|
.Description("Checks champion statistic for a lol champion.")
|
||||||
.Parameter("region", ParameterType.Unparsed)
|
.Parameter("champ", ParameterType.Required)
|
||||||
|
.Parameter("position", ParameterType.Unparsed)
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
if (string.IsNullOrWhiteSpace(e.GetArg("region")))
|
|
||||||
return;
|
|
||||||
try {
|
try {
|
||||||
var arg = e.GetArg("region");
|
//get role
|
||||||
var data = Newtonsoft.Json.Linq.JArray.Parse(await Classes.SearchHelper.GetResponseAsync($"http://api.champion.gg/stats/champs/{e.GetArg("region")}?api_key={NadekoBot.creds.LOLAPIKey}"))[0];
|
string role = ResolvePos(e.GetArg("position"));
|
||||||
|
var name = e.GetArg("champ").Replace(" ","");
|
||||||
|
|
||||||
|
//get basic champion stats
|
||||||
|
var allData = JArray.Parse(await Classes.SearchHelper.GetResponseAsync($"http://api.champion.gg/stats/champs/{name}?api_key={NadekoBot.creds.LOLAPIKey}"));
|
||||||
|
JToken data = null;
|
||||||
|
if (role != null) {
|
||||||
|
for (int i = 0; i < allData.Count; i++) {
|
||||||
|
if (allData[i]["role"].ToString().Equals(role)) {
|
||||||
|
data = allData[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (data == null) {
|
||||||
|
await e.Channel.SendMessage("💢 Data for that role does not exist.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
data = allData[0];
|
||||||
|
role = allData[0]["role"].ToString();
|
||||||
|
}
|
||||||
|
//name = data["title"].ToString();
|
||||||
|
// get all possible roles, and "select" the shown one
|
||||||
|
var roles = new string[allData.Count];
|
||||||
|
for (int i = 0; i < allData.Count; i++) {
|
||||||
|
roles[i] = allData[i]["role"].ToString();
|
||||||
|
if (roles[i] == role)
|
||||||
|
roles[i] = ">" + roles[i] + "<";
|
||||||
|
}
|
||||||
var general = data["general"];
|
var general = data["general"];
|
||||||
|
|
||||||
|
//get build data for this role
|
||||||
|
var buildDatas = JArray.Parse(await Classes.SearchHelper.GetResponseAsync($"http://api.champion.gg/champion/{name}/items/finished/mostPopular?api_key={NadekoBot.creds.LOLAPIKey}"));
|
||||||
|
JToken buildData = null;
|
||||||
|
for (int i = 0; i < buildDatas.Count; i++) {
|
||||||
|
if (buildDatas[i]["role"].ToString() == role) {
|
||||||
|
buildData = buildDatas[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (buildData == null)
|
||||||
|
return; // wtf would cause this tho?
|
||||||
|
var items = new string[6];
|
||||||
|
for (int i = 0; i < 6; i++) {
|
||||||
|
items[i] = buildData["items"][i].ToString();
|
||||||
|
}
|
||||||
|
var matchupDatas = JArray.Parse(await Classes.SearchHelper.GetResponseAsync($"http://api.champion.gg/champion/{name}/matchup?api_key={NadekoBot.creds.LOLAPIKey}"));
|
||||||
|
List<MatchupModel> matchupDataIE = null;
|
||||||
|
for (int i = 0; i < matchupDatas.Count; i++) {
|
||||||
|
if (matchupDatas[i]["role"].ToString() == role) {
|
||||||
|
matchupDataIE = matchupDatas[i]["matchups"].ToObject<List<MatchupModel>>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (matchupDataIE == null)
|
||||||
|
return;
|
||||||
|
var matchupData = matchupDataIE.OrderBy(m => m.StatScore).ToArray();
|
||||||
|
//matchupData.OrderBy(mm => mm.WinRate);
|
||||||
|
|
||||||
|
var countered = new[] { matchupData[0].Name, matchupData[1].Name, matchupData[2].Name };
|
||||||
|
var counters = new[] { matchupData[matchupData.Length - 1].Name, matchupData[matchupData.Length - 2].Name, matchupData[matchupData.Length - 3].Name };
|
||||||
|
|
||||||
//todo save this for at least 1 hour
|
//todo save this for at least 1 hour
|
||||||
Image img = Image.FromFile("data/lol/bg.png");
|
Image img = Image.FromFile("data/lol/bg.png");
|
||||||
using (Graphics g = Graphics.FromImage(img)) {
|
using (Graphics g = Graphics.FromImage(img)) {
|
||||||
@ -32,19 +98,23 @@ namespace NadekoBot.Commands {
|
|||||||
int margin = 5;
|
int margin = 5;
|
||||||
int imageSize = 75;
|
int imageSize = 75;
|
||||||
var normalFont = new Font("Times New Roman", 9, FontStyle.Regular);
|
var normalFont = new Font("Times New Roman", 9, FontStyle.Regular);
|
||||||
|
var smallFont = new Font("Times New Roman", 8, FontStyle.Regular);
|
||||||
//draw champ image
|
//draw champ image
|
||||||
g.DrawImage(Image.FromFile($"data/lol/champions/{data["title"].ToString()}.png"), new Rectangle(margin, margin, imageSize, imageSize));
|
g.DrawImage(Image.FromFile($"data/lol/champions/{name}.png"), new Rectangle(margin, margin, imageSize, imageSize));
|
||||||
//draw champ name
|
//draw champ name
|
||||||
g.DrawString($"{data["title"]}", new Font("Times New Roman", 25, FontStyle.Regular), Brushes.WhiteSmoke, margin + imageSize + margin, margin);
|
g.DrawString($"{data["title"]}", new Font("Times New Roman", 25, FontStyle.Regular), Brushes.WhiteSmoke, margin + imageSize + margin, margin);
|
||||||
//draw champ surname
|
//draw champ surname
|
||||||
//todo
|
//todo
|
||||||
//draw roles
|
//draw roles
|
||||||
g.DrawString(
|
|
||||||
@" Average Stats
|
|
||||||
|
|
||||||
Kills: 5.12 CS: 250.5
|
g.DrawString("Roles: " + string.Join(", ", roles), normalFont, Brushes.WhiteSmoke, margin, margin + imageSize + margin);
|
||||||
Deaths: 0.01 Win: 99%
|
//draw average stats
|
||||||
Assists: 6.55 Ban: 10%
|
g.DrawString(
|
||||||
|
$@" Average Stats
|
||||||
|
|
||||||
|
Kills: {general["kills"]} CS: {general["minionsKilled"]}
|
||||||
|
Deaths: {general["deaths"]} Win: {general["winPercent"]}%
|
||||||
|
Assists: {general["assists"]} Ban: {general["banRate"]}%
|
||||||
", normalFont, Brushes.WhiteSmoke, img.Width - 150, margin);
|
", normalFont, Brushes.WhiteSmoke, img.Width - 150, margin);
|
||||||
//draw masteries
|
//draw masteries
|
||||||
g.DrawString($"MASTERIES: 18 / 0 / 12", normalFont, Brushes.WhiteSmoke, margin, margin + imageSize + margin + 20);
|
g.DrawString($"MASTERIES: 18 / 0 / 12", normalFont, Brushes.WhiteSmoke, margin, margin + imageSize + margin + 20);
|
||||||
@ -55,39 +125,44 @@ Assists: 6.55 Ban: 10%
|
|||||||
9 x Greater Seal of Armor
|
9 x Greater Seal of Armor
|
||||||
3 x Greater Quintessence of Attack Speed", normalFont, Brushes.WhiteSmoke, margin, margin + imageSize + margin + 40);
|
3 x Greater Quintessence of Attack Speed", normalFont, Brushes.WhiteSmoke, margin, margin + imageSize + margin + 40);
|
||||||
//draw counters
|
//draw counters
|
||||||
|
g.DrawString($"Best against", smallFont, Brushes.WhiteSmoke, margin, img.Height - imageSize + margin);
|
||||||
int smallImgSize = 50;
|
int smallImgSize = 50;
|
||||||
var counters = new string[] { "Yasuo", "Yasuo", "Yasuo" };
|
|
||||||
for (int i = 0; i < counters.Length; i++) {
|
for (int i = 0; i < counters.Length; i++) {
|
||||||
g.DrawImage(Image.FromFile("data/lol/champions/" + counters[i] + ".png"), new Rectangle(i * (smallImgSize + margin) + margin, img.Height - smallImgSize - margin, smallImgSize, smallImgSize));
|
g.DrawImage(Image.FromFile("data/lol/champions/" + counters[i] + ".png"),
|
||||||
|
new Rectangle(i * (smallImgSize + margin) + margin, img.Height - smallImgSize - margin,
|
||||||
|
smallImgSize,
|
||||||
|
smallImgSize));
|
||||||
}
|
}
|
||||||
//draw countered by
|
//draw countered by
|
||||||
var countered = new string[] { "Yasuo", "Yasuo", "Yasuo" };
|
g.DrawString($"Worst against", smallFont, Brushes.WhiteSmoke, img.Width - 3 * (smallImgSize + margin), img.Height - imageSize + margin);
|
||||||
|
|
||||||
for (int i = 0; i < countered.Length; i++) {
|
for (int i = 0; i < countered.Length; i++) {
|
||||||
g.DrawImage(Image.FromFile("data/lol/champions/" + counters[i] + ".png"), new Rectangle(i * (smallImgSize + margin) + margin, img.Height - smallImgSize - margin, smallImgSize, smallImgSize));
|
int j = countered.Length - i;
|
||||||
|
g.DrawImage(Image.FromFile("data/lol/champions/" + countered[i] + ".png"),
|
||||||
|
new Rectangle(img.Width - (j * (smallImgSize + margin) + margin), img.Height - smallImgSize - margin,
|
||||||
|
smallImgSize,
|
||||||
|
smallImgSize));
|
||||||
}
|
}
|
||||||
//draw item build
|
//draw item build
|
||||||
var build = new string[] { "Bloodthirster", "Bloodthirster", "Bloodthirster", "Bloodthirster", "Bloodthirster", "Bloodthirster" };
|
g.DrawString("Popular build", normalFont, Brushes.WhiteSmoke, img.Width - (3 * (smallImgSize + margin) + margin), 77);
|
||||||
|
|
||||||
|
for (int i = 0; i < 6; i++) {
|
||||||
|
var inverse_i = 5 - i;
|
||||||
|
var j = inverse_i % 3 + 1;
|
||||||
|
var k = inverse_i / 3;
|
||||||
|
Console.WriteLine(k);
|
||||||
|
g.DrawImage(Image.FromFile("data/lol/items/" + items[i] + ".png"),
|
||||||
|
new Rectangle(img.Width - (j * (smallImgSize + margin) + margin), 92 + k * (smallImgSize + margin),
|
||||||
|
smallImgSize,
|
||||||
|
smallImgSize));
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
int kdkdPosTop = 75;
|
|
||||||
Font kdkdFont = new Font("Bodoni MT", statsFontSize, FontStyle.Regular);
|
|
||||||
string killsString = "Kills:";
|
|
||||||
SizeF killsSize = g.MeasureString(killsString, kdkdFont);
|
|
||||||
string deathsString = "Deaths:";
|
|
||||||
SizeF deathsSize = g.MeasureString(deathsString, kdkdFont);
|
|
||||||
string k_dString = "K/D:";
|
|
||||||
SizeF k_dSize = g.MeasureString(k_dString, kdkdFont);
|
|
||||||
// g.DrawString(k_dString, Brushes.WhiteSmoke,200, kdkdPosTop);
|
|
||||||
g.DrawString($" {general["kills"]} { general["deaths"]} { float.Parse(general["kills"].ToString()) / float.Parse(general["deaths"].ToString()):f2}"
|
|
||||||
,new Font("Bodoni MT", statsFontSize, FontStyle.Regular), Brushes.OrangeRed, 200, kdkdPosTop);
|
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
await e.Channel.SendFile(data["title"] + "_stats.png", img.ToStream());
|
await e.Channel.SendFile(data["title"] + "_stats.png", img.ToStream());
|
||||||
await e.Channel.SendMessage(
|
|
||||||
$@"**`Champion Name:` {data["title"]}
|
|
||||||
|
|
||||||
`Minions:` **{general["minionsKilled"]}**
|
|
||||||
`Win percentage:` **{general["winPercent"]}%**
|
|
||||||
");
|
|
||||||
}
|
}
|
||||||
catch (Exception ex) {
|
catch (Exception ex) {
|
||||||
await e.Channel.SendMessage("💢 Failed retreiving data for that champion.");
|
await e.Channel.SendMessage("💢 Failed retreiving data for that champion.");
|
||||||
@ -95,5 +170,43 @@ $@"**`Champion Name:` {data["title"]}
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string ResolvePos(string pos) {
|
||||||
|
if (string.IsNullOrWhiteSpace(pos))
|
||||||
|
return null;
|
||||||
|
switch (pos.ToLowerInvariant()) {
|
||||||
|
case "m":
|
||||||
|
case "mid":
|
||||||
|
case "midorfeed":
|
||||||
|
case "midd":
|
||||||
|
case "middle":
|
||||||
|
return "Middle";
|
||||||
|
case "top":
|
||||||
|
case "topp":
|
||||||
|
case "t":
|
||||||
|
case "toporfeed":
|
||||||
|
return "Top";
|
||||||
|
case "j":
|
||||||
|
case "jun":
|
||||||
|
case "jungl":
|
||||||
|
case "jungle":
|
||||||
|
return "Jungle";
|
||||||
|
case "a":
|
||||||
|
case "ad":
|
||||||
|
case "adc":
|
||||||
|
case "carry":
|
||||||
|
case "ad carry":
|
||||||
|
case "adcarry":
|
||||||
|
case "c":
|
||||||
|
return "ADC";
|
||||||
|
case "s":
|
||||||
|
case "sup":
|
||||||
|
case "supp":
|
||||||
|
case "support":
|
||||||
|
return "Support";
|
||||||
|
default:
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ namespace NadekoBot.Modules {
|
|||||||
class Searches : DiscordModule {
|
class Searches : DiscordModule {
|
||||||
private Random _r;
|
private Random _r;
|
||||||
public Searches() : base() {
|
public Searches() : base() {
|
||||||
//commands.Add(new LoLCommands());
|
commands.Add(new LoLCommands());
|
||||||
_r = new Random();
|
_r = new Random();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BIN
NadekoBot/bin/Debug/data/lol/bg.png
Normal file
After Width: | Height: | Size: 84 KiB |
BIN
NadekoBot/bin/Debug/data/lol/champions/Aatrox.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
NadekoBot/bin/Debug/data/lol/champions/Ahri.png
Normal file
After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 14 KiB |
BIN
NadekoBot/bin/Debug/data/lol/champions/Anivia.png
Normal file
After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
BIN
NadekoBot/bin/Debug/data/lol/champions/MonkeyKing.png
Normal file
After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 15 KiB |
BIN
NadekoBot/bin/Debug/data/lol/champions/RekSai.png
Normal file
After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 18 KiB |