/// <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); } }
/// <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(); }