/// <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> /// 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"; }