Exemple #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");
    }
    /// <summary>
    /// This function is for testing, it generates num players.
    /// </summary>
    /// <param name="num">numbers of players</param>
    public void generatePlayer(int num)
    {
        players = new Player[num];
        System.Random a = new System.Random();
        for (var i = 0; i < num; i++)
        {
            players[i] = new LocalHumanPlayer();
//			players [i].colour = (Player.PlayerColour)Enum.ToObject (typeof(Player.PlayerColour), i);
            players[i].colour = (Player.PlayerColour)i;

            players[i].score   = i * 10;
            players[i].capture = a.Next(0, 100);
        }
    }
Exemple #3
0
    /// <summary>
    /// Initalize this instance.
    /// </summary>
    public void Initalize()
    {
        turnIndex    = -1;
        totalTurns   = 0;
        currentCycle = 1;
        moveHistory  = new List <PieceMove>();
        state        = State.Placement;
        rand         = new System.Random();

        #region quick ini players
        if (players == null)
        {
            // ini players
            players = new Player[3];

            // player 1
            players[0]            = new LocalHumanPlayer();
            players[0].colour     = Player.PlayerColour.Brown;
            players[0].playerName = players[0].colour + "";

            // player 2
            players[1]            = new LocalHumanPlayer();
            players[1].colour     = Player.PlayerColour.Blue;
            players[1].playerName = players[1].colour + "";

            // player 3
            players[2]            = new LocalHumanPlayer();
            players[2].colour     = Player.PlayerColour.Green;
            players[2].playerName = players[2].colour + "";
        }
        #endregion

        #region generate and attach score displays to player
        for (int i = 0; i < players.Length; i++)
        {
            GameObject display = Instantiate(Resources.Load("Prefabs/UI/ScoreDisplay")) as GameObject;

            display.transform.SetParent(GameObject.Find("UICanvas").transform, false);

            // positioning the display
            RectTransform rect = display.GetComponent <RectTransform>();

            Vector3 pos    = new Vector3(rect.anchoredPosition3D.x, rect.anchoredPosition3D.y);
            Vector3 offset = new Vector3(
                -(45f * (players.Length / 2f)) + (45f * i) + (10f * i),
                0f);

            pos += offset;

            rect.anchoredPosition3D = pos;

            // setting display colour
            display.GetComponent <Image>().color = players[i].getRealColor();

            players[i].scoreDisplay = display;
            players[i].updateScore();
        }
        #endregion

        // Generate placement pieces for each player
        foreach (Player p in players)
        {
            GeneratePlacementPieces(p);
        }

        // Initialize the placement tiles
        TaoexBoard board = GameObject.Find("Taoex").GetComponent <TaoexBoard>();
        placementTiles = new List <TileNode>();

        // Add all edge tiles to the placement tiles list
        for (int i = 0; i < board.edgeTiles.GetLength(0); i++)
        {
            for (int j = 0; j < board.edgeTiles.GetLength(1); j++)
            {
                placementTiles.Add(board.edgeTiles[i, j]);
            }
        }

        if (randomPlacement)
        {
            // randomly places the pieces
            RandomPlacement();
        }

        // increments the turn from -1 to 0 which is the first player
        NextTurn();
    }