Update Program.cs

Detective Squirrel [2016-07-22 11:51:30]
Update Program.cs
Filename
PokemonGo/RocketAPI/Console/Program.cs
diff --git a/PokemonGo/RocketAPI/Console/Program.cs b/PokemonGo/RocketAPI/Console/Program.cs
index f947b1c..2ca7ff9 100644
--- a/PokemonGo/RocketAPI/Console/Program.cs
+++ b/PokemonGo/RocketAPI/Console/Program.cs
@@ -30,7 +30,7 @@ namespace PokemonGo.RocketAPI.Console
         static int Currentlevel = -1;

         public static void CheckVersion()
-        {
+        {
             try
             {
                 var match =
@@ -134,7 +134,6 @@ namespace PokemonGo.RocketAPI.Console
         private static async void Execute()
         {
             var client = new Client(ClientSettings);
-
             try
             {
                 if (ClientSettings.AuthType == AuthType.Ptc)
@@ -213,7 +212,6 @@ namespace PokemonGo.RocketAPI.Console
                 var encounterPokemonResponse = await client.EncounterPokemon(pokemon.EncounterId, pokemon.SpawnpointId);
                 var pokemonCP = encounterPokemonResponse?.WildPokemon?.PokemonData?.Cp;
                 CatchPokemonResponse caughtPokemonResponse;
-
                 do
                 {
                     caughtPokemonResponse =
@@ -239,7 +237,6 @@ namespace PokemonGo.RocketAPI.Console
                 else
                     ColoredConsoleWrite(ConsoleColor.Red, $"[{DateTime.Now.ToString("HH:mm:ss")}] {pokemonName} with {encounterPokemonResponse?.WildPokemon?.PokemonData?.Cp} CP got away..");

-
                 if (ClientSettings.TransferType == "leaveStrongest")
                     await TransferAllButStrongestUnwantedPokemon(client);
                 else if (ClientSettings.TransferType == "all")
@@ -308,7 +305,7 @@ namespace PokemonGo.RocketAPI.Console
             });
             System.Console.ReadLine();
         }
-
+
         private static async Task TransferAllButStrongestUnwantedPokemon(Client client)
         {
             //ColoredConsoleWrite(ConsoleColor.White, $"[{DateTime.Now.ToString("HH:mm:ss")}] Firing up the meat grinder");
@@ -367,10 +364,22 @@ namespace PokemonGo.RocketAPI.Console
             //ColoredConsoleWrite(ConsoleColor.White, $"[{DateTime.Now.ToString("HH:mm:ss")}] Finished grinding all the meat");
         }

-        private static async Task TransferAllGivenPokemons(Client client, IEnumerable<PokemonData> unwantedPokemons)
+        public static float Perfect(PokemonData poke)
+        {
+            return ((float)(poke.IndividualAttack + poke.IndividualDefense + poke.IndividualStamina) / (3.0f * 15.0f)) * 100.0f;
+        }
+
+        private static async Task TransferAllGivenPokemons(Client client, IEnumerable<PokemonData> unwantedPokemons, float keepPerfectPokemonLimit = 80.0f)
         {
             foreach (var pokemon in unwantedPokemons)
             {
+                if (Perfect(pokemon) >= keepPerfectPokemonLimit) continue;
+                ColoredConsoleWrite(ConsoleColor.White, $"[{DateTime.Now.ToString("HH:mm:ss")}] Pokemon {pokemon.PokemonId} with {pokemon.Cp} CP has IV percent less than {keepPerfectPokemonLimit}%");
+                if (pokemon.Favorite > 0)
+                {
+                    ColoredConsoleWrite(ConsoleColor.White, $"[{DateTime.Now.ToString("HH:mm:ss")}] Pokemon {pokemon.PokemonId} with {pokemon.Cp} CP is favorited, skipping transfer");
+                    continue;
+                }
                 var transferPokemonResponse = await client.TransferPokemon(pokemon.Id);

                 /*
You may download the files in Public Git.