Esempio n. 1
0
        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);
        }
Esempio n. 3
0
        /// <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);
            }
        }
Esempio n. 4
0
        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);
        }
Esempio n. 6
0
 public BuddyUpdateEvent(BuddyPokemon updatedBuddy, PokemonData pkm)
 {
     Buddy        = updatedBuddy;
     this.Pokemon = pkm;
 }
Esempio n. 7
0
        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
                });
            }
        }