Beispiel #1
0
 public bool CanDiscard(Card card)
 {
     if (DiscardPileTop == null)
         return true;
     return card.Number == DiscardPileTop.Number
         || card.Type != CardType.Number && card.Type == DiscardPileTop.Type
         || card.Color == DiscardPileTop.Color
         || card.Color == CardColor.Black;
 }
Beispiel #2
0
 internal void Discard(Card card)
 {
     if (!CanDiscard(card))
         throw new WrongCardException() { Card = card };
     _discardPile.Add(card);
     if (card.Type != CardType.Number)
         if (SpecialCardDiscarded != null)
         {
             var eventArgs = new SpecialCardDiscardedEventArgs(card.Type);
             SpecialCardDiscarded(this, eventArgs);
             if (DiscardPileTop.Color == CardColor.Black)
                 DiscardPileTop.Color = eventArgs.ChoosenColor.Value;
         }
 }
Beispiel #3
0
 internal void UndoDiscard(int index, Card card)
 {
     _cards.Insert(index, card);
 }