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); }
public IAct GetActNamed(string name) { IAct act = _acts[name]; act.Reset(); return(act); }
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); }