using TMPro; using UnityEngine; using UnityEngine.UI; public class PvPModePopup : PopupBase { [Header("Buttons")] [SerializeField] private Button twoPlayerBtn; [SerializeField] private Button threePlayerBtn; [SerializeField] private Button fourPlayerBtn; [SerializeField] private Button playBtn; [SerializeField] private Button closeBtn; [Header("Input Field")] [SerializeField] private TMP_InputField playerOneNameInput; [SerializeField] private TMP_InputField playerTwoNameInput; [SerializeField] private TMP_InputField playerThreeNameInput; [SerializeField] private TMP_InputField playerFourNameInput; [Header("Player Names")] private string playerOneName; private string playerTwoName; private string playerThreeName; private string playerFourName; private ScreenManager screenManager; private GameManager gameManager; private SoundManager soundManager; private int selectedPlayerCount; public int SelectedPlayerCount => selectedPlayerCount; private void OnEnable() { twoPlayerBtn.onClick.AddListener(() => OnPlayerCountSelected(2)); threePlayerBtn.onClick.AddListener(() => OnPlayerCountSelected(3)); fourPlayerBtn.onClick.AddListener(() => OnPlayerCountSelected(4)); playBtn.onClick.AddListener(OnClick_playBtn); closeBtn.onClick.AddListener(OnClick_closeBtn); } private void OnDisable() { twoPlayerBtn.onClick.RemoveAllListeners(); threePlayerBtn.onClick.RemoveAllListeners(); fourPlayerBtn.onClick.RemoveAllListeners(); playBtn.onClick.RemoveAllListeners(); closeBtn.onClick.RemoveAllListeners(); } private void OnPlayerCountSelected(int count) { selectedPlayerCount = count; UpdateInputFieldsVisibility(); } private void UpdateInputFieldsVisibility() { playerOneNameInput.transform.parent.gameObject.SetActive(true); playerTwoNameInput.transform.parent.gameObject.SetActive(selectedPlayerCount >= 3); playerThreeNameInput.transform.parent.gameObject.SetActive(selectedPlayerCount >= 2); playerFourNameInput.transform.parent.gameObject.SetActive(selectedPlayerCount >= 4); } private void OnClick_playBtn() { playerOneName = string.IsNullOrWhiteSpace(playerOneNameInput.text) ? Ludo_3D_Constants.Player1_Name : playerOneNameInput.text; playerTwoName = string.IsNullOrWhiteSpace(playerTwoNameInput.text) ? Ludo_3D_Constants.Player1_Name : playerTwoNameInput.text; playerThreeName = string.IsNullOrWhiteSpace(playerThreeNameInput.text) ? Ludo_3D_Constants.Player1_Name : playerThreeNameInput.text; playerFourName = string.IsNullOrWhiteSpace(playerFourNameInput.text) ? Ludo_3D_Constants.Player1_Name : playerFourNameInput.text; soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance() : soundManager; soundManager?.PlayGameSoundClip(SoundType.ButtonClick); //TODO: Start PVP Game with the selected player count and names Debug.Log($"Starting PVP Mode with {selectedPlayerCount} players:"); Debug.Log($"Player 1: {playerOneName}"); Debug.Log($"Player 2: {playerTwoName}"); if (selectedPlayerCount >= 3) Debug.Log($"Player 3: {playerThreeName}"); if (selectedPlayerCount == 4) Debug.Log($"Player 4: {playerFourName}"); } private void OnClick_closeBtn() { screenManager = screenManager == null ? InterfaceManager.Instance?.GetInterfaceInstance() : screenManager; screenManager.ShowScreen(ScreenType.MenuScreen); soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance() : soundManager; soundManager?.PlayGameSoundClip(SoundType.ButtonClick); Hide(); } }