private async Task TransferPokemon(PlayerPokemon playerPokemon) { if (MessageBox.Show($"Are you sure you want to tranfer \b{playerPokemon.Pokemon}", "You are about to tranfer a pokemon", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { await _transferPokemonHandler.TransferPokemon(_goBot.Client, playerPokemon.PokemonData); } }
private async Task EvolvePokemon(PlayerPokemon playerPokemon) { var evolveResponse = await _evolvePokemonHandler.EvolvePokemon(_goBot.Client, playerPokemon.PokemonData); if (evolveResponse.Result == EvolvePokemonResponse.Types.Result.Success) { _logger.Write( $"Evolved {playerPokemon.Pokemon.ToString()} successfully for {evolveResponse.ExperienceAwarded}xp", LogLevel.INFO); PokemonCollection.Remove(playerPokemon); GetPlayerPokemons(); } else { _logger.Write( $"Failed to evolve {playerPokemon.Pokemon.ToString()}. Reason: {evolveResponse.Result}", LogLevel.WARN); } }
private async void GetPlayerPokemons() { var playerInventory = await _goBot.GetInventoryData(); var playerPokemons = playerInventory.InventoryDelta.InventoryItems.Select(p => p.InventoryItemData.PokemonData); foreach (var pokemon in playerPokemons) { if (pokemon != null) { if (pokemon.IsEgg) { continue; } var playerPokemon = new PlayerPokemon() { PokemonData = pokemon, Count = (int)pokemon.PokemonId, Pokemon = pokemon.PokemonId.ToString(), Cp = pokemon.Cp, Attack = pokemon.IndividualAttack, Defense = pokemon.IndividualDefense, Stamina = pokemon.IndividualStamina, Iv = Math.Round((double)(pokemon.IndividualAttack + pokemon.IndividualDefense + pokemon.IndividualStamina) / 45, 2, MidpointRounding.AwayFromZero) * 100, TransferCommand = DelegateCommand <PlayerPokemon> .FromAsyncHandler(TransferPokemon), EvolveCommand = DelegateCommand <PlayerPokemon> .FromAsyncHandler(EvolvePokemon) }; var count = PokemonCollection.FirstOrDefault(d => d.PokemonData.Equals(pokemon)); if (count == null) { PokemonCollection.Add(playerPokemon); } } } }