Exemple #1
0
    public void OnCardClicked(CardGraphic cardGraphic)
    {
        GameManager        gameManager   = GameManager.Instance;
        List <CardGraphic> selectedCards = gameManager.selectedCards;

        if (!selectedCards.Contains(cardGraphic) && selectedCards.Count < CARDS_IN_A_SET)
        {
            selectedCards.Add(cardGraphic);
            cardGraphic.Select();
        }
        else
        {
            selectedCards.Remove(cardGraphic);
            cardGraphic.Deselect();
        }

        if (selectedCards.Count == CARDS_IN_A_SET && gameManager.IsValidSet(selectedCards))
        {
            Debug.Log("set!");

            setCount++;
            gameManager.UpdateSetCount();
            gameManager.PlaceNewCards();
        }
    }
    private void AddCardToHand(int num)
    {
        GameObject  oldCard     = (GameObject)hand[num];
        GameObject  newCard     = Instantiate(cardRef);
        CardGraphic cardGraphic = newCard.GetComponent <CardGraphic>();

        newCard.transform.SetParent(handPanel.transform, false);
        cardGraphic.handIndex = num;
        cardGraphic.SetItem((CardInfo)GameManager.singleton.player.hand[num]);

        newCard.transform.SetSiblingIndex(num);
        Destroy(oldCard);

        hand[num] = newCard;
    }
    private void UpdateHand()
    {
        CardInfo[] playerHand = GameManager.singleton.player.hand;
        if (playerHand == null)
        {
            return;
        }

        for (int i = 0; i < 5; i++)
        {
            //bool placeEmpty = hand[i].GetComponent<CardGraphic>().isPlaceholder;
            bool placeEmpty = !hand[i].GetComponent <CardGraphic>();

            // New card at placeholder spot
            if (placeEmpty && playerHand[i] != null)
            {
                AddCardToHand(i);
            }
            // Removed card
            else if (!placeEmpty && playerHand[i] == null)
            {
                RemoveCardFromHand(i);
            }

            // Ensure card in correct slot
            if (hand[i].transform.GetSiblingIndex() != i)
            {
                hand[i].transform.SetSiblingIndex(i);
            }

            // Ensure card graphic correct
            CardGraphic cg = hand[i].GetComponent <CardGraphic>();
            if (cg != null && cg.GetCard() != playerHand[i])
            {
                cg.SetItem((CardInfo)playerHand[i]);
            }
        }
    }