Пример #1
0
        public ActionResult Play(
            [FromRoute, Required] string sessionId,
            [FromQuery, Required] PlayCommand playCommand,
            [FromQuery, Required, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] Guid[] itemIds,
            [FromQuery] long?startPositionTicks,
            [FromQuery] string?mediaSourceId,
            [FromQuery] int?audioStreamIndex,
            [FromQuery] int?subtitleStreamIndex,
            [FromQuery] int?startIndex)
        {
            var playRequest = new PlayRequest
            {
                ItemIds             = itemIds,
                StartPositionTicks  = startPositionTicks,
                PlayCommand         = playCommand,
                MediaSourceId       = mediaSourceId,
                AudioStreamIndex    = audioStreamIndex,
                SubtitleStreamIndex = subtitleStreamIndex,
                StartIndex          = startIndex
            };

            _sessionManager.SendPlayCommand(
                RequestHelpers.GetSession(_sessionManager, _authContext, Request).Id,
                sessionId,
                playRequest,
                CancellationToken.None);

            return(NoContent());
        }
Пример #2
0
        public void Game_Missing_PlayerType_And_ActionChoice_Throws_BadRequestError()
        {
            var playRequest = new PlayRequest();
            var response    = _gameController.Play(playRequest);

            Assert.IsType <BadRequestObjectResult>(response);
        }
Пример #3
0
        /// <summary>
        /// Executes the command.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The arguments.</param>
        /// <returns></returns>
        public override CommandResult Execute(IClient sender, string[] args)
        {
            if (args.Length != 1)
            {
                return(new CommandResult(false, Command.Play, "Usage: play <move>", true));
            }

            Direction dir;

            if (!DirectionParser.TryParse(args[0], out dir))
            {
                return(new CommandResult(false, Command.Play, "Bad <move> field.", true));
            }

            PlayRequest request = new PlayRequest(sender, dir);

            try
            {
                _model.Play(request);
                return(new CommandResult(true, Command.Play, dir.ToString(), true));
            }
            catch (Exception e)
            {
                return(new CommandResult(false, Command.Play, e.Message, true));
            }
        }
Пример #4
0
        private void OnPlaybackPlay()
        {
            // Send sound effects
            SoundFxRequest soundFxRequest = new SoundFxRequest();

            soundFxRequest.Effects = _effectsForm.GetEnabledEffects();
            _playerCommunicatorControl.SendRequest(soundFxRequest);

            // Send play request
            PlayRequest request = (PlayRequest)RequestFactory.CreateRequest(MessageType.Play);

            if (_playlistForm.GetCurrent().Count.Equals(0))
            {
                MessageBox.Show("Playlist is empty. Nothing to play", "Information");
                return;
            }
            request.Tracks = _playlistForm.GetCurrent();
            _playerCommunicatorControl.SendRequest(request);

            // TODO set state based on response
            // set controls state
            _mediaInfo.Open(_playlistForm.GetCurrent()[0]);
            _playbackControl.PlaybackStarted(_mediaInfo.GetDuration());
            _mediaInfo.Close();
        }
