Exemplo n.º 1
0
        public string SendDisplayingCardToStack(CardAnimator cardAnimator, List <byte> cardValues, bool isLocalPlayer)
        {
            string result = "";

            List <Card> allPossibleCards = new List <Card>();

            allPossibleCards.AddRange(DisplayingCards);

            if (DisplayingCards.Count == 0 && isFinishedHandCards())
            {
                allPossibleCards.AddRange(DisplayingBooks);
                foreach (Card card in DisplayingBooks)
                {
                    card.isTouchable = true;
                }
            }
            else
            {
                foreach (Card card in DisplayingBooks)
                {
                    card.isTouchable = false;
                }
            }
            if (DisplayingBooks.Count == 0 && allPossibleCards.Count == 0 && isFinishedDisplayingBooks())
            {
                allPossibleCards.AddRange(HiddenBooks);
                foreach (Card card in HiddenBooks)
                {
                    card.isTouchable = true;
                }
            }
            else
            {
                foreach (Card card in HiddenBooks)
                {
                    card.isTouchable = false;
                }
            }

            for (int i = 0; i < cardValues.Count; i++)
            {
                byte cardValue = cardValues[i];
                Card card      = null;

                if (isLocalPlayer)
                {
                    foreach (Card c in allPossibleCards)
                    {
                        if ((c.Rank == Card.GetRank(cardValue) && c.Suit == Card.GetSuit(cardValue)) || isFinishedDisplayingBooks())
                        {
                            card = c;
                            card.SetCardValue(cardValue);
                            break;
                        }
                    }
                }
                else
                {
                    card = allPossibleCards[i];           //[i] ??
                    card.SetCardValue(cardValue);
                    //result = false;
                }

                result = isCardOkToThrow(cardAnimator, card);
            }
            return(result);
        }