Skip to content

Commit

Permalink
Merge pull request NecronomiconCoding#2121 from simplyphp/master
Browse files Browse the repository at this point in the history
Finished fixing upgradable pokemon
  • Loading branch information
BornSupercharged authored Aug 2, 2016
2 parents 5185a62 + e8c1a08 commit b730e06
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 25 deletions.
13 changes: 5 additions & 8 deletions PoGo.NecroBot.Logic/Inventory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -400,22 +400,19 @@ public async Task<List<PokemonData>> GetPokemonToUpgrade()

var myPokemon = await GetPokemons();
myPokemon = myPokemon.Where(p => p.DeployedFortId == string.Empty);

IEnumerable<PokemonData> highestPokemonForUpgrade = (_logicSettings.UpgradePokemonMinimumStatsOperator.ToLower().Equals("and")) ?
myPokemon.Where(
p => (p.Cp >= _logicSettings.UpgradePokemonCpMinimum &&
PokemonInfo.CalculatePokemonPerfection(p) >= _logicSettings.UpgradePokemonIvMinimum)).OrderByDescending(p => p.Cp).ToList() :
myPokemon.Where(
p => (p.Cp >= _logicSettings.UpgradePokemonCpMinimum ||
PokemonInfo.CalculatePokemonPerfection(p) >= _logicSettings.UpgradePokemonIvMinimum)).OrderByDescending(p => p.Cp).ToList();
/**
* @todo make sure theres enough candy (see line 109)
* @todo make sure max cp hasnt been reached
* @todo remove _logicSettings.AmountOfTimesToUpgradeLoop and use it as a count limitation in levelup loop for successes instead
* */

return upgradePokemon = (_logicSettings.LevelUpByCPorIv.ToLower().Equals("iv")) ?
highestPokemonForUpgrade.OrderByDescending(PokemonInfo.CalculatePokemonPerfection).Take(_logicSettings.AmountOfTimesToUpgradeLoop).ToList() :
highestPokemonForUpgrade.Take(_logicSettings.AmountOfTimesToUpgradeLoop).ToList();
highestPokemonForUpgrade.Where(p => (p.Cp < PokemonInfo.CalculateMaxCp(p)))
.OrderByDescending(PokemonInfo.CalculatePokemonPerfection).ToList() :
highestPokemonForUpgrade.Where(p => (p.Cp < PokemonInfo.CalculateMaxCp(p))).ToList();
}

public TransferFilter GetPokemonTransferFilter(PokemonId pokemon)
Expand Down
37 changes: 20 additions & 17 deletions PoGo.NecroBot.Logic/Tasks/LevelUpPokemonTask.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
using System.Collections.Generic;
using PoGo.NecroBot.Logic.PoGoUtils;
using POGOProtos.Enums;
using PoGo.NecroBot.Logic.PoGoUtils;
using System.Linq;

#endregion

Expand All @@ -23,32 +25,33 @@ public static async Task Execute(ISession session, CancellationToken cancellatio
var upgradablePokemon = await session.Inventory.GetPokemonToUpgrade();
if (upgradablePokemon.Count == 0)
return;

var myPokemonSettings = await session.Inventory.GetPokemonSettings();
var pokemonSettings = myPokemonSettings.ToList();

var myPokemonFamilies = await session.Inventory.GetPokemonFamilies();
var pokemonFamilies = myPokemonFamilies.ToArray();

var upgradedNumber = 0;
foreach (var pokemon in upgradablePokemon)
{
if (PokemonInfo.CalculateMaxCp(pokemon) == pokemon.Cp) continue;

var settings = pokemonSettings.Single(x => x.PokemonId == pokemon.PokemonId);
var familyCandy = pokemonFamilies.Single(x => settings.FamilyId == x.FamilyId);

if (familyCandy.Candy_ <= 0) continue;

var upgradeResult = await session.Inventory.UpgradePokemon(pokemon.Id);
if (upgradeResult.Result.ToString().ToLower().Contains("success"))
{
Logger.Write("Pokemon Upgraded:" + session.Translation.GetPokemonTranslation(upgradeResult.UpgradedPokemon.PokemonId) + ":" +
upgradeResult.UpgradedPokemon.Cp);
upgradedNumber++;
}
else if (upgradeResult.Result.ToString().ToLower().Contains("insufficient"))
{
Logger.Write("Pokemon Upgrade Failed Not Enough Resources");
break;
}
else if (upgradeResult.Result.ToString().Contains("ErrorUpgradeNotAvailable"))
{
Logger.Write("Pokemon Is At Max Level For Your Level");
break;
}
else
{
Logger.Write(
"Pokemon Upgrade Failed Unknown Error, Pokemon Could Be Max Level For Your Level The Pokemon That Caused Issue Was:" +
session.Translation.GetPokemonTranslation(upgradeResult.UpgradedPokemon.PokemonId));
break;
}

if (upgradedNumber >= session.LogicSettings.AmountOfTimesToUpgradeLoop)
break;
}
}
}
Expand Down

0 comments on commit b730e06

Please sign in to comment.