Move CatchPokemonRoutine into the FarmingPokestops to find more Pokemon

FeroxRev [2016-07-19 16:24:22]
Move CatchPokemonRoutine into the FarmingPokestops to find more Pokemon
Filename
PokemonGo/RocketAPI/Client.cs
PokemonGo/RocketAPI/Console/Program.cs
PokemonGo/RocketAPI/GeneratedCode/CatchPokemonResponse.cs
PokemonGo/RocketAPI/GeneratedCode/MapObjectsResponse.cs
PokemonGo/RocketAPI/Proto/CatchPokemonResponse.proto
PokemonGo/RocketAPI/Proto/MapObjectsResponse.proto
diff --git a/PokemonGo/RocketAPI/Client.cs b/PokemonGo/RocketAPI/Client.cs
index 77df89a..03c5eb7 100644
--- a/PokemonGo/RocketAPI/Client.cs
+++ b/PokemonGo/RocketAPI/Client.cs
@@ -307,8 +307,8 @@ namespace PokemonGo.RocketAPI
                 Pokeball = (int) MiscEnums.Item.ITEM_POKE_BALL,
                 SpawnPointGuid = spawnPointGuid,
                 HitPokemon = 1,
-                NormalizedReticleSize = Utils.FloatAsUlong(1.86440348625),
-                SpinModifier = Utils.FloatAsUlong(0.00655560661107)
+                NormalizedReticleSize = Utils.FloatAsUlong(1.01259324542),
+                SpinModifier = Utils.FloatAsUlong(0.896848684824)
             };

             var catchPokemonRequest = RequestBuilder.GetRequest(_unknownAuth, _currentLat, _currentLng, 30,
diff --git a/PokemonGo/RocketAPI/Console/Program.cs b/PokemonGo/RocketAPI/Console/Program.cs
index 63108b8..ba8bbe1 100644
--- a/PokemonGo/RocketAPI/Console/Program.cs
+++ b/PokemonGo/RocketAPI/Console/Program.cs
@@ -32,7 +32,7 @@ namespace PokemonGo.RocketAPI.Console
             var mapObjects = await client.GetMapObjects();
             var inventory = await client.GetInventory();
             await ExecuteFarmingPokestops(client);
-            await ExecuteCatchAllNearbyPokemons(client);
+            //await ExecuteCatchAllNearbyPokemons(client);
         }

         private static async Task ExecuteFarmingPokestops(Client client)
@@ -49,12 +49,16 @@ namespace PokemonGo.RocketAPI.Console
                 var bag = fortSearch.Payload[0];

                 System.Console.WriteLine($"Farmed XP: {bag.XpAwarded}, Gems: { bag.GemsAwarded}, Eggs: {bag.EggPokemon} Items: {GetFriendlyItemsString(bag.Items)}");
+
+                await ExecuteCatchAllNearbyPokemons(client);
+
                 await Task.Delay(15000);
             }
         }

         private static async Task ExecuteCatchAllNearbyPokemons(Client client)
         {
+
             var mapObjects = await client.GetMapObjects();

             var pokemons = mapObjects.Payload[0].Profile.SelectMany(i => i.MapPokemon);
@@ -63,10 +67,17 @@ namespace PokemonGo.RocketAPI.Console
             {
                 var update = await client.UpdatePlayerLocation(pokemon.Latitude, pokemon.Longitude);
                 var encounterPokemonRespone = await client.EncounterPokemon(pokemon.EncounterId, pokemon.SpawnpointId);
-                var caughtPokemonResponse = await client.CatchPokemon(pokemon.EncounterId, pokemon.SpawnpointId, pokemon.Latitude, pokemon.Longitude);
-                await Task.Delay(15000);
-            }

+                CatchPokemonResponse caughtPokemonResponse;
+                do
+                {
+                    caughtPokemonResponse = await client.CatchPokemon(pokemon.EncounterId, pokemon.SpawnpointId, pokemon.Latitude, pokemon.Longitude);
+                }
+                while(caughtPokemonResponse.Payload[0].Status == 2);
+
+                System.Console.WriteLine(caughtPokemonResponse.Payload[0].Status == 1 ? $"We caught a {pokemon.PokedexTypeId}" : $"{pokemon.PokedexTypeId} got away..");
+                await Task.Delay(5000);
+            }
         }

         private static string GetFriendlyItemsString(IEnumerable<FortSearchResponse.Types.Item> items)
diff --git a/PokemonGo/RocketAPI/GeneratedCode/CatchPokemonResponse.cs b/PokemonGo/RocketAPI/GeneratedCode/CatchPokemonResponse.cs
index 22f939b..c34f100 100644
--- a/PokemonGo/RocketAPI/GeneratedCode/CatchPokemonResponse.cs
+++ b/PokemonGo/RocketAPI/GeneratedCode/CatchPokemonResponse.cs
@@ -24,7 +24,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode {
       byte[] descriptorData = global::System.Convert.FromBase64String(
           string.Concat(
             "ChpDYXRjaFBva2Vtb25SZXNwb25zZS5wcm90bxIhUG9rZW1vbkdvLlJvY2tl",
-            "dEFQSS5HZW5lcmF0ZWRDb2RlIpUFChRDYXRjaFBva2Vtb25SZXNwb25zZRIQ",
+            "dEFQSS5HZW5lcmF0ZWRDb2RlIqsmChRDYXRjaFBva2Vtb25SZXNwb25zZRIQ",
             "Cgh1bmtub3duMRgBIAEoBRIQCgh1bmtub3duMhgCIAEoAxIPCgdhcGlfdXJs",
             "GAMgASgJElIKCHVua25vd242GAYgASgLMkAuUG9rZW1vbkdvLlJvY2tldEFQ",
             "SS5HZW5lcmF0ZWRDb2RlLkNhdGNoUG9rZW1vblJlc3BvbnNlLlVua25vd242",
@@ -37,13 +37,107 @@ namespace PokemonGo.RocketAPI.GeneratedCode {
             "b2RlLkNhdGNoUG9rZW1vblJlc3BvbnNlLlVua25vd242LlVua25vd24yGhwK",
             "CFVua25vd24yEhAKCHVua25vd24xGAEgASgMGkMKCFVua25vd243EhEKCXVu",
             "a25vd243MRgBIAEoDBIRCgl1bmtub3duNzIYAiABKAMSEQoJdW5rbm93bjcz",
-            "GAMgASgMGlkKB1BheWxvYWQSDgoGU3RhdHVzGAEgASgFEhMKC01pc3NQZXJj",
-            "ZW50GAIgASgFEhkKEUNhcHR1cmVkUG9rZW1vbklkGAMgASgFEg4KBlNjb3Jl",
-            "cxgEIAEoBWIGcHJvdG8z"));
+            "GAMgASgMGp0BCgdQYXlsb2FkEg4KBlN0YXR1cxgBIAEoBRITCgtNaXNzUGVy",
+            "Y2VudBgCIAEoBhJdChFDYXB0dXJlZFBva2Vtb25JZBgDIAEoDjJCLlBva2Vt",
+            "b25Hby5Sb2NrZXRBUEkuR2VuZXJhdGVkQ29kZS5DYXRjaFBva2Vtb25SZXNw",
+            "b25zZS5Qb2tlbW9uSWRzEg4KBlNjb3JlcxgEIAEoBSLOIAoKUG9rZW1vbklk",
+            "cxIRCg1QT0tFTU9OX1VOU0VUEAASGwoXVjAwMDFfUE9LRU1PTl9CVUxCQVNB",
+            "VVIQARIZChVWMDAwMl9QT0tFTU9OX0lWWVNBVVIQAhIaChZWMDAwM19QT0tF",
+            "TU9OX1ZFTlVTQVVSEAMSHAoYVjAwMDRfUE9LRU1PTl9DSEFSTUFOREVSEAQS",
+            "HAoYVjAwMDVfUE9LRU1PTl9DSEFSTUVMRU9OEAUSGwoXVjAwMDZfUE9LRU1P",
+            "Tl9DSEFSSVpBUkQQBhIaChZWMDAwN19QT0tFTU9OX1NRVUlSVExFEAcSGwoX",
+            "VjAwMDhfUE9LRU1PTl9XQVJUT1JUTEUQCBIbChdWMDAwOV9QT0tFTU9OX0JM",
+            "QVNUT0lTRRAJEhoKFlYwMDEwX1BPS0VNT05fQ0FURVJQSUUQChIZChVWMDAx",
+            "MV9QT0tFTU9OX01FVEFQT0QQCxIcChhWMDAxMl9QT0tFTU9OX0JVVFRFUkZS",
+            "RUUQDBIYChRWMDAxM19QT0tFTU9OX1dFRURMRRANEhgKFFYwMDE0X1BPS0VN",
+            "T05fS0FLVU5BEA4SGgoWVjAwMTVfUE9LRU1PTl9CRUVEUklMTBAPEhgKFFYw",
+            "MDE2X1BPS0VNT05fUElER0VZEBASGwoXVjAwMTdfUE9LRU1PTl9QSURHRU9U",
+            "VE8QERIZChVWMDAxOF9QT0tFTU9OX1BJREdFT1QQEhIZChVWMDAxOV9QT0tF",
+            "TU9OX1JBVFRBVEEQExIaChZWMDAyMF9QT0tFTU9OX1JBVElDQVRFEBQSGQoV",
+            "VjAwMjFfUE9LRU1PTl9TUEVBUk9XEBUSGAoUVjAwMjJfUE9LRU1PTl9GRUFS",
+            "T1cQFhIXChNWMDAyM19QT0tFTU9OX0VLQU5TEBcSFwoTVjAwMjRfUE9LRU1P",
+            "Tl9BUkJPSxAYEhkKFVYwMDI1X1BPS0VNT05fUElLQUNIVRAZEhgKFFYwMDI2",
+            "X1BPS0VNT05fUkFJQ0hVEBoSGwoXVjAwMjdfUE9LRU1PTl9TQU5EU0hSRVcQ",
+            "GxIbChdWMDAyOF9QT0tFTU9OX1NBTkRTTEFTSBAcEhkKFVYwMDI5X1BPS0VN",
+            "T05fTklET1JBThAdEhoKFlYwMDMwX1BPS0VNT05fTklET1JJTkEQHhIbChdW",
+            "MDAzMV9QT0tFTU9OX05JRE9RVUVFThAfEhkKFVYwMDMyX1BPS0VNT05fTklE",
+            "T1JBThAgEhoKFlYwMDMzX1BPS0VNT05fTklET1JJTk8QIRIaChZWMDAzNF9Q",
+            "T0tFTU9OX05JRE9LSU5HECISGgoWVjAwMzVfUE9LRU1PTl9DTEVGQUlSWRAj",
+            "EhoKFlYwMDM2X1BPS0VNT05fQ0xFRkFCTEUQJBIYChRWMDAzN19QT0tFTU9O",
+            "X1ZVTFBJWBAlEhsKF1YwMDM4X1BPS0VNT05fTklORVRBTEVTECYSHAoYVjAw",
+            "MzlfUE9LRU1PTl9KSUdHTFlQVUZGECcSHAoYVjAwNDBfUE9LRU1PTl9XSUdH",
+            "TFlUVUZGECgSFwoTVjAwNDFfUE9LRU1PTl9aVUJBVBApEhgKFFYwMDQyX1BP",
+            "S0VNT05fR09MQkFUECoSGAoUVjAwNDNfUE9LRU1PTl9PRERJU0gQKxIXChNW",
+            "MDA0NF9QT0tFTU9OX0dMT09NECwSGwoXVjAwNDVfUE9LRU1PTl9WSUxFUExV",
+            "TUUQLRIXChNWMDA0Nl9QT0tFTU9OX1BBUkFTEC4SGgoWVjAwNDdfUE9LRU1P",
+            "Tl9QQVJBU0VDVBAvEhkKFVYwMDQ4X1BPS0VNT05fVkVOT05BVBAwEhoKFlYw",
+            "MDQ5X1BPS0VNT05fVkVOT01PVEgQMRIZChVWMDA1MF9QT0tFTU9OX0RJR0xF",
+            "VFQQMhIZChVWMDA1MV9QT0tFTU9OX0RVR1RSSU8QMxIYChRWMDA1Ml9QT0tF",
+            "TU9OX01FT1dUSBA0EhkKFVYwMDUzX1BPS0VNT05fUEVSU0lBThA1EhkKFVYw",
+            "MDU0X1BPS0VNT05fUFNZRFVDSxA2EhkKFVYwMDU1X1BPS0VNT05fR09MRFVD",
+            "SxA3EhgKFFYwMDU2X1BPS0VNT05fTUFOS0VZEDgSGgoWVjAwNTdfUE9LRU1P",
+            "Tl9QUklNRUFQRRA5EhsKF1YwMDU4X1BPS0VNT05fR1JPV0xJVEhFEDoSGgoW",
+            "VjAwNTlfUE9LRU1PTl9BUkNBTklORRA7EhkKFVYwMDYwX1BPS0VNT05fUE9M",
+            "SVdBRxA8EhsKF1YwMDYxX1BPS0VNT05fUE9MSVdISVJMED0SGwoXVjAwNjJf",
+            "UE9LRU1PTl9QT0xJV1JBVEgQPhIWChJWMDA2M19QT0tFTU9OX0FCUkEQPxIZ",
+            "ChVWMDA2NF9QT0tFTU9OX0tBREFCUkEQQBIaChZWMDA2NV9QT0tFTU9OX0FM",
+            "QUtBWkFNEEESGAoUVjAwNjZfUE9LRU1PTl9NQUNIT1AQQhIZChVWMDA2N19Q",
+            "T0tFTU9OX01BQ0hPS0UQQxIZChVWMDA2OF9QT0tFTU9OX01BQ0hBTVAQRBIc",
+            "ChhWMDA2OV9QT0tFTU9OX0JFTExTUFJPVVQQRRIcChhWMDA3MF9QT0tFTU9O",
+            "X1dFRVBJTkJFTEwQRhIcChhWMDA3MV9QT0tFTU9OX1ZJQ1RSRUVCRUwQRxIb",
+            "ChdWMDA3Ml9QT0tFTU9OX1RFTlRBQ09PTBBIEhwKGFYwMDczX1BPS0VNT05f",
+            "VEVOVEFDUlVFTBBJEhkKFVYwMDc0X1BPS0VNT05fR0VPRFVERRBKEhoKFlYw",
+            "MDc1X1BPS0VNT05fR1JBVkVMRVIQSxIXChNWMDA3Nl9QT0tFTU9OX0dPTEVN",
+            "EEwSGAoUVjAwNzdfUE9LRU1PTl9QT05ZVEEQTRIaChZWMDA3OF9QT0tFTU9O",
+            "X1JBUElEQVNIEE4SGgoWVjAwNzlfUE9LRU1PTl9TTE9XUE9LRRBPEhkKFVYw",
+            "MDgwX1BPS0VNT05fU0xPV0JSTxBQEhsKF1YwMDgxX1BPS0VNT05fTUFHTkVN",
+            "SVRFEFESGgoWVjAwODJfUE9LRU1PTl9NQUdORVRPThBSEhsKF1YwMDgzX1BP",
+            "S0VNT05fRkFSRkVUQ0hEEFMSFwoTVjAwODRfUE9LRU1PTl9ET0RVTxBUEhgK",
+            "FFYwMDg1X1BPS0VNT05fRE9EUklPEFUSFgoSVjAwODZfUE9LRU1PTl9TRUVM",
+            "EFYSGQoVVjAwODdfUE9LRU1PTl9ERVdHT05HEFcSGAoUVjAwODhfUE9LRU1P",
+            "Tl9HUklNRVIQWBIVChFWMDA4OV9QT0tFTU9OX01VSxBZEhoKFlYwMDkwX1BP",
+            "S0VNT05fU0hFTExERVIQWhIaChZWMDA5MV9QT0tFTU9OX0NMT1lTVEVSEFsS",
+            "GAoUVjAwOTJfUE9LRU1PTl9HQVNUTFkQXBIZChVWMDA5M19QT0tFTU9OX0hB",
+            "VU5URVIQXRIYChRWMDA5NF9QT0tFTU9OX0dFTkdBUhBeEhYKElYwMDk1X1BP",
+            "S0VNT05fT05JWBBfEhkKFVYwMDk2X1BPS0VNT05fRFJPV1pFRRBgEhcKE1Yw",
+            "MDk3X1BPS0VNT05fSFlQTk8QYRIYChRWMDA5OF9QT0tFTU9OX0tSQUJCWRBi",
+            "EhkKFVYwMDk5X1BPS0VNT05fS0lOR0xFUhBjEhkKFVYwMTAwX1BPS0VNT05f",
+            "Vk9MVE9SQhBkEhsKF1YwMTAxX1BPS0VNT05fRUxFQ1RST0RFEGUSGwoXVjAx",
+            "MDJfUE9LRU1PTl9FWEVHR0NVVEUQZhIbChdWMDEwM19QT0tFTU9OX0VYRUdH",
+            "VVRPUhBnEhgKFFYwMTA0X1BPS0VNT05fQ1VCT05FEGgSGQoVVjAxMDVfUE9L",
+            "RU1PTl9NQVJPV0FLEGkSGwoXVjAxMDZfUE9LRU1PTl9ISVRNT05MRUUQahIc",
+            "ChhWMDEwN19QT0tFTU9OX0hJVE1PTkNIQU4QaxIbChdWMDEwOF9QT0tFTU9O",
+            "X0xJQ0tJVFVORxBsEhkKFVYwMTA5X1BPS0VNT05fS09GRklORxBtEhkKFVYw",
+            "MTEwX1BPS0VNT05fV0VFWklORxBuEhkKFVYwMTExX1BPS0VNT05fUkhZSE9S",
+            "ThBvEhgKFFYwMTEyX1BPS0VNT05fUkhZRE9OEHASGQoVVjAxMTNfUE9LRU1P",
+            "Tl9DSEFOU0VZEHESGQoVVjAxMTRfUE9LRU1PTl9UQU5HRUxBEHISHAoYVjAx",
+            "MTVfUE9LRU1PTl9LQU5HQVNLSEFOEHMSGAoUVjAxMTZfUE9LRU1PTl9IT1JT",
+            "RUEQdBIYChRWMDExN19QT0tFTU9OX1NFQURSQRB1EhkKFVYwMTE4X1BPS0VN",
+            "T05fR09MREVFThB2EhkKFVYwMTE5X1BPS0VNT05fU0VBS0lORxB3EhgKFFYw",
+            "MTIwX1BPS0VNT05fU1RBUllVEHgSGQoVVjAxMjFfUE9LRU1PTl9TVEFSTUlF",
+            "EHkSGQoVVjAxMjJfUE9LRU1PTl9NUl9NSU1FEHoSGQoVVjAxMjNfUE9LRU1P",
+            "Tl9TQ1lUSEVSEHsSFgoSVjAxMjRfUE9LRU1PTl9KWU5YEHwSHAoYVjAxMjVf",
+            "UE9LRU1PTl9FTEVDVEFCVVpaEH0SGAoUVjAxMjZfUE9LRU1PTl9NQUdNQVIQ",
+            "fhIYChRWMDEyN19QT0tFTU9OX1BJTlNJUhB/EhkKFFYwMTI4X1BPS0VNT05f",
+            "VEFVUk9TEIABEhsKFlYwMTI5X1BPS0VNT05fTUFHSUtBUlAQgQESGwoWVjAx",
+            "MzBfUE9LRU1PTl9HWUFSQURPUxCCARIZChRWMDEzMV9QT0tFTU9OX0xBUFJB",
+            "UxCDARIYChNWMDEzMl9QT0tFTU9OX0RJVFRPEIQBEhgKE1YwMTMzX1BPS0VN",
+            "T05fRUVWRUUQhQESGwoWVjAxMzRfUE9LRU1PTl9WQVBPUkVPThCGARIaChVW",
+            "MDEzNV9QT0tFTU9OX0pPTFRFT04QhwESGgoVVjAxMzZfUE9LRU1PTl9GTEFS",
+            "RU9OEIgBEhoKFVYwMTM3X1BPS0VNT05fUE9SWUdPThCJARIaChVWMDEzOF9Q",
+            "T0tFTU9OX09NQU5ZVEUQigESGgoVVjAxMzlfUE9LRU1PTl9PTUFTVEFSEIsB",
+            "EhkKFFYwMTQwX1BPS0VNT05fS0FCVVRPEIwBEhsKFlYwMTQxX1BPS0VNT05f",
+            "S0FCVVRPUFMQjQESHQoYVjAxNDJfUE9LRU1PTl9BRVJPREFDVFlMEI4BEhoK",
+            "FVYwMTQzX1BPS0VNT05fU05PUkxBWBCPARIbChZWMDE0NF9QT0tFTU9OX0FS",
+            "VElDVU5PEJABEhkKFFYwMTQ1X1BPS0VNT05fWkFQRE9TEJEBEhoKFVYwMTQ2",
+            "X1BPS0VNT05fTU9MVFJFUxCSARIaChVWMDE0N19QT0tFTU9OX0RSQVRJTkkQ",
+            "kwESHAoXVjAxNDhfUE9LRU1PTl9EUkFHT05BSVIQlAESHAoXVjAxNDlfUE9L",
+            "RU1PTl9EUkFHT05JVEUQlQESGQoUVjAxNTBfUE9LRU1PTl9NRVdUV08QlgES",
+            "FgoRVjAxNTFfUE9LRU1PTl9NRVcQlwFiBnByb3RvMw=="));
       descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
           new pbr::FileDescriptor[] { },
           new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
-            new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse), global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Parser, new[]{ "Unknown1", "Unknown2", "ApiUrl", "Unknown6", "Unknown7", "Payload", "ErrorMessage" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.Unknown6), global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.Unknown6.Parser, new[]{ "Unknown1", "Unknown2" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.Unknown6.Types.Unknown2), global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.Unknown6.Types.Unknown2.Parser, new[]{ "Unknown1" }, null, null, null)}),
+            new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse), global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Parser, new[]{ "Unknown1", "Unknown2", "ApiUrl", "Unknown6", "Unknown7", "Payload", "ErrorMessage" }, null, new[]{ typeof(global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.PokemonIds) }, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.Unknown6), global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.Unknown6.Parser, new[]{ "Unknown1", "Unknown2" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.Unknown6.Types.Unknown2), global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.Unknown6.Types.Unknown2.Parser, new[]{ "Unknown1" }, null, null, null)}),
             new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.Unknown7), global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.Unknown7.Parser, new[]{ "Unknown71", "Unknown72", "Unknown73" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.Payload), global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.Payload.Parser, new[]{ "Status", "MissPercent", "CapturedPokemonId", "Scores" }, null, null, null)})
           }));
@@ -326,6 +420,161 @@ namespace PokemonGo.RocketAPI.GeneratedCode {
     /// <summary>Container for nested types declared in the CatchPokemonResponse message type.</summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     public static partial class Types {
+      public enum PokemonIds {
+        [pbr::OriginalName("POKEMON_UNSET")] PokemonUnset = 0,
+        [pbr::OriginalName("V0001_POKEMON_BULBASAUR")] V0001PokemonBulbasaur = 1,
+        [pbr::OriginalName("V0002_POKEMON_IVYSAUR")] V0002PokemonIvysaur = 2,
+        [pbr::OriginalName("V0003_POKEMON_VENUSAUR")] V0003PokemonVenusaur = 3,
+        [pbr::OriginalName("V0004_POKEMON_CHARMANDER")] V0004PokemonCharmander = 4,
+        [pbr::OriginalName("V0005_POKEMON_CHARMELEON")] V0005PokemonCharmeleon = 5,
+        [pbr::OriginalName("V0006_POKEMON_CHARIZARD")] V0006PokemonCharizard = 6,
+        [pbr::OriginalName("V0007_POKEMON_SQUIRTLE")] V0007PokemonSquirtle = 7,
+        [pbr::OriginalName("V0008_POKEMON_WARTORTLE")] V0008PokemonWartortle = 8,
+        [pbr::OriginalName("V0009_POKEMON_BLASTOISE")] V0009PokemonBlastoise = 9,
+        [pbr::OriginalName("V0010_POKEMON_CATERPIE")] V0010PokemonCaterpie = 10,
+        [pbr::OriginalName("V0011_POKEMON_METAPOD")] V0011PokemonMetapod = 11,
+        [pbr::OriginalName("V0012_POKEMON_BUTTERFREE")] V0012PokemonButterfree = 12,
+        [pbr::OriginalName("V0013_POKEMON_WEEDLE")] V0013PokemonWeedle = 13,
+        [pbr::OriginalName("V0014_POKEMON_KAKUNA")] V0014PokemonKakuna = 14,
+        [pbr::OriginalName("V0015_POKEMON_BEEDRILL")] V0015PokemonBeedrill = 15,
+        [pbr::OriginalName("V0016_POKEMON_PIDGEY")] V0016PokemonPidgey = 16,
+        [pbr::OriginalName("V0017_POKEMON_PIDGEOTTO")] V0017PokemonPidgeotto = 17,
+        [pbr::OriginalName("V0018_POKEMON_PIDGEOT")] V0018PokemonPidgeot = 18,
+        [pbr::OriginalName("V0019_POKEMON_RATTATA")] V0019PokemonRattata = 19,
+        [pbr::OriginalName("V0020_POKEMON_RATICATE")] V0020PokemonRaticate = 20,
+        [pbr::OriginalName("V0021_POKEMON_SPEAROW")] V0021PokemonSpearow = 21,
+        [pbr::OriginalName("V0022_POKEMON_FEAROW")] V0022PokemonFearow = 22,
+        [pbr::OriginalName("V0023_POKEMON_EKANS")] V0023PokemonEkans = 23,
+        [pbr::OriginalName("V0024_POKEMON_ARBOK")] V0024PokemonArbok = 24,
+        [pbr::OriginalName("V0025_POKEMON_PIKACHU")] V0025PokemonPikachu = 25,
+        [pbr::OriginalName("V0026_POKEMON_RAICHU")] V0026PokemonRaichu = 26,
+        [pbr::OriginalName("V0027_POKEMON_SANDSHREW")] V0027PokemonSandshrew = 27,
+        [pbr::OriginalName("V0028_POKEMON_SANDSLASH")] V0028PokemonSandslash = 28,
+        [pbr::OriginalName("V0029_POKEMON_NIDORAN")] V0029PokemonNidoran = 29,
+        [pbr::OriginalName("V0030_POKEMON_NIDORINA")] V0030PokemonNidorina = 30,
+        [pbr::OriginalName("V0031_POKEMON_NIDOQUEEN")] V0031PokemonNidoqueen = 31,
+        [pbr::OriginalName("V0032_POKEMON_NIDORAN")] V0032PokemonNidoran = 32,
+        [pbr::OriginalName("V0033_POKEMON_NIDORINO")] V0033PokemonNidorino = 33,
+        [pbr::OriginalName("V0034_POKEMON_NIDOKING")] V0034PokemonNidoking = 34,
+        [pbr::OriginalName("V0035_POKEMON_CLEFAIRY")] V0035PokemonClefairy = 35,
+        [pbr::OriginalName("V0036_POKEMON_CLEFABLE")] V0036PokemonClefable = 36,
+        [pbr::OriginalName("V0037_POKEMON_VULPIX")] V0037PokemonVulpix = 37,
+        [pbr::OriginalName("V0038_POKEMON_NINETALES")] V0038PokemonNinetales = 38,
+        [pbr::OriginalName("V0039_POKEMON_JIGGLYPUFF")] V0039PokemonJigglypuff = 39,
+        [pbr::OriginalName("V0040_POKEMON_WIGGLYTUFF")] V0040PokemonWigglytuff = 40,
+        [pbr::OriginalName("V0041_POKEMON_ZUBAT")] V0041PokemonZubat = 41,
+        [pbr::OriginalName("V0042_POKEMON_GOLBAT")] V0042PokemonGolbat = 42,
+        [pbr::OriginalName("V0043_POKEMON_ODDISH")] V0043PokemonOddish = 43,
+        [pbr::OriginalName("V0044_POKEMON_GLOOM")] V0044PokemonGloom = 44,
+        [pbr::OriginalName("V0045_POKEMON_VILEPLUME")] V0045PokemonVileplume = 45,
+        [pbr::OriginalName("V0046_POKEMON_PARAS")] V0046PokemonParas = 46,
+        [pbr::OriginalName("V0047_POKEMON_PARASECT")] V0047PokemonParasect = 47,
+        [pbr::OriginalName("V0048_POKEMON_VENONAT")] V0048PokemonVenonat = 48,
+        [pbr::OriginalName("V0049_POKEMON_VENOMOTH")] V0049PokemonVenomoth = 49,
+        [pbr::OriginalName("V0050_POKEMON_DIGLETT")] V0050PokemonDiglett = 50,
+        [pbr::OriginalName("V0051_POKEMON_DUGTRIO")] V0051PokemonDugtrio = 51,
+        [pbr::OriginalName("V0052_POKEMON_MEOWTH")] V0052PokemonMeowth = 52,
+        [pbr::OriginalName("V0053_POKEMON_PERSIAN")] V0053PokemonPersian = 53,
+        [pbr::OriginalName("V0054_POKEMON_PSYDUCK")] V0054PokemonPsyduck = 54,
+        [pbr::OriginalName("V0055_POKEMON_GOLDUCK")] V0055PokemonGolduck = 55,
+        [pbr::OriginalName("V0056_POKEMON_MANKEY")] V0056PokemonMankey = 56,
+        [pbr::OriginalName("V0057_POKEMON_PRIMEAPE")] V0057PokemonPrimeape = 57,
+        [pbr::OriginalName("V0058_POKEMON_GROWLITHE")] V0058PokemonGrowlithe = 58,
+        [pbr::OriginalName("V0059_POKEMON_ARCANINE")] V0059PokemonArcanine = 59,
+        [pbr::OriginalName("V0060_POKEMON_POLIWAG")] V0060PokemonPoliwag = 60,
+        [pbr::OriginalName("V0061_POKEMON_POLIWHIRL")] V0061PokemonPoliwhirl = 61,
+        [pbr::OriginalName("V0062_POKEMON_POLIWRATH")] V0062PokemonPoliwrath = 62,
+        [pbr::OriginalName("V0063_POKEMON_ABRA")] V0063PokemonAbra = 63,
+        [pbr::OriginalName("V0064_POKEMON_KADABRA")] V0064PokemonKadabra = 64,
+        [pbr::OriginalName("V0065_POKEMON_ALAKAZAM")] V0065PokemonAlakazam = 65,
+        [pbr::OriginalName("V0066_POKEMON_MACHOP")] V0066PokemonMachop = 66,
+        [pbr::OriginalName("V0067_POKEMON_MACHOKE")] V0067PokemonMachoke = 67,
+        [pbr::OriginalName("V0068_POKEMON_MACHAMP")] V0068PokemonMachamp = 68,
+        [pbr::OriginalName("V0069_POKEMON_BELLSPROUT")] V0069PokemonBellsprout = 69,
+        [pbr::OriginalName("V0070_POKEMON_WEEPINBELL")] V0070PokemonWeepinbell = 70,
+        [pbr::OriginalName("V0071_POKEMON_VICTREEBEL")] V0071PokemonVictreebel = 71,
+        [pbr::OriginalName("V0072_POKEMON_TENTACOOL")] V0072PokemonTentacool = 72,
+        [pbr::OriginalName("V0073_POKEMON_TENTACRUEL")] V0073PokemonTentacruel = 73,
+        [pbr::OriginalName("V0074_POKEMON_GEODUDE")] V0074PokemonGeodude = 74,
+        [pbr::OriginalName("V0075_POKEMON_GRAVELER")] V0075PokemonGraveler = 75,
+        [pbr::OriginalName("V0076_POKEMON_GOLEM")] V0076PokemonGolem = 76,
+        [pbr::OriginalName("V0077_POKEMON_PONYTA")] V0077PokemonPonyta = 77,
+        [pbr::OriginalName("V0078_POKEMON_RAPIDASH")] V0078PokemonRapidash = 78,
+        [pbr::OriginalName("V0079_POKEMON_SLOWPOKE")] V0079PokemonSlowpoke = 79,
+        [pbr::OriginalName("V0080_POKEMON_SLOWBRO")] V0080PokemonSlowbro = 80,
+        [pbr::OriginalName("V0081_POKEMON_MAGNEMITE")] V0081PokemonMagnemite = 81,
+        [pbr::OriginalName("V0082_POKEMON_MAGNETON")] V0082PokemonMagneton = 82,
+        [pbr::OriginalName("V0083_POKEMON_FARFETCHD")] V0083PokemonFarfetchd = 83,
+        [pbr::OriginalName("V0084_POKEMON_DODUO")] V0084PokemonDoduo = 84,
+        [pbr::OriginalName("V0085_POKEMON_DODRIO")] V0085PokemonDodrio = 85,
+        [pbr::OriginalName("V0086_POKEMON_SEEL")] V0086PokemonSeel = 86,
+        [pbr::OriginalName("V0087_POKEMON_DEWGONG")] V0087PokemonDewgong = 87,
+        [pbr::OriginalName("V0088_POKEMON_GRIMER")] V0088PokemonGrimer = 88,
+        [pbr::OriginalName("V0089_POKEMON_MUK")] V0089PokemonMuk = 89,
+        [pbr::OriginalName("V0090_POKEMON_SHELLDER")] V0090PokemonShellder = 90,
+        [pbr::OriginalName("V0091_POKEMON_CLOYSTER")] V0091PokemonCloyster = 91,
+        [pbr::OriginalName("V0092_POKEMON_GASTLY")] V0092PokemonGastly = 92,
+        [pbr::OriginalName("V0093_POKEMON_HAUNTER")] V0093PokemonHaunter = 93,
+        [pbr::OriginalName("V0094_POKEMON_GENGAR")] V0094PokemonGengar = 94,
+        [pbr::OriginalName("V0095_POKEMON_ONIX")] V0095PokemonOnix = 95,
+        [pbr::OriginalName("V0096_POKEMON_DROWZEE")] V0096PokemonDrowzee = 96,
+        [pbr::OriginalName("V0097_POKEMON_HYPNO")] V0097PokemonHypno = 97,
+        [pbr::OriginalName("V0098_POKEMON_KRABBY")] V0098PokemonKrabby = 98,
+        [pbr::OriginalName("V0099_POKEMON_KINGLER")] V0099PokemonKingler = 99,
+        [pbr::OriginalName("V0100_POKEMON_VOLTORB")] V0100PokemonVoltorb = 100,
+        [pbr::OriginalName("V0101_POKEMON_ELECTRODE")] V0101PokemonElectrode = 101,
+        [pbr::OriginalName("V0102_POKEMON_EXEGGCUTE")] V0102PokemonExeggcute = 102,
+        [pbr::OriginalName("V0103_POKEMON_EXEGGUTOR")] V0103PokemonExeggutor = 103,
+        [pbr::OriginalName("V0104_POKEMON_CUBONE")] V0104PokemonCubone = 104,
+        [pbr::OriginalName("V0105_POKEMON_MAROWAK")] V0105PokemonMarowak = 105,
+        [pbr::OriginalName("V0106_POKEMON_HITMONLEE")] V0106PokemonHitmonlee = 106,
+        [pbr::OriginalName("V0107_POKEMON_HITMONCHAN")] V0107PokemonHitmonchan = 107,
+        [pbr::OriginalName("V0108_POKEMON_LICKITUNG")] V0108PokemonLickitung = 108,
+        [pbr::OriginalName("V0109_POKEMON_KOFFING")] V0109PokemonKoffing = 109,
+        [pbr::OriginalName("V0110_POKEMON_WEEZING")] V0110PokemonWeezing = 110,
+        [pbr::OriginalName("V0111_POKEMON_RHYHORN")] V0111PokemonRhyhorn = 111,
+        [pbr::OriginalName("V0112_POKEMON_RHYDON")] V0112PokemonRhydon = 112,
+        [pbr::OriginalName("V0113_POKEMON_CHANSEY")] V0113PokemonChansey = 113,
+        [pbr::OriginalName("V0114_POKEMON_TANGELA")] V0114PokemonTangela = 114,
+        [pbr::OriginalName("V0115_POKEMON_KANGASKHAN")] V0115PokemonKangaskhan = 115,
+        [pbr::OriginalName("V0116_POKEMON_HORSEA")] V0116PokemonHorsea = 116,
+        [pbr::OriginalName("V0117_POKEMON_SEADRA")] V0117PokemonSeadra = 117,
+        [pbr::OriginalName("V0118_POKEMON_GOLDEEN")] V0118PokemonGoldeen = 118,
+        [pbr::OriginalName("V0119_POKEMON_SEAKING")] V0119PokemonSeaking = 119,
+        [pbr::OriginalName("V0120_POKEMON_STARYU")] V0120PokemonStaryu = 120,
+        [pbr::OriginalName("V0121_POKEMON_STARMIE")] V0121PokemonStarmie = 121,
+        [pbr::OriginalName("V0122_POKEMON_MR_MIME")] V0122PokemonMrMime = 122,
+        [pbr::OriginalName("V0123_POKEMON_SCYTHER")] V0123PokemonScyther = 123,
+        [pbr::OriginalName("V0124_POKEMON_JYNX")] V0124PokemonJynx = 124,
+        [pbr::OriginalName("V0125_POKEMON_ELECTABUZZ")] V0125PokemonElectabuzz = 125,
+        [pbr::OriginalName("V0126_POKEMON_MAGMAR")] V0126PokemonMagmar = 126,
+        [pbr::OriginalName("V0127_POKEMON_PINSIR")] V0127PokemonPinsir = 127,
+        [pbr::OriginalName("V0128_POKEMON_TAUROS")] V0128PokemonTauros = 128,
+        [pbr::OriginalName("V0129_POKEMON_MAGIKARP")] V0129PokemonMagikarp = 129,
+        [pbr::OriginalName("V0130_POKEMON_GYARADOS")] V0130PokemonGyarados = 130,
+        [pbr::OriginalName("V0131_POKEMON_LAPRAS")] V0131PokemonLapras = 131,
+        [pbr::OriginalName("V0132_POKEMON_DITTO")] V0132PokemonDitto = 132,
+        [pbr::OriginalName("V0133_POKEMON_EEVEE")] V0133PokemonEevee = 133,
+        [pbr::OriginalName("V0134_POKEMON_VAPOREON")] V0134PokemonVaporeon = 134,
+        [pbr::OriginalName("V0135_POKEMON_JOLTEON")] V0135PokemonJolteon = 135,
+        [pbr::OriginalName("V0136_POKEMON_FLAREON")] V0136PokemonFlareon = 136,
+        [pbr::OriginalName("V0137_POKEMON_PORYGON")] V0137PokemonPorygon = 137,
+        [pbr::OriginalName("V0138_POKEMON_OMANYTE")] V0138PokemonOmanyte = 138,
+        [pbr::OriginalName("V0139_POKEMON_OMASTAR")] V0139PokemonOmastar = 139,
+        [pbr::OriginalName("V0140_POKEMON_KABUTO")] V0140PokemonKabuto = 140,
+        [pbr::OriginalName("V0141_POKEMON_KABUTOPS")] V0141PokemonKabutops = 141,
+        [pbr::OriginalName("V0142_POKEMON_AERODACTYL")] V0142PokemonAerodactyl = 142,
+        [pbr::OriginalName("V0143_POKEMON_SNORLAX")] V0143PokemonSnorlax = 143,
+        [pbr::OriginalName("V0144_POKEMON_ARTICUNO")] V0144PokemonArticuno = 144,
+        [pbr::OriginalName("V0145_POKEMON_ZAPDOS")] V0145PokemonZapdos = 145,
+        [pbr::OriginalName("V0146_POKEMON_MOLTRES")] V0146PokemonMoltres = 146,
+        [pbr::OriginalName("V0147_POKEMON_DRATINI")] V0147PokemonDratini = 147,
+        [pbr::OriginalName("V0148_POKEMON_DRAGONAIR")] V0148PokemonDragonair = 148,
+        [pbr::OriginalName("V0149_POKEMON_DRAGONITE")] V0149PokemonDragonite = 149,
+        [pbr::OriginalName("V0150_POKEMON_MEWTWO")] V0150PokemonMewtwo = 150,
+        [pbr::OriginalName("V0151_POKEMON_MEW")] V0151PokemonMew = 151,
+      }
+
       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
       public sealed partial class Unknown6 : pb::IMessage<Unknown6> {
         private static readonly pb::MessageParser<Unknown6> _parser = new pb::MessageParser<Unknown6>(() => new Unknown6());
@@ -771,8 +1020,8 @@ namespace PokemonGo.RocketAPI.GeneratedCode {

         /// <summary>Field number for the "MissPercent" field.</summary>
         public const int MissPercentFieldNumber = 2;
-        private int missPercent_;
-        public int MissPercent {
+        private ulong missPercent_;
+        public ulong MissPercent {
           get { return missPercent_; }
           set {
             missPercent_ = value;
@@ -781,8 +1030,8 @@ namespace PokemonGo.RocketAPI.GeneratedCode {

         /// <summary>Field number for the "CapturedPokemonId" field.</summary>
         public const int CapturedPokemonIdFieldNumber = 3;
-        private int capturedPokemonId_;
-        public int CapturedPokemonId {
+        private global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.PokemonIds capturedPokemonId_ = 0;
+        public global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.PokemonIds CapturedPokemonId {
           get { return capturedPokemonId_; }
           set {
             capturedPokemonId_ = value;
@@ -820,7 +1069,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode {
         public override int GetHashCode() {
           int hash = 1;
           if (Status != 0) hash ^= Status.GetHashCode();
-          if (MissPercent != 0) hash ^= MissPercent.GetHashCode();
+          if (MissPercent != 0UL) hash ^= MissPercent.GetHashCode();
           if (CapturedPokemonId != 0) hash ^= CapturedPokemonId.GetHashCode();
           if (Scores != 0) hash ^= Scores.GetHashCode();
           return hash;
@@ -835,13 +1084,13 @@ namespace PokemonGo.RocketAPI.GeneratedCode {
             output.WriteRawTag(8);
             output.WriteInt32(Status);
           }
-          if (MissPercent != 0) {
-            output.WriteRawTag(16);
-            output.WriteInt32(MissPercent);
+          if (MissPercent != 0UL) {
+            output.WriteRawTag(17);
+            output.WriteFixed64(MissPercent);
           }
           if (CapturedPokemonId != 0) {
             output.WriteRawTag(24);
-            output.WriteInt32(CapturedPokemonId);
+            output.WriteEnum((int) CapturedPokemonId);
           }
           if (Scores != 0) {
             output.WriteRawTag(32);
@@ -854,11 +1103,11 @@ namespace PokemonGo.RocketAPI.GeneratedCode {
           if (Status != 0) {
             size += 1 + pb::CodedOutputStream.ComputeInt32Size(Status);
           }
-          if (MissPercent != 0) {
-            size += 1 + pb::CodedOutputStream.ComputeInt32Size(MissPercent);
+          if (MissPercent != 0UL) {
+            size += 1 + 8;
           }
           if (CapturedPokemonId != 0) {
-            size += 1 + pb::CodedOutputStream.ComputeInt32Size(CapturedPokemonId);
+            size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) CapturedPokemonId);
           }
           if (Scores != 0) {
             size += 1 + pb::CodedOutputStream.ComputeInt32Size(Scores);
@@ -873,7 +1122,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode {
           if (other.Status != 0) {
             Status = other.Status;
           }
-          if (other.MissPercent != 0) {
+          if (other.MissPercent != 0UL) {
             MissPercent = other.MissPercent;
           }
           if (other.CapturedPokemonId != 0) {
@@ -895,12 +1144,12 @@ namespace PokemonGo.RocketAPI.GeneratedCode {
                 Status = input.ReadInt32();
                 break;
               }
-              case 16: {
-                MissPercent = input.ReadInt32();
+              case 17: {
+                MissPercent = input.ReadFixed64();
                 break;
               }
               case 24: {
-                CapturedPokemonId = input.ReadInt32();
+                capturedPokemonId_ = (global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.PokemonIds) input.ReadEnum();
                 break;
               }
               case 32: {
diff --git a/PokemonGo/RocketAPI/GeneratedCode/MapObjectsResponse.cs b/PokemonGo/RocketAPI/GeneratedCode/MapObjectsResponse.cs
index 59ab48f..5ee40e4 100644
--- a/PokemonGo/RocketAPI/GeneratedCode/MapObjectsResponse.cs
+++ b/PokemonGo/RocketAPI/GeneratedCode/MapObjectsResponse.cs
@@ -24,7 +24,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode {
       byte[] descriptorData = global::System.Convert.FromBase64String(
           string.Concat(
             "ChhNYXBPYmplY3RzUmVzcG9uc2UucHJvdG8SIVBva2Vtb25Hby5Sb2NrZXRB",
-            "UEkuR2VuZXJhdGVkQ29kZSLNFQoSTWFwT2JqZWN0c1Jlc3BvbnNlEhAKCHVu",
+            "UEkuR2VuZXJhdGVkQ29kZSLoNgoSTWFwT2JqZWN0c1Jlc3BvbnNlEhAKCHVu",
             "a25vd24xGAEgASgFEhAKCHVua25vd24yGAIgASgDEg8KB2FwaV91cmwYAyAB",
             "KAkSUAoIdW5rbm93bjYYBiABKAsyPi5Qb2tlbW9uR28uUm9ja2V0QVBJLkdl",
             "bmVyYXRlZENvZGUuTWFwT2JqZWN0c1Jlc3BvbnNlLlVua25vd242ElAKCHVu",
@@ -36,7 +36,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode {
             "KAsyRy5Qb2tlbW9uR28uUm9ja2V0QVBJLkdlbmVyYXRlZENvZGUuTWFwT2Jq",
             "ZWN0c1Jlc3BvbnNlLlVua25vd242LlVua25vd24yGhwKCFVua25vd24yEhAK",
             "CHVua25vd24xGAEgASgMGkMKCFVua25vd243EhEKCXVua25vd243MRgBIAEo",
-            "DBIRCgl1bmtub3duNzIYAiABKAMSEQoJdW5rbm93bjczGAMgASgMGpoRCgdQ",
+            "DBIRCgl1bmtub3duNzIYAiABKAMSEQoJdW5rbm93bjczGAMgASgMGrUyCgdQ",
             "YXlsb2FkElwKB3Byb2ZpbGUYASADKAsySy5Qb2tlbW9uR28uUm9ja2V0QVBJ",
             "LkdlbmVyYXRlZENvZGUuTWFwT2JqZWN0c1Jlc3BvbnNlLlBheWxvYWQuQ2xp",
             "ZW50TWFwQ2VsbBIVCg11bmtub3dubnVtYmVyGAIgASgFGqQGCg1DbGllbnRN",
@@ -61,38 +61,132 @@ namespace PokemonGo.RocketAPI.GeneratedCode {
             "bhIQCghVbmlxdWVJZBgBIAEoCRIRCglQb2tlbW9uSWQYAiABKAkSYQoHcG9r",
             "ZW1vbhgLIAMoCzJQLlBva2Vtb25Hby5Sb2NrZXRBUEkuR2VuZXJhdGVkQ29k",
             "ZS5NYXBPYmplY3RzUmVzcG9uc2UuUGF5bG9hZC5OZWFyYnlQb2tlbW9uUHJv",
-            "dG8akgEKD01hcFBva2Vtb25Qcm90bxIUCgxTcGF3bnBvaW50SWQYASABKAkS",
-            "EwoLRW5jb3VudGVySWQYAiABKAYSFQoNUG9rZWRleFR5cGVJZBgDIAEoBRIY",
-            "ChBFeHBpcmF0aW9uVGltZU1zGAQgASgDEhAKCExhdGl0dWRlGAUgASgBEhEK",
-            "CUxvbmdpdHVkZRgGIAEoARqUAwoQUG9rZW1vbkZvcnRQcm90bxIOCgZGb3J0",
-            "SWQYASABKAkSFgoOTGFzdE1vZGlmaWVkTXMYAiABKAMSEAoITGF0aXR1ZGUY",
-            "AyABKAESEQoJTG9uZ2l0dWRlGAQgASgBEgwKBFRlYW0YBSABKAUSFgoOR3Vh",
-            "cmRQb2tlbW9uSWQYBiABKAUSGQoRR3VhcmRQb2tlbW9uTGV2ZWwYByABKAUS",
-            "DwoHRW5hYmxlZBgIIAEoCBIQCghGb3J0VHlwZRgJIAEoBRIRCglHeW1Qb2lu",
-            "dHMYCiABKAMSEgoKSXNJbkJhdHRsZRgLIAEoCBJkCg1BY3RpdmVQb2tlbW9u",
-            "GA0gASgLMk0uUG9rZW1vbkdvLlJvY2tldEFQSS5HZW5lcmF0ZWRDb2RlLk1h",
-            "cE9iamVjdHNSZXNwb25zZS5QYXlsb2FkLk1hcFBva2Vtb25Qcm90bxIaChJD",
-            "b29sZG93bkNvbXBsZXRlTXMYDiABKAMSDwoHU3BvbnNvchgPIAEoBRIVCg1S",
-            "ZW5kZXJpbmdUeXBlGBAgASgFGm0KF1Bva2Vtb25TdW1tYXJ5Rm9ydFByb3Rv",
-            "EhUKDUZvcnRTdW1tYXJ5SWQYASABKAkSFgoOTGFzdE1vZGlmaWVkTXMYAiAB",
-            "KAMSEAoITGF0aXR1ZGUYAyABKAESEQoJTG9uZ2l0dWRlGAQgASgBGjwKFUNs",
-            "aWVudFNwYXduUG9pbnRQcm90bxIQCghMYXRpdHVkZRgCIAEoARIRCglMb25n",
-            "aXR1ZGUYAyABKAEapwIKEFdpbGRQb2tlbW9uUHJvdG8SEwoLRW5jb3VudGVy",
-            "SWQYASABKAQSFgoOTGFzdE1vZGlmaWVkTXMYAiABKAMSEAoITGF0aXR1ZGUY",
-            "AyABKAESEQoJTG9uZ2l0dWRlGAQgASgBEhQKDFNwYXduUG9pbnRJZBgFIAEo",
-            "CRJnCgdwb2tlbW9uGAcgASgLMlYuUG9rZW1vbkdvLlJvY2tldEFQSS5HZW5l",
-            "cmF0ZWRDb2RlLk1hcE9iamVjdHNSZXNwb25zZS5QYXlsb2FkLldpbGRQb2tl",
-            "bW9uUHJvdG8uUG9rZW1vbhIYChBUaW1lVGlsbEhpZGRlbk1zGAsgASgFGigK",
-            "B1Bva2Vtb24SCgoCSWQYASABKAQSEQoJUG9rZW1vbklkGAIgASgFGlgKEk5l",
-            "YXJieVBva2Vtb25Qcm90bxIVCg1Qb2tlZGV4TnVtYmVyGAEgASgFEhYKDkRp",
-            "c3RhbmNlTWV0ZXJzGAIgASgCEhMKC0VuY291bnRlcklkGAMgASgEYgZwcm90",
-            "bzM="));
+            "dG8a3AEKD01hcFBva2Vtb25Qcm90bxIUCgxTcGF3bnBvaW50SWQYASABKAkS",
+            "EwoLRW5jb3VudGVySWQYAiABKAYSXwoNUG9rZWRleFR5cGVJZBgDIAEoDjJI",
+            "LlBva2Vtb25Hby5Sb2NrZXRBUEkuR2VuZXJhdGVkQ29kZS5NYXBPYmplY3Rz",
+            "UmVzcG9uc2UuUGF5bG9hZC5Qb2tlbW9uSWRzEhgKEEV4cGlyYXRpb25UaW1l",
+            "TXMYBCABKAMSEAoITGF0aXR1ZGUYBSABKAESEQoJTG9uZ2l0dWRlGAYgASgB",
+            "GpQDChBQb2tlbW9uRm9ydFByb3RvEg4KBkZvcnRJZBgBIAEoCRIWCg5MYXN0",
+            "TW9kaWZpZWRNcxgCIAEoAxIQCghMYXRpdHVkZRgDIAEoARIRCglMb25naXR1",
+            "ZGUYBCABKAESDAoEVGVhbRgFIAEoBRIWCg5HdWFyZFBva2Vtb25JZBgGIAEo",
+            "BRIZChFHdWFyZFBva2Vtb25MZXZlbBgHIAEoBRIPCgdFbmFibGVkGAggASgI",
+            "EhAKCEZvcnRUeXBlGAkgASgFEhEKCUd5bVBvaW50cxgKIAEoAxISCgpJc0lu",
+            "QmF0dGxlGAsgASgIEmQKDUFjdGl2ZVBva2Vtb24YDSABKAsyTS5Qb2tlbW9u",
+            "R28uUm9ja2V0QVBJLkdlbmVyYXRlZENvZGUuTWFwT2JqZWN0c1Jlc3BvbnNl",
+            "LlBheWxvYWQuTWFwUG9rZW1vblByb3RvEhoKEkNvb2xkb3duQ29tcGxldGVN",
+            "cxgOIAEoAxIPCgdTcG9uc29yGA8gASgFEhUKDVJlbmRlcmluZ1R5cGUYECAB",
+            "KAUabQoXUG9rZW1vblN1bW1hcnlGb3J0UHJvdG8SFQoNRm9ydFN1bW1hcnlJ",
+            "ZBgBIAEoCRIWCg5MYXN0TW9kaWZpZWRNcxgCIAEoAxIQCghMYXRpdHVkZRgD",
+            "IAEoARIRCglMb25naXR1ZGUYBCABKAEaPAoVQ2xpZW50U3Bhd25Qb2ludFBy",
+            "b3RvEhAKCExhdGl0dWRlGAIgASgBEhEKCUxvbmdpdHVkZRgDIAEoARqnAgoQ",
+            "V2lsZFBva2Vtb25Qcm90bxITCgtFbmNvdW50ZXJJZBgBIAEoBBIWCg5MYXN0",
+            "TW9kaWZpZWRNcxgCIAEoAxIQCghMYXRpdHVkZRgDIAEoARIRCglMb25naXR1",
+            "ZGUYBCABKAESFAoMU3Bhd25Qb2ludElkGAUgASgJEmcKB3Bva2Vtb24YByAB",
+            "KAsyVi5Qb2tlbW9uR28uUm9ja2V0QVBJLkdlbmVyYXRlZENvZGUuTWFwT2Jq",
+            "ZWN0c1Jlc3BvbnNlLlBheWxvYWQuV2lsZFBva2Vtb25Qcm90by5Qb2tlbW9u",
+            "EhgKEFRpbWVUaWxsSGlkZGVuTXMYCyABKAUaKAoHUG9rZW1vbhIKCgJJZBgB",
+            "IAEoBBIRCglQb2tlbW9uSWQYAiABKAUaWAoSTmVhcmJ5UG9rZW1vblByb3Rv",
+            "EhUKDVBva2VkZXhOdW1iZXIYASABKAUSFgoORGlzdGFuY2VNZXRlcnMYAiAB",
+            "KAISEwoLRW5jb3VudGVySWQYAyABKAQiziAKClBva2Vtb25JZHMSEQoNUE9L",
+            "RU1PTl9VTlNFVBAAEhsKF1YwMDAxX1BPS0VNT05fQlVMQkFTQVVSEAESGQoV",
+            "VjAwMDJfUE9LRU1PTl9JVllTQVVSEAISGgoWVjAwMDNfUE9LRU1PTl9WRU5V",
+            "U0FVUhADEhwKGFYwMDA0X1BPS0VNT05fQ0hBUk1BTkRFUhAEEhwKGFYwMDA1",
+            "X1BPS0VNT05fQ0hBUk1FTEVPThAFEhsKF1YwMDA2X1BPS0VNT05fQ0hBUkla",
+            "QVJEEAYSGgoWVjAwMDdfUE9LRU1PTl9TUVVJUlRMRRAHEhsKF1YwMDA4X1BP",
+            "S0VNT05fV0FSVE9SVExFEAgSGwoXVjAwMDlfUE9LRU1PTl9CTEFTVE9JU0UQ",
+            "CRIaChZWMDAxMF9QT0tFTU9OX0NBVEVSUElFEAoSGQoVVjAwMTFfUE9LRU1P",
+            "Tl9NRVRBUE9EEAsSHAoYVjAwMTJfUE9LRU1PTl9CVVRURVJGUkVFEAwSGAoU",
+            "VjAwMTNfUE9LRU1PTl9XRUVETEUQDRIYChRWMDAxNF9QT0tFTU9OX0tBS1VO",
+            "QRAOEhoKFlYwMDE1X1BPS0VNT05fQkVFRFJJTEwQDxIYChRWMDAxNl9QT0tF",
+            "TU9OX1BJREdFWRAQEhsKF1YwMDE3X1BPS0VNT05fUElER0VPVFRPEBESGQoV",
+            "VjAwMThfUE9LRU1PTl9QSURHRU9UEBISGQoVVjAwMTlfUE9LRU1PTl9SQVRU",
+            "QVRBEBMSGgoWVjAwMjBfUE9LRU1PTl9SQVRJQ0FURRAUEhkKFVYwMDIxX1BP",
+            "S0VNT05fU1BFQVJPVxAVEhgKFFYwMDIyX1BPS0VNT05fRkVBUk9XEBYSFwoT",
+            "VjAwMjNfUE9LRU1PTl9FS0FOUxAXEhcKE1YwMDI0X1BPS0VNT05fQVJCT0sQ",
+            "GBIZChVWMDAyNV9QT0tFTU9OX1BJS0FDSFUQGRIYChRWMDAyNl9QT0tFTU9O",
+            "X1JBSUNIVRAaEhsKF1YwMDI3X1BPS0VNT05fU0FORFNIUkVXEBsSGwoXVjAw",
+            "MjhfUE9LRU1PTl9TQU5EU0xBU0gQHBIZChVWMDAyOV9QT0tFTU9OX05JRE9S",
+            "QU4QHRIaChZWMDAzMF9QT0tFTU9OX05JRE9SSU5BEB4SGwoXVjAwMzFfUE9L",
+            "RU1PTl9OSURPUVVFRU4QHxIZChVWMDAzMl9QT0tFTU9OX05JRE9SQU4QIBIa",
+            "ChZWMDAzM19QT0tFTU9OX05JRE9SSU5PECESGgoWVjAwMzRfUE9LRU1PTl9O",
+            "SURPS0lORxAiEhoKFlYwMDM1X1BPS0VNT05fQ0xFRkFJUlkQIxIaChZWMDAz",
+            "Nl9QT0tFTU9OX0NMRUZBQkxFECQSGAoUVjAwMzdfUE9LRU1PTl9WVUxQSVgQ",
+            "JRIbChdWMDAzOF9QT0tFTU9OX05JTkVUQUxFUxAmEhwKGFYwMDM5X1BPS0VN",
+            "T05fSklHR0xZUFVGRhAnEhwKGFYwMDQwX1BPS0VNT05fV0lHR0xZVFVGRhAo",
+            "EhcKE1YwMDQxX1BPS0VNT05fWlVCQVQQKRIYChRWMDA0Ml9QT0tFTU9OX0dP",
+            "TEJBVBAqEhgKFFYwMDQzX1BPS0VNT05fT0RESVNIECsSFwoTVjAwNDRfUE9L",
+            "RU1PTl9HTE9PTRAsEhsKF1YwMDQ1X1BPS0VNT05fVklMRVBMVU1FEC0SFwoT",
+            "VjAwNDZfUE9LRU1PTl9QQVJBUxAuEhoKFlYwMDQ3X1BPS0VNT05fUEFSQVNF",
+            "Q1QQLxIZChVWMDA0OF9QT0tFTU9OX1ZFTk9OQVQQMBIaChZWMDA0OV9QT0tF",
+            "TU9OX1ZFTk9NT1RIEDESGQoVVjAwNTBfUE9LRU1PTl9ESUdMRVRUEDISGQoV",
+            "VjAwNTFfUE9LRU1PTl9EVUdUUklPEDMSGAoUVjAwNTJfUE9LRU1PTl9NRU9X",
+            "VEgQNBIZChVWMDA1M19QT0tFTU9OX1BFUlNJQU4QNRIZChVWMDA1NF9QT0tF",
+            "TU9OX1BTWURVQ0sQNhIZChVWMDA1NV9QT0tFTU9OX0dPTERVQ0sQNxIYChRW",
+            "MDA1Nl9QT0tFTU9OX01BTktFWRA4EhoKFlYwMDU3X1BPS0VNT05fUFJJTUVB",
+            "UEUQORIbChdWMDA1OF9QT0tFTU9OX0dST1dMSVRIRRA6EhoKFlYwMDU5X1BP",
+            "S0VNT05fQVJDQU5JTkUQOxIZChVWMDA2MF9QT0tFTU9OX1BPTElXQUcQPBIb",
+            "ChdWMDA2MV9QT0tFTU9OX1BPTElXSElSTBA9EhsKF1YwMDYyX1BPS0VNT05f",
+            "UE9MSVdSQVRIED4SFgoSVjAwNjNfUE9LRU1PTl9BQlJBED8SGQoVVjAwNjRf",
+            "UE9LRU1PTl9LQURBQlJBEEASGgoWVjAwNjVfUE9LRU1PTl9BTEFLQVpBTRBB",
+            "EhgKFFYwMDY2X1BPS0VNT05fTUFDSE9QEEISGQoVVjAwNjdfUE9LRU1PTl9N",
+            "QUNIT0tFEEMSGQoVVjAwNjhfUE9LRU1PTl9NQUNIQU1QEEQSHAoYVjAwNjlf",
+            "UE9LRU1PTl9CRUxMU1BST1VUEEUSHAoYVjAwNzBfUE9LRU1PTl9XRUVQSU5C",
+            "RUxMEEYSHAoYVjAwNzFfUE9LRU1PTl9WSUNUUkVFQkVMEEcSGwoXVjAwNzJf",
+            "UE9LRU1PTl9URU5UQUNPT0wQSBIcChhWMDA3M19QT0tFTU9OX1RFTlRBQ1JV",
+            "RUwQSRIZChVWMDA3NF9QT0tFTU9OX0dFT0RVREUQShIaChZWMDA3NV9QT0tF",
+            "TU9OX0dSQVZFTEVSEEsSFwoTVjAwNzZfUE9LRU1PTl9HT0xFTRBMEhgKFFYw",
+            "MDc3X1BPS0VNT05fUE9OWVRBEE0SGgoWVjAwNzhfUE9LRU1PTl9SQVBJREFT",
+            "SBBOEhoKFlYwMDc5X1BPS0VNT05fU0xPV1BPS0UQTxIZChVWMDA4MF9QT0tF",
+            "TU9OX1NMT1dCUk8QUBIbChdWMDA4MV9QT0tFTU9OX01BR05FTUlURRBREhoK",
+            "FlYwMDgyX1BPS0VNT05fTUFHTkVUT04QUhIbChdWMDA4M19QT0tFTU9OX0ZB",
+            "UkZFVENIRBBTEhcKE1YwMDg0X1BPS0VNT05fRE9EVU8QVBIYChRWMDA4NV9Q",
+            "T0tFTU9OX0RPRFJJTxBVEhYKElYwMDg2X1BPS0VNT05fU0VFTBBWEhkKFVYw",
+            "MDg3X1BPS0VNT05fREVXR09ORxBXEhgKFFYwMDg4X1BPS0VNT05fR1JJTUVS",
+            "EFgSFQoRVjAwODlfUE9LRU1PTl9NVUsQWRIaChZWMDA5MF9QT0tFTU9OX1NI",
+            "RUxMREVSEFoSGgoWVjAwOTFfUE9LRU1PTl9DTE9ZU1RFUhBbEhgKFFYwMDky",
+            "X1BPS0VNT05fR0FTVExZEFwSGQoVVjAwOTNfUE9LRU1PTl9IQVVOVEVSEF0S",
+            "GAoUVjAwOTRfUE9LRU1PTl9HRU5HQVIQXhIWChJWMDA5NV9QT0tFTU9OX09O",
+            "SVgQXxIZChVWMDA5Nl9QT0tFTU9OX0RST1daRUUQYBIXChNWMDA5N19QT0tF",
+            "TU9OX0hZUE5PEGESGAoUVjAwOThfUE9LRU1PTl9LUkFCQlkQYhIZChVWMDA5",
+            "OV9QT0tFTU9OX0tJTkdMRVIQYxIZChVWMDEwMF9QT0tFTU9OX1ZPTFRPUkIQ",
+            "ZBIbChdWMDEwMV9QT0tFTU9OX0VMRUNUUk9ERRBlEhsKF1YwMTAyX1BPS0VN",
+            "T05fRVhFR0dDVVRFEGYSGwoXVjAxMDNfUE9LRU1PTl9FWEVHR1VUT1IQZxIY",
+            "ChRWMDEwNF9QT0tFTU9OX0NVQk9ORRBoEhkKFVYwMTA1X1BPS0VNT05fTUFS",
+            "T1dBSxBpEhsKF1YwMTA2X1BPS0VNT05fSElUTU9OTEVFEGoSHAoYVjAxMDdf",
+            "UE9LRU1PTl9ISVRNT05DSEFOEGsSGwoXVjAxMDhfUE9LRU1PTl9MSUNLSVRV",
+            "TkcQbBIZChVWMDEwOV9QT0tFTU9OX0tPRkZJTkcQbRIZChVWMDExMF9QT0tF",
+            "TU9OX1dFRVpJTkcQbhIZChVWMDExMV9QT0tFTU9OX1JIWUhPUk4QbxIYChRW",
+            "MDExMl9QT0tFTU9OX1JIWURPThBwEhkKFVYwMTEzX1BPS0VNT05fQ0hBTlNF",
+            "WRBxEhkKFVYwMTE0X1BPS0VNT05fVEFOR0VMQRByEhwKGFYwMTE1X1BPS0VN",
+            "T05fS0FOR0FTS0hBThBzEhgKFFYwMTE2X1BPS0VNT05fSE9SU0VBEHQSGAoU",
+            "VjAxMTdfUE9LRU1PTl9TRUFEUkEQdRIZChVWMDExOF9QT0tFTU9OX0dPTERF",
+            "RU4QdhIZChVWMDExOV9QT0tFTU9OX1NFQUtJTkcQdxIYChRWMDEyMF9QT0tF",
+            "TU9OX1NUQVJZVRB4EhkKFVYwMTIxX1BPS0VNT05fU1RBUk1JRRB5EhkKFVYw",
+            "MTIyX1BPS0VNT05fTVJfTUlNRRB6EhkKFVYwMTIzX1BPS0VNT05fU0NZVEhF",
+            "UhB7EhYKElYwMTI0X1BPS0VNT05fSllOWBB8EhwKGFYwMTI1X1BPS0VNT05f",
+            "RUxFQ1RBQlVaWhB9EhgKFFYwMTI2X1BPS0VNT05fTUFHTUFSEH4SGAoUVjAx",
+            "MjdfUE9LRU1PTl9QSU5TSVIQfxIZChRWMDEyOF9QT0tFTU9OX1RBVVJPUxCA",
+            "ARIbChZWMDEyOV9QT0tFTU9OX01BR0lLQVJQEIEBEhsKFlYwMTMwX1BPS0VN",
+            "T05fR1lBUkFET1MQggESGQoUVjAxMzFfUE9LRU1PTl9MQVBSQVMQgwESGAoT",
+            "VjAxMzJfUE9LRU1PTl9ESVRUTxCEARIYChNWMDEzM19QT0tFTU9OX0VFVkVF",
+            "EIUBEhsKFlYwMTM0X1BPS0VNT05fVkFQT1JFT04QhgESGgoVVjAxMzVfUE9L",
+            "RU1PTl9KT0xURU9OEIcBEhoKFVYwMTM2X1BPS0VNT05fRkxBUkVPThCIARIa",
+            "ChVWMDEzN19QT0tFTU9OX1BPUllHT04QiQESGgoVVjAxMzhfUE9LRU1PTl9P",
+            "TUFOWVRFEIoBEhoKFVYwMTM5X1BPS0VNT05fT01BU1RBUhCLARIZChRWMDE0",
+            "MF9QT0tFTU9OX0tBQlVUTxCMARIbChZWMDE0MV9QT0tFTU9OX0tBQlVUT1BT",
+            "EI0BEh0KGFYwMTQyX1BPS0VNT05fQUVST0RBQ1RZTBCOARIaChVWMDE0M19Q",
+            "T0tFTU9OX1NOT1JMQVgQjwESGwoWVjAxNDRfUE9LRU1PTl9BUlRJQ1VOTxCQ",
+            "ARIZChRWMDE0NV9QT0tFTU9OX1pBUERPUxCRARIaChVWMDE0Nl9QT0tFTU9O",
+            "X01PTFRSRVMQkgESGgoVVjAxNDdfUE9LRU1PTl9EUkFUSU5JEJMBEhwKF1Yw",
+            "MTQ4X1BPS0VNT05fRFJBR09OQUlSEJQBEhwKF1YwMTQ5X1BPS0VNT05fRFJB",
+            "R09OSVRFEJUBEhkKFFYwMTUwX1BPS0VNT05fTUVXVFdPEJYBEhYKEVYwMTUx",
+            "X1BPS0VNT05fTUVXEJcBYgZwcm90bzM="));
       descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
           new pbr::FileDescriptor[] { },
           new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
             new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse), global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Parser, new[]{ "Unknown1", "Unknown2", "ApiUrl", "Unknown6", "Unknown7", "Payload", "ErrorMessage" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Unknown6), global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Unknown6.Parser, new[]{ "Unknown1", "Unknown2" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Unknown6.Types.Unknown2), global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Unknown6.Types.Unknown2.Parser, new[]{ "Unknown1" }, null, null, null)}),
             new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Unknown7), global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Unknown7.Parser, new[]{ "Unknown71", "Unknown72", "Unknown73" }, null, null, null),
-            new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload), global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload.Parser, new[]{ "Profile", "Unknownnumber" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload.Types.ClientMapCell), global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload.Types.ClientMapCell.Parser, new[]{ "S2CellId", "AsOfTimeMs", "Fort", "SpawnPoint", "WildPokemon", "IsTruncatedList", "FortSummary", "DecimatedSpawnPoint", "MapPokemon", "NearbyPokemon" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload), global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload.Parser, new[]{ "Profile", "Unknownnumber" }, null, new[]{ typeof(global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload.Types.PokemonIds) }, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload.Types.ClientMapCell), global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload.Types.ClientMapCell.Parser, new[]{ "S2CellId", "AsOfTimeMs", "Fort", "SpawnPoint", "WildPokemon", "IsTruncatedList", "FortSummary", "DecimatedSpawnPoint", "MapPokemon", "NearbyPokemon" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload.Types.WildPokemon), global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload.Types.WildPokemon.Parser, new[]{ "UniqueId", "PokemonId", "Pokemon" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload.Types.MapPokemonProto), global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload.Types.MapPokemonProto.Parser, new[]{ "SpawnpointId", "EncounterId", "PokedexTypeId", "ExpirationTimeMs", "Latitude", "Longitude" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload.Types.PokemonFortProto), global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload.Types.PokemonFortProto.Parser, new[]{ "FortId", "LastModifiedMs", "Latitude", "Longitude", "Team", "GuardPokemonId", "GuardPokemonLevel", "Enabled", "FortType", "GymPoints", "IsInBattle", "ActivePokemon", "CooldownCompleteMs", "Sponsor", "RenderingType" }, null, null, null),
@@ -907,6 +1001,161 @@ namespace PokemonGo.RocketAPI.GeneratedCode {
         /// <summary>Container for nested types declared in the Payload message type.</summary>
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         public static partial class Types {
+          public enum PokemonIds {
+            [pbr::OriginalName("POKEMON_UNSET")] PokemonUnset = 0,
+            [pbr::OriginalName("V0001_POKEMON_BULBASAUR")] V0001PokemonBulbasaur = 1,
+            [pbr::OriginalName("V0002_POKEMON_IVYSAUR")] V0002PokemonIvysaur = 2,
+            [pbr::OriginalName("V0003_POKEMON_VENUSAUR")] V0003PokemonVenusaur = 3,
+            [pbr::OriginalName("V0004_POKEMON_CHARMANDER")] V0004PokemonCharmander = 4,
+            [pbr::OriginalName("V0005_POKEMON_CHARMELEON")] V0005PokemonCharmeleon = 5,
+            [pbr::OriginalName("V0006_POKEMON_CHARIZARD")] V0006PokemonCharizard = 6,
+            [pbr::OriginalName("V0007_POKEMON_SQUIRTLE")] V0007PokemonSquirtle = 7,
+            [pbr::OriginalName("V0008_POKEMON_WARTORTLE")] V0008PokemonWartortle = 8,
+            [pbr::OriginalName("V0009_POKEMON_BLASTOISE")] V0009PokemonBlastoise = 9,
+            [pbr::OriginalName("V0010_POKEMON_CATERPIE")] V0010PokemonCaterpie = 10,
+            [pbr::OriginalName("V0011_POKEMON_METAPOD")] V0011PokemonMetapod = 11,
+            [pbr::OriginalName("V0012_POKEMON_BUTTERFREE")] V0012PokemonButterfree = 12,
+            [pbr::OriginalName("V0013_POKEMON_WEEDLE")] V0013PokemonWeedle = 13,
+            [pbr::OriginalName("V0014_POKEMON_KAKUNA")] V0014PokemonKakuna = 14,
+            [pbr::OriginalName("V0015_POKEMON_BEEDRILL")] V0015PokemonBeedrill = 15,
+            [pbr::OriginalName("V0016_POKEMON_PIDGEY")] V0016PokemonPidgey = 16,
+            [pbr::OriginalName("V0017_POKEMON_PIDGEOTTO")] V0017PokemonPidgeotto = 17,
+            [pbr::OriginalName("V0018_POKEMON_PIDGEOT")] V0018PokemonPidgeot = 18,
+            [pbr::OriginalName("V0019_POKEMON_RATTATA")] V0019PokemonRattata = 19,
+            [pbr::OriginalName("V0020_POKEMON_RATICATE")] V0020PokemonRaticate = 20,
+            [pbr::OriginalName("V0021_POKEMON_SPEAROW")] V0021PokemonSpearow = 21,
+            [pbr::OriginalName("V0022_POKEMON_FEAROW")] V0022PokemonFearow = 22,
+            [pbr::OriginalName("V0023_POKEMON_EKANS")] V0023PokemonEkans = 23,
+            [pbr::OriginalName("V0024_POKEMON_ARBOK")] V0024PokemonArbok = 24,
+            [pbr::OriginalName("V0025_POKEMON_PIKACHU")] V0025PokemonPikachu = 25,
+            [pbr::OriginalName("V0026_POKEMON_RAICHU")] V0026PokemonRaichu = 26,
+            [pbr::OriginalName("V0027_POKEMON_SANDSHREW")] V0027PokemonSandshrew = 27,
+            [pbr::OriginalName("V0028_POKEMON_SANDSLASH")] V0028PokemonSandslash = 28,
+            [pbr::OriginalName("V0029_POKEMON_NIDORAN")] V0029PokemonNidoran = 29,
+            [pbr::OriginalName("V0030_POKEMON_NIDORINA")] V0030PokemonNidorina = 30,
+            [pbr::OriginalName("V0031_POKEMON_NIDOQUEEN")] V0031PokemonNidoqueen = 31,
+            [pbr::OriginalName("V0032_POKEMON_NIDORAN")] V0032PokemonNidoran = 32,
+            [pbr::OriginalName("V0033_POKEMON_NIDORINO")] V0033PokemonNidorino = 33,
+            [pbr::OriginalName("V0034_POKEMON_NIDOKING")] V0034PokemonNidoking = 34,
+            [pbr::OriginalName("V0035_POKEMON_CLEFAIRY")] V0035PokemonClefairy = 35,
+            [pbr::OriginalName("V0036_POKEMON_CLEFABLE")] V0036PokemonClefable = 36,
+            [pbr::OriginalName("V0037_POKEMON_VULPIX")] V0037PokemonVulpix = 37,
+            [pbr::OriginalName("V0038_POKEMON_NINETALES")] V0038PokemonNinetales = 38,
+            [pbr::OriginalName("V0039_POKEMON_JIGGLYPUFF")] V0039PokemonJigglypuff = 39,
+            [pbr::OriginalName("V0040_POKEMON_WIGGLYTUFF")] V0040PokemonWigglytuff = 40,
+            [pbr::OriginalName("V0041_POKEMON_ZUBAT")] V0041PokemonZubat = 41,
+            [pbr::OriginalName("V0042_POKEMON_GOLBAT")] V0042PokemonGolbat = 42,
+            [pbr::OriginalName("V0043_POKEMON_ODDISH")] V0043PokemonOddish = 43,
+            [pbr::OriginalName("V0044_POKEMON_GLOOM")] V0044PokemonGloom = 44,
+            [pbr::OriginalName("V0045_POKEMON_VILEPLUME")] V0045PokemonVileplume = 45,
+            [pbr::OriginalName("V0046_POKEMON_PARAS")] V0046PokemonParas = 46,
+            [pbr::OriginalName("V0047_POKEMON_PARASECT")] V0047PokemonParasect = 47,
+            [pbr::OriginalName("V0048_POKEMON_VENONAT")] V0048PokemonVenonat = 48,
+            [pbr::OriginalName("V0049_POKEMON_VENOMOTH")] V0049PokemonVenomoth = 49,
+            [pbr::OriginalName("V0050_POKEMON_DIGLETT")] V0050PokemonDiglett = 50,
+            [pbr::OriginalName("V0051_POKEMON_DUGTRIO")] V0051PokemonDugtrio = 51,
+            [pbr::OriginalName("V0052_POKEMON_MEOWTH")] V0052PokemonMeowth = 52,
+            [pbr::OriginalName("V0053_POKEMON_PERSIAN")] V0053PokemonPersian = 53,
+            [pbr::OriginalName("V0054_POKEMON_PSYDUCK")] V0054PokemonPsyduck = 54,
+            [pbr::OriginalName("V0055_POKEMON_GOLDUCK")] V0055PokemonGolduck = 55,
+            [pbr::OriginalName("V0056_POKEMON_MANKEY")] V0056PokemonMankey = 56,
+            [pbr::OriginalName("V0057_POKEMON_PRIMEAPE")] V0057PokemonPrimeape = 57,
+            [pbr::OriginalName("V0058_POKEMON_GROWLITHE")] V0058PokemonGrowlithe = 58,
+            [pbr::OriginalName("V0059_POKEMON_ARCANINE")] V0059PokemonArcanine = 59,
+            [pbr::OriginalName("V0060_POKEMON_POLIWAG")] V0060PokemonPoliwag = 60,
+            [pbr::OriginalName("V0061_POKEMON_POLIWHIRL")] V0061PokemonPoliwhirl = 61,
+            [pbr::OriginalName("V0062_POKEMON_POLIWRATH")] V0062PokemonPoliwrath = 62,
+            [pbr::OriginalName("V0063_POKEMON_ABRA")] V0063PokemonAbra = 63,
+            [pbr::OriginalName("V0064_POKEMON_KADABRA")] V0064PokemonKadabra = 64,
+            [pbr::OriginalName("V0065_POKEMON_ALAKAZAM")] V0065PokemonAlakazam = 65,
+            [pbr::OriginalName("V0066_POKEMON_MACHOP")] V0066PokemonMachop = 66,
+            [pbr::OriginalName("V0067_POKEMON_MACHOKE")] V0067PokemonMachoke = 67,
+            [pbr::OriginalName("V0068_POKEMON_MACHAMP")] V0068PokemonMachamp = 68,
+            [pbr::OriginalName("V0069_POKEMON_BELLSPROUT")] V0069PokemonBellsprout = 69,
+            [pbr::OriginalName("V0070_POKEMON_WEEPINBELL")] V0070PokemonWeepinbell = 70,
+            [pbr::OriginalName("V0071_POKEMON_VICTREEBEL")] V0071PokemonVictreebel = 71,
+            [pbr::OriginalName("V0072_POKEMON_TENTACOOL")] V0072PokemonTentacool = 72,
+            [pbr::OriginalName("V0073_POKEMON_TENTACRUEL")] V0073PokemonTentacruel = 73,
+            [pbr::OriginalName("V0074_POKEMON_GEODUDE")] V0074PokemonGeodude = 74,
+            [pbr::OriginalName("V0075_POKEMON_GRAVELER")] V0075PokemonGraveler = 75,
+            [pbr::OriginalName("V0076_POKEMON_GOLEM")] V0076PokemonGolem = 76,
+            [pbr::OriginalName("V0077_POKEMON_PONYTA")] V0077PokemonPonyta = 77,
+            [pbr::OriginalName("V0078_POKEMON_RAPIDASH")] V0078PokemonRapidash = 78,
+            [pbr::OriginalName("V0079_POKEMON_SLOWPOKE")] V0079PokemonSlowpoke = 79,
+            [pbr::OriginalName("V0080_POKEMON_SLOWBRO")] V0080PokemonSlowbro = 80,
+            [pbr::OriginalName("V0081_POKEMON_MAGNEMITE")] V0081PokemonMagnemite = 81,
+            [pbr::OriginalName("V0082_POKEMON_MAGNETON")] V0082PokemonMagneton = 82,
+            [pbr::OriginalName("V0083_POKEMON_FARFETCHD")] V0083PokemonFarfetchd = 83,
+            [pbr::OriginalName("V0084_POKEMON_DODUO")] V0084PokemonDoduo = 84,
+            [pbr::OriginalName("V0085_POKEMON_DODRIO")] V0085PokemonDodrio = 85,
+            [pbr::OriginalName("V0086_POKEMON_SEEL")] V0086PokemonSeel = 86,
+            [pbr::OriginalName("V0087_POKEMON_DEWGONG")] V0087PokemonDewgong = 87,
+            [pbr::OriginalName("V0088_POKEMON_GRIMER")] V0088PokemonGrimer = 88,
+            [pbr::OriginalName("V0089_POKEMON_MUK")] V0089PokemonMuk = 89,
+            [pbr::OriginalName("V0090_POKEMON_SHELLDER")] V0090PokemonShellder = 90,
+            [pbr::OriginalName("V0091_POKEMON_CLOYSTER")] V0091PokemonCloyster = 91,
+            [pbr::OriginalName("V0092_POKEMON_GASTLY")] V0092PokemonGastly = 92,
+            [pbr::OriginalName("V0093_POKEMON_HAUNTER")] V0093PokemonHaunter = 93,
+            [pbr::OriginalName("V0094_POKEMON_GENGAR")] V0094PokemonGengar = 94,
+            [pbr::OriginalName("V0095_POKEMON_ONIX")] V0095PokemonOnix = 95,
+            [pbr::OriginalName("V0096_POKEMON_DROWZEE")] V0096PokemonDrowzee = 96,
+            [pbr::OriginalName("V0097_POKEMON_HYPNO")] V0097PokemonHypno = 97,
+            [pbr::OriginalName("V0098_POKEMON_KRABBY")] V0098PokemonKrabby = 98,
+            [pbr::OriginalName("V0099_POKEMON_KINGLER")] V0099PokemonKingler = 99,
+            [pbr::OriginalName("V0100_POKEMON_VOLTORB")] V0100PokemonVoltorb = 100,
+            [pbr::OriginalName("V0101_POKEMON_ELECTRODE")] V0101PokemonElectrode = 101,
+            [pbr::OriginalName("V0102_POKEMON_EXEGGCUTE")] V0102PokemonExeggcute = 102,
+            [pbr::OriginalName("V0103_POKEMON_EXEGGUTOR")] V0103PokemonExeggutor = 103,
+            [pbr::OriginalName("V0104_POKEMON_CUBONE")] V0104PokemonCubone = 104,
+            [pbr::OriginalName("V0105_POKEMON_MAROWAK")] V0105PokemonMarowak = 105,
+            [pbr::OriginalName("V0106_POKEMON_HITMONLEE")] V0106PokemonHitmonlee = 106,
+            [pbr::OriginalName("V0107_POKEMON_HITMONCHAN")] V0107PokemonHitmonchan = 107,
+            [pbr::OriginalName("V0108_POKEMON_LICKITUNG")] V0108PokemonLickitung = 108,
+            [pbr::OriginalName("V0109_POKEMON_KOFFING")] V0109PokemonKoffing = 109,
+            [pbr::OriginalName("V0110_POKEMON_WEEZING")] V0110PokemonWeezing = 110,
+            [pbr::OriginalName("V0111_POKEMON_RHYHORN")] V0111PokemonRhyhorn = 111,
+            [pbr::OriginalName("V0112_POKEMON_RHYDON")] V0112PokemonRhydon = 112,
+            [pbr::OriginalName("V0113_POKEMON_CHANSEY")] V0113PokemonChansey = 113,
+            [pbr::OriginalName("V0114_POKEMON_TANGELA")] V0114PokemonTangela = 114,
+            [pbr::OriginalName("V0115_POKEMON_KANGASKHAN")] V0115PokemonKangaskhan = 115,
+            [pbr::OriginalName("V0116_POKEMON_HORSEA")] V0116PokemonHorsea = 116,
+            [pbr::OriginalName("V0117_POKEMON_SEADRA")] V0117PokemonSeadra = 117,
+            [pbr::OriginalName("V0118_POKEMON_GOLDEEN")] V0118PokemonGoldeen = 118,
+            [pbr::OriginalName("V0119_POKEMON_SEAKING")] V0119PokemonSeaking = 119,
+            [pbr::OriginalName("V0120_POKEMON_STARYU")] V0120PokemonStaryu = 120,
+            [pbr::OriginalName("V0121_POKEMON_STARMIE")] V0121PokemonStarmie = 121,
+            [pbr::OriginalName("V0122_POKEMON_MR_MIME")] V0122PokemonMrMime = 122,
+            [pbr::OriginalName("V0123_POKEMON_SCYTHER")] V0123PokemonScyther = 123,
+            [pbr::OriginalName("V0124_POKEMON_JYNX")] V0124PokemonJynx = 124,
+            [pbr::OriginalName("V0125_POKEMON_ELECTABUZZ")] V0125PokemonElectabuzz = 125,
+            [pbr::OriginalName("V0126_POKEMON_MAGMAR")] V0126PokemonMagmar = 126,
+            [pbr::OriginalName("V0127_POKEMON_PINSIR")] V0127PokemonPinsir = 127,
+            [pbr::OriginalName("V0128_POKEMON_TAUROS")] V0128PokemonTauros = 128,
+            [pbr::OriginalName("V0129_POKEMON_MAGIKARP")] V0129PokemonMagikarp = 129,
+            [pbr::OriginalName("V0130_POKEMON_GYARADOS")] V0130PokemonGyarados = 130,
+            [pbr::OriginalName("V0131_POKEMON_LAPRAS")] V0131PokemonLapras = 131,
+            [pbr::OriginalName("V0132_POKEMON_DITTO")] V0132PokemonDitto = 132,
+            [pbr::OriginalName("V0133_POKEMON_EEVEE")] V0133PokemonEevee = 133,
+            [pbr::OriginalName("V0134_POKEMON_VAPOREON")] V0134PokemonVaporeon = 134,
+            [pbr::OriginalName("V0135_POKEMON_JOLTEON")] V0135PokemonJolteon = 135,
+            [pbr::OriginalName("V0136_POKEMON_FLAREON")] V0136PokemonFlareon = 136,
+            [pbr::OriginalName("V0137_POKEMON_PORYGON")] V0137PokemonPorygon = 137,
+            [pbr::OriginalName("V0138_POKEMON_OMANYTE")] V0138PokemonOmanyte = 138,
+            [pbr::OriginalName("V0139_POKEMON_OMASTAR")] V0139PokemonOmastar = 139,
+            [pbr::OriginalName("V0140_POKEMON_KABUTO")] V0140PokemonKabuto = 140,
+            [pbr::OriginalName("V0141_POKEMON_KABUTOPS")] V0141PokemonKabutops = 141,
+            [pbr::OriginalName("V0142_POKEMON_AERODACTYL")] V0142PokemonAerodactyl = 142,
+            [pbr::OriginalName("V0143_POKEMON_SNORLAX")] V0143PokemonSnorlax = 143,
+            [pbr::OriginalName("V0144_POKEMON_ARTICUNO")] V0144PokemonArticuno = 144,
+            [pbr::OriginalName("V0145_POKEMON_ZAPDOS")] V0145PokemonZapdos = 145,
+            [pbr::OriginalName("V0146_POKEMON_MOLTRES")] V0146PokemonMoltres = 146,
+            [pbr::OriginalName("V0147_POKEMON_DRATINI")] V0147PokemonDratini = 147,
+            [pbr::OriginalName("V0148_POKEMON_DRAGONAIR")] V0148PokemonDragonair = 148,
+            [pbr::OriginalName("V0149_POKEMON_DRAGONITE")] V0149PokemonDragonite = 149,
+            [pbr::OriginalName("V0150_POKEMON_MEWTWO")] V0150PokemonMewtwo = 150,
+            [pbr::OriginalName("V0151_POKEMON_MEW")] V0151PokemonMew = 151,
+          }
+
           [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
           public sealed partial class ClientMapCell : pb::IMessage<ClientMapCell> {
             private static readonly pb::MessageParser<ClientMapCell> _parser = new pb::MessageParser<ClientMapCell>(() => new ClientMapCell());
@@ -1409,8 +1658,8 @@ namespace PokemonGo.RocketAPI.GeneratedCode {

             /// <summary>Field number for the "PokedexTypeId" field.</summary>
             public const int PokedexTypeIdFieldNumber = 3;
-            private int pokedexTypeId_;
-            public int PokedexTypeId {
+            private global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload.Types.PokemonIds pokedexTypeId_ = 0;
+            public global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload.Types.PokemonIds PokedexTypeId {
               get { return pokedexTypeId_; }
               set {
                 pokedexTypeId_ = value;
@@ -1493,7 +1742,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode {
               }
               if (PokedexTypeId != 0) {
                 output.WriteRawTag(24);
-                output.WriteInt32(PokedexTypeId);
+                output.WriteEnum((int) PokedexTypeId);
               }
               if (ExpirationTimeMs != 0L) {
                 output.WriteRawTag(32);
@@ -1518,7 +1767,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode {
                 size += 1 + 8;
               }
               if (PokedexTypeId != 0) {
-                size += 1 + pb::CodedOutputStream.ComputeInt32Size(PokedexTypeId);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PokedexTypeId);
               }
               if (ExpirationTimeMs != 0L) {
                 size += 1 + pb::CodedOutputStream.ComputeInt64Size(ExpirationTimeMs);
@@ -1572,7 +1821,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode {
                     break;
                   }
                   case 24: {
-                    PokedexTypeId = input.ReadInt32();
+                    pokedexTypeId_ = (global::PokemonGo.RocketAPI.GeneratedCode.MapObjectsResponse.Types.Payload.Types.PokemonIds) input.ReadEnum();
                     break;
                   }
                   case 32: {
diff --git a/PokemonGo/RocketAPI/Proto/CatchPokemonResponse.proto b/PokemonGo/RocketAPI/Proto/CatchPokemonResponse.proto
index 9b6021f..6069440 100644
--- a/PokemonGo/RocketAPI/Proto/CatchPokemonResponse.proto
+++ b/PokemonGo/RocketAPI/Proto/CatchPokemonResponse.proto
@@ -29,9 +29,10 @@ message CatchPokemonResponse {

   message Payload {
 	int32 Status = 1;
-	int32 MissPercent = 2;
+	double MissPercent = 2;
 	int32 CapturedPokemonId = 3;
 	int32 Scores = 4;
 }
+

   }
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Proto/MapObjectsResponse.proto b/PokemonGo/RocketAPI/Proto/MapObjectsResponse.proto
index 1e54a1e..a4d7666 100644
--- a/PokemonGo/RocketAPI/Proto/MapObjectsResponse.proto
+++ b/PokemonGo/RocketAPI/Proto/MapObjectsResponse.proto
@@ -60,7 +60,7 @@ message MapObjectsResponse {
   message MapPokemonProto {
     string SpawnpointId = 1;
     fixed64 EncounterId = 2;
-    int32 PokedexTypeId = 3;
+    PokemonIds PokedexTypeId = 3;
     int64 ExpirationTimeMs = 4;
     double Latitude = 5;
     double Longitude = 6;
@@ -121,5 +121,161 @@ message MapObjectsResponse {
     uint64 EncounterId = 3;
   }

+
+	enum PokemonIds {
+	POKEMON_UNSET = 0;
+	V0001_POKEMON_BULBASAUR = 1;
+	V0002_POKEMON_IVYSAUR = 2;
+	V0003_POKEMON_VENUSAUR = 3;
+	V0004_POKEMON_CHARMANDER = 4;
+	V0005_POKEMON_CHARMELEON = 5;
+	V0006_POKEMON_CHARIZARD = 6;
+	V0007_POKEMON_SQUIRTLE = 7;
+	V0008_POKEMON_WARTORTLE = 8;
+	V0009_POKEMON_BLASTOISE = 9;
+	V0010_POKEMON_CATERPIE = 10;
+	V0011_POKEMON_METAPOD = 11;
+	V0012_POKEMON_BUTTERFREE = 12;
+	V0013_POKEMON_WEEDLE = 13;
+	V0014_POKEMON_KAKUNA = 14;
+	V0015_POKEMON_BEEDRILL = 15;
+	V0016_POKEMON_PIDGEY = 16;
+	V0017_POKEMON_PIDGEOTTO = 17;
+	V0018_POKEMON_PIDGEOT = 18;
+	V0019_POKEMON_RATTATA = 19;
+	V0020_POKEMON_RATICATE = 20;
+	V0021_POKEMON_SPEAROW = 21;
+	V0022_POKEMON_FEAROW = 22;
+	V0023_POKEMON_EKANS = 23;
+	V0024_POKEMON_ARBOK = 24;
+	V0025_POKEMON_PIKACHU = 25;
+	V0026_POKEMON_RAICHU = 26;
+	V0027_POKEMON_SANDSHREW = 27;
+	V0028_POKEMON_SANDSLASH = 28;
+	V0029_POKEMON_NIDORAN = 29;
+	V0030_POKEMON_NIDORINA = 30;
+	V0031_POKEMON_NIDOQUEEN = 31;
+	V0032_POKEMON_NIDORAN = 32;
+	V0033_POKEMON_NIDORINO = 33;
+	V0034_POKEMON_NIDOKING = 34;
+	V0035_POKEMON_CLEFAIRY = 35;
+	V0036_POKEMON_CLEFABLE = 36;
+	V0037_POKEMON_VULPIX = 37;
+	V0038_POKEMON_NINETALES = 38;
+	V0039_POKEMON_JIGGLYPUFF = 39;
+	V0040_POKEMON_WIGGLYTUFF = 40;
+	V0041_POKEMON_ZUBAT = 41;
+	V0042_POKEMON_GOLBAT = 42;
+	V0043_POKEMON_ODDISH = 43;
+	V0044_POKEMON_GLOOM = 44;
+	V0045_POKEMON_VILEPLUME = 45;
+	V0046_POKEMON_PARAS = 46;
+	V0047_POKEMON_PARASECT = 47;
+	V0048_POKEMON_VENONAT = 48;
+	V0049_POKEMON_VENOMOTH = 49;
+	V0050_POKEMON_DIGLETT = 50;
+	V0051_POKEMON_DUGTRIO = 51;
+	V0052_POKEMON_MEOWTH = 52;
+	V0053_POKEMON_PERSIAN = 53;
+	V0054_POKEMON_PSYDUCK = 54;
+	V0055_POKEMON_GOLDUCK = 55;
+	V0056_POKEMON_MANKEY = 56;
+	V0057_POKEMON_PRIMEAPE = 57;
+	V0058_POKEMON_GROWLITHE = 58;
+	V0059_POKEMON_ARCANINE = 59;
+	V0060_POKEMON_POLIWAG = 60;
+	V0061_POKEMON_POLIWHIRL = 61;
+	V0062_POKEMON_POLIWRATH = 62;
+	V0063_POKEMON_ABRA = 63;
+	V0064_POKEMON_KADABRA = 64;
+	V0065_POKEMON_ALAKAZAM = 65;
+	V0066_POKEMON_MACHOP = 66;
+	V0067_POKEMON_MACHOKE = 67;
+	V0068_POKEMON_MACHAMP = 68;
+	V0069_POKEMON_BELLSPROUT = 69;
+	V0070_POKEMON_WEEPINBELL = 70;
+	V0071_POKEMON_VICTREEBEL = 71;
+	V0072_POKEMON_TENTACOOL = 72;
+	V0073_POKEMON_TENTACRUEL = 73;
+	V0074_POKEMON_GEODUDE = 74;
+	V0075_POKEMON_GRAVELER = 75;
+	V0076_POKEMON_GOLEM = 76;
+	V0077_POKEMON_PONYTA = 77;
+	V0078_POKEMON_RAPIDASH = 78;
+	V0079_POKEMON_SLOWPOKE = 79;
+	V0080_POKEMON_SLOWBRO = 80;
+	V0081_POKEMON_MAGNEMITE = 81;
+	V0082_POKEMON_MAGNETON = 82;
+	V0083_POKEMON_FARFETCHD = 83;
+	V0084_POKEMON_DODUO = 84;
+	V0085_POKEMON_DODRIO = 85;
+	V0086_POKEMON_SEEL = 86;
+	V0087_POKEMON_DEWGONG = 87;
+	V0088_POKEMON_GRIMER = 88;
+	V0089_POKEMON_MUK = 89;
+	V0090_POKEMON_SHELLDER = 90;
+	V0091_POKEMON_CLOYSTER = 91;
+	V0092_POKEMON_GASTLY = 92;
+	V0093_POKEMON_HAUNTER = 93;
+	V0094_POKEMON_GENGAR = 94;
+	V0095_POKEMON_ONIX = 95;
+	V0096_POKEMON_DROWZEE = 96;
+	V0097_POKEMON_HYPNO = 97;
+	V0098_POKEMON_KRABBY = 98;
+	V0099_POKEMON_KINGLER = 99;
+	V0100_POKEMON_VOLTORB = 100;
+	V0101_POKEMON_ELECTRODE = 101;
+	V0102_POKEMON_EXEGGCUTE = 102;
+	V0103_POKEMON_EXEGGUTOR = 103;
+	V0104_POKEMON_CUBONE = 104;
+	V0105_POKEMON_MAROWAK = 105;
+	V0106_POKEMON_HITMONLEE = 106;
+	V0107_POKEMON_HITMONCHAN = 107;
+	V0108_POKEMON_LICKITUNG = 108;
+	V0109_POKEMON_KOFFING = 109;
+	V0110_POKEMON_WEEZING = 110;
+	V0111_POKEMON_RHYHORN = 111;
+	V0112_POKEMON_RHYDON = 112;
+	V0113_POKEMON_CHANSEY = 113;
+	V0114_POKEMON_TANGELA = 114;
+	V0115_POKEMON_KANGASKHAN = 115;
+	V0116_POKEMON_HORSEA = 116;
+	V0117_POKEMON_SEADRA = 117;
+	V0118_POKEMON_GOLDEEN = 118;
+	V0119_POKEMON_SEAKING = 119;
+	V0120_POKEMON_STARYU = 120;
+	V0121_POKEMON_STARMIE = 121;
+	V0122_POKEMON_MR_MIME = 122;
+	V0123_POKEMON_SCYTHER = 123;
+	V0124_POKEMON_JYNX = 124;
+	V0125_POKEMON_ELECTABUZZ = 125;
+	V0126_POKEMON_MAGMAR = 126;
+	V0127_POKEMON_PINSIR = 127;
+	V0128_POKEMON_TAUROS = 128;
+	V0129_POKEMON_MAGIKARP = 129;
+	V0130_POKEMON_GYARADOS = 130;
+	V0131_POKEMON_LAPRAS = 131;
+	V0132_POKEMON_DITTO = 132;
+	V0133_POKEMON_EEVEE = 133;
+	V0134_POKEMON_VAPOREON = 134;
+	V0135_POKEMON_JOLTEON = 135;
+	V0136_POKEMON_FLAREON = 136;
+	V0137_POKEMON_PORYGON = 137;
+	V0138_POKEMON_OMANYTE = 138;
+	V0139_POKEMON_OMASTAR = 139;
+	V0140_POKEMON_KABUTO = 140;
+	V0141_POKEMON_KABUTOPS = 141;
+	V0142_POKEMON_AERODACTYL = 142;
+	V0143_POKEMON_SNORLAX = 143;
+	V0144_POKEMON_ARTICUNO = 144;
+	V0145_POKEMON_ZAPDOS = 145;
+	V0146_POKEMON_MOLTRES = 146;
+	V0147_POKEMON_DRATINI = 147;
+	V0148_POKEMON_DRAGONAIR = 148;
+	V0149_POKEMON_DRAGONITE = 149;
+	V0150_POKEMON_MEWTWO = 150;
+	V0151_POKEMON_MEW = 151;
+}
+
   }
   }
\ No newline at end of file
You may download the files in Public Git.