Exemplo n.º 1
0
        public Task CardPlayed(CardPlayedDto data)
        {
            var ctx = new GameEventContext(data.GameId, data.RoundIndex);
            var e   = new CardPlayed(ctx, new PlayerIndex(data.PlayerIndex), _deck[data.CardIndex]);

            _gameEventCallback(e);
            return(Task.CompletedTask);
        }
Exemplo n.º 2
0
        public void TakeTurn()
        {
            if (GamePlayStrategy == null)
            {
                return;
            }
            var card = GamePlayStrategy.GetMove(GameService.PlayedCards, Hand.Cards);

            CardPlayed?.Invoke(this, new CardPlayedEventArgs(this, card));
        }
Exemplo n.º 3
0
        public bool TryPlayCard(int player, Card card)
        {
            // TODO where to transform data
            var move = new CardPlayed(_gameEventContext, new PlayerIndex(player), card);

            if (State.IsValid(move))
            {
                Dispatch(move);
                return(true);
            }
            return(false);
        }
Exemplo n.º 4
0
        public void CardPlayedIsMappedAndBack()
        {
            var ctx        = new GameEventContext("g", 12);
            var aCard      = new Card(Suit.Diamonds, Rank.King);
            var cardPlayed = new CardPlayed(ctx, new PlayerIndex(2), aCard);

            var persistable = GameEventSerializer.Convert(cardPlayed);
            var recreated   = GameEventSerializer.Convert(persistable) as CardPlayed;

            Assert.Equal(2, recreated.Player.Value);
            Assert.Equal(aCard, recreated.Card);
        }
 private void CardPlayedHandler(PacketHeader header, Connection connection, CardPlayed incomingObject)
 {
     lock (_user)
     {
         if (!_user.PlayerInfo.Id.Equals(incomingObject.Player.Id))
         {
             Console.WriteLine();
             Console.WriteLine("Player " + incomingObject.Player.Username + " played " +
                               _user.CardsHandler.CardToReadableString(incomingObject.Card));
             Prompt();
         }
         _user.CardsHandler.AddCardToBoard(incomingObject);
     }
 }
Exemplo n.º 6
0
        public void OnNext(GameEvent e)
        {
            var task = e
                       switch
            {
                HandReceived hand => _client.HandReceived(GetHandReceivedData(e.Context, hand)),
                CardPlayed move => _client.CardPlayed(new CardPlayedDto(e.Context.GameId, e.Context.RoundIndex, move.Player, GetIndex(move.Card))),
                GuessGiven guess => _client.GuessGiven(new GuessGivenDto(e.Context.GameId, e.Context.RoundIndex, guess.Player, guess.Count)),
                TrickWon trick => _client.TrickWon(new TrickWonDto(e.Context.GameId, e.Context.RoundIndex, trick.Player)),
                _ => Task.CompletedTask,
            };

            task.GetAwaiter().GetResult();
        }
Exemplo n.º 7
0
            public void OnNext(GameEvent e)
            {
                var player  = _playerNames[e.Player];
                var message = e
                              switch
                {
                    GuessGiven guess => $"{player} made guess of <{guess.Count}>",
                    CardPlayed move => $"{player} played {move.Card} ({move.Card.Rank} of {move.Card.Suit})",
                    HandReceived received => $"{player} got {received.Hand.NumberOfCards} cards",
                    TrickWon trick => $"{player} won the trick",
                    _ => e.ToString(),
                };

                Render(message, ConsoleColor.DarkGreen);
            }
Exemplo n.º 8
0
        public void PlayCard(ClaimsPrincipal user, PlanningPokerCard card, string sessionId)
        {
            var session = _sessionsRepository.Find(sessionId);
            var play    = new PlanningPokerPlay
            {
                Id              = Guid.NewGuid().ToString(),
                Card            = card,
                User            = user,
                Story           = session.CurrentTurn.Story,
                CreatedDateTime = DateTime.Now
            };

            session.CurrentTurn.Plays.Add(play);

            CardPlayed?.Invoke(this, new CardPlayedEventArgs(sessionId, play));
        }
        private void CardPlayedHandler(ClientInfo client, Object request)
        {
            CardPlayed pckt         = (CardPlayed)request;
            RoomDealer RoomOfClient = Rooms.FindRoomFromClientId(client.Id);

            RoomOfClient.GameInfo.PlayersInfo[client.Id].CardPlayedOnTable = pckt.Card;
            RoomOfClient.GameInfo.PlayersInfo[client.Id].RemoveCardPlayed(pckt.Card);
            RoomOfClient.SendMessageToRoom("CardPlayed", pckt);
            if (RoomOfClient.GameInfo.IsTurnOver())
            {
                RoomOfClient.HandleTurnOver();
            }
            else
            {
                if (RoomOfClient.GameInfo.IsFirstCardToPlayed())
                {
                    RoomOfClient.GameInfo.ColorPlayed = pckt.Card.Color;
                }
                Net.GetConnectionByClientId(RoomOfClient.GetNextPlayerIdTurnById(client.Id)).SendObject("YourTurnPlayCard", new YourTurnPlayCard());
            }
        }
Exemplo n.º 10
0
 protected virtual void OnCardPlayed(ICard card)
 {
     CardPlayed?.Invoke(this, new CardEventArgs {
         Card = card
     });
 }
Exemplo n.º 11
0
 public void OnCardAccepted(object sender, CardPlayedAcceptedEventArgs e)
 {
     CardPlayed?.Invoke(sender, e);
 }
Exemplo n.º 12
0
 public void SubscribeCardPlayed(CardPlayed del)
 {
     _cardPlayedEvent += del;
 }
Exemplo n.º 13
0
 public void UnsubscribeCardPlayed(CardPlayed del)
 {
     _cardPlayedEvent -= del;
 }
Exemplo n.º 14
0
 public CardPlayedPayload(CardPlayed cp) : base(cp)
 {
     Card = SerializableCard.From(cp.Card);
 }
Exemplo n.º 15
0
 public void OnCardPlayed(int playerId, Card card)
 {
     Console.WriteLine(Players[playerId] + " plays " + card);
     CardPlayed?.Invoke(playerId, card);
 }
Exemplo n.º 16
0
 public void AddCardToBoard(CardPlayed card)
 {
     _board.Add(card);
 }