Fix about perfection

vvvsrx [2016-08-11 16:06:36]
Fix about perfection
Filename
src/RocketBotGUI/Extensions.cs
src/RocketBotGUI/MainForm.Designer.cs
src/RocketBotGUI/MainForm.cs
src/RocketBotGUI/PokemonGo.RocketBot.csproj
src/RocketBotGUI/PokemonObject.cs
diff --git a/src/RocketBotGUI/Extensions.cs b/src/RocketBotGUI/Extensions.cs
deleted file mode 100644
index 64a6a1b..0000000
--- a/src/RocketBotGUI/Extensions.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using POGOProtos.Data;
-
-namespace PokemonGo.RocketAPI.Window
-{
-    public static class Extensions
-    {
-        public static float GetIV(this PokemonData poke)
-        {
-            return (poke.IndividualAttack + poke.IndividualDefense + poke.IndividualStamina)/45.0f;
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/RocketBotGUI/MainForm.Designer.cs b/src/RocketBotGUI/MainForm.Designer.cs
index fcac9ce..be9f9eb 100644
--- a/src/RocketBotGUI/MainForm.Designer.cs
+++ b/src/RocketBotGUI/MainForm.Designer.cs
@@ -50,6 +50,7 @@
             this.pkmnCandy = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
             this.pkmnCandyToEvolve = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
             this.pkmnEvolveTimes = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
+            this.pkmnNickname = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
             this.pkmnTransferButton = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
             this.pkmnPowerUpButton = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
             this.pkmnEvolveButton = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
@@ -62,7 +63,7 @@
             this.lblInventory = new System.Windows.Forms.Label();
             this.flpItems = new System.Windows.Forms.FlowLayoutPanel();
             this.lblPokemonList = new System.Windows.Forms.Label();
-            this.pkmnNickname = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
+            this.pkmnLevel = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
             this.statusStrip1.SuspendLayout();
             this.menuStrip1.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.olvPokemonList)).BeginInit();
@@ -193,6 +194,7 @@
             this.olvPokemonList.AllColumns.Add(this.pkmnCandyToEvolve);
             this.olvPokemonList.AllColumns.Add(this.pkmnEvolveTimes);
             this.olvPokemonList.AllColumns.Add(this.pkmnNickname);
+            this.olvPokemonList.AllColumns.Add(this.pkmnLevel);
             this.olvPokemonList.AllColumns.Add(this.pkmnTransferButton);
             this.olvPokemonList.AllColumns.Add(this.pkmnPowerUpButton);
             this.olvPokemonList.AllColumns.Add(this.pkmnEvolveButton);
@@ -211,6 +213,7 @@
             this.pkmnCandyToEvolve,
             this.pkmnEvolveTimes,
             this.pkmnNickname,
+            this.pkmnLevel,
             this.pkmnTransferButton,
             this.pkmnPowerUpButton,
             this.pkmnEvolveButton});
@@ -286,6 +289,12 @@
             this.pkmnEvolveTimes.Text = "# Evolves";
             this.pkmnEvolveTimes.Width = 66;
             //
+            // pkmnNickname
+            //
+            this.pkmnNickname.AspectName = "Nickname";
+            this.pkmnNickname.Text = "Nickname";
+            this.pkmnNickname.Width = 80;
+            //
             // pkmnTransferButton
             //
             this.pkmnTransferButton.AspectName = "Id";
@@ -418,11 +427,11 @@
             this.lblPokemonList.Text = "0 / 0";
             this.lblPokemonList.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
             //
-            // pkmnNickname
+            // pkmnLevel
             //
-            this.pkmnNickname.AspectName = "Nickname";
-            this.pkmnNickname.Text = "Nickname";
-            this.pkmnNickname.Width = 80;
+            this.pkmnLevel.AspectName = "GetLv";
+            this.pkmnLevel.Text = "Lv";
+            this.pkmnLevel.Width = 50;
             //
             // MainForm
             //
@@ -492,5 +501,6 @@
         private System.Windows.Forms.FlowLayoutPanel flpItems;
         private System.Windows.Forms.Label lblInventory;
         private BrightIdeasSoftware.OLVColumn pkmnNickname;
+        private BrightIdeasSoftware.OLVColumn pkmnLevel;
     }
 }
diff --git a/src/RocketBotGUI/MainForm.cs b/src/RocketBotGUI/MainForm.cs
index 3abb964..f87c85a 100644
--- a/src/RocketBotGUI/MainForm.cs
+++ b/src/RocketBotGUI/MainForm.cs
@@ -1536,7 +1536,7 @@ namespace PokemonGo.RocketAPI.Window
                 var pokemons =
                     inventory.InventoryDelta.InventoryItems.Select(i => i?.InventoryItemData?.PokemonData)
                         .Where(p => p != null && p?.PokemonId > 0)
-                        .OrderByDescending(key => key.GetIV())
+                        .OrderByDescending(PokemonInfo.CalculatePokemonPerfection)
                         .OrderByDescending(key => key.Cp)
                         .OrderBy(key => key.PokemonId);
                 families = inventory.InventoryDelta.InventoryItems
@@ -1779,7 +1779,7 @@ namespace PokemonGo.RocketAPI.Window
                         .Where(p => p.PokemonId == pokemon.PokemonId)
                         .Select(p => p.PokemonData)
                         .OrderBy(p => p.Cp)
-                        .OrderBy(p => p.GetIV())
+                        .OrderBy(PokemonInfo.CalculatePokemonPerfection)
                         .Take(pokemonCount - ET);

                 TransferPokemon(pokemons);
@@ -1790,7 +1790,7 @@ namespace PokemonGo.RocketAPI.Window
                     olvPokemonList.Objects.Cast<PokemonObject>()
                         .Where(p => p.PokemonId == pokemon.PokemonId)
                         .Select(p => p.PokemonData)
-                        .OrderBy(p => p.GetIV())
+                        .OrderBy(PokemonInfo.CalculatePokemonPerfection)
                         .OrderBy(p => p.Cp)
                         .Take(pokemonCount - ET);

@@ -1815,7 +1815,7 @@ namespace PokemonGo.RocketAPI.Window
                         .Where(p => p.PokemonId == pokemon.PokemonId)
                         .Select(p => p.PokemonData)
                         .OrderByDescending(p => p.Cp)
-                        .OrderByDescending(p => p.GetIV())
+                        .OrderByDescending(PokemonInfo.CalculatePokemonPerfection)
                         .Take(ET);

                 EvolvePokemon(pokemons);
@@ -1826,7 +1826,7 @@ namespace PokemonGo.RocketAPI.Window
                     olvPokemonList.Objects.Cast<PokemonObject>()
                         .Where(p => p.PokemonId == pokemon.PokemonId)
                         .Select(p => p.PokemonData)
-                        .OrderByDescending(p => p.GetIV())
+                        .OrderByDescending(PokemonInfo.CalculatePokemonPerfection)
                         .OrderByDescending(p => p.Cp)
                         .Take(ET);

diff --git a/src/RocketBotGUI/PokemonGo.RocketBot.csproj b/src/RocketBotGUI/PokemonGo.RocketBot.csproj
index 70dd1ca..fb687a8 100644
--- a/src/RocketBotGUI/PokemonGo.RocketBot.csproj
+++ b/src/RocketBotGUI/PokemonGo.RocketBot.csproj
@@ -79,7 +79,6 @@
   </ItemGroup>
   <ItemGroup>
     <Compile Include="ApiFailureStrategy.cs" />
-    <Compile Include="Extensions.cs" />
     <Compile Include="ItemBox.cs">
       <SubType>UserControl</SubType>
     </Compile>
diff --git a/src/RocketBotGUI/PokemonObject.cs b/src/RocketBotGUI/PokemonObject.cs
index 3aba76d..b5c95e1 100644
--- a/src/RocketBotGUI/PokemonObject.cs
+++ b/src/RocketBotGUI/PokemonObject.cs
@@ -3,6 +3,7 @@ using PokemonGo.RocketAPI.Helpers;
 using POGOProtos.Data;
 using POGOProtos.Enums;
 using POGOProtos.Networking.Responses;
+using System;

 namespace PokemonGo.RocketAPI.Window
 {
@@ -50,7 +51,12 @@ namespace PokemonGo.RocketAPI.Window

         public double GetIV
         {
-            get { return PokemonInfo.CalculatePokemonPerfection(PokemonData); }
+            get { return Math.Round(PokemonInfo.CalculatePokemonPerfection(PokemonData),2); }
+        }
+
+        public double GetLv
+        {
+            get { return PokemonInfo.GetLevel(PokemonData); }
         }

         public string Nickname
You may download the files in Public Git.