Пример #5
0
        /// <inheritdoc />
        public void SessionJoin(SessionInfo session, JoinGroupRequest request, CancellationToken cancellationToken)
        {
            if (session.NowPlayingItem?.Id == _group.PlayingItem.Id && request.PlayingItemId == _group.PlayingItem.Id)
            {
                _group.AddSession(session);
                _syncPlayManager.AddSessionToGroup(session, this);

                var updateSession = NewSyncPlayGroupUpdate(GroupUpdateType.GroupJoined, DateToUTCString(DateTime.UtcNow));
                SendGroupUpdate(session, BroadcastType.CurrentSession, updateSession, cancellationToken);

                var updateOthers = NewSyncPlayGroupUpdate(GroupUpdateType.UserJoined, session.UserName);
                SendGroupUpdate(session, BroadcastType.AllExceptCurrentSession, updateOthers, cancellationToken);

                // Client join and play, syncing will happen client side
                if (!_group.IsPaused)
                {
                    var playCommand = NewSyncPlayCommand(SendCommandType.Play);
                    SendCommand(session, BroadcastType.CurrentSession, playCommand, cancellationToken);
                }
                else
                {
                    var pauseCommand = NewSyncPlayCommand(SendCommandType.Pause);
                    SendCommand(session, BroadcastType.CurrentSession, pauseCommand, cancellationToken);
                }
            }
            else
            {
                var playRequest = new PlayRequest();
                playRequest.ItemIds            = new Guid[] { _group.PlayingItem.Id };
                playRequest.StartPositionTicks = _group.PositionTicks;
                var update = NewSyncPlayGroupUpdate(GroupUpdateType.PrepareSession, playRequest);
                SendGroupUpdate(session, BroadcastType.CurrentSession, update, cancellationToken);
            }
        }
Пример #6
0
        /// <summary>
        /// Sends the play command.
        /// </summary>
        /// <param name="sessionId">The session id.</param>
        /// <param name="command">The command.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns>Task.</returns>
        public Task SendPlayCommand(Guid sessionId, PlayRequest command, CancellationToken cancellationToken)
        {
            var session = GetSessionForRemoteControl(sessionId);

            var items = command.ItemIds.Select(i => _libraryManager.GetItemById(new Guid(i)))
                        .Where(i => i.LocationType != LocationType.Virtual)
                        .ToList();

            if (session.UserId.HasValue)
            {
                var user = _userManager.GetUserById(session.UserId.Value);

                if (items.Any(i => i.GetPlayAccess(user) != PlayAccess.Full))
                {
                    throw new ArgumentException(string.Format("{0} is not allowed to play media.", user.Name));
                }
            }

            if (command.PlayCommand != PlayCommand.PlayNow)
            {
                if (items.Any(i => !session.QueueableMediaTypes.Contains(i.MediaType, StringComparer.OrdinalIgnoreCase)))
                {
                    throw new ArgumentException(string.Format("{0} is unable to queue the requested media type.", session.DeviceName ?? session.Id.ToString()));
                }
            }
            else
            {
                if (items.Any(i => !session.PlayableMediaTypes.Contains(i.MediaType, StringComparer.OrdinalIgnoreCase)))
                {
                    throw new ArgumentException(string.Format("{0} is unable to play the requested media type.", session.DeviceName ?? session.Id.ToString()));
                }
            }

            return(session.SessionController.SendPlayCommand(command, cancellationToken));
        }
Пример #7
0
        private Task SendPlayCommand(PlayRequest command, string messageId, CancellationToken cancellationToken)
        {
            var dict = new Dictionary<string, string>();

            dict["ItemIds"] = string.Join(",", command.ItemIds.Select(i => i.ToString("N", CultureInfo.InvariantCulture)).ToArray());

            if (command.StartPositionTicks.HasValue)
            {
                dict["StartPositionTicks"] = command.StartPositionTicks.Value.ToString(CultureInfo.InvariantCulture);
            }
            if (command.AudioStreamIndex.HasValue)
            {
                dict["AudioStreamIndex"] = command.AudioStreamIndex.Value.ToString(CultureInfo.InvariantCulture);
            }
            if (command.SubtitleStreamIndex.HasValue)
            {
                dict["SubtitleStreamIndex"] = command.SubtitleStreamIndex.Value.ToString(CultureInfo.InvariantCulture);
            }
            if (command.StartIndex.HasValue)
            {
                dict["StartIndex"] = command.StartIndex.Value.ToString(CultureInfo.InvariantCulture);
            }
            if (!string.IsNullOrEmpty(command.MediaSourceId))
            {
                dict["MediaSourceId"] = command.MediaSourceId;
            }

            return SendMessage(command.PlayCommand.ToString(), messageId, dict, cancellationToken);
        }
