Beispiel #1
0
        private static void RevivePokemon(Client client, PokemonData pokemon)
        {
            ItemId ReviveItem = GetNextAvailableRevive(client);

            if (ReviveItem != ItemId.ItemUnknown)
            {
                RandomHelper.RandomSleep(250);

                UseItemReviveResponse useItemReviveResponse = client.Inventory.UseItemRevive(ReviveItem, pokemon.Id);

                if (useItemReviveResponse.Result == UseItemReviveResponse.Types.Result.Success)
                {
                    Logger.ColoredConsoleWrite(gymColorLog, "(Gym) " + pokemon.PokemonId + " revived with " + ReviveItem + ", with an Stamina of " + useItemReviveResponse.Stamina);
                    if (ReviveItem == ItemId.ItemRevive)
                    {
                        pokemon.Stamina = useItemReviveResponse.Stamina;
                        CurePokemon(client, pokemon);
                    }
                    else
                    {
                        pokemon.Stamina = pokemon.StaminaMax;
                    }
                }
                else
                {
                    Logger.ColoredConsoleWrite(ConsoleColor.Red, "(Gym) Error reviving " + pokemon.PokemonId + ": " + useItemReviveResponse.Result);
                }
            }
            else
            {
                Logger.ColoredConsoleWrite(gymColorLog, "(Gym) Cannot revive " + pokemon.PokemonId + ". No more Items Revive/ReviveMax.");
            }
        }
 /// <summary>
 /// Provides a safe way to invoke the <see cref="UseItemReviveReceived" /> event.
 /// </summary>
 /// <param name="value"></param>
 public void RaiseUseItemReviveReceived(UseItemReviveResponse value) => UseItemReviveReceived?.Invoke(this, value);