예제 #1
0
    public void Collect()
    {
        int cardCount = 0;

        //cardModel.isPick = false;
        if (CardModel.waitingCards.Count == 3)
        {
            foreach (int i in deck.GetDeck())
            {
                cardModel = cards[i].GetComponent <CardModel>();
                if (!cardModel.isPick)
                {
                    float   x    = cardOffset * cardCount;
                    Vector3 spos = cards[i].transform.position;
                    Vector3 epos = originalCard.position + new Vector3(-x, 0f, -x);

                    Quaternion rotation = cards[i].transform.rotation;
                    StartCoroutine(cardModel.Move(spos, epos, rotation, rotation, 1f));
                    cardCount++;
                }
                else
                {
                    //wcards.setList(i);
                    WaitingCards.indexList.Add(i);
                    cardModel.setPickingPhase(false);
                }
                //else cardModel.inPickingPhase = false;
            }

            StartCoroutine(TransitionToNewScreen());
        }
        Debug.Log("print: " + CardModel.waitingCards.Count);
    }
예제 #2
0
    //Compress cards into two decks
    public IEnumerator PutIntoTwoDecks()
    {
        //Seperate cards into two piles
        int halfLength = cards.Length / 2;
        int cardCount  = 0;

        //Add Left and right card prefab
        //Count the number of cards on the list and divide by two
        //Then use the divided number into two new lists for the cards

        for (int i = 0; i < halfLength; ++i)
        {
            //For LeftCard

            float      x        = spaceBetweenCard * cardCount;
            Vector3    end      = new Vector3(cardCount * 0.05f, 0, x);
            Vector3    startPos = cards[i].transform.position;
            Quaternion rotation = cards[i].transform.rotation;

            //  Vector3 temp = start + new Vector3(-x, 0, -x);
            cardModel = cards[i].GetComponent <CardModel>();
            StartCoroutine(cardModel.Move(startPos, end, rotation, rotation, 1f));

            cardCount++;
        }
        yield return(new WaitForSeconds(.4f));

        //De_Spread();
        for (int i = halfLength; i < cards.Length; ++i)
        {
            //For RightCard

            float      x        = spaceBetweenCard * cardCount;
            Vector3    end      = new Vector3(cardCount * -0.05f, 0, x);
            Vector3    startPos = -cards[i].transform.position;
            Quaternion rotation = cards[i].transform.rotation;

            // Vector3 temp = start + new Vector3(-x, 0, -x);
            cardModel = cards[i].GetComponent <CardModel>();
            StartCoroutine(cardModel.Move(startPos, end, rotation, rotation, 1f));

            cardCount++;
        }
        yield return(new WaitForSeconds(.4f));

        foreach (int i in deck.GetDeck())
        {
            float      x        = spaceBetweenCard * cardCount;
            Vector3    end      = start + new Vector3(.001f, 0, -0.15f);
            Vector3    startPos = cards[i].transform.position;
            Quaternion rotation = cards[i].transform.rotation;

            cardModel = cards[i].GetComponent <CardModel>();
            StartCoroutine(cardModel.Move(startPos, end, rotation, rotation, 2f));
            cardModel.isPick = false; //reset the picking card condition

            cardCount++;
        }
    }
예제 #3
0
    // Extract cards from the deck
    void SpreadCards()
    {
        mainSound.clip = clipArray[0]; //Spread sound
        mainSound.PlayOneShot(mainSound.clip);

        int cardCount = 0;

        foreach (int i in deck.GetDeck())
        {
            float      x        = spaceBetweenCard * cardCount;
            Vector3    end      = start + new Vector3(x, 0f);
            Vector3    startPos = cards[i].transform.position;
            Quaternion rotation = cards[i].transform.rotation;

            cardModel = cards[i].GetComponent <CardModel>();
            StartCoroutine(cardModel.Move(startPos, end, rotation, rotation, 1f));

            cardCount++;
        }
    }
예제 #4
0
    // Compress cards into the deck
    void De_Spread()
    {
        mainSound.clip = clipArray[1]; //De SPread sound
        mainSound.PlayOneShot(mainSound.clip);

        cardModel.setEmptyQueue();  // Clear current queue
        float spaceBetweenCard = 0.001f;
        int   cardCount        = 0;

        foreach (int i in deck.GetDeck())
        {
            float      x        = spaceBetweenCard * cardCount;
            Vector3    startPos = cards[i].transform.position;
            Vector3    endPos   = start + new Vector3(-x, 0f, -x);
            Quaternion rotation = cards[i].transform.rotation;

            cardModel = cards[i].GetComponent <CardModel>();
            StartCoroutine(cardModel.Move(startPos, endPos, rotation, rotation, 2f));
            cardModel.isPick = false; //reset the picking card condition

            cardCount++;
        }
    }
예제 #5
0
    public IEnumerator Shuffle()
    {
        Queue <int> leftQueue  = new Queue <int>();
        Queue <int> rightQueue = new Queue <int>();

        //Seperate cards into two piles
        int halfLength = cards.Length / 2;
        int cardCount  = 0;

        Vector3    endPos;
        Vector3    startPos;
        Quaternion endRotation;

        foreach (int i in deck.GetDeck())
        {
            float x = cardOffset * cardCount;
            if (cardCount < halfLength)
            {
                endPos      = leftCard.position + new Vector3(-x, 0, -x);
                endRotation = leftCard.rotation;
                leftQueue.Enqueue(i);
            }
            else
            {
                if (cardCount == halfLength)
                {
                    yield return(new WaitForSeconds(.4f));
                }
                //reset offset value for the right deck
                float x2 = cardOffset * (cardCount - halfLength);
                endPos      = rightCard.position + new Vector3(x2, 0, x2);
                endRotation = rightCard.rotation;

                rightQueue.Enqueue(i);
            }

            startPos = cards[i].transform.position;
            Quaternion startRotation = cards[i].transform.rotation;

            cardModel = cards[i].GetComponent <CardModel>();
            StartCoroutine(cardModel.Move(startPos, endPos, startRotation, endRotation, 1f));

            cardCount++;
        }
        yield return(new WaitForSeconds(.4f));

        mainSound.clip = clipArray[2]; //shullfe sound
        mainSound.PlayOneShot(mainSound.clip);

        endRotation = originalCard.rotation;
        for (int i = 0; i < cards.Length; ++i)
        {
            int   index;
            float x = cardOffset * cardCount;
            if (i % 2 == 0)
            {
                index = leftQueue.Dequeue();
            }
            else
            {
                index = rightQueue.Dequeue();
            }

            endPos   = originalCard.position + new Vector3(-x, 0, -x);
            startPos = cards[index].transform.position;
            Quaternion startRotation = cards[index].transform.rotation;

            cardModel = cards[index].GetComponent <CardModel>();
            StartCoroutine(cardModel.Move(startPos, endPos, startRotation, endRotation, 1.9f));

            cardModel.isPick = false; //reset the picking card condition
            cardCount++;
            yield return(new WaitForSeconds(.05f));
        }
    }