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); }
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(); } }