Esempio n. 1
0
    void Start()
    {
        image = this.GetComponent <Image> ();
        hud   = GameObject.Find("HUDLeftCorner").GetComponent <TravelLightsDisplay>();

        dTotal      = dCons + dExp;
        tick        = 0f;
        tNext       = tBase;
        currDiceNum = diceNum;
    }
    void Start()
    {
        /* access game component references */

        // UI components
        mainCanvas          = GameObject.FindGameObjectWithTag("Main Canvas").GetComponent <Canvas>();
        travelLightsDisplay = GameObject.Find("HUDLeftCorner").GetComponent <TravelLightsDisplay>();
        diceManager         = GameObject.Find("Dice").GetComponent <DiceManager>();
        tooltip             = GameObject.Find("Tooltip").GetComponent <Tooltip>();

        // number displays
        playerDisplay = GameObject.Find("TextPlayerNo").GetComponent <Text> ();
        turnDisplay   = GameObject.Find("TextTurnNo").GetComponent <Text> ();
        //travelsDisplay = GameObject.Find ("TextTurnNo").GetComponent<Text> ();

        // card system
        cardDisplay = GameObject.FindGameObjectWithTag("Card Display").GetComponent <CardDisplay>();
        cardManager = new CardManager();

        /* generate players */

        // if running scene from main menu, find out many players were selected
        if (GameObject.Find("Game Setup Manager") != null)
        {
            numOfPlayers = GameSetUp.getNumOfPlayers();
        }

        // instantiate players and mutate appropiately
        for (int i = 1; i <= numOfPlayers; i++)
        {
            GameObject player = Instantiate(playerPrefab);

            PlayerController playerController = player.GetComponent <PlayerController>();

            #region blocker logic
            /*blocker logic set to false to bypass it and carry on with the game*/
            playerController.setBlockerMode(true);
            #endregion

            playerController.setPlayerNumber(i);
        }
        players = GameObject.FindGameObjectsWithTag("Player");

        // find and store reference to first start station
        foreach (GameObject g in GameObject.FindGameObjectsWithTag("Station"))
        {
            if (g.GetComponent <Stop>().checkIsStart())
            {
                start = g.gameObject;
                break;
            }
        }

        // update display
        updateDisplayNo();

        /* card management */
        //deal the cards to each player
        for (int i = 0; i < numOfPlayers; i++)
        {
            // retreive the cards from the cardmanager
            LocCard[] cards = cardManager.dealCards(numCards);
            // give the cards to the player
            players[i].GetComponent <PlayerController>().addCards(cards);
        }

        // display the cards
        LocCard[] displayCards = players[currentplayer].GetComponent <PlayerController>().getCards();
        cardDisplay.setCard(displayCards);
        cardDisplay.updateCard();

        /* moves all the players to the start position */
        foreach (GameObject p in players)
        {
            p.transform.parent = start.transform;

            // change player parent to new station and update position
            // shift position if multiple players are on a station
            if (start.transform.childCount > 1)
            {
                p.transform.localPosition = idlePos + (new Vector3(1.5f, 0.0f, 0.0f) * (start.transform.childCount - 2));
            }
            else
            {
                p.transform.localPosition = idlePos;
            }
        }
        players[currentplayer].GetComponent <PlayerController>().isControllerEnabled = true;
    }