Пример #8
0
        private void OnPlaybackPlay()
        {
            PlayRequest request = (PlayRequest)RequestFactory.CreateRequest(MessageType.Play);

            if (_playlistForm.GetCurrent().Count.Equals(0))
            {
                MessageBox.Show("Playlist is empty. Nothing to play", "Information");
                return;
            }

            request.Tracks = _playlistForm.GetCurrent();

            AResponse response = _playerCommunicatorControl.SendRequest(request);

            try
            {
                // if success
                if (response.ResponseType == ServerResponseType.Success)
                {
                    // set controls state
                    _mediaInfo.Open(_playlistForm.GetCurrent()[0]);
                    _playbackControl.PlaybackStarted(_mediaInfo.GetDuration());
                    _mediaInfo.Close();

                    _addonsForm.PlaybackStarted();

                    // Set volume
                    OnPlaybackVolume(_playbackControl.Volume);
                }
            }
            catch (System.Exception)
            {
            }
        }
Пример #9
0
        private void SendAudioData(IAudioClient audioClient, PlayRequest request)
        {
            try
            {
                var file = request.File;
                var cancellationToken = request.TokenSource.Token;

                using (var reader = File.OpenRead(file))
                {
                    byte[] buffer = new byte[BLOCK_SIZE];
                    int    byteCount;

                    while ((byteCount = reader.Read(buffer, 0, BLOCK_SIZE)) > 0)
                    {
                        if (cancellationToken.IsCancellationRequested)
                        {
                            audioClient.Clear();
                            return;
                        }

                        audioClient.Send(buffer, 0, byteCount);
                    }
                }

                audioClient.Wait();
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message, ex);
            }
        }
Пример #10
0
        public Task SendPlayCommand(PlayRequest command, CancellationToken cancellationToken)
        {
            var dict = new Dictionary <string, string>();

            dict["ItemIds"] = string.Join(",", command.ItemIds);

            if (command.StartPositionTicks.HasValue)
            {
                dict["StartPositionTicks"] = command.StartPositionTicks.Value.ToString(CultureInfo.InvariantCulture);
            }
            if (command.AudioStreamIndex.HasValue)
            {
                dict["AudioStreamIndex"] = command.AudioStreamIndex.Value.ToString(CultureInfo.InvariantCulture);
            }
            if (command.SubtitleStreamIndex.HasValue)
            {
                dict["SubtitleStreamIndex"] = command.SubtitleStreamIndex.Value.ToString(CultureInfo.InvariantCulture);
            }
            if (command.StartIndex.HasValue)
            {
                dict["StartIndex"] = command.StartIndex.Value.ToString(CultureInfo.InvariantCulture);
            }
            if (!string.IsNullOrWhiteSpace(command.MediaSourceId))
            {
                dict["MediaSourceId"] = command.MediaSourceId;
            }

            return(SendMessage(command.PlayCommand.ToString(), dict, cancellationToken));
        }
Пример #11
0
        public IActionResult Play([FromBody] PlayRequest playRequestModel)
        {
            try
            {
                if (playRequestModel.Player1Type == null && playRequestModel.Player1ChosenAction == null)
                {
                    return(BadRequest("No player or action has been chosen!"));
                }

                var gameModel = _gameModeBuilder.CreateFrom(playRequestModel);
                var response  = _gameProcessor.Play(gameModel);
                switch (response.StatusCode)
                {
                case HttpStatusCode.OK:
                    return(Ok(response));

                case HttpStatusCode.NotFound:
                    return(NotFound());

                case HttpStatusCode.BadRequest:
                    return(BadRequest(response.Message));

                default:
                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"Error playing game: {ex.ToString()}");
                return(StatusCode(500, "Internal server error"));
            }
        }
        public async Task <PlayResponse> ChamarSpotifyApi(PlayRequest playRequest)
        {
            // Gera token de acesso
            string token = await GerarTokenAcesso();

            // Cria objeto de conexao com spotify-api
            RestClient api = new RestClient();

            api.AddDefaultHeader("Authorization", "Bearer " + token);

            // Cria body-request para enviar para spotify-api
            RestRequest request = new RestRequest(URL_SPOTIFY_PLAY, Method.PUT);

            request.AddJsonBody(new SpotifyPlayRequest(playRequest.MusicaURI));

            // Chama spotify-api verbo PUT
            IRestResponse spotifyResponse = await api.ExecuteAsync(request);

            // Se api expirou, reseta token
            if (spotifyResponse.StatusCode == HttpStatusCode.Unauthorized)
            {
                TOKEN = string.Empty;
            }

            // Cria objeto reponse
            PlayResponse response = new PlayResponse((int)spotifyResponse.StatusCode, spotifyResponse.Content);

            return(response);
        }
