Skip to content

Commit

Permalink
Merge pull request #2073 from simplyphp/master
Browse files Browse the repository at this point in the history
Fixed a bug with not transferring pokemon which can evolve
  • Loading branch information
BornSupercharged authored Aug 2, 2016
2 parents a5d9303 + 7865a8a commit 536c415
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 17 deletions.
9 changes: 9 additions & 0 deletions PoGo.NecroBot.Logic/Inventory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ public async Task<IEnumerable<PokemonData>> GetDuplicatePokemonToTransfer(
{
var settings = pokemonSettings.Single(x => x.PokemonId == pokemon.Key);
var amountToSkip = GetPokemonTransferFilter(pokemon.Key).KeepMinDuplicatePokemon;
var familyCandy = pokemonFamilies.Single(x => settings.FamilyId == x.FamilyId);

var transferrablePokemonTypeCount = pokemonFiltered.Where(p => p.PokemonId == pokemon.Key).Count();
var currentPokemonTypeCount = myPokemon.Where(p => p.PokemonId == pokemon.Key).Count();
Expand All @@ -126,6 +127,14 @@ public async Task<IEnumerable<PokemonData>> GetDuplicatePokemonToTransfer(
// Fail safe
if (amountToSkip < 0) amountToSkip = 0;

// Check if we want to evolve this type of Pokemon before we transfer it
if (settings.EvolutionIds.Count != 0 && settings.CandyToEvolve > 0 && _logicSettings.PokemonsToEvolve.Contains(pokemon.Key))
{
var amountPossible = (familyCandy.Candy_ - 1) / (settings.CandyToEvolve - 1);
if (amountPossible > amountToSkip)
amountToSkip = amountPossible+1;
}

if (prioritizeIVoverCp)
{
results.AddRange(pokemonList.Where(x => x.PokemonId == pokemon.Key)
Expand Down
31 changes: 14 additions & 17 deletions PoGo.NecroBot.Logic/Tasks/EvolvePokemonTask.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,27 +34,24 @@ public static async Task Execute(ISession session, CancellationToken cancellatio

if (pokemonToEvolve.Any())
{
if (session.LogicSettings.KeepPokemonsThatCanEvolve)
{
var totalPokemon = await session.Inventory.GetPokemons();
var totalPokemon = await session.Inventory.GetPokemons();

var pokemonNeededInInventory = session.Profile.PlayerData.MaxPokemonStorage * session.LogicSettings.EvolveKeptPokemonsAtStorageUsagePercentage / 100.0f;
var needPokemonToStartEvolve = Math.Round(
Math.Max(0,
Math.Min(pokemonNeededInInventory, session.Profile.PlayerData.MaxPokemonStorage)));
var pokemonNeededInInventory = session.Profile.PlayerData.MaxPokemonStorage * session.LogicSettings.EvolveKeptPokemonsAtStorageUsagePercentage / 100.0f;
var needPokemonToStartEvolve = Math.Round(
Math.Max(0,
Math.Min(pokemonNeededInInventory, session.Profile.PlayerData.MaxPokemonStorage)));

var deltaCount = needPokemonToStartEvolve - totalPokemon.Count();
var deltaCount = needPokemonToStartEvolve - totalPokemon.Count();

if (deltaCount > 0)
if (deltaCount > 0)
{
session.EventDispatcher.Send(new NoticeEvent()
{
session.EventDispatcher.Send(new NoticeEvent()
{
Message = session.Translation.GetTranslation(TranslationString.WaitingForMorePokemonToEvolve,
pokemonToEvolve.Count, deltaCount, totalPokemon.Count(), needPokemonToStartEvolve, session.LogicSettings.EvolveKeptPokemonsAtStorageUsagePercentage)
});
return;
}
}
Message = session.Translation.GetTranslation(TranslationString.WaitingForMorePokemonToEvolve,
pokemonToEvolve.Count, deltaCount, totalPokemon.Count(), needPokemonToStartEvolve, session.LogicSettings.EvolveKeptPokemonsAtStorageUsagePercentage)
});
return;
}

if (await shouldUseLuckyEgg(session, pokemonToEvolve))
{
Expand Down

0 comments on commit 536c415

Please sign in to comment.