private async void evolveToolStripMenuItem_Click(object sender, EventArgs e) { var pokemon = (PokemonData)PokemonListView.SelectedItems[0].Tag; taskResponse resp = new taskResponse(false, string.Empty); if (MessageBox.Show(this, pokemon.PokemonId + " with " + pokemon.Cp + " CP thats " + Math.Round(PokemonInfo.CalculatePokemonPerfection(pokemon)) + "% perfect", "Are you sure you want to evolve?", MessageBoxButtons.OKCancel) == DialogResult.OK) { resp = await evolvePokemon(pokemon); } else { return; } if (resp.Status) { PokemonListView.Clear(); Execute(); } else { MessageBox.Show(resp.Message + " evolving failed!", "Evolve Status", MessageBoxButtons.OK); } }
private void reloadtimer_Tick(object sender, EventArgs e) { PokemonListView.Clear(); Execute(); }
private async void Execute() { EnabledButton(false, "Reloading Pokemon list."); client = new Client(ClientSettings); client.setFailure(new PokemonGo.RocketAPI.Logic.ApiFailureStrat(client)); try { await client.Login.DoLogin(); profile = await client.Player.GetPlayer(); inventory = await client.Inventory.GetInventory(); pokemons = inventory.InventoryDelta.InventoryItems .Select(i => i.InventoryItemData?.PokemonData) .Where(p => p != null && p?.PokemonId > 0) .OrderByDescending(key => key.Cp); var families = inventory.InventoryDelta.InventoryItems .Select(i => i.InventoryItemData?.Candy) .Where(p => p != null && (int)p?.FamilyId > 0) .OrderByDescending(p => (int)p.FamilyId); var imageSize = 50; var imageList = new ImageList { ImageSize = new Size(imageSize, imageSize) }; PokemonListView.ShowItemToolTips = true; PokemonListView.SmallImageList = imageList; var templates = await client.Download.GetItemTemplates(); var myPokemonSettings = templates.ItemTemplates.Select(i => i.PokemonSettings).Where(p => p != null && p?.FamilyId != PokemonFamilyId.FamilyUnset); var pokemonSettings = myPokemonSettings.ToList(); var myPokemonFamilies = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.Candy).Where(p => p != null && p?.FamilyId != PokemonFamilyId.FamilyUnset); var pokemonFamilies = myPokemonFamilies.ToArray(); PokemonListView.DoubleBuffered(true); PokemonListView.View = View.Details; ColumnHeader columnheader; columnheader = new ColumnHeader(); columnheader.Text = "Name"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "CP"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "IV A-D-S"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "LVL"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "Evolvable?"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "Height"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "Weight"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "HP"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "Attack"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "SpecialAttack (DPS)"; PokemonListView.Columns.Add(columnheader); foreach (var pokemon in pokemons) { Bitmap pokemonImage = null; await Task.Run(() => { pokemonImage = GetPokemonImage((int)pokemon.PokemonId); }); imageList.Images.Add(pokemon.PokemonId.ToString(), pokemonImage); PokemonListView.LargeImageList = imageList; var listViewItem = new ListViewItem(); listViewItem.Tag = pokemon; var currentCandy = families .Where(i => (int)i.FamilyId <= (int)pokemon.PokemonId) .Select(f => f.Candy_) .First(); listViewItem.SubItems.Add(string.Format("{0}", pokemon.Cp)); listViewItem.SubItems.Add(string.Format("{0}% {1}-{2}-{3}", PokemonInfo.CalculatePokemonPerfection(pokemon).ToString("0.00"), pokemon.IndividualAttack, pokemon.IndividualDefense, pokemon.IndividualStamina)); listViewItem.SubItems.Add(string.Format("{0}", PokemonInfo.GetLevel(pokemon))); listViewItem.ImageKey = pokemon.PokemonId.ToString(); listViewItem.Text = string.Format((pokemon.Favorite == 1) ? "{0} ★" : "{0}", StringUtils.getPokemonNameByLanguage(ClientSettings, (PokemonId)pokemon.PokemonId)); listViewItem.ToolTipText = new DateTime((long)pokemon.CreationTimeMs * 10000).AddYears(1769).ToString("dd/MM/yyyy HH:mm:ss"); if (pokemon.Nickname != "") { listViewItem.ToolTipText += "\nNickname: " + pokemon.Nickname; } var settings = pokemonSettings.Single(x => x.PokemonId == pokemon.PokemonId); var familyCandy = pokemonFamilies.Single(x => settings.FamilyId == x.FamilyId); if (settings.EvolutionIds.Count > 0 && familyCandy.Candy_ >= settings.CandyToEvolve) { listViewItem.SubItems.Add("Y (" + familyCandy.Candy_ + "/" + settings.CandyToEvolve + ")"); listViewItem.Checked = true; } else { if (settings.EvolutionIds.Count > 0) { listViewItem.SubItems.Add("N (" + familyCandy.Candy_ + "/" + settings.CandyToEvolve + ")"); } else { listViewItem.SubItems.Add("N (" + familyCandy.Candy_ + "/Max)"); } } listViewItem.SubItems.Add(string.Format("{0}", Math.Round(pokemon.HeightM, 2))); listViewItem.SubItems.Add(string.Format("{0}", Math.Round(pokemon.WeightKg, 2))); listViewItem.SubItems.Add(string.Format("{0}/{1}", pokemon.Stamina, pokemon.StaminaMax)); listViewItem.SubItems.Add(string.Format("{0}", pokemon.Move1)); listViewItem.SubItems.Add(string.Format("{0} ({1})", pokemon.Move2, PokemonInfo.GetAttack(pokemon.Move2))); PokemonListView.Items.Add(listViewItem); } PokemonListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); Text = "Pokemon List | User: "******" | Pokemons: " + pokemons.Count() + "/" + profile.PlayerData.MaxPokemonStorage; EnabledButton(true); statusTexbox.Text = string.Empty; } catch (Exception e) { Logger.ColoredConsoleWrite(ConsoleColor.Red, "Error reloading Pokemon list: " + e.Message); await Task.Delay(500); // Lets the API make a little pause, so we dont get blocked Execute(); } }
private void btnReload_Click(object sender, EventArgs e) { PokemonListView.Clear(); Execute(); }
private void InitialzePokemonListView() { PokemonListView.Columns.Clear(); ColumnHeader columnheader; columnheader = new ColumnHeader(); columnheader.Name = th.TS("Name"); columnheader.Text = columnheader.Name; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Name = th.TS("CP"); columnheader.Text = columnheader.Name; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Name = th.TS("IV A-D-S"); columnheader.Text = columnheader.Name; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Name = th.TS("LVL"); columnheader.Text = columnheader.Name; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Name = th.TS("Evolvable?"); columnheader.Text = columnheader.Name; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Name = th.TS("Height"); columnheader.Text = columnheader.Name; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Name = th.TS("Weight"); columnheader.Text = columnheader.Name; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Name = th.TS("HP"); columnheader.Text = columnheader.Name; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Name = th.TS("Attack"); columnheader.Text = columnheader.Name; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Name = th.TS("SpecialAttack (DPS)"); columnheader.Text = columnheader.Name; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Name = "#"; columnheader.Text = columnheader.Name; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Name = th.TS("% CP"); columnheader.Text = columnheader.Name; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Name = th.TS("Type"); columnheader.Text = columnheader.Name; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Name = th.TS("Type 2"); columnheader.Text = columnheader.Name; PokemonListView.Columns.Add(columnheader); PokemonListView.Columns.Add(CreateColumn(th.TS("Catch Date"))); PokemonListView.Columns.Add(CreateColumn(th.TS("Pokeball"))); PokemonListView.Columns.Add(CreateColumn(th.TS("Num Upgrades"))); PokemonListView.Columns.Add(CreateColumn(th.TS("Battles Attacked"))); PokemonListView.Columns.Add(CreateColumn(th.TS("Battles Defended"))); PokemonListView.Columns.Add(CreateColumn(th.TS("In Gym"))); PokemonListView.Columns.Add(CreateColumn(th.TS("Capture Place"))); PokemonListView.Columns["#"].DisplayIndex = 0; PokemonListView.ColumnClick += new ColumnClickEventHandler(PokemonListView_ColumnClick); PokemonListView.ShowItemToolTips = true; PokemonListView.DoubleBuffered(true); PokemonListView.View = View.Details; createImageList(); }
public void Execute() { EnabledButton(false, th.TS("Reloading Pokemon list.")); try { client = Logic.Logic.objClient; if (client.ReadyToUse != false) { RandomHelper.RandomSleep(1000, 1200); refreshData(); pokemons = inventory.InventoryDelta.InventoryItems .Select(i => i.InventoryItemData?.PokemonData) .Where(p => p != null && p?.PokemonId > 0) .OrderByDescending(key => key.Cp); var families = inventory.InventoryDelta.InventoryItems .Select(i => i.InventoryItemData?.Candy) .Where(p => p != null && (int)p?.FamilyId > 0) .OrderByDescending(p => (int)p.FamilyId); var myPokemonSettings = templates.ItemTemplates.Select(i => i.PokemonSettings).Where(p => p != null && p?.FamilyId != PokemonFamilyId.FamilyUnset); var pokemonSettings = myPokemonSettings.ToList(); var myPokemonFamilies = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.Candy).Where(p => p != null && p?.FamilyId != PokemonFamilyId.FamilyUnset); var pokemonFamilies = myPokemonFamilies.ToArray(); try{ PokemonListView.BeginUpdate(); }catch (Exception ex1) { Logger.ExceptionInfo(ex1.ToString()); } PokemonListView.Items.Clear(); foreach (var pokemon in pokemons) { var listViewItem = new ListViewItem(); listViewItem.UseItemStyleForSubItems = false; listViewItem.Tag = pokemon; var currentCandy = families .Where(i => (int)i.FamilyId <= (int)pokemon.PokemonId) .Select(f => f.Candy_) .First(); listViewItem.SubItems.Add(string.Format("{0}", pokemon.Cp)); if (checkBox_ShortName.Checked) { listViewItem.SubItems.Add(string.Format("{0}% {1}{2}{3} ({4})", PokemonInfo.CalculatePokemonPerfection(pokemon).ToString("0"), pokemon.IndividualAttack.ToString("X"), pokemon.IndividualDefense.ToString("X"), pokemon.IndividualStamina.ToString("X"), (45 - pokemon.IndividualAttack - pokemon.IndividualDefense - pokemon.IndividualStamina))); } else { listViewItem.SubItems.Add(string.Format("{0}% {1}-{2}-{3}", PokemonInfo.CalculatePokemonPerfection(pokemon).ToString("0"), pokemon.IndividualAttack, pokemon.IndividualDefense, pokemon.IndividualStamina)); } listViewItem.SubItems.Add(string.Format("{0}", PokemonInfo.GetLevel(pokemon))); listViewItem.ImageKey = pokemon.PokemonId.ToString(); var specSymbol = ""; if (pokemon.Favorite == 1) { specSymbol = "★"; } if ((profile != null) && (profile.PlayerData.BuddyPokemon.Id == pokemon.Id)) { specSymbol = "☉"; } listViewItem.Text = specSymbol + th.TS(pokemon.PokemonId.ToString()); listViewItem.ToolTipText = StringUtils.ConvertTimeMSinString(pokemon.CreationTimeMs, "dd/MM/yyyy HH:mm:ss"); if (pokemon.Nickname != "") { listViewItem.ToolTipText += th.TS("\n+Nickname: {0}", pokemon.Nickname); } # region Evolve Column var settings = pokemonSettings.Single(x => x.PokemonId == pokemon.PokemonId); var familyCandy = pokemonFamilies.Single(x => settings.FamilyId == x.FamilyId); listViewItem.SubItems.Add(""); var numOfEvolves = 0; String strEvolves = EvolvesToString(pokemon, settings, familyCandy, out numOfEvolves); // Colour Management listViewItem.SubItems[listViewItem.SubItems.Count - 1].ForeColor = Color.DarkRed; if (numOfEvolves == 1) { listViewItem.SubItems[listViewItem.SubItems.Count - 1].ForeColor = Color.ForestGreen; } else if (numOfEvolves > 1) { listViewItem.SubItems[listViewItem.SubItems.Count - 1].ForeColor = Color.LightPink; } listViewItem.SubItems[listViewItem.SubItems.Count - 1].Text = $"{strEvolves} | C:{familyCandy.Candy_}"; # endregion Evolve Column listViewItem.SubItems.Add(string.Format("{0}", Math.Round(pokemon.HeightM, 2))); listViewItem.SubItems.Add(string.Format("{0}", Math.Round(pokemon.WeightKg, 2))); listViewItem.SubItems.Add(string.Format("{0}/{1}", pokemon.Stamina, pokemon.StaminaMax)); listViewItem.SubItems.Add(string.Format("{0}", pokemon.Move1)); listViewItem.SubItems.Add(string.Format("{0} ({1})", pokemon.Move2, PokemonInfo.GetAttack(pokemon.Move2))); listViewItem.SubItems.Add(string.Format("{0}", (int)pokemon.PokemonId)); listViewItem.SubItems.Add(string.Format("{0}", PokemonInfo.CalculatePokemonPerfectionCP(pokemon).ToString("0.00"))); AdditionalPokeData addData = additionalPokeData.FirstOrDefault(x => x.PokedexNumber == (int)pokemon.PokemonId); if (addData != null) { listViewItem.SubItems.Add(addData.Type1); listViewItem.SubItems.Add(addData.Type2); } else { listViewItem.SubItems.Add(""); listViewItem.SubItems.Add(""); } // NOTE: yyyy/MM/dd is inverted order to can sort correctly as text. listViewItem.SubItems.Add(Logic.Utils.StringUtils.ConvertTimeMSinString(pokemon.CreationTimeMs, "yyyy/MM/dd HH:mm:ss")); listViewItem.SubItems.Add(th.TS(pokemon.Pokeball.ToString().Replace("Item", ""))); listViewItem.SubItems.Add("" + pokemon.NumUpgrades); listViewItem.SubItems.Add("" + pokemon.BattlesAttacked); listViewItem.SubItems.Add("" + pokemon.BattlesDefended); listViewItem.SubItems.Add("" + pokemon.DeployedFortId); if (pokemon.DeployedFortId != "") { listViewItem.SubItems[0].BackColor = Color.Bisque; } var CapturedLatlng = S2Helper.GetLatLng(pokemon.CapturedCellId); listViewItem.SubItems.Add(Logic.Utils.LocationUtils.FindAddress(CapturedLatlng[0], CapturedLatlng[1])); PokemonListView.Items.Add(listViewItem); } try{ PokemonListView.EndUpdate(); }catch (Exception ex1) { Logger.ExceptionInfo(ex1.ToString()); } PokemonListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); EnabledButton(true); statusTexbox.Text = string.Empty; RefreshTitle(); if (playerPanel1 != null) { playerPanel1.SetPokemons(pokemons); } }
private async void btnFullPowerUp_Click(object sender, EventArgs e) { EnabledButton(false, "Powering up..."); DialogResult result = MessageBox.Show("This process may take some time.", "FullPowerUp status", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); if (result == DialogResult.OK) { var selectedItems = PokemonListView.SelectedItems; int poweredup = 0; int total = selectedItems.Count; string failed = string.Empty; taskResponse resp = new taskResponse(false, string.Empty); int i = 0; int powerUps = 0; while (i == 0) { var poweruplimit = 0; int.TryParse(textBox1.Text, out poweruplimit); foreach (ListViewItem selectedItem in selectedItems) { if (textBox1.Text != string.Empty) { if (poweruplimit > 0 && poweredup < poweruplimit) { resp = await PowerUp((PokemonData)selectedItem.Tag); if (resp.Status) { poweredup++; } else { failed += resp.Message + " "; } } else { failed += " Power Up Limit Reached "; } } else { resp = await PowerUp((PokemonData)selectedItem.Tag); if (resp.Status) { poweredup++; } else { failed += resp.Message + " "; } } } if (failed != string.Empty) { if (powerUps > 0) { MessageBox.Show("Pokemon succesfully powered " + powerUps + " times.", "FullPowerUp status", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Pokemon not powered up. Not enough Stardust or Candy.", "FullPowerUp status", MessageBoxButtons.OK, MessageBoxIcon.Information); } i = 1; EnabledButton(true); } else { powerUps++; statusTexbox.Text = "Powering up..." + powerUps; await RandomHelper.RandomDelay(1200, 1500); } } if (poweredup > 0 && i == 1) { PokemonListView.Clear(); Execute(); } } else { EnabledButton(true); } }
private async void btnEvolve_Click(object sender, EventArgs e) { EnabledButton(false, "Evolving..."); var selectedItems = PokemonListView.SelectedItems; int evolved = 0; int total = selectedItems.Count; string failed = string.Empty; var date = DateTime.Now.ToString(); string logPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Logs"); string evolvelog = System.IO.Path.Combine(logPath, "EvolveLog.txt"); taskResponse resp = new taskResponse(false, string.Empty); foreach (ListViewItem selectedItem in selectedItems) { resp = await evolvePokemon((PokemonData)selectedItem.Tag); var pokemoninfo = (PokemonData)selectedItem.Tag; var name = pokemoninfo.PokemonId; File.AppendAllText(evolvelog, $"[{date}] - MANUAL - Trying to evole Pokemon: {name}" + Environment.NewLine); if (resp.Status) { evolved++; statusTexbox.Text = "Evolving..." + evolved; } else { failed += resp.Message + " "; } if (Globals.UseAnimationTimes) { await RandomHelper.RandomDelay(30000, 35000); } else { await RandomHelper.RandomDelay(500, 800); } } if (failed != string.Empty) { if (_clientSettings.bLogEvolve) { File.AppendAllText(evolvelog, $"[{date}] - MANUAL - Sucessfully evolved {evolved}/{total} Pokemons. Failed: {failed}" + Environment.NewLine); } MessageBox.Show("Succesfully evolved " + evolved + "/" + total + " Pokemons. Failed: " + failed, "Evolve status", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (_clientSettings.bLogEvolve) { File.AppendAllText(evolvelog, $"[{date}] - MANUAL - Sucessfully evolved {evolved}/{total} Pokemons." + Environment.NewLine); } MessageBox.Show("Succesfully evolved " + evolved + "/" + total + " Pokemons.", "Evolve status", MessageBoxButtons.OK, MessageBoxIcon.Information); } if (evolved > 0) { PokemonListView.Clear(); Execute(); } else { EnabledButton(true); } }
private void btnEvolve_Click(object sender, EventArgs e) { EnabledButton(false, "Evolving..."); var selectedItems = PokemonListView.SelectedItems; int evolved = 0; int total = selectedItems.Count; string failed = string.Empty; var date = DateTime.Now.ToString(); string logPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Logs"); string evolvelog = System.IO.Path.Combine(logPath, "EvolveLog.txt"); int gotXP = 0; //var resp = new taskResponse(false, string.Empty); EvolvePokemonResponse resp = new EvolvePokemonResponse(); if (GlobalVars.pauseAtEvolve2) { Logger.ColoredConsoleWrite(ConsoleColor.Green, $"Taking a break to evolve some pokemons!"); GlobalVars.PauseTheWalking = true; } foreach (ListViewItem selectedItem in selectedItems) { var pokemoninfo = (PokemonData)selectedItem.Tag; resp = client.Inventory.EvolvePokemon(pokemoninfo.Id).Result; var name = pokemoninfo.PokemonId; var getPokemonName = StringUtils.getPokemonNameByLanguage(pokemoninfo.PokemonId); var cp = pokemoninfo.Cp; var calcPerf = PokemonInfo.CalculatePokemonPerfection(pokemoninfo).ToString("0.00"); var getEvolvedName = StringUtils.getPokemonNameByLanguage(resp.EvolvedPokemonData.PokemonId); var getEvolvedCP = resp.EvolvedPokemonData.Cp; gotXP = gotXP + resp.ExperienceAwarded; Logger.Info($"Evolved Pokemon: {getPokemonName} | CP {cp} | Perfection {calcPerf}% | => to {getEvolvedName} | CP: {getEvolvedCP} | XP Reward: {resp.ExperienceAwarded.ToString("N0")} XP"); if (resp.Result == EvolvePokemonResponse.Types.Result.Success) { evolved++; statusTexbox.Text = "Evolving..." + evolved; } else { Logger.ColoredConsoleWrite(ConsoleColor.Red, $"Failed to evolve {pokemoninfo.PokemonId}. EvolvePokemonOutProto.Result was {resp.Result}"); failed += " {pokemoninfo.PokemonId} "; } if (GlobalVars.UseAnimationTimes) { Helpers.RandomHelper.RandomSleep(30000, 35000); } } PokemonListView.Refresh(); if (failed != string.Empty) { if (BotSettings.LogEvolve) { File.AppendAllText(evolvelog, $"[{date}] - MANUAL - Sucessfully evolved {evolved}/{total} Pokemons. Failed: {failed}" + Environment.NewLine); } MessageBox.Show(th.TS("Succesfully evolved {0}/{1} Pokemons. Failed: {2}", evolved, total, failed), th.TS("Evolve status"), MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (BotSettings.LogEvolve) { File.AppendAllText(evolvelog, $"[{date}] - MANUAL - Sucessfully evolved {evolved}/{total} Pokemons." + Environment.NewLine); } MessageBox.Show(th.TS("Succesfully evolved {0}/{1} Pokemons.", evolved, total), th.TS("Evolve status"), MessageBoxButtons.OK, MessageBoxIcon.Information); } Logger.Info($"Evolved {evolved} Pokemons. We have got {gotXP.ToString("N0")} XP."); if (evolved > 0) { Execute(); } else { EnabledButton(true); } if (GlobalVars.pauseAtEvolve) { Logger.ColoredConsoleWrite(ConsoleColor.Green, $"Evolved everything. Time to continue our journey!"); GlobalVars.PauseTheWalking = false; } }
public void Execute() { EnabledButton(false, th.TS("Reloading Pokemon list.")); try { client = Logic.Logic.objClient; if (client.ReadyToUse) { RandomHelper.RandomSleep(1000, 1200); var pokemons = client.Inventory.GetPokemons(); var pokemonSettings = Setout.GetPokemonSettings(); var pokemonFamilies = Setout.GetPokemonFamilies(); var profile = client.Player; try{ PokemonListView.BeginUpdate(); }catch (Exception ex1) { Logger.ExceptionInfo(ex1.ToString()); } PokemonListView.Items.Clear(); foreach (var pokemon in pokemons) { var listViewItem = new ListViewItem(); listViewItem.UseItemStyleForSubItems = false; listViewItem.Tag = pokemon; var currentCandy = pokemonFamilies .Where(i => (int)i.FamilyId <= (int)pokemon.PokemonId) .Select(f => f.Candy_) .First(); var specSymbol = ""; if (pokemon.Favorite == 1) { specSymbol = "★"; } if ((profile.PlayerResponse.PlayerData.BuddyPokemon != null) && (profile.PlayerResponse.PlayerData.BuddyPokemon.Id == pokemon.Id)) { specSymbol = "☉"; } listViewItem.Text = specSymbol + th.TS(pokemon.PokemonId.ToString()); listViewItem.ToolTipText = StringUtils.ConvertTimeMSinString(pokemon.CreationTimeMs, "dd/MM/yyyy HH:mm:ss"); if (pokemon.Nickname != "") { listViewItem.ToolTipText += th.TS("\n+Nickname: {0}", pokemon.Nickname); } var isbad = (pokemon.IsBad)?"Yes":"No"; listViewItem.SubItems.Add("" + isbad); listViewItem.SubItems.Add(string.Format("{0}", pokemon.Cp)); if (checkBox_ShortName.Checked) { listViewItem.SubItems.Add(string.Format("{0}% {1}{2}{3} ({4})", PokemonInfo.CalculatePokemonPerfection(pokemon).ToString("0"), pokemon.IndividualAttack.ToString("X"), pokemon.IndividualDefense.ToString("X"), pokemon.IndividualStamina.ToString("X"), (45 - pokemon.IndividualAttack - pokemon.IndividualDefense - pokemon.IndividualStamina))); } else { listViewItem.SubItems.Add(string.Format("{0}% {1}-{2}-{3}", PokemonInfo.CalculatePokemonPerfection(pokemon).ToString("0"), pokemon.IndividualAttack, pokemon.IndividualDefense, pokemon.IndividualStamina)); } listViewItem.SubItems.Add(string.Format("{0}", PokemonInfo.GetLevel(pokemon))); # region Evolve Column var settings = pokemonSettings.FirstOrDefault(x => x.PokemonId == pokemon.PokemonId); var familyCandy = pokemonFamilies.FirstOrDefault(x => x.FamilyId == settings.FamilyId); listViewItem.SubItems.Add(""); var numOfEvolves = 0; String strEvolves = EvolvesToString(pokemon, settings, familyCandy, out numOfEvolves); // Colour Management listViewItem.SubItems[listViewItem.SubItems.Count - 1].ForeColor = Color.DarkRed; if (numOfEvolves == 1) { listViewItem.SubItems[listViewItem.SubItems.Count - 1].ForeColor = Color.ForestGreen; } else if (numOfEvolves > 1) { listViewItem.SubItems[listViewItem.SubItems.Count - 1].ForeColor = Color.LightPink; } listViewItem.SubItems[listViewItem.SubItems.Count - 1].Text = $"{strEvolves} | C:{familyCandy.Candy_}"; # endregion Evolve Column listViewItem.SubItems.Add(string.Format("{0}", Math.Round(pokemon.HeightM, 2))); listViewItem.SubItems.Add(string.Format("{0}", Math.Round(pokemon.WeightKg, 2))); listViewItem.SubItems.Add(string.Format("{0}/{1}", pokemon.Stamina, pokemon.StaminaMax)); listViewItem.SubItems.Add(string.Format("{0}", pokemon.Move1)); listViewItem.SubItems.Add(string.Format("{0} ({1})", pokemon.Move2, PokemonInfo.GetAttack(pokemon.Move2))); listViewItem.SubItems.Add(string.Format("{0}", (int)pokemon.PokemonId)); listViewItem.SubItems.Add(string.Format("{0}", PokemonInfo.CalculatePokemonPerfectionCP(pokemon).ToString("0.00"))); AdditionalPokeData addData = additionalPokeData.FirstOrDefault(x => x.PokedexNumber == (int)pokemon.PokemonId); if (addData != null) { listViewItem.SubItems.Add(addData.Type1); listViewItem.SubItems.Add(addData.Type2); } else { listViewItem.SubItems.Add(""); listViewItem.SubItems.Add(""); } // NOTE: yyyy/MM/dd is inverted order to can sort correctly as text. listViewItem.SubItems.Add(StringUtils.ConvertTimeMSinString(pokemon.CreationTimeMs, "yyyy/MM/dd HH:mm:ss")); listViewItem.SubItems.Add(th.TS(pokemon.Pokeball.ToString().Replace("Item", ""))); listViewItem.SubItems.Add("" + pokemon.NumUpgrades); listViewItem.SubItems.Add("" + pokemon.BattlesAttacked); listViewItem.SubItems.Add("" + pokemon.BattlesDefended); listViewItem.SubItems.Add("" + pokemon.DeployedFortId); if (pokemon.DeployedFortId != "") { listViewItem.SubItems[0].BackColor = Color.Bisque; } var CapturedLatlng = S2Helper.GetLatLng(pokemon.CapturedCellId); listViewItem.SubItems.Add(LocationUtils.FindAddress(CapturedLatlng[0], CapturedLatlng[1])); listViewItem.SubItems.Add("" + pokemon.PokemonDisplay.Gender); var str = ""; if (pokemon.PokemonDisplay.Costume != Costume.Unset) { str = pokemon.PokemonDisplay.Costume.ToString(); } listViewItem.SubItems.Add("" + str); var form = ""; if (pokemon.PokemonDisplay.Form != POGOProtos.Enums.Form.Unset) { form = pokemon.PokemonDisplay.Form.ToString().Replace("Unown", "").Replace("ExclamationPoint", "!").Replace("QuestionMark", "?"); } listViewItem.SubItems.Add("" + form); var shiny = (pokemon.PokemonDisplay.Shiny)?"Yes":"No"; listViewItem.SubItems.Add("" + shiny); listViewItem.SubItems.Add("" + pokemon.BuddyCandyAwarded); listViewItem.SubItems.Add("" + pokemon.BuddyTotalKmWalked); listViewItem.SubItems.Add("" + pokemon.Id.ToString("X")); var special = ""; if (GlobalVars.UseSpritesFolder) { if (pokemon.PokemonId == PokemonId.Unown) { special = form.ToLower(); } else if (shiny == "Yes") { special = "s"; } else if (pokemon.PokemonDisplay.Costume != Costume.Unset) { special = pokemon.PokemonDisplay.Costume.ToString().ToLower(); } } listViewItem.ImageKey = pokemon.PokemonId + special; PokemonListView.Items.Add(listViewItem); } try{ PokemonListView.EndUpdate(); }catch (Exception ex1) { Logger.ExceptionInfo(ex1.ToString()); } PokemonListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); EnabledButton(true); statusTexbox.Text = string.Empty; RefreshTitle(); }
public async void Execute() { EnabledButton(false, "Reloading Pokemon list."); await check(); try { client = Logic.Logic.Client; if (client.readyToUse != false) { await Task.Delay(1000); inventory = await client.Inventory.GetInventory(); try { pokemons = inventory.InventoryDelta.InventoryItems .Select(i => i.InventoryItemData?.PokemonData) .Where(p => p != null && p?.PokemonId > 0) .OrderByDescending(key => key.Cp); } catch (Exception) { } var families = inventory.InventoryDelta.InventoryItems .Select(i => i.InventoryItemData?.Candy) .Where(p => p != null && (int)p?.FamilyId > 0) .OrderByDescending(p => (int)p.FamilyId); var templates = await client.Download.GetItemTemplates(); var myPokemonSettings = templates.ItemTemplates.Select(i => i.PokemonSettings).Where(p => p != null && p?.FamilyId != PokemonFamilyId.FamilyUnset); var pokemonSettings = myPokemonSettings.ToList(); var myPokemonFamilies = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.Candy).Where(p => p != null && p?.FamilyId != PokemonFamilyId.FamilyUnset); var pokemonFamilies = myPokemonFamilies.ToArray(); PokemonListView.BeginUpdate(); foreach (var pokemon in pokemons) { var listViewItem = new ListViewItem(); listViewItem.Tag = pokemon; var currentCandy = families .Where(i => (int)i.FamilyId <= (int)pokemon.PokemonId) .Select(f => f.Candy_) .First(); listViewItem.SubItems.Add(string.Format("{0}", pokemon.Cp)); //<listViewItem.SubItems.Add(string.Format("{0}% {1}{2}{3} ({4})", PokemonInfo.CalculatePokemonPerfection(pokemon).ToString("0"), pokemon.IndividualAttack.ToString("X"), pokemon.IndividualDefense.ToString("X"), pokemon.IndividualStamina.ToString("X"), (45 - pokemon.IndividualAttack- pokemon.IndividualDefense- pokemon.IndividualStamina) )); listViewItem.SubItems.Add(string.Format("{0}% {1}-{2}-{3}", PokemonInfo.CalculatePokemonPerfection(pokemon).ToString("0"), pokemon.IndividualAttack, pokemon.IndividualDefense, pokemon.IndividualStamina)); listViewItem.SubItems.Add(string.Format("{0}", PokemonInfo.GetLevel(pokemon))); listViewItem.ImageKey = pokemon.PokemonId.ToString(); listViewItem.Text = string.Format((pokemon.Favorite == 1) ? "{0} ★" : "{0}", StringUtils.getPokemonNameByLanguage(ClientSettings, (PokemonId)pokemon.PokemonId)); listViewItem.ToolTipText = StringUtils.ConvertTimeMSinString(pokemon.CreationTimeMs, "dd/MM/yyyy HH:mm:ss"); if (pokemon.Nickname != "") { listViewItem.ToolTipText += "\nNickname: " + pokemon.Nickname; } var settings = pokemonSettings.Single(x => x.PokemonId == pokemon.PokemonId); var familyCandy = pokemonFamilies.Single(x => settings.FamilyId == x.FamilyId); if (settings.EvolutionIds.Count > 0 && familyCandy.Candy_ >= settings.CandyToEvolve) { listViewItem.SubItems.Add("Y (" + familyCandy.Candy_ + "/" + settings.CandyToEvolve + ")"); listViewItem.Checked = true; } else { if (settings.EvolutionIds.Count > 0) { listViewItem.SubItems.Add("N (" + familyCandy.Candy_ + "/" + settings.CandyToEvolve + ")"); } else { listViewItem.SubItems.Add("N (" + familyCandy.Candy_ + "/Max)"); } } listViewItem.SubItems.Add(string.Format("{0}", Math.Round(pokemon.HeightM, 2))); listViewItem.SubItems.Add(string.Format("{0}", Math.Round(pokemon.WeightKg, 2))); listViewItem.SubItems.Add(string.Format("{0}/{1}", pokemon.Stamina, pokemon.StaminaMax)); listViewItem.SubItems.Add(string.Format("{0}", pokemon.Move1)); listViewItem.SubItems.Add(string.Format("{0} ({1})", pokemon.Move2, PokemonInfo.GetAttack(pokemon.Move2))); listViewItem.SubItems.Add(string.Format("{0}", (int)pokemon.PokemonId)); listViewItem.SubItems.Add(string.Format("{0}", PokemonInfo.CalculatePokemonPerfectionCP(pokemon).ToString("0.00"))); AdditionalPokeData addData = additionalPokeData.FirstOrDefault(x => x.PokedexNumber == (int)pokemon.PokemonId); if (addData != null) { listViewItem.SubItems.Add(addData.Type1); listViewItem.SubItems.Add(addData.Type2); } else { listViewItem.SubItems.Add(""); listViewItem.SubItems.Add(""); } // NOTE: yyyy/MM/dd is inverted order to can sort correctly as text. listViewItem.SubItems.Add(StringUtils.ConvertTimeMSinString(pokemon.CreationTimeMs, "yyyy/MM/dd HH:mm:ss")); listViewItem.SubItems.Add(pokemon.Pokeball.ToString().Replace("Item", "")); listViewItem.SubItems.Add("" + pokemon.NumUpgrades); listViewItem.SubItems.Add("" + pokemon.BattlesAttacked); listViewItem.SubItems.Add("" + pokemon.BattlesDefended); PokemonListView.Items.Add(listViewItem); } PokemonListView.EndUpdate(); PokemonListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); EnabledButton(true); btnUseLure.Enabled = false; statusTexbox.Text = string.Empty; RefreshTitle(); if (playerPanel1 != null) { playerPanel1.SetPokemons(pokemons); } } } catch (Exception e) { //Logger.Error("[PokemonList-Error] " + e.StackTrace); await Task.Delay(1000); // Lets the API make a little pause, so we dont get blocked Execute(); } }