Пример #13
0
            public PlayResponse Add(PlayRequest request)
            {
                var playResponse = new PlayResponse();

                playResponse.Sum = request.A + request.B;
                return(playResponse);
            }
Пример #14
0
 public Task SendPlayCommand(PlayRequest command, CancellationToken cancellationToken)
 {
     return(SendMessage(new WebSocketMessage <PlayRequest>
     {
         MessageType = "Play",
         Data = command
     }, cancellationToken));
 }
        public PlayResponse Execute(PlayRequest PlayRequest)
        {
            _currentPlayer = ((_currentPlayer != null) && _currentPlayer.Equals(_realPlayer1)) ? _realPlayer2 : _realPlayer1;

            PlayResponse response = _currentPlayer.Play(PlayRequest);

            return(response);
        }
Пример #16
0
    public void OnDataEvent(int socketID, int connectionId, byte[] buffer, NetworkError error)
    {
        DataEvent?.Invoke();

        var JsonText = Encoding.Unicode.GetString(buffer);

        NetworkMessage message = JsonConvert.DeserializeObject <NetworkMessage>(JsonText);

        switch (message.MessageType)
        {
        case DataEvents.ConnectionInfoRequest:     // Get connection info and save in connections pool
            //OnConnectionInfoEvent(hostId, connectionId, message, buffer, error);
            break;

        case DataEvents.PlayRequest:     // if connection response is ok, continue. Else, disconnect from node.
            PlayRequest?.Invoke();
            break;

        case DataEvents.PecasDoJogo:     // if connection response is ok, continue. Else, disconnect from node.
            try
            {
                DominoPecas dominoPecas = JsonConvert.DeserializeObject <DominoPecas>(message.Message.ToString());
                GlobalConfigInfo.blockchain.CreateTransaction(GlobalConfigInfo.CurrentAdversary.connectedNode.nickName, GlobalConfigInfo.ThisNode.nickName, dominoPecas);
                PecasDoJogo?.Invoke(dominoPecas);
            }
            catch (Exception e)
            {
                string exc = e.ToString();
            }
            break;

        case DataEvents.PlayerMove:     // call event to deal with this event and every gameplay script who sould know about network info should do your action
            try
            {
                Peca peca = JsonConvert.DeserializeObject <Peca>(message.Message.ToString());
                GlobalConfigInfo.blockchain.CreateTransaction(GlobalConfigInfo.CurrentAdversary.connectedNode.nickName, GlobalConfigInfo.ThisNode.nickName, peca);
                PecaEvent?.Invoke(peca);
            }
            catch (Exception e)
            {
                string exc = e.ToString();
            }

            //PlayerMove?.Invoke();

            break;

        case DataEvents.EndGame:     // call event to deal with this event and every gameplay script who sould know about network info should do your action
            EndGame?.Invoke();
            break;
        }

        print("|Data event: " +
              "/n|HostId: " + socketID +
              "/n|ConnectionId : " + connectionId +
              "/n|Error: " + error.ToString());
    }
Пример #17
0
 private void Play(string debuggerHost, int debuggerPort)
 {
     DispatchToMainThread(() =>
     {
         CurrentPlayRequest = new PlayRequest(debuggerHost, debuggerPort);
         Internal.EditorRunPlay();
         CurrentPlayRequest = null;
     });
 }
