Exemplo n.º 1
0
            public async Task Handle(PacManDeadEvent notification, CancellationToken cancellationToken)
            {
                if (_gameStats.IsDemo)
                {
                    IAct act = await _mediator.Send(new GetActRequest("AttractAct"), cancellationToken);

                    await act.Reset();

                    _game.SetAct(act);

                    return;
                }

                PlayerStats currentPlayerStats = _gameStats.CurrentPlayerStats;

                if (currentPlayerStats.LivesRemaining == 0 || _gameStats.IsGameOver)
                {
                    await _mediator.Publish(new PlayerHasNoLivesEvent(), cancellationToken);

                    return;
                }

                _gameStats.ChoseNextPlayer();

                await _mediator.Publish(new PlayerStartingEvent(), cancellationToken);
            }
Exemplo n.º 2
0
        public IAct GetActNamed(string name)
        {
            IAct act = _acts[name];

            act.Reset();

            return(act);
        }
Exemplo n.º 3
0
        public async Task Handle(GameOverEvent notification, CancellationToken cancellationToken)
        {
            await _storage.SetHighScore(_gameStats.HighScore);

            if (_gameStats.IsGameOver)
            {
                // ReSharper disable once HeapView.BoxingAllocation
                IAct act = await _mediator.Send(new GetActRequest("AttractAct"), cancellationToken);

                await act.Reset();

                _game.SetAct(act);

                return;
            }

            _gameStats.ChoseNextPlayer();

            await _mediator.Publish(new PlayerStartingEvent(), cancellationToken);
        }