Пример #1
0
    /// <summary>
    /// Sets the players in turn handler.
    /// </summary>
    public void SetPlayersInTurnHandler()
    {
        Player[] players = new Player[playerPanels.Count];

        for (int i = 0; i < playerPanels.Count; i++)
        {
            PlayerSetupInfo info = playerPanels[i].GetComponent <PlayerSetupInfo>();

            switch (info.type)
            {
            case PlayerSetupInfo.Type.Human:
                players[i] = new LocalHumanPlayer();
                break;

            case PlayerSetupInfo.Type.AIEasy:
                players[i] = new WeightedAIPlayer(WeightedAIPlayer.Difficulty.Easy);
                break;

            case PlayerSetupInfo.Type.AINormal:
                players[i] = new WeightedAIPlayer(WeightedAIPlayer.Difficulty.Normal);
                break;

            case PlayerSetupInfo.Type.AIHard:
                players[i] = new WeightedAIPlayer(WeightedAIPlayer.Difficulty.Hard);
                break;
            }

            players[i].colour     = info.colour;
            players[i].playerName = info.playerName;
        }

        TurnHandler.players = players;

        SceneManager.LoadScene("GameBoard");
    }
Пример #2
0
    /// <summary>
    /// Adds a player panel.
    /// </summary>
    private void AddPlayerPanel()
    {
        GameObject panel = Instantiate(Resources.Load("Prefabs/UI/PlayerSetupPanel")) as GameObject;

        #region positioning
        RectTransform rect = panel.GetComponent <RectTransform>();

        // copy current position
        Vector3 pos = new Vector3(rect.anchoredPosition3D.x, rect.anchoredPosition3D.y);

        panel.transform.SetParent(transform.Find("PlayerPanelArea"), false);

        // determine the row / col
        int row = (int)(playerPanels.Count / gridCol);
        int col = (int)(playerPanels.Count % gridCol);

        // offset based on row / col
        Vector3 offset = new Vector3(
            (250f * col) + (12f * (col + 1)),
            (-50f) - (130f * row) - (10f * (row + 1)));
        // add to current position (top left corner)
        pos += offset;

        // set position of panel
        panel.GetComponent <RectTransform>().anchoredPosition3D = pos;
        #endregion

        // add to list
        playerPanels.Add(panel);

        // in position, fade in
        panel.GetComponent <FadeControllerUI>().BeginFadingIn();

        // set colour of player
        PlayerSetupInfo info = panel.GetComponent <PlayerSetupInfo>();
        info.colour     = (Player.PlayerColour)(playerPanels.Count - 1);
        info.playerName = info.colour + " Player";
    }