public ActionResult PlayCard(Guid id) { var message = new PlayCardMessage(playerId: Client.PlayerId, cardId: id); Client.AcceptMessage(message); return(new EmptyResult()); }
public void WhenTellsTheHostToPlay(string playerName, string cardName) { var client = _clients.Single(c => c.PlayerName == playerName); var gameState = _gameHost.GetGameState(client); var cardId = gameState.Hand.Single(p => p.Name == cardName).Id; var message = new PlayCardMessage(client.PlayerId, cardId); _gameHost.AcceptMessage(message); }
public void Respond(IGameClient client, ActivityModel activity, GameViewModel state) { var action = state.Hand .Where(c => c.Is(CardType.Action)) .Where(c => AISupportedActions.All.Contains(c.Name)) .OrderByDescending(c => AISupportedActions.PlusActions.Contains(c.Name)) .ThenByDescending(c => c.Cost) .First(); var message = new PlayCardMessage(client.PlayerId, action.Id); client.AcceptMessage(message); }
private static void HandlePlayCard(Client client, PlayCardMessage playCardMessage) { client.Points += playCardMessage.CardValue; foreach (var player in server.clients) if (player.Points == 0) return; Client playerWithHighestPoints = null; foreach (var player in server.clients) if (playerWithHighestPoints == null || playerWithHighestPoints.Points < player.Points) playerWithHighestPoints = player; if (playerWithHighestPoints.Points < 100) return; Console.Write("Game over, player " + playerWithHighestPoints.PlayerName + " has won with " + playerWithHighestPoints.Points); foreach (var player in server.clients) player.Send(new GameOverMessage { Winner = playerWithHighestPoints.PlayerName, Points = playerWithHighestPoints.Points }); }
static void Main() { #if DEBUG const string hostname = "localhost"; #else Console.Write("Enter ChatServer Ip: "); var hostname = Console.ReadLine(); #endif var server = new Client(hostname); server.Received += MessageReceived; Console.Write("Please enter your player name: "); var playerName = Console.ReadLine(); server.Send(new PlayerNameMessage { PlayerName = playerName }); while (true) { var random = new Random((int)DateTime.Now.Ticks); var card = new PlayCardMessage { CardValue = random.Next(5, 50) }; Console.WriteLine("Press enter to play your card (Value=" + card.CardValue + ")"); Console.ReadLine(); server.Send(card); } }