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 LevelProbabilityPanel 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<LevelProbabilityPanel>();
|
|
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();
|
|
}
|
|
}
|
|
}
|
|
} |