示例#1
0
        public async Task <AttackGymResponse> AttackGym(string fortId, string battleId, List <BattleAction> battleActions, BattleAction lastRetrievedAction)
        {
            var message = new AttackGymMessage()
            {
                BattleId             = battleId,
                GymId                = fortId,
                LastRetrievedActions = lastRetrievedAction,
                PlayerLatitude       = _client.CurrentLatitude,
                PlayerLongitude      = _client.CurrentLongitude,
                AttackActions        = { battleActions }
            };

            message.AttackActions.AddRange(battleActions);

            return(await _baseRpc.PostProtoPayload <Request, AttackGymResponse>(RequestType.AttackGym, message));
        }
示例#2
0
文件: Fort.cs 项目: C9Kamis/PoGo-UWP
        public async Task<AttackGymResponse> AttackGym(string fortId, string battleId, List<BattleAction> battleActions, BattleAction lastRetrievedAction)
        {
            var message = new AttackGymMessage()
            {
                BattleId = battleId,
                GymId = fortId,
                LastRetrievedActions = lastRetrievedAction,
                PlayerLatitude = _client.CurrentLatitude,
                PlayerLongitude = _client.CurrentLongitude,
                AttackActions = { battleActions }
            };

            message.AttackActions.AddRange(battleActions);

            return await PostProtoPayload<Request, AttackGymResponse>(RequestType.AttackGym, message);
        }
示例#3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="fortId"></param>
        /// <param name="battleId"></param>
        /// <param name="battleActions"></param>
        /// <param name="lastRetrievedAction"></param>
        /// <returns></returns>
        public bool QueueAttackGymRequest(string fortId, string battleId, List <BattleAction> battleActions, BattleAction lastRetrievedAction)
        {
            var message = new AttackGymMessage
            {
                BattleId             = battleId,
                GymId                = fortId,
                LastRetrievedActions = lastRetrievedAction,
                PlayerLatitude       = Client.CurrentPosition.Latitude,
                PlayerLongitude      = Client.CurrentPosition.Longitude,
                AttackActions        = { battleActions }
            };

            message.AttackActions.AddRange(battleActions);

            return(Client.QueueRequest(RequestType.AttackGym, message));
        }
示例#4
0
        public AttackGymResponse AttackGym(string fortId, string battleId, List <BattleAction> battleActions,
                                           BattleAction lastRetrievedAction)
        {
            var message = new AttackGymMessage
            {
                BattleId            = battleId,
                GymId               = fortId,
                LastRetrievedAction = lastRetrievedAction,
                PlayerLatitude      = Client.CurrentLatitude,
                PlayerLongitude     = Client.CurrentLongitude,
                AttackActions       = { battleActions }
            };

            message.AttackActions.AddRange(battleActions);

            return(PostProtoPayloadCommonR <Request, AttackGymResponse>(RequestType.AttackGym, message).Result);
        }
示例#5
0
        //TODO: revise https://github.com/AeonLucid/POGOProtos/blob/master/src/POGOProtos/Networking/Requests/RequestType.proto#L36
        public async Task <AttackGymResponse> AttackGym(string fortId, string battleId, List <BattleAction> battleActions,
                                                        BattleAction lastRetrievedAction)
        {
            var message = new AttackGymMessage
            {
                BattleId            = battleId,
                GymId               = fortId,
                LastRetrievedAction = lastRetrievedAction,
                PlayerLatitude      = Client.CurrentLatitude,
                PlayerLongitude     = Client.CurrentLongitude,

                AttackActions = { } // {battleActions}    ,
            };

            message.AttackActions.AddRange(battleActions);

            var attackGymRequest = new Request
            {
                RequestType    = RequestType.AttackGym,
                RequestMessage = message.ToByteString()
            };

            var request = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.FillRequest(attackGymRequest, Client)).ConfigureAwait(false);

            Tuple <AttackGymResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response =
                await
                PostProtoPayload
                <Request, AttackGymResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse,
                 CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(request).ConfigureAwait(false);

            CheckChallengeResponse checkChallengeResponse = response.Item2;

            CommonRequest.ProcessCheckChallengeResponse(Client, checkChallengeResponse);

            GetInventoryResponse getInventoryResponse = response.Item4;

            CommonRequest.ProcessGetInventoryResponse(Client, getInventoryResponse);

            DownloadSettingsResponse downloadSettingsResponse = response.Item6;

            CommonRequest.ProcessDownloadSettingsResponse(Client, downloadSettingsResponse);

            return(response.Item1);
        }