98 lines
3.5 KiB
C#
98 lines
3.5 KiB
C#
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<SceneLoader>();
|
|
buttonActivateColorChanger = GetComponent<ButtonActivateColorChanger>();
|
|
startMenuProbabilityPanel = targetLevelProbabilityPanelOBJ.GetComponent<StartMenuProbabilityPanel>();
|
|
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);
|
|
}
|
|
}
|
|
} |