Example #1
0
        public void ReplaceWord(Player player, WordTile tile, string newWord)
        {
            if (this.CanReplaceWord(player).IsFailure(out var message))
            {
                throw new InvalidOperationException(message);
            }

            AddPublicEvent(GameEvent.OrganizerReplacedWord(DateTime.Now, tile.Word, newWord));

            tile.ReplaceWord(newWord);
        }
Example #2
0
        public void SetPlayerVote(Player player, WordTile tile)
        {
            RemovePlayerVote(player);

            if (tile.IsRevealed)
            {
                throw new InvalidOperationException();
            }

            tile.Votes.Add(new PlayerVote(player.Team, player.Number, player.Name));

            AddPublicEvent(GameEvent.PlayerVotedWord(player, DateTime.Now, tile.Word));

            if (tile.Votes.Count == Researchers.Count(p => p.Team == player.Team))
            {
                CurrentTurn.SetToTallying();
            }
        }