private static void HandleOnWordGuessPackage(WordGuessPackage package) { var match = GetMatchByUid(package.MatchUid); if (match.WordToDraw == null) { return; } if (String.Equals(match.WordToDraw.Value, package.GuessedWord, StringComparison.InvariantCultureIgnoreCase)) { foreach (var matchPlayer in match.Players) { _server.Router.DistributePackage(new WordGuessCorrectPackage(package.SenderUid, Router.ServerWildcard, matchPlayer.Uid)); } match.CalculateAndRaiseScore(package.SenderUid); //Check if all players (exept the drawing player) have guessed the word and stop this subround! if (match.HasEveryPlayerGuessedTheWord()) { match.StopSubRoundTimer(); } } else { foreach (var matchPlayer in match.Players) { _server.Router.DistributePackage(new WordGuessPackage(package.GuessedWord, match.MatchUid, package.PlayerUid, Router.ServerWildcard, matchPlayer.Uid)); } } }
private void HandleOnWordGuessedByOtherPlayer(WordGuessPackage package) { InvokeGui(() => { var player = GetPlayerByUid(package.PlayerUid); if (player != null) { _viewModel.Guesses.Add(new Guess(player.Username, package.GuessedWord, false)); Log.Debug($"Other user guessed a word: {package}"); ScrollGuessListToLastItem(); } }); }