using System; using System.Collections.Generic; using TMPro; using UnityEngine; public class StartUIManager : MonoBehaviour { [SerializeField] private int waitTimeLimit = 45; [SerializeField] private GameObject sceneLoaderObj; [SerializeField] private GameObject targetLevelProbabilityPanelOBJ; [SerializeField] private TextMeshProUGUI messageTextObj; [SerializeField] private TextMeshProUGUI waitTimeTextObj; private SceneLoader sceneLoader; private ButtonActivateColorChanger buttonActivateColorChanger; private StartMenuProbabilityPanel startMenuProbabilityPanel; private CommonParameterContainer commonParameterContainer; private float startTime; private float nowTime; // Start is called before the first frame update void Start() { sceneLoader = sceneLoaderObj.GetComponent(); buttonActivateColorChanger = GetComponent(); startMenuProbabilityPanel = targetLevelProbabilityPanelOBJ.GetComponent(); commonParameterContainer = CommonParameterContainer.Instance; messageTextObj.text = ""; buttonActivateColorChanger.InitializeAllButtonColor(); } private void Update() { // update time limit left; float leftTime = waitTimeLimit - Time.realtimeSinceStartup; waitTimeTextObj.text = ((int)Math.Round(leftTime)).ToString(); if (leftTime <= 1) { // if time limit is over, load Train Scene sceneLoader.LoadGameScene(SceneLoader.SceneType.Train); } } // while StartButton-Play Pressed public void OnPlayButtonPressed() { commonParameterContainer.gameMode = 1; sceneLoader.LoadGameScene(SceneLoader.SceneType.Play); messageTextObj.text = "Loading Play Scene..."; } public void OnAttackTrainButtonPressed() { // while Train-Attack-Button Pressed commonParameterContainer.attackProb = 1f; ApplicateProbabilityToData(); LoadTrainScene(); } public void OnGotoTrainButtonPressed() { // while Train-Goto-Button Pressed commonParameterContainer.gotoProb = 1f; ApplicateProbabilityToData(); LoadTrainScene(); } public void OnFreeTrainButtonPressed() { // while Train-Free-Button Pressed commonParameterContainer.attackProb = 0f; commonParameterContainer.gotoProb = 0f; commonParameterContainer.defenceProb = 0f; LoadTrainScene(); } public void OnMixTrainButtonPressed() { // while Train-Mix-Button Pressed commonParameterContainer.attackProb = 0.333f; commonParameterContainer.gotoProb = 0.333f; LoadTrainScene(); } private void LoadTrainScene() { // load Train Scene sceneLoader.LoadGameScene(SceneLoader.SceneType.Train); messageTextObj.text = "Loading Train Scene..."; } private void ApplicateProbabilityToData() { for (int i = 0; i < commonParameterContainer.scenePrefabSet.targetLevels[0].levelSize; i++) { commonParameterContainer.gotoLevelProbs.Add(startMenuProbabilityPanel.targetLevelProbabilityPanel[0].singleLevelPanels[i].ProbabilityValue); } for(int i = 0; i < commonParameterContainer.scenePrefabSet.targetLevels[1].levelSize; i++) { commonParameterContainer.attackLevelProbs.Add(startMenuProbabilityPanel.targetLevelProbabilityPanel[1].singleLevelPanels[i].ProbabilityValue); } } }