Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        if (players.canPlay)
        {
            SelectCard();

            RaycastHit hitInfo;
            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            bool       hit = Physics.Raycast(ray, out hitInfo, cardLayer);
            if (hit)
            {
                CardDataHolder card = hitInfo.transform.gameObject.GetComponent <CardDataHolder>();
                if (card.cardState == CardDataHolder.CardState.Hidden)
                {
                    card.cardState = CardDataHolder.CardState.Hovered;
                    card.UpdateSprite();
                    for (int i = 0; i < cards.Count; i++)
                    {
                        if (cards[i] != card)
                        {
                            if (cards[i].cardState != CardDataHolder.CardState.Selected)
                            {
                                if (cards[i].cardState != CardDataHolder.CardState.Used)
                                {
                                    cards[i].cardState = CardDataHolder.CardState.Hidden;
                                    cards[i].UpdateSprite();
                                }
                            }
                        }
                    }
                }
            }
        }
    }
Esempio n. 2
0
 private void GenerateCards()
 {
     for (int i = 0; i < cardList.cardList.Count; i++)
     {
         Vector3        cardPos  = cardPosition[i];
         GameObject     newCard  = Instantiate(card, cardPos, Quaternion.identity);
         CardDataHolder cardData = newCard.GetComponent <CardDataHolder>();
         cardData.type       = cardList.cardList[i].cardType;
         cardData.cardSprite = cardList.cardList[i].cardAsset;
         controller.cards.Add(cardData);
     }
     playersState.InitializeCards();
 }
Esempio n. 3
0
    private void SelectCard()
    {
        if (Input.GetMouseButtonDown(0))
        {
            bool allfalse = true;
            foreach (CardDataHolder card in cards)
            {
                bool b = card.isCrRunning;
                if (b)
                {
                    allfalse = false;
                    break;
                }
            }
            if (allfalse)
            {
                RaycastHit hitInfo;
                Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                bool       hit = Physics.Raycast(ray, out hitInfo, cardLayer);
                if (hit)
                {
                    CardDataHolder currentCard = hitInfo.transform.gameObject.GetComponent <CardDataHolder>();
                    if (currentCard.cardState == CardDataHolder.CardState.Hovered)
                    {
                        currentCard.isHovered  = false;
                        currentCard.isSelected = true;
                        currentCard.cardState  = CardDataHolder.CardState.Selected;
                        currentCard.UpdateSprite();
                        selectedCards.Add(currentCard);
                    }

                    for (int i = 0; i < selectedCards.Count; i++)
                    {
                        //selectedCards[i].UpdateSprite();
                    }
                }
            }
        }
    }