public override int GetHashCode() { int hash = 1; if (TimestampMs != 0L) { hash ^= TimestampMs.GetHashCode(); } if (Sfida != false) { hash ^= Sfida.GetHashCode(); } if (actionCase_ == ActionOneofCase.CatchPokemon) { hash ^= CatchPokemon.GetHashCode(); } if (actionCase_ == ActionOneofCase.FortSearch) { hash ^= FortSearch.GetHashCode(); } if (actionCase_ == ActionOneofCase.BuddyPokemon) { hash ^= BuddyPokemon.GetHashCode(); } if (actionCase_ == ActionOneofCase.RaidRewards) { hash ^= RaidRewards.GetHashCode(); } if (actionCase_ == ActionOneofCase.PasscodeRewards) { hash ^= PasscodeRewards.GetHashCode(); } hash ^= (int)actionCase_; return(hash); }
public override int GetHashCode() { int hash = 1; if (TimestampMs != 0L) { hash ^= TimestampMs.GetHashCode(); } if (Sfida != false) { hash ^= Sfida.GetHashCode(); } if (actionCase_ == ActionOneofCase.CatchPokemon) { hash ^= CatchPokemon.GetHashCode(); } if (actionCase_ == ActionOneofCase.FortSearch) { hash ^= FortSearch.GetHashCode(); } if (actionCase_ == ActionOneofCase.BuddyPokemon) { hash ^= BuddyPokemon.GetHashCode(); } if (actionCase_ == ActionOneofCase.RaidRewards) { hash ^= RaidRewards.GetHashCode(); } if (actionCase_ == ActionOneofCase.PasscodeRewards) { hash ^= PasscodeRewards.GetHashCode(); } if (actionCase_ == ActionOneofCase.CompleteQuest) { hash ^= CompleteQuest.GetHashCode(); } if (actionCase_ == ActionOneofCase.CompleteQuestStampCard) { hash ^= CompleteQuestStampCard.GetHashCode(); } if (actionCase_ == ActionOneofCase.CompleteQuestPokemonEncounter) { hash ^= CompleteQuestPokemonEncounter.GetHashCode(); } hash ^= (int)actionCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
/// <summary> /// Gets the image for buddy. /// </summary> /// <param name="buddyPokemon">The buddy pokemon.</param> /// <returns></returns> private Image getImageForBuddy(BuddyPokemon buddyPokemon) { if (pokemons == null) { return(null); } if (buddyPokemon == null || buddyPokemon.ToString() == "{ }") { return(null); } else { var buddyPoke = pokemons.FirstOrDefault(x => x.Id == buddyPokemon.Id); return(buddyPoke != null?PokeImgManager.GetPokemonImagefromResource(buddyPoke.PokemonId, "200") : null); } }
private void DisplayDetails() { if (InvokeRequired) { Invoke(new MethodInvoker(DisplayDetails)); return; } labelPlayerLevel.Text = _manager.Level.ToString(); labelPlayerTeam.Text = !String.IsNullOrEmpty(_manager.Team) ? _manager.Team : "Neutral"; labelExp.Text = _manager.ExpRatio.ToString(); labelRunningTime.Text = _manager.RunningTime; labelStardust.Text = _manager.TotalStardust.ToString(); labelExpPerHour.Text = String.Format("{0:0}", _manager.ExpPerHour); labelExpGained.Text = _manager.ExpGained.ToString(); labelPokeCoins.Text = _manager.TotalPokeCoins.ToString(); if (_manager.Stats != null) { labelDistanceWalked.Text = String.Format("{0:0.00}km", _manager.Stats.KmWalked); labelPokemonCaught.Text = _manager.Stats.PokemonsCaptured.ToString(); labelPokestopVisits.Text = _manager.Stats.PokeStopVisits.ToString(); labelUniquePokemon.Text = _manager.Stats.UniquePokedexEntries.ToString(); } if (_manager.Pokemon != null) { labelPokemonCount.Text = String.Format("{0}/{1}", _manager.Pokemon.Count + _manager.Eggs.Count, _manager.MaxPokemonStorage); labelDeployedPokemons.Text = _manager.Pokemon.Where(i => !string.IsNullOrEmpty(i.DeployedFortId)).Count().ToString(); } if (_manager.Items != null) { labelInventoryCount.Text = String.Format("{0}/{1}", _manager.Items.Sum(x => x.Count), _manager.MaxItemStorage); } if (_manager.PlayerData != null) { BuddyPokemon buddy = _manager.PlayerData.BuddyPokemon ?? new BuddyPokemon(); PokemonData myBuddy = _manager.Pokemon.Where(x => x.Id == buddy.Id).FirstOrDefault() ?? new PokemonData(); labelPokemonBuddy.Text = myBuddy.PokemonId != PokemonId.Missingno ? String.Format("{0}", myBuddy.PokemonId) : "Not set"; labelPlayerUsername.Text = _manager.PlayerData.Username; DateTime date = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddMilliseconds(_manager.PlayerData.CreationTimestampMs); labelCreateDate.Text = date.ToString(); string tutocompleted = "Not Completed"; if (_manager.PlayerData.TutorialState.Contains(TutorialState.AccountCreation) && _manager.PlayerData.TutorialState.Contains(TutorialState.AvatarSelection) && _manager.PlayerData.TutorialState.Contains(TutorialState.FirstTimeExperienceComplete) && _manager.PlayerData.TutorialState.Contains(TutorialState.GymTutorial) && _manager.PlayerData.TutorialState.Contains(TutorialState.LegalScreen) && _manager.PlayerData.TutorialState.Contains(TutorialState.NameSelection) && _manager.PlayerData.TutorialState.Contains(TutorialState.PokemonBerry) && _manager.PlayerData.TutorialState.Contains(TutorialState.PokemonCapture) && _manager.PlayerData.TutorialState.Contains(TutorialState.PokestopTutorial) && _manager.PlayerData.TutorialState.Contains(TutorialState.UseItem) ) { tutocompleted = "Completed"; } labelTutorialState.Text = tutocompleted; } }
public void MergeFrom(ActionLogEntry other) { if (other == null) { return; } if (other.TimestampMs != 0L) { TimestampMs = other.TimestampMs; } if (other.Sfida != false) { Sfida = other.Sfida; } switch (other.ActionCase) { case ActionOneofCase.CatchPokemon: if (CatchPokemon == null) { CatchPokemon = new global::POGOProtos.Data.Logs.CatchPokemonLogEntry(); } CatchPokemon.MergeFrom(other.CatchPokemon); break; case ActionOneofCase.FortSearch: if (FortSearch == null) { FortSearch = new global::POGOProtos.Data.Logs.FortSearchLogEntry(); } FortSearch.MergeFrom(other.FortSearch); break; case ActionOneofCase.BuddyPokemon: if (BuddyPokemon == null) { BuddyPokemon = new global::POGOProtos.Data.Logs.BuddyPokemonLogEntry(); } BuddyPokemon.MergeFrom(other.BuddyPokemon); break; case ActionOneofCase.RaidRewards: if (RaidRewards == null) { RaidRewards = new global::POGOProtos.Data.Logs.RaidRewardsLogEntry(); } RaidRewards.MergeFrom(other.RaidRewards); break; case ActionOneofCase.PasscodeRewards: if (PasscodeRewards == null) { PasscodeRewards = new global::POGOProtos.Data.Logs.PasscodeRewardsLogEntry(); } PasscodeRewards.MergeFrom(other.PasscodeRewards); break; case ActionOneofCase.CompleteQuest: if (CompleteQuest == null) { CompleteQuest = new global::POGOProtos.Data.Logs.CompleteQuestLogEntry(); } CompleteQuest.MergeFrom(other.CompleteQuest); break; case ActionOneofCase.CompleteQuestStampCard: if (CompleteQuestStampCard == null) { CompleteQuestStampCard = new global::POGOProtos.Data.Logs.CompleteQuestStampCardLogEntry(); } CompleteQuestStampCard.MergeFrom(other.CompleteQuestStampCard); break; case ActionOneofCase.CompleteQuestPokemonEncounter: if (CompleteQuestPokemonEncounter == null) { CompleteQuestPokemonEncounter = new global::POGOProtos.Data.Logs.CompleteQuestPokemonEncounterLogEntry(); } CompleteQuestPokemonEncounter.MergeFrom(other.CompleteQuestPokemonEncounter); break; case ActionOneofCase.OpenGift: if (OpenGift == null) { OpenGift = new global::POGOProtos.Data.Logs.OpenGiftLogEntry(); } OpenGift.MergeFrom(other.OpenGift); break; case ActionOneofCase.SendGift: if (SendGift == null) { SendGift = new global::POGOProtos.Data.Logs.SendGiftLogEntry(); } SendGift.MergeFrom(other.SendGift); break; case ActionOneofCase.Trading: if (Trading == null) { Trading = new global::POGOProtos.Data.Logs.TradingLogEntry(); } Trading.MergeFrom(other.Trading); break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); }
public BuddyUpdateEvent(BuddyPokemon updatedBuddy, PokemonData pkm) { Buddy = updatedBuddy; this.Pokemon = pkm; }
public async Task <MethodResult> TransferPokemon(IEnumerable <PokemonData> pokemonsToTransfer) { BuddyPokemon buddy = PlayerData.BuddyPokemon ?? new BuddyPokemon(); PokemonData myBuddy = Pokemon.Where(x => x.Id == buddy.Id).FirstOrDefault() ?? new PokemonData(); var pokemonToTransfer = pokemonsToTransfer.Where(x => !x.Favorite.Equals(1) && !x.IsEgg && string.IsNullOrEmpty(x.DeployedFortId) && !x.Id.Equals(myBuddy.Id) && !x.PokemonId.Equals(PokemonId.Missingno) && !x.Equals(null)); if (pokemonsToTransfer.Count() == 0) { return(new MethodResult()); } LogCaller(new LoggerEventArgs(String.Format("Transferring {0} pokemon", pokemonToTransfer.Count()), LoggerTypes.Info)); if (!UserSettings.TransferAtOnce) { foreach (PokemonData pokemon in pokemonToTransfer) { var response = await _client.ClientSession.RpcClient.SendRemoteProcedureCallAsync(new Request { RequestType = RequestType.ReleasePokemon, RequestMessage = new ReleasePokemonMessage { PokemonId = pokemon.Id }.ToByteString() }); if (response == null) { return(new MethodResult()); } ReleasePokemonResponse releasePokemonResponse = ReleasePokemonResponse.Parser.ParseFrom(response); switch (releasePokemonResponse.Result) { case ReleasePokemonResponse.Types.Result.Success: LogCaller(new LoggerEventArgs(String.Format("Successully transferred {0}. Cp: {1}. IV: {2:0.00}%", pokemon.PokemonId, pokemon.Cp, CalculateIVPerfection(pokemon)), LoggerTypes.Transfer)); await Task.Delay(CalculateDelay(UserSettings.DelayBetweenPlayerActions, UserSettings.PlayerActionDelayRandom)); RemoveInventoryItem(GetPokemonHashKey(pokemon.Id)); continue; case ReleasePokemonResponse.Types.Result.ErrorPokemonIsBuddy: LogCaller(new LoggerEventArgs(String.Format("Faill to transfer {0}. Because: {1}.", pokemon.PokemonId, releasePokemonResponse.Result), LoggerTypes.Warning)); continue; case ReleasePokemonResponse.Types.Result.ErrorPokemonIsEgg: LogCaller(new LoggerEventArgs(String.Format("Faill to transfer {0}. Because: {1}.", pokemon.PokemonId, releasePokemonResponse.Result), LoggerTypes.Warning)); continue; case ReleasePokemonResponse.Types.Result.PokemonDeployed: LogCaller(new LoggerEventArgs(String.Format("Faill to transfer {0}. Because: {1}.", pokemon.PokemonId, releasePokemonResponse.Result), LoggerTypes.Warning)); continue; case ReleasePokemonResponse.Types.Result.Failed: LogCaller(new LoggerEventArgs(String.Format("Faill to transfer {0}", pokemon.PokemonId), LoggerTypes.Warning)); continue; case ReleasePokemonResponse.Types.Result.Unset: LogCaller(new LoggerEventArgs(String.Format("Faill to transfer {0}. Because: {1}.", pokemon.PokemonId, releasePokemonResponse.Result), LoggerTypes.Warning)); continue; } } return(new MethodResult { Success = true }); } else { var PokemonIds = pokemonToTransfer.Select(x => x.Id); var response = await _client.ClientSession.RpcClient.SendRemoteProcedureCallAsync(new Request { RequestType = RequestType.ReleasePokemon, RequestMessage = new ReleasePokemonMessage { PokemonIds = { PokemonIds } }.ToByteString() }); if (response == null) { return(new MethodResult()); } ReleasePokemonResponse releasePokemonResponse = ReleasePokemonResponse.Parser.ParseFrom(response); switch (releasePokemonResponse.Result) { case ReleasePokemonResponse.Types.Result.Success: LogCaller(new LoggerEventArgs( String.Format("Successully candy awarded {0} of {1} Pokemons.", releasePokemonResponse.CandyAwarded, pokemonToTransfer.Count()), LoggerTypes.Transfer)); await Task.Delay(CalculateDelay(UserSettings.DelayBetweenPlayerActions, UserSettings.PlayerActionDelayRandom)); foreach (var pokemonId in PokemonIds) { RemoveInventoryItem(GetPokemonHashKey(pokemonId)); } break; case ReleasePokemonResponse.Types.Result.ErrorPokemonIsBuddy: LogCaller(new LoggerEventArgs(String.Format("Faill to transfer {0}. Because: {1}.", pokemonToTransfer.Count(), releasePokemonResponse.Result), LoggerTypes.Warning)); break; case ReleasePokemonResponse.Types.Result.ErrorPokemonIsEgg: LogCaller(new LoggerEventArgs(String.Format("Faill to transfer {0}. Because: {1}.", pokemonToTransfer.Count(), releasePokemonResponse.Result), LoggerTypes.Warning)); break; case ReleasePokemonResponse.Types.Result.PokemonDeployed: LogCaller(new LoggerEventArgs(String.Format("Faill to transfer {0}. Because: {1}.", pokemonToTransfer.Count(), releasePokemonResponse.Result), LoggerTypes.Warning)); break; case ReleasePokemonResponse.Types.Result.Failed: LogCaller(new LoggerEventArgs(String.Format("Faill to transfer {0}", pokemonToTransfer.Count()), LoggerTypes.Warning)); break; case ReleasePokemonResponse.Types.Result.Unset: LogCaller(new LoggerEventArgs(String.Format("Faill to transfer {0}. Because: {1}.", pokemonToTransfer.Count(), releasePokemonResponse.Result), LoggerTypes.Warning)); break; } return(new MethodResult { Success = true }); } }