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 LevelProbabilityPanel 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 targetIndex = 0;targetIndex < commonParameterContainer.scenePrefabSet.targetLevels.Length; targetIndex++) { Targets nowTarget = commonParameterContainer.scenePrefabSet.targets[targetIndex]; for(int levelIndex = 0; levelIndex < commonParameterContainer.scenePrefabSet.targetLevels[targetIndex].levelSize; levelIndex++) { commonParameterContainer.levelProbs[nowTarget] = startMenuProbabilityPanel.targetLevelProbabilityPanel[targetIndex].GetTargetProb(); } } } }