コード例 #1
0
        public bool IsSnap(CardSet centralPile)
        {
            if (centralPile.Count() < 2)
            {
                return(false);
            }

            return(centralPile.Cards.ElementAt(centralPile.Cards.Count - 1).Rank == centralPile.Cards.ElementAt(centralPile.Cards.Count - 2).Rank);
        }
コード例 #2
0
        public bool IsSnap(CardSet centralPile)
        {
            if (centralPile.Count() < 2)
            {
                return(false);
            }

            var currentCardRank = centralPile.Cards.ElementAt(centralPile.Cards.Count - 1).Rank;

            return(centralPile.Cards.Count(c => c.Rank == currentCardRank) > 1);
        }
コード例 #3
0
            public void Resolve(IReactionScope scope)
            {
                var revealedTreasures = new CardSet();

                2.Times(() =>
                {
                    var revealedCard = scope.RevealCardFromDeck();
                    if (revealedCard.IsTreasure && !revealedTreasures.Contains(revealedCard))
                    {
                        revealedTreasures.Add(revealedCard, scope);
                    }
                });
                if (revealedTreasures.Count() == 1)
                {
                    scope.Publish(new TrashTreasureCardFromThief(TurnScope, scope, revealedTreasures.Single()));
                }
                else if (revealedTreasures.Count() == 2)
                {
                    TurnScope.Publish(new ChooseTreasureCardToTrashFromThief(TurnScope, scope, revealedTreasures));
                }
            }
コード例 #4
0
        public override void PlayAsAction(ITurnScope turnScope)
        {
            CardSet drawnTreasures = new CardSet();
            CardSet revealedCards  = new CardSet();

            do
            {
                var card = turnScope.RevealCardFromTopOfDeck();
                if (card.IsTreasure)
                {
                    drawnTreasures.Add(card, turnScope);
                }
                else
                {
                    revealedCards.Add(card, turnScope);
                }
            } while (drawnTreasures.Count() < 2);

            turnScope.PutCardsIntoHand(drawnTreasures);
            turnScope.PutCardsIntoDiscardPile(revealedCards);
        }
コード例 #5
0
 public override string ToString()
 {
     return(String.Format("{0}: {1}/{2}/({3})  H: {4}, P: {5}, Di: {6}, Dk {7}", Player.Name, Actions, Buys, Coins, Hand.Count(), _cardsInPlay.Count(), _player.DiscardPile.Count(), _player.Deck.Count()));
 }