Example #1
0
    IEnumerator Start()
    {
        cards        = new List <GameObject>();
        distroQueues = new Dictionary <Card.Suit, List <Card> >();
        distroKeys   = new List <Card.Suit>();
        yield return(new WaitUntil(() => GameManager.instance != null));

        yield return(new WaitUntil(() => GameManager.instance.player != null));

        foreach (GameObject g in allCards)
        {
            for (int i = 0; i < copies; i++)
            {
                GameObject temp  = Instantiate(g, Vector3.one * 9999, Quaternion.identity, transform);
                GameObject temp2 = Instantiate(temp.GetComponent <HalfCard>().prefabCard, Vector3.one * 9999, Quaternion.identity, transform);
                temp2.GetComponent <Card>().halfCard = temp;
                temp.GetComponent <HalfCard>().card  = temp2.GetComponent <Card>();
                cards.Add(temp);
                Card.Suit suit = temp.GetComponent <HalfCard>().card.cardSuit;
                if (temp.GetComponent <HalfCard>().card.starterCard)
                {
                    GameManager.instance.player.playerHand.Add(temp2.GetComponent <Card>());
                    break;
                }
                else
                {
                    if (!distroQueues.ContainsKey(suit))
                    {
                        distroQueues[suit] = new List <Card>();
                        distroKeys.Add(suit);
                    }
                    if (Random.Range(0, 1) > 0.5)
                    {
                        distroQueues[suit].Insert(0, temp.GetComponent <HalfCard>().card);
                    }
                    else
                    {
                        distroQueues[suit].Add(temp.GetComponent <HalfCard>().card);
                    }
                }
            }
        }
        foreach (GameObject go in GameManager.instance.planetList)
        {
            Planet p = go.GetComponent <Planet>();
            p.AddCards(DistributeCards(3, p.Suit));
        }
    }