public bool GetPlayerView()
        {
            var req = new GetPlayerViewReq
            {
                Auth = new ReqAuth
                {
                    TeamName       = Settings.TeamName,
                    AuthCode       = Settings.AuthCode,
                    ClientName     = Settings.UserName,
                    SequenceNumber = Settings.SequenceNumber,
                    SessionId      = Settings.SessionId
                },
                PlayerId = Settings.PlayerId
            };

            var getPlayerViewResp = Program.ServiceCallInvoker.InvokeAsync <GetPlayerViewReq, GetPlayerViewResp>(Settings.ServerUrl.TrimEnd('/') + "/json/GetPlayerView", req).Result;

            Settings.SequenceNumber++;

            if (getPlayerViewResp.IsOk())
            {
                Settings.Turn              = getPlayerViewResp.Turn;
                Settings.Map               = getPlayerViewResp.Map.Rows.ToArray();
                Settings.MapData           = getPlayerViewResp.Map.ToMapData();
                Settings.IAmTecman         = (getPlayerViewResp.Mode == "TECMAN");
                Settings.TecmanPosition    = getPlayerViewResp.TecmanPosition.ToPoint();
                Settings.GhostPosition     = getPlayerViewResp.GhostPositions.Select(p => p.ToPoint()).ToArray();
                Settings.PrevGhostPosition = getPlayerViewResp.PreviousGhostPositions.Select(p => p.ToPoint()).ToArray();
                return(true);
            }

            return(false);
        }
        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);
        }
        private void GetPlayerViewImpl(GetPlayerViewReq req, GetPlayerViewResp resp)
        {
            GameViewInfo gv = Server.GameManager.GetPlayerView(req.PlayerId, req.Auth.GetClientCode());

            resp.Index        = gv.PlayerIndex;
            resp.GameState    = gv.GameState.ToString();
            resp.Turn         = gv.Turn;
            resp.PlayerStates = gv.PlayerStates.Select(p => new EnPlayerState(p)).ToList();
            resp.Map          = new EnMapData(gv.Map);
        }
        private void GetPlayerViewImpl(GetPlayerViewReq req, GetPlayerViewResp resp)
        {
            GameViewInfo gv = Server.GameManager.GetPlayerView(req.PlayerId, req.Auth.GetClientCode());

            resp.GameUid                = gv.GameUid.ToString();
            resp.Turn                   = gv.Turn;
            resp.Mode                   = gv.PlayerStates[gv.PlayerIndex].Mode.ToString();
            resp.Map                    = new EnMapData(gv.Map);
            resp.TecmanPosition         = new EnPoint(gv.Map.TecmanPosition);
            resp.GhostPositions         = gv.Map.GhostPosition.Select(p => new EnPoint(p)).ToList();
            resp.PreviousTecmanPosition = new EnPoint(gv.PreviousTecmanPosition);
            resp.PreviousGhostPositions = gv.PreviousGhostPosition.Select(p => new EnPoint(p)).ToList();
        }
Exemple #5
0
        public GetPlayerViewResp GetPlayerView(int playerId)
        {
            var addr = _serverUrl + "/ClientService.svc/json/GetPlayerView";
            var createPlayerRequest = new GetPlayerViewReq()
            {
                PlayerId = playerId,
                Auth     = GetAuth()
            };
            var            data       = Newtonsoft.Json.JsonConvert.SerializeObject(createPlayerRequest);
            var            response   = RestHelper.SendPost(new Uri(addr), data);
            JsonSerializer serializer = new JsonSerializer();

            using (StreamReader streamReader = new StreamReader(response.GetResponseStream()))
            {
                return((GetPlayerViewResp)serializer.Deserialize(streamReader, typeof(GetPlayerViewResp)));
            }
        }
 public GetPlayerViewResp GetPlayerView(GetPlayerViewReq req)
 {
     return(HandleServiceCall(req, new GetPlayerViewResp(), GetPlayerViewImpl));
 }