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); }