70 lines
2.0 KiB
C#
70 lines
2.0 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using TMPro;
|
|
using UnityEngine.SceneManagement;
|
|
|
|
public class UIController : MonoBehaviour
|
|
{
|
|
[SerializeField] private TMP_Text pointsTxt;
|
|
|
|
[SerializeField] private HealthBar mainHealthBar;
|
|
[SerializeField] private HealthBar[] verticalHealthBars;
|
|
|
|
[SerializeField] private Color[] hpBarColorPerDimension;
|
|
[SerializeField] private Transform gameoverPnl;
|
|
|
|
public void UpdatePointsText(float points)
|
|
{
|
|
pointsTxt.text = points.ToString("0");
|
|
}
|
|
|
|
public void SetCurrentDimension(int currentDimensionID, float currentDimensionHP, float currentDimensionMaxHP)
|
|
{
|
|
foreach (HealthBar verticalHealthBar in verticalHealthBars)
|
|
{
|
|
verticalHealthBar.SetVisible(true);
|
|
}
|
|
verticalHealthBars[currentDimensionID].SetVisible(false);
|
|
|
|
mainHealthBar.SetFillingColor(hpBarColorPerDimension[currentDimensionID]);
|
|
mainHealthBar.SetFillingAmount(currentDimensionHP / currentDimensionMaxHP);
|
|
}
|
|
|
|
public void SetDimensionHP(int currentDimensionID, int dimensionID, float hp, float maxHP)
|
|
{
|
|
float hpFillingAmount = hp / maxHP;
|
|
verticalHealthBars[dimensionID].SetFillingAmount(hpFillingAmount);
|
|
|
|
// Also change main HP bar if this is the current dimension.
|
|
if (currentDimensionID == dimensionID)
|
|
{
|
|
mainHealthBar.SetFillingAmount(hpFillingAmount);
|
|
}
|
|
}
|
|
|
|
public void TriggerGameOver(){
|
|
gameoverPnl.gameObject.SetActive(!gameoverPnl.gameObject.activeSelf);
|
|
}
|
|
|
|
public void LoadMenu()
|
|
{
|
|
Time.timeScale = 1f;
|
|
SoundManager.Instance.SwitchMusicLayer(-1);
|
|
SceneManager.LoadScene(0);
|
|
}
|
|
|
|
public void RestartGame()
|
|
{
|
|
Time.timeScale = 1f;
|
|
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
|
|
}
|
|
|
|
public void QuitGame()
|
|
{
|
|
Debug.Log("QuitGame");
|
|
Application.Quit();
|
|
}
|
|
}
|