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);