示例#1
0
        void SetupScene()
        {
            drawnNumbers = Enumerable.Range(2, 98).ToList();

            GameEvents.OnCardDroppedInSlot    += OnCardDroppedInSlot;
            GameEvents.OnEndTurnButtonClicked += SetupNextRound;


            for (int i = 0; i < numberOfPlayers; i++)
            {
                InstantiatePlayers(i + 1);
            }

            upwardCards   = new List <CardSlot>();
            downwardCards = new List <CardSlot>();

            var cardSlots = FindObjectsOfType <CardSlot>();

            foreach (var slot in cardSlots)
            {
                if (slot.isUpwardSlot)
                {
                    upwardCards.Add(slot);
                }
                else
                {
                    downwardCards.Add(slot);
                }
            }

            playerNumberUIElement = FindObjectOfType <ShowCurrentPlayerNumber>();


            if (numberOfPlayers == 2)
            {
                var players = FindObjectsOfType <Player>();
                foreach (var player in players)
                {
                    if (player.playerNumber == 2)
                    {
                        player2 = player;
                    }

                    if (player.playerNumber == 1)
                    {
                        player1 = player;
                    }

                    cardSlotPlayer1 = cardHandler.cardSlotHandCardsPlayer1;
                    cardSlotPlayer2 = cardHandler.cardSlotHandCardsPlayer2;
                }
            }

            if (player1 == null)
            {
                player1            = FindObjectOfType <Player>();
                cardSlotPlayer1    = cardHandler.cardSlotHandCardsPlayer1;
                activeHandCardSlot = cardSlotPlayer1;
            }

            cardHandler.OnGameStart();
            _initialNumberOfCards = drawnNumbers.Count;
            UpdateLeftCardsText();
        }