Пример #18
0
 private void Play()
 {
     DispatchToMainThread(() =>
     {
         CurrentPlayRequest = new PlayRequest();
         Internal.EditorRunPlay();
         CurrentPlayRequest = null;
     });
 }
Пример #19
0
        private PlayRequest BuildPlayRequest(int[] movePositions)
        {
            PlayRequest PlayRequest = new PlayRequest();

            PlayRequest.TicTacToeBoard = TicTacToeBoard;
            PlayRequest.PositionX      = movePositions[1];
            PlayRequest.PositionY      = movePositions[0];
            return(PlayRequest);
        }
Пример #20
0
        public Task SendPlayCommand(PlayRequest command, CancellationToken cancellationToken)
        {
            _logger.LogDebug("{0} - Received PlayRequest: {1}", this._session.DeviceName, command.PlayCommand);

            var user = command.ControllingUserId.Equals(Guid.Empty) ? null : _userManager.GetUserById(command.ControllingUserId);

            var items = new List <BaseItem>();

            foreach (var id in command.ItemIds)
            {
                AddItemFromId(id, items);
            }

            var startIndex = command.StartIndex ?? 0;

            if (startIndex > 0)
            {
                items = items.Skip(startIndex).ToList();
            }

            var playlist = new List <PlaylistItem>();
            var isFirst  = true;

            foreach (var item in items)
            {
                if (isFirst && command.StartPositionTicks.HasValue)
                {
                    playlist.Add(CreatePlaylistItem(item, user, command.StartPositionTicks.Value, command.MediaSourceId, command.AudioStreamIndex, command.SubtitleStreamIndex));
                    isFirst = false;
                }
                else
                {
                    playlist.Add(CreatePlaylistItem(item, user, 0, null, null, null));
                }
            }

            _logger.LogDebug("{0} - Playlist created", _session.DeviceName);

            if (command.PlayCommand == PlayCommand.PlayLast)
            {
                _playlist.AddRange(playlist);
            }

            if (command.PlayCommand == PlayCommand.PlayNext)
            {
                _playlist.AddRange(playlist);
            }

            if (!command.ControllingUserId.Equals(Guid.Empty))
            {
                _sessionManager.LogSessionActivity(_session.Client, _session.ApplicationVersion, _session.DeviceId,
                                                   _session.DeviceName, _session.RemoteEndPoint, user);
            }

            return(PlayItems(playlist, cancellationToken));
        }
Пример #21
0
        public Task SendPlayCommand(PlayRequest command, CancellationToken cancellationToken)
        {
            var socket = GetActiveSocket();

            return(socket.SendAsync(new WebSocketMessage <PlayRequest>
            {
                MessageType = "Play",
                Data = command
            }, cancellationToken));
        }
Пример #22
0
        public Task SendPlayCommand(PlayRequest command, CancellationToken cancellationToken)
        {
            _logger.LogDebug("{0} - Received PlayRequest: {1}", _session.DeviceName, command.PlayCommand);

            var user = command.ControllingUserId.Equals(Guid.Empty) ? null : _userManager.GetUserById(command.ControllingUserId);

            var items = new List <BaseItem>();

            foreach (var id in command.ItemIds)
            {
                AddItemFromId(id, items);
            }

            var startIndex = command.StartIndex ?? 0;
            int len        = items.Count - startIndex;

            if (startIndex > 0)
            {
                items = items.GetRange(startIndex, len);
            }

            var playlist = new PlaylistItem[len];

            playlist[0] = CreatePlaylistItem(items[0], user, command.StartPositionTicks.Value, command.MediaSourceId, command.AudioStreamIndex, command.SubtitleStreamIndex);
            for (int i = 1; i < len; i++)
            {
                playlist[i] = CreatePlaylistItem(items[i], user, 0, null, null, null);
            }

            _logger.LogDebug("{0} - Playlist created", _session.DeviceName);

            if (command.PlayCommand == PlayCommand.PlayLast)
            {
                _playlist.AddRange(playlist);
            }

            if (command.PlayCommand == PlayCommand.PlayNext)
            {
                _playlist.AddRange(playlist);
            }

            if (!command.ControllingUserId.Equals(Guid.Empty))
            {
                _sessionManager.LogSessionActivity(
                    _session.Client,
                    _session.ApplicationVersion,
                    _session.DeviceId,
                    _session.DeviceName,
                    _session.RemoteEndPoint,
                    user);
            }

            return(PlayItems(playlist, cancellationToken));
        }
