public void SetCards(List <Card> newCards, bool faceDown = false) { Cards = newCards; foreach (Transform child in transform) { Destroy(child.gameObject); } cardObjects.Clear(); float cardSpacing = 12.0f; float firstCardOffset = -1 * (Cards.Count - 1) / 2.0f * cardSpacing; for (int i = 0; i < Cards.Count; i++) { GameObject newCard = Instantiate(CardPrefab, transform); cardObjects.Add(newCard); CardBehavior cardBehavior = newCard.GetComponent <CardBehavior>(); SelectableObjectBehavior selectableObjectBehavior = newCard.GetComponent <SelectableObjectBehavior>(); //selectableObjectBehavior.ClickEnabled = CanChooseCard; cardBehavior.SetCard(Cards[i], faceDown); cardBehavior.CardSelectedEvent.AddListener(OnCardClick); newCard.transform.localPosition = new Vector3(firstCardOffset + i * cardSpacing, 0.0f, 0.0f); } }
public void SetSelectableCards(bool canSelect, CardSuit?allowedSuit = null) { foreach (GameObject cardObj in cardObjects) { if (cardObj) //in case destroyed and didn't cleanup list { CardBehavior cardB = cardObj.GetComponent <CardBehavior>(); SelectableObjectBehavior selBehave = cardObj.GetComponent <SelectableObjectBehavior>(); if (canSelect && (allowedSuit == null || !hasCardOfSuit((CardSuit)allowedSuit) || (cardB.GetCard().Suit == allowedSuit))) { selBehave.ClickEnabled = true; } else { selBehave.ClickEnabled = false; } } } }