Ludo-3D/Assets/Scripts/UI/Pages/PopUp/PvAIModePopup.cs

76 lines
2.7 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class PvAIModePopup : 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 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);
}
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;
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;
gameModeHandler.InitBotModeData(playerType, selectedPlayerCount - 1);
}
private void OnClick_CloseButton()
{
screenManager = screenManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>() : screenManager;
screenManager.ShowScreen(ScreenType.MenuScreen);
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
Hide();
}
}