Пример #1
0
    /// <summary>
    /// Create a new deck 
    /// </summary>
    /// <param name="pCardType">The cards type are the cards the deck needs to contain</param>
    /// <param name="pDeckType">The type of deck we want</param>
    /// <returns></returns>
    public static Deck GreateDeck(DeckCardType pCardType, DeckType pDeckType, Vector3 pPosition)
    {
        switch (pCardType)
        {
            case DeckCardType.Poker:
            {
                return GreatePokerDeck(pDeckType, pPosition);
            }
        }

        System.Diagnostics.Debug.Assert(false,"The card type is not implemented");
        return null;
    }
Пример #2
0
 private static void AddDeckCards(Deck newDeck, List <ApiDeckCard> cards, DeckCardType cardType, Dictionary <string, Card> cardsByCode)
 {
     foreach (var card in cards)
     {
         newDeck.DeckCards.Add(
             new DeckCard
         {
             CardId   = cardsByCode[card.Code].Id,
             Card     = cardsByCode[card.Code],
             CardType = cardType,
             Count    = card.Count,
             Deck     = newDeck
         });
     }
 }
Пример #3
0
        private void UpdateDeckCards(Deck deck, List <ApiDeckCard> cards, DeckCardType cardType, Dictionary <string, Card> cardsByCode)
        {
            var existingCodes = deck.DeckCards.Where(dc => dc.CardType == cardType).Select(dc => dc.Card.Code).ToList();
            var updateCodes   = cards.Select(c => c.Code).ToList();

            var newCodes     = updateCodes.Except(existingCodes);
            var removedCodes = existingCodes.Except(updateCodes);

            var toRemove = deck.DeckCards.Where(dc => dc.CardType == cardType && removedCodes.Contains(dc.Card.Code)).ToList();

            foreach (var deckCard in toRemove)
            {
                deck.DeckCards.Remove(deckCard);
            }

            var toAdd = cards.Where(dc => newCodes.Contains(dc.Code)).ToList();

            AddDeckCards(deck, toAdd, cardType, cardsByCode);
        }
Пример #4
0
 public static int CountCards(this Deck deck, DeckCardType cardType, Func <Card, bool> filterFunction)
 {
     return(deck.DeckCards.Sum(dc => dc.CardType == cardType && filterFunction(dc.Card) ? dc.Count : 0));
 }