public async void Check() { var currentWord = _gameRepository.Word; if (!currentWord.IsCompleted()) { if (_gameRepository.LastGuess.IsCorrect) { return; } _gameRepository.RemainingLives -= 1; if (_gameRepository.RemainingLives == 0) { _eventDispatcherService.Dispatch(new GameOverSignal()); } return; } var(word, token) = await _gameService.GetSolution(); _gameRepository.Word = word; _gameRepository.GameToken = token; if (word.Equals(currentWord)) { _eventDispatcherService.Dispatch(new WordCompletedSignal()); } }
public async Task Start() { _eventDispatcherService.Dispatch(new UpdateLoadingScreenSignal(true)); var(word, token) = await _gameService.StartNewGame(); _gameRepository.RemainingLives = _configurationGameRepository.StartLives; _gameRepository.Word = word; _gameRepository.GameToken = token; _eventDispatcherService.Dispatch(new NewWordSignal(word.Value)); _eventDispatcherService.Dispatch(new UpdateLoadingScreenSignal(false)); }
public async Task Guess(char letter) { _eventDispatcherService.Dispatch(new UpdateLoadingScreenSignal(true)); var(guess, token) = await _gameService.GuessLetter(letter); _gameRepository.Word = guess.UpdatedWord; _gameRepository.GameToken = token; _gameRepository.LastGuess = guess; _eventDispatcherService.Dispatch( new GuessResultSignal ( letter.ToString(), guess.UpdatedWord.Value, guess.IsCorrect ) ); _checkSolution.Check(); _eventDispatcherService.Dispatch(new UpdateLoadingScreenSignal(false)); }
public async void Restart() { await _startGame.Start(); _eventDispatcherService.Dispatch(new RestartGameSignal()); }