using TMPro; using UnityEngine; using UnityEngine.UI; public class PvAIModePopup : PopupBase { [Header("Bot Selection Buttons")] [SerializeField] private Button twoPlayerBtn; [SerializeField] private Button threePlayerBtn; [SerializeField] private Button fourPlayerBtn; [Header("Color Selection Buttons")] [SerializeField] private Button redBtn; [SerializeField] private Button blueBtn; [SerializeField] private Button greyBtn; [SerializeField] private Button greenBtn; [Header("Action Buttons")] [SerializeField] private Button playBtn; [SerializeField] private Button closeBtn; [Header("Input Field")] [SerializeField] private TMP_InputField playerNameInput; [Header("Player Names")] private string playerName; private ScreenManager screenManager; private SoundManager soundManager; private GameModeHandler gameModeHandler; private int selectedPlayerCount; private PlayerType playerType; private void OnEnable() { twoPlayerBtn.onClick.AddListener(() => OnPlayerCountSelected(2)); threePlayerBtn.onClick.AddListener(() => OnPlayerCountSelected(3)); fourPlayerBtn.onClick.AddListener(() => OnPlayerCountSelected(4)); playBtn.onClick.AddListener(OnClick_PlayButton); closeBtn.onClick.AddListener(OnClick_CloseButton); redBtn.onClick.AddListener(() => OnColorSelected(PlayerType.Player1)); blueBtn.onClick.AddListener(() => OnColorSelected(PlayerType.Player2)); greyBtn.onClick.AddListener(() => OnColorSelected(PlayerType.Player3)); greenBtn.onClick.AddListener(() => OnColorSelected(PlayerType.Player4)); redBtn.Select(); twoPlayerBtn.Select(); } 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; } private void OnClick_PlayButton() { playerName = string.IsNullOrWhiteSpace(playerNameInput.text) ? Ludo_3D_Constants.Player1_Name : playerNameInput.text; soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance() : soundManager; soundManager?.PlayGameSoundClip(SoundType.ButtonClick); //TODO: Start PvAI Game with the selected player count and name Debug.Log($"Starting PVP Mode with {selectedPlayerCount} players:"); Debug.Log($"Player 1: {playerName}"); gameModeHandler = gameModeHandler == null ? InterfaceManager.Instance.GetInterfaceInstance() : gameModeHandler; gameModeHandler.InitBotModeData(playerType, selectedPlayerCount - 1); } private void OnClick_CloseButton() { screenManager = screenManager == null ? InterfaceManager.Instance?.GetInterfaceInstance() : screenManager; screenManager.ShowScreen(ScreenType.MenuScreen); soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance() : soundManager; soundManager?.PlayGameSoundClip(SoundType.ButtonClick); Hide(); } public void OnColorSelected(PlayerType type) { playerType = type; } }