Пример #23
0
        /// <summary>
        /// Plays the one move int the multiplyer game.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <exception cref="System.InvalidOperationException">You did not join any game.</exception>
        public void Play(PlayRequest request)
        {
            MazeGame game = gameManager.GetGame(request.Client);

            if (game == null)
            {
                throw new InvalidOperationException("You did not join any game.");
            }

            game.PlayMove(request.Client, request.Move);
        }
Пример #24
0
        public void Game_User_Selects_Valid_Player_Type_Returns_Ok()
        {
            var playRequest = new PlayRequest
            {
                Player1Type = Application.Constants.PlayerType.Computer
            };
            var response = _gameController.Play(playRequest);
            var result   = (((OkObjectResult)response).Value as Response <GameResult>);

            Assert.IsType <OkObjectResult>(response);
        }
Пример #25
0
        public async Task SendPlayCommand(PlayRequest command, CancellationToken cancellationToken)
        {
            _logger.Debug("{0} - Received PlayRequest: {1}", this._session.DeviceName, command.PlayCommand);

            var items = new List <BaseItem>();

            foreach (string id in command.ItemIds)
            {
                AddItemFromId(Guid.Parse(id), items);
            }

            var playlist = new List <PlaylistItem>();
            var isFirst  = true;

            var serverAddress = GetServerAddress();

            foreach (var item in items)
            {
                if (isFirst && command.StartPositionTicks.HasValue)
                {
                    playlist.Add(CreatePlaylistItem(item, command.StartPositionTicks.Value, serverAddress));
                    isFirst = false;
                }
                else
                {
                    playlist.Add(CreatePlaylistItem(item, 0, serverAddress));
                }
            }

            _logger.Debug("{0} - Playlist created", _session.DeviceName);

            if (command.PlayCommand == PlayCommand.PlayLast)
            {
                Playlist.AddRange(playlist);
            }
            if (command.PlayCommand == PlayCommand.PlayNext)
            {
                Playlist.AddRange(playlist);
            }

            _logger.Debug("{0} - Playing {1} items", _session.DeviceName, playlist.Count);

            if (!string.IsNullOrWhiteSpace(command.ControllingUserId))
            {
                var userId = new Guid(command.ControllingUserId);

                var user = _userManager.GetUserById(userId);

                await _sessionManager.LogSessionActivity(_session.Client, _session.ApplicationVersion, _session.DeviceId,
                                                         _session.DeviceName, _session.RemoteEndPoint, user).ConfigureAwait(false);
            }

            await PlayItems(playlist).ConfigureAwait(false);
        }
Пример #26
0
        private void MakeMove(int[] movePositions)
        {
            if (_ticTacToeControlsViewModel.GameStarted && TicTacToeBoard[movePositions[1]][movePositions[0]] == ControlEnums.Player.None)
            {
                PlayRequest request = BuildPlayRequest(movePositions);

                PlayResponse response = _ticTacToeControlsViewModel.GameScenario.Execute(request);

                PlayerWon = response.PlayerWon;
            }
        }
Пример #27
0
        public void Game_User_Selects_Valid_Action_Returns_Ok()
        {
            var playRequest = new PlayRequest
            {
                Player1ChosenAction = Application.Constants.GameAction.Paper
            };
            var response = _gameController.Play(playRequest);
            var result   = (((OkObjectResult)response).Value as Response <GameResult>);

            Assert.IsType <OkObjectResult>(response);
            Assert.True(result.Data.Player1Action == Application.Constants.GameAction.Paper.ToString());
        }
Пример #28
0
        private void OnPlaybackNext()
        {
            PlayRequest request = (PlayRequest)RequestFactory.CreateRequest(MessageType.Play);

            if (String.IsNullOrEmpty(_playlistForm.GoToNext()))
            {
                MessageBox.Show("Nothing to play. Check playlist", "Information");
                return;
            }

            OnPlaybackPlay();
        }
Пример #29
0
        private void OnPlaybackPrevious()
        {
            PlayRequest request = (PlayRequest)RequestFactory.CreateRequest(MessageType.Play);

            if (string.IsNullOrEmpty(_playlistForm.GoToPrevious()))
            {
                MessageBox.Show("Playlist is empty. Nothing to play", "Information");
                return;
            }

            OnPlaybackPlay();
        }
Пример #30
0
        public Task SendPlayCommand(PlayRequest command, CancellationToken cancellationToken)
        {
            var dict = new Dictionary <string, string>();

            dict["ItemIds"] = string.Join(",", command.ItemIds);

            if (command.StartPositionTicks.HasValue)
            {
                dict["StartPositionTicks"] = command.StartPositionTicks.Value.ToString(CultureInfo.InvariantCulture);
            }

            return(SendMessage(command.PlayCommand.ToString(), dict, cancellationToken));
        }
Пример #31
0
        public GameplayScreen(PlayRequest request)
        {
            mRequest = request;
            TransitionOnTime = TimeSpan.FromSeconds(1.5);
            TransitionOffTime = TimeSpan.FromSeconds(0.5);
            mScene = null;
            mViews = new ObservableCollection<PlayerView>();
            mActorMan = null;
            mScreenLayout = ViewportLayout.Invalid;
            mDrawSegments = new List<DrawSegment>();
            mViewContentLoader = null;
            mPauseAlpha = 0.5f;
            mFrameCounter = 0;
            mFrameRate = 0;
            mFrameRateTimer = new TimeSpan();

            mFrameTimes = new Queue<double>();
            for (int f = 0; f < 30; ++f)
            {
                mFrameTimes.Enqueue(160.0d);
            }

            mPrevFrameTime = -1.0d;
        }
Пример #32
0
        private void StartGame(PlayerIndex inputIndex)
        {
            GameResources.PlaySession = new PlaySession(); // Depend on the screen manager to clean this up.

            PlayerInfo playerOne = new PlayerInfo(0, PlayerInfo.PlayerType.Local);
            GameResources.PlaySession.Players.Add(playerOne);
            GameResources.PlaySession.LocalPlayers.Add(playerOne.PlayerId, inputIndex);

            // TODO: P2: Go through character selection screen first.

            PlayRequest testPlay = new PlayRequest();
            testPlay.LevelName = "levels\\Hub";
            CharacterInfo testChar = new CharacterInfo();
            testChar.TemplateName = "Mechadrone";
            testPlay.CharacterSelections.Add(playerOne.PlayerId, testChar);

            LoadingScreen.Load(ScreenManager, true, inputIndex, new GameplayScreen(testPlay));
        }
Пример #33
0
        private void LoadNewLevel(string levelName)
        {
            PlayRequest pr = new PlayRequest();
            pr.LevelName = levelName;
            for (int p = 0; p < GameResources.PlaySession.Players.Count; ++p)
            {
                CharacterInfo testChar;
                if (p < GameResources.GameDossier.Characters.Count)
                {
                    testChar = GameResources.GameDossier.Characters[p];
                }
                else
                {
                    testChar = new CharacterInfo();
                }

                pr.CharacterSelections.Add(GameResources.PlaySession.Players[p].PlayerId, testChar);
            }

            LoadingScreen.Load(ScreenManager, true, ControllingPlayer, new GameplayScreen(pr));
        }