示例#1
0
        public void SelectPrizeCard(int amount, GameField game)
        {
            if (amount <= 0)
            {
                return;
            }

            var message = new SelectPrizeCardsMessage(amount).ToNetworkMessage(NetworkId.Generate());

            var response   = NetworkPlayer.SendAndWaitForResponse <CardListMessage>(message);
            var cardsDrawn = new List <Card>();

            foreach (var cardId in response.Cards)
            {
                var card = game.Cards[cardId];
                PrizeCards.Remove(card);
                Hand.Add(card);
                cardsDrawn.Add(card);
            }

            game.SendEventToPlayers(new DrawCardsEvent()
            {
                Cards = new List <Card>(cardsDrawn), Player = Id
            });
        }
示例#2
0
        public void SelectPrizeCardsMessage()
        {
            var message = new SelectPrizeCardsMessage(1);

            var data = SerializeAndBack(message);

            Assert.Equal(1, data.Amount);
        }
示例#3
0
        protected override void Activate(Player owner, Player opponent, int damageTaken, GameField game)
        {
            var message  = new SelectPrizeCardsMessage(1).ToNetworkMessage(NetworkId.Generate());
            var response = owner.NetworkPlayer.SendAndWaitForResponse <CardListMessage>(message);

            var selectedCard = game.Cards[response.Cards.First()];

            owner.PrizeCards.Remove(selectedCard);

            var topOfDeck = owner.Deck.Cards.Pop();

            owner.PrizeCards.Add(topOfDeck);

            owner.Deck.Cards.Push(selectedCard);
        }
示例#4
0
 internal void Init(SelectPrizeCardsMessage message, IEnumerable <Card> cards)
 {
     minCount = 1;
     limit    = 1;
     InitForCards(cards, message.Amount, message.Amount);
 }