Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #region
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.Linq;
- using System.Net;
- using System.Reflection;
- using System.Text.RegularExpressions;
- using System.Threading;
- using System.Threading.Tasks;
- using AllEnum;
- using PokemonGo.RocketAPI.Enums;
- using PokemonGo.RocketAPI.Exceptions;
- using PokemonGo.RocketAPI.Extensions;
- using PokemonGo.RocketAPI.GeneratedCode;
- using System.Net.Http;
- using System.Text;
- using Google.Protobuf;
- using PokemonGo.RocketAPI.Helpers;
- using System.IO;
- #endregion
- namespace PokemonGo.RocketAPI.Console
- {
- internal class Program
- {
- private static readonly ISettings ClientSettings = new Settings();
- static int Currentlevel = -1;
- static IEnumerable<PokemonData> POKEMONS;
- public static void CheckVersion()
- {
- try
- {
- var match =
- new Regex(
- @"\[assembly\: AssemblyVersion\(""(\d{1,})\.(\d{1,})\.(\d{1,})\.(\d{1,})""\)\]")
- .Match(DownloadServerVersion());
- if (!match.Success) return;
- var gitVersion =
- new Version(
- string.Format(
- "{0}.{1}.{2}.{3}",
- match.Groups[1],
- match.Groups[2],
- match.Groups[3],
- match.Groups[4]));
- if (gitVersion <= Assembly.GetExecutingAssembly().GetName().Version)
- {
- ColoredConsoleWrite(ConsoleColor.Yellow, "Awesome! You have already got the newest version! " + Assembly.GetExecutingAssembly().GetName().Version);
- return;
- }
- ;
- ColoredConsoleWrite(ConsoleColor.White, "There is a new Version available: " + gitVersion + " downloading.. ");
- Thread.Sleep(1000);
- Process.Start("");
- }
- catch (Exception)
- {
- ColoredConsoleWrite(ConsoleColor.White, "Unable to check for updates now...");
- }
- }
- private static string DownloadServerVersion()
- {
- using (var wC = new WebClient())
- return
- wC.DownloadString(
- "");
- }
- public static void ColoredConsoleWrite(ConsoleColor color, string text)
- {
- ConsoleColor originalColor = System.Console.ForegroundColor;
- System.Console.ForegroundColor = color;
- System.Console.WriteLine(text);
- System.Console.ForegroundColor = originalColor;
- }
- private static async Task EvolveAllGivenPokemons(Client client, IEnumerable<PokemonData> pokemonToEvolve)
- {
- ColoredConsoleWrite(ConsoleColor.Cyan,
- $"[{DateTime.Now.ToString("HH:mm:ss")}] Attempting to evolve pokemons");
- foreach (var pokemon in pokemonToEvolve)
- {
- if (pokemon.PokemonId != PokemonId.Pidgey &&
- pokemon.PokemonId != PokemonId.Weedle &&
- pokemon.PokemonId != PokemonId.Zubat &&
- pokemon.PokemonId != PokemonId.Voltorb &&
- pokemon.PokemonId != PokemonId.Magnemite &&
- pokemon.PokemonId != PokemonId.Caterpie &&
- pokemon.PokemonId != PokemonId.Rattata)
- continue;
- var countOfEvolvedUnits = 0;
- var xpCount = 0;
- EvolvePokemonOut evolvePokemonOutProto;
- do
- {
- evolvePokemonOutProto = await client.EvolvePokemon(pokemon.Id);
- //todo: someone check whether this still works
- if (evolvePokemonOutProto.Result == 1)
- {
- ColoredConsoleWrite(ConsoleColor.Cyan,
- $"[{DateTime.Now.ToString("HH:mm:ss")}] Evolved {pokemon.PokemonId} successfully for {evolvePokemonOutProto.ExpAwarded}xp");
- countOfEvolvedUnits++;
- xpCount += evolvePokemonOutProto.ExpAwarded;
- }
- else
- {
- var result = evolvePokemonOutProto.Result;
- /*
- ColoredConsoleWrite(ConsoleColor.White, $"Failed to evolve {pokemon.PokemonId}. " +
- $"EvolvePokemonOutProto.Result was {result}");
- ColoredConsoleWrite(ConsoleColor.White, $"Due to above error, stopping evolving {pokemon.PokemonId}");
- */
- }
- } while (evolvePokemonOutProto.Result == 1);
- if (countOfEvolvedUnits > 0)
- ColoredConsoleWrite(ConsoleColor.Cyan,
- $"[{DateTime.Now.ToString("HH:mm:ss")}] Evolved {countOfEvolvedUnits} pieces of {pokemon.PokemonId} for {xpCount}xp");
- await Task.Delay(3000);
- }
- }
- private static async void Execute()
- {
- var client = new Client(ClientSettings);
- try
- {
- if (ClientSettings.AuthType == AuthType.Ptc)
- await client.DoPtcLogin(ClientSettings.PtcUsername, ClientSettings.PtcPassword);
- else if (ClientSettings.AuthType == AuthType.Google)
- await client.DoGoogleLogin();
- await client.SetServer();
- var profile = await client.GetProfile();
- var settings = await client.GetSettings();
- var mapObjects = await client.GetMapObjects();
- var inventory = await client.GetInventory();
- var pokemons =
- inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.Pokemon)
- .Where(p => p != null && p?.PokemonId > 0);
- POKEMONS = pokemons;
- ColoredConsoleWrite(ConsoleColor.Yellow, "----------------------------");
- ColoredConsoleWrite(ConsoleColor.Cyan, "Account: " + ClientSettings.PtcUsername);
- ColoredConsoleWrite(ConsoleColor.Cyan, "Password: " + ClientSettings.PtcPassword + "\n");
- ColoredConsoleWrite(ConsoleColor.DarkGray, "Latitude: " + ClientSettings.DefaultLatitude);
- ColoredConsoleWrite(ConsoleColor.DarkGray, "Longitude: " + ClientSettings.DefaultLongitude);
- ColoredConsoleWrite(ConsoleColor.Yellow, "----------------------------");
- ColoredConsoleWrite(ConsoleColor.DarkGray, "Your Account:\n");
- ColoredConsoleWrite(ConsoleColor.DarkGray, "Name: " + profile.Profile.Username);
- ColoredConsoleWrite(ConsoleColor.DarkGray, "Team: " + profile.Profile.Team);
- ColoredConsoleWrite(ConsoleColor.DarkGray, "Stardust: " + profile.Profile.Currency.ToArray()[1].Amount);
- ColoredConsoleWrite(ConsoleColor.Cyan, "\nFarming Started");
- ColoredConsoleWrite(ConsoleColor.Yellow, "----------------------------");
- if (ClientSettings.TransferType == "leaveStrongest")
- await TransferAllButStrongestUnwantedPokemon(client);
- else if (ClientSettings.TransferType == "all")
- await TransferAllGivenPokemons(client, pokemons);
- else if (ClientSettings.TransferType == "duplicate")
- await TransferDuplicatePokemon(client);
- else if (ClientSettings.TransferType == "cp")
- await TransferAllWeakPokemon(client, ClientSettings.TransferCPThreshold);
- else
- ColoredConsoleWrite(ConsoleColor.DarkGray, $"[{DateTime.Now.ToString("HH:mm:ss")}] Transfering pokemon disabled");
- if (ClientSettings.EvolveAllGivenPokemons)
- await EvolveAllGivenPokemons(client, pokemons);
- client.RecycleItems(client);
- await Task.Delay(5000);
- PrintLevel(client);
- ConsoleLevelTitle(profile.Profile.Username, client);
- await ExecuteFarmingPokestopsAndPokemons(client);
- ColoredConsoleWrite(ConsoleColor.Red, $"[{DateTime.Now.ToString("HH:mm:ss")}] No nearby usefull locations found. Please wait 10 seconds.");
- await Task.Delay(10000);
- Execute();
- }
- catch (TaskCanceledException tce) { ColoredConsoleWrite(ConsoleColor.White, "Task Canceled Exception - Restarting"); Execute(); }
- catch (UriFormatException ufe) { ColoredConsoleWrite(ConsoleColor.White, "System URI Format Exception - Restarting"); Execute(); }
- catch (ArgumentOutOfRangeException aore) { ColoredConsoleWrite(ConsoleColor.White, "ArgumentOutOfRangeException - Restarting"); Execute(); }
- catch (ArgumentNullException ane) { ColoredConsoleWrite(ConsoleColor.White, "Argument Null Refference - Restarting"); Execute(); }
- catch (NullReferenceException nre) { ColoredConsoleWrite(ConsoleColor.White, "Null Refference - Restarting"); Execute(); }
- //await ExecuteCatchAllNearbyPokemons(client);
- }
- private static async Task ExecuteCatchAllNearbyPokemons(Client client)
- {
- var mapObjects = await client.GetMapObjects();
- var pokemons = mapObjects.MapCells.SelectMany(i => i.CatchablePokemons);
- var inventory2 = await client.GetInventory();
- var pokemons2 = inventory2.InventoryDelta.InventoryItems
- .Select(i => i.InventoryItemData?.Pokemon)
- .Where(p => p != null && p?.PokemonId > 0)
- .ToArray();
- foreach (var pokemon in pokemons)
- {
- var update = await client.UpdatePlayerLocation(pokemon.Latitude, pokemon.Longitude);
- var encounterPokemonResponse = await client.EncounterPokemon(pokemon.EncounterId, pokemon.SpawnpointId);
- var pokemonCP = encounterPokemonResponse?.WildPokemon?.PokemonData?.Cp;
- CatchPokemonResponse caughtPokemonResponse;
- do
- {
- caughtPokemonResponse =
- await
- client.CatchPokemon(pokemon.EncounterId, pokemon.SpawnpointId, pokemon.Latitude,
- pokemon.Longitude, MiscEnums.Item.ITEM_POKE_BALL, pokemonCP);
- ; //note: reverted from settings because this should not be part of settings but part of logic
- } while (caughtPokemonResponse.Status == CatchPokemonResponse.Types.CatchStatus.CatchMissed);
- string pokemonName;
- if (ClientSettings.Language == "german")
- {
- string name_english = Convert.ToString(pokemon.PokemonId);
- var request = (HttpWebRequest)WebRequest.Create("http://boosting-service.de/pokemon/index.php?pokeName=" + name_english);
- var response = (HttpWebResponse)request.GetResponse();
- pokemonName = new StreamReader(response.GetResponseStream()).ReadToEnd();
- }
- else
- pokemonName = Convert.ToString(pokemon.PokemonId);
- if (caughtPokemonResponse.Status == CatchPokemonResponse.Types.CatchStatus.CatchSuccess)
- {
- ColoredConsoleWrite(ConsoleColor.Green, $"[{DateTime.Now.ToString("HH:mm:ss")}] We caught a {pokemonName} with {encounterPokemonResponse?.WildPokemon?.PokemonData?.Cp} CP");
- }
- 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")
- await TransferAllGivenPokemons(client, pokemons2);
- else if (ClientSettings.TransferType == "duplicate")
- await TransferDuplicatePokemon(client);
- else if (ClientSettings.TransferType == "cp")
- await TransferAllWeakPokemon(client, ClientSettings.TransferCPThreshold);
- await Task.Delay(3000);
- }
- }
- private static async Task ExecuteFarmingPokestopsAndPokemons(Client client)
- {
- var mapObjects = await client.GetMapObjects();
- var pokeStops = mapObjects.MapCells.SelectMany(i => i.Forts).Where(i => i.Type == FortType.Checkpoint && i.CooldownCompleteTimestampMs < DateTime.UtcNow.ToUnixTime());
- int initCounter = 0;
- foreach (var pokeStop in pokeStops)
- {
- var update = await client.UpdatePlayerLocation(pokeStop.Latitude, pokeStop.Longitude);
- var fortInfo = await client.GetFort(pokeStop.Id, pokeStop.Latitude, pokeStop.Longitude);
- var fortSearch = await client.SearchFort(pokeStop.Id, pokeStop.Latitude, pokeStop.Longitude);
- ColoredConsoleWrite(ConsoleColor.Cyan,
- $"[{DateTime.Now.ToString("HH:mm:ss")}] PokeStop XP: {fortSearch.ExperienceAwarded}, Gems: {fortSearch.GemsAwarded}, Eggs: {fortSearch.PokemonDataEgg} Items: {GetFriendlyItemsString(fortSearch.ItemsAwarded)}");
- await Task.Delay(15000);
- await ExecuteCatchAllNearbyPokemons(client);
- initCounter++;
- if (initCounter >= 10)
- {
- initCounter = 0;
- if (POKEMONS != null && ClientSettings.EvolveAllGivenPokemons)
- await EvolveAllGivenPokemons(client, POKEMONS);
- }
- }
- }
- private static string GetFriendlyItemsString(IEnumerable<FortSearchResponse.Types.ItemAward> items)
- {
- var enumerable = items as IList<FortSearchResponse.Types.ItemAward> ?? items.ToList();
- if (!enumerable.Any())
- return string.Empty;
- return
- enumerable.GroupBy(i => i.ItemId)
- .Select(kvp => new { ItemName = kvp.Key.ToString(), Amount = kvp.Sum(x => x.ItemCount) })
- .Select(y => $"{y.Amount} x {y.ItemName}")
- .Aggregate((a, b) => $"{a}, {b}");
- }
- private static void Main(string[] args)
- {
- Task.Run(() =>
- {
- try
- {
- //ColoredConsoleWrite(ConsoleColor.White, "Coded by Ferox - edited by NecronomiconCoding");
- //CheckVersion();
- Execute();
- }
- catch (PtcOfflineException)
- {
- ColoredConsoleWrite(ConsoleColor.Red, "PTC Servers are probably down OR your credentials are wrong. Try google");
- }
- catch (Exception ex)
- {
- ColoredConsoleWrite(ConsoleColor.Red, $"[{DateTime.Now.ToString("HH:mm:ss")}] Unhandled exception: {ex}");
- }
- });
- System.Console.ReadLine();
- }
- private static async Task TransferAllButStrongestUnwantedPokemon(Client client)
- {
- //ColoredConsoleWrite(ConsoleColor.White, $"[{DateTime.Now.ToString("HH:mm:ss")}] Firing up the meat grinder");
- var unwantedPokemonTypes = new[]
- {
- PokemonId.Pidgey,
- PokemonId.Rattata,
- PokemonId.Weedle,
- PokemonId.Zubat,
- PokemonId.Caterpie,
- PokemonId.Pidgeotto,
- PokemonId.NidoranFemale,
- PokemonId.Paras,
- PokemonId.Venonat,
- PokemonId.Psyduck,
- PokemonId.Poliwag,
- PokemonId.Slowpoke,
- PokemonId.Drowzee,
- PokemonId.Gastly,
- PokemonId.Goldeen,
- PokemonId.Staryu,
- PokemonId.Magikarp,
- PokemonId.Clefairy,
- PokemonId.Eevee,
- PokemonId.Tentacool,
- PokemonId.Dratini,
- PokemonId.Ekans,
- PokemonId.Jynx,
- PokemonId.Lickitung,
- PokemonId.Spearow,
- PokemonId.NidoranFemale,
- PokemonId.NidoranMale
- };
- var inventory = await client.GetInventory();
- var pokemons = inventory.InventoryDelta.InventoryItems
- .Select(i => i.InventoryItemData?.Pokemon)
- .Where(p => p != null && p?.PokemonId > 0)
- .ToArray();
- foreach (var unwantedPokemonType in unwantedPokemonTypes)
- {
- var pokemonOfDesiredType = pokemons.Where(p => p.PokemonId == unwantedPokemonType)
- .OrderByDescending(p => p.Cp)
- .ToList();
- var unwantedPokemon =
- pokemonOfDesiredType.Skip(1) // keep the strongest one for potential battle-evolving
- .ToList();
- //ColoredConsoleWrite(ConsoleColor.White, $"[{DateTime.Now.ToString("HH:mm:ss")}] Grinding {unwantedPokemon.Count} pokemons of type {unwantedPokemonType}");
- await TransferAllGivenPokemons(client, unwantedPokemon);
- }
- //ColoredConsoleWrite(ConsoleColor.White, $"[{DateTime.Now.ToString("HH:mm:ss")}] Finished grinding all the meat");
- }
- 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);
- /*
- ReleasePokemonOutProto.Status {
- UNSET = 0;
- SUCCESS = 1;
- POKEMON_DEPLOYED = 2;
- FAILED = 3;
- ERROR_POKEMON_IS_EGG = 4;
- }*/
- if (transferPokemonResponse.Status == 1)
- {
- ColoredConsoleWrite(ConsoleColor.Magenta, $"[{DateTime.Now.ToString("HH:mm:ss")}] Transferred {pokemon.PokemonId} with {pokemon.Cp} CP");
- }
- else
- {
- var status = transferPokemonResponse.Status;
- ColoredConsoleWrite(ConsoleColor.Red, $"[{DateTime.Now.ToString("HH:mm:ss")}] Somehow failed to transfer {pokemon.PokemonId} with {pokemon.Cp} CP. " +
- $"ReleasePokemonOutProto.Status was {status}");
- }
- await Task.Delay(3000);
- }
- }
- private static async Task TransferDuplicatePokemon(Client client)
- {
- //ColoredConsoleWrite(ConsoleColor.White, $"Check for duplicates");
- var inventory = await client.GetInventory();
- var allpokemons =
- inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.Pokemon)
- .Where(p => p != null && p.Cp < ClientSettings.TransferCPThreshold && p?.PokemonId > 0);
- var dupes = allpokemons.OrderBy(x => x.Cp).Select((x, i) => new { index = i, value = x })
- .GroupBy(x => x.value.PokemonId)
- .Where(x => x.Skip(1).Any());
- for (var i = 0; i < dupes.Count(); i++)
- {
- for (var j = 0; j < dupes.ElementAt(i).Count() - 1; j++)
- {
- var dubpokemon = dupes.ElementAt(i).ElementAt(j).value;
- var transfer = await client.TransferPokemon(dubpokemon.Id);
- ColoredConsoleWrite(ConsoleColor.DarkGreen,
- $"[{DateTime.Now.ToString("HH:mm:ss")}] Transferred {dubpokemon.PokemonId} with {dubpokemon.Cp} CP (Highest is {dupes.ElementAt(i).Last().value.Cp})");
- }
- }
- }
- private static async Task TransferAllWeakPokemon(Client client, int cpThreshold)
- {
- //ColoredConsoleWrite(ConsoleColor.White, $"[{DateTime.Now.ToString("HH:mm:ss")}] Firing up the meat grinder");
- var doNotTransfer = new[] //these will not be transferred even when below the CP threshold
- {
- //PokemonId.Pidgey,
- //PokemonId.Rattata,
- //PokemonId.Weedle,
- //PokemonId.Zubat,
- //PokemonId.Caterpie,
- //PokemonId.Pidgeotto,
- //PokemonId.NidoranFemale,
- //PokemonId.Paras,
- //PokemonId.Venonat,
- //PokemonId.Psyduck,
- //PokemonId.Poliwag,
- //PokemonId.Slowpoke,
- //PokemonId.Drowzee,
- //PokemonId.Gastly,
- //PokemonId.Goldeen,
- //PokemonId.Staryu,
- PokemonId.Magikarp,
- PokemonId.Eevee//,
- //PokemonId.Dratini
- };
- var inventory = await client.GetInventory();
- var pokemons = inventory.InventoryDelta.InventoryItems
- .Select(i => i.InventoryItemData?.Pokemon)
- .Where(p => p != null && p?.PokemonId > 0)
- .ToArray();
- //foreach (var unwantedPokemonType in unwantedPokemonTypes)
- {
- var pokemonToDiscard = pokemons.Where(p => !doNotTransfer.Contains(p.PokemonId) && p.Cp < cpThreshold)
- .OrderByDescending(p => p.Cp)
- .ToList();
- //var unwantedPokemon = pokemonOfDesiredType.Skip(1) // keep the strongest one for potential battle-evolving
- // .ToList();
- ColoredConsoleWrite(ConsoleColor.Gray, $"[{DateTime.Now.ToString("HH:mm:ss")}] Grinding {pokemonToDiscard.Count} pokemon below {cpThreshold} CP.");
- await TransferAllGivenPokemons(client, pokemonToDiscard);
- }
- ColoredConsoleWrite(ConsoleColor.Gray, $"[{DateTime.Now.ToString("HH:mm:ss")}] Finished grinding all the meat");
- }
- public static async Task PrintLevel(Client client)
- {
- var inventory = await client.GetInventory();
- var stats = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.PlayerStats).ToArray();
- foreach (var v in stats)
- if (v != null)
- {
- int XpDiff = GetXpDiff(client, v.Level);
- if (ClientSettings.LevelOutput == "time")
- ColoredConsoleWrite(ConsoleColor.Yellow, $"[{DateTime.Now.ToString("HH:mm:ss")}] Current Level: " + v.Level + " (" + (v.Experience - XpDiff) + "/" + (v.NextLevelXp - XpDiff) + ")");
- else if (ClientSettings.LevelOutput == "levelup")
- if (Currentlevel != v.Level)
- {
- Currentlevel = v.Level;
- ColoredConsoleWrite(ConsoleColor.Magenta, $"[{DateTime.Now.ToString("HH:mm:ss")}] Current Level: " + v.Level + ". XP needed for next Level: " + (v.NextLevelXp - v.Experience));
- }
- }
- await Task.Delay(ClientSettings.LevelTimeInterval * 1000);
- PrintLevel(client);
- }
- public static async Task ConsoleLevelTitle(string Username, Client client)
- {
- var inventory = await client.GetInventory();
- var stats = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.PlayerStats).ToArray();
- foreach (var v in stats)
- if (v != null)
- {
- int XpDiff = GetXpDiff(client, v.Level);
- System.Console.Title = string.Format(Username + " | Level {0:0} - ({1:0} / {2:0})", v.Level, (v.Experience - v.PrevLevelXp - XpDiff), (v.NextLevelXp - v.PrevLevelXp - XpDiff));
- }
- await Task.Delay(1000);
- ConsoleLevelTitle(Username, client);
- }
- public static int GetXpDiff(Client client, int Level)
- {
- switch (Level)
- {
- case 1:
- return 0;
- case 2:
- return 1000;
- case 3:
- return 2000;
- case 4:
- return 3000;
- case 5:
- return 4000;
- case 6:
- return 5000;
- case 7:
- return 6000;
- case 8:
- return 7000;
- case 9:
- return 8000;
- case 10:
- return 9000;
- case 11:
- return 10000;
- case 12:
- return 10000;
- case 13:
- return 10000;
- case 14:
- return 10000;
- case 15:
- return 15000;
- case 16:
- return 20000;
- case 17:
- return 20000;
- case 18:
- return 20000;
- case 19:
- return 25000;
- case 20:
- return 25000;
- case 21:
- return 50000;
- case 22:
- return 75000;
- case 23:
- return 100000;
- case 24:
- return 125000;
- case 25:
- return 150000;
- case 26:
- return 190000;
- case 27:
- return 200000;
- case 28:
- return 250000;
- case 29:
- return 300000;
- case 30:
- return 350000;
- case 31:
- return 500000;
- case 32:
- return 500000;
- case 33:
- return 750000;
- case 34:
- return 1000000;
- case 35:
- return 1250000;
- case 36:
- return 1500000;
- case 37:
- return 2000000;
- case 38:
- return 2500000;
- case 39:
- return 1000000;
- case 40:
- return 1000000;
- }
- return 0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement