Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
 private void reloadtimer_Tick(object sender, EventArgs e)
 {
     PokemonListView.Clear();
     Execute();
 }
Ejemplo n.º 3
0
        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();
            }
        }
Ejemplo n.º 4
0
 private void btnReload_Click(object sender, EventArgs e)
 {
     PokemonListView.Clear();
     Execute();
 }
Ejemplo n.º 5
0
        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();
        }
Ejemplo n.º 6
0
        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);
                    }
                }
Ejemplo n.º 7
0
        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);
            }
        }
Ejemplo n.º 8
0
        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);
            }
        }
Ejemplo n.º 9
0
        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;
            }
        }
Ejemplo n.º 10
0
        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();
                }
Ejemplo n.º 11
0
        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();
            }
        }