//****************** User Interaction *********************// public void OnCardSelected(Card card) { if (gameState == GameState.TurnSelectingNumber) { if (card.isInStack) { takeButton.gameObject.active = !takeButton.gameObject.active; cardAnimator.openLast3CardsFromStack(takeButton.gameObject.active); //OnTakeStackCards(); } else if (card.isTouchable) { if (card.OwnerId == currentTurnPlayer.PlayerId) { List <Card> newSelectedCards = new List <Card>(); if (selectedCards.Count > 0) { newSelectedCards.AddRange(selectedCards); if (card.Rank == selectedRank && !newSelectedCards.Contains(card)) //newSelectedCards[0].Rank { newSelectedCards.Add(card); } else { newSelectedCards.Clear(); //foreach (Card c in selectedCards) //{ // c.OnSelected(false); //} //selectedRank = 0; //selectedCardValue = Card.NO_VALUE; //selectedCardValues.Clear(); if (selectedCards.Count > 0) { foreach (Card c in selectedCards) { c.OnSelected(false); } selectedRank = 0; //TODO REMOvE? selectedCards.Clear(); selectedCardValues.Clear(); } } } else { newSelectedCards.Add(card); } selectedCards = newSelectedCards; selectedCardValues = GetSelectedCardValues(); selectedRank = card.Rank; //selectedCardValue = card.GetCardValue(); if (selectedCards.Count > 0) { foreach (Card c in selectedCards) { c.OnSelected(true); } } else { card.OnSelected(true); } SetMessage($"Throw {card.Rank} for {currentTurnTargetPlayer.PlayerName}?"); } } } }