コード例 #1
0
        private async Task GetPlayerView()
        {
            var req = new GetPlayerViewReq
            {
                Auth = new ReqAuth
                {
                    TeamName       = TeamName,
                    AuthCode       = AuthCode,
                    ClientName     = Username,
                    SequenceNumber = SequenceNumber,
                    SessionId      = SessionId
                },
                PlayerId = PlayerId
            };

            var getPlayerViewResp = await ServiceCallInvoker.InvokeAsync <GetPlayerViewReq, GetPlayerViewResp>(ServiceUrl.TrimEnd('/') + "/json/GetPlayerView", req);

            CommonDataManager.SequenceNumber++;

            if (!getPlayerViewResp.IsOk())
            {
                return;
            }

            CommonDataManager.Turn      = getPlayerViewResp.Turn;
            CommonDataManager.IAmTecman = getPlayerViewResp.Mode == "TECMAN";

            _mapService.UpdateMap(getPlayerViewResp.Map.Rows,
                                  getPlayerViewResp.TecmanPosition.ToPoint(),
                                  getPlayerViewResp.GhostPositions.Select(p => p.ToPoint()).ToList(),
                                  getPlayerViewResp.PreviousGhostPositions.Select(p => p.ToPoint()).ToList(),
                                  CommonDataManager.IAmTecman);
        }
コード例 #2
0
        private async Task <WaitNextTurnResp> WaitNextTurn()
        {
            var waitNextTurnReq = new WaitNextTurnReq
            {
                Auth = new ReqAuth
                {
                    TeamName       = TeamName,
                    AuthCode       = AuthCode,
                    ClientName     = Username,
                    SequenceNumber = SequenceNumber,
                    SessionId      = SessionId
                },
                PlayerId = PlayerId,
                RefTurn  = Turn
            };

            var waitNextTurnResp = await ServiceCallInvoker.InvokeAsync <WaitNextTurnReq, WaitNextTurnResp>(ServiceUrl.TrimEnd('/') + "/json/WaitNextTurn", waitNextTurnReq);

            CommonDataManager.SequenceNumber++;
            return(waitNextTurnResp);
        }
コード例 #3
0
        private async Task <PerformMoveResp> PerformMove()
        {
            string[]       entries   = Positions.Split(',');
            int            count     = entries.Length / 2;
            List <EnPoint> positions = new List <EnPoint>(count);

            for (int i = 0; i < count; i++)
            {
                positions.Add(new EnPoint()
                {
                    Row = int.Parse(entries[i * 2]),
                    Col = int.Parse(entries[i * 2 + 1])
                });
            }

            var performMoveReq = new PerformMoveReq
            {
                Auth = new ReqAuth
                {
                    TeamName       = TeamName,
                    AuthCode       = AuthCode,
                    ClientName     = Username,
                    SequenceNumber = SequenceNumber,
                    SessionId      = SessionId
                },

                PlayerId  = PlayerId,
                Positions = positions
            };

            var performMoveResp = await ServiceCallInvoker.InvokeAsync <PerformMoveReq, PerformMoveResp>(ServiceUrl.TrimEnd('/') + "/json/PerformMove", performMoveReq);

            CommonDataManager.SequenceNumber++;

            return(performMoveResp);
        }