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 }); }
public void SelectPrizeCardsMessage() { var message = new SelectPrizeCardsMessage(1); var data = SerializeAndBack(message); Assert.Equal(1, data.Amount); }
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); }
internal void Init(SelectPrizeCardsMessage message, IEnumerable <Card> cards) { minCount = 1; limit = 1; InitForCards(cards, message.Amount, message.Amount); }