WinterJamSnowman/Assets/Scripts/UiScripts/BoardUIScript.cs

107 lines
3.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using Lemon.GenericLib.Generics;
public class BoardUIScript : MonoBehaviour
{
[Header("Runtime")]
[SerializeField] private float currentComboCountdown;
[SerializeField] private float currentWarningCountdown;
[SerializeField] private float scoreTextOriginY;
[SerializeField] private float comboTextOriginY;
[SerializeField] private float warningTextOriginY;
[Header("Refrences")]
[SerializeField] private TextMeshPro titleTMP;
[SerializeField] private TextMeshPro scoreTMP;
[SerializeField] private TextMeshPro comboTMP;
[SerializeField] private TextMeshPro warningTMP;
[SerializeField] private GameObject warningOBJ;
[SerializeField] private GameObject comboOBJ;
[SerializeField] private int playerIndex;
[SerializeField] private float scoreJumpDistance = 0.25f;
[SerializeField] private float scoreJumpTime = 0.5f;
[SerializeField] private float comboUITimer = 3f;
[SerializeField] private float warningUITimer = 3f;
private bool initialized = false;
private void CheckInit()
{
if (!initialized)
{
//initialization code here
titleTMP.text = "Player " + playerIndex;
scoreTMP.text = "0";
comboTMP.text = "x0";
warningTMP.text = "x0";
warningOBJ.SetActive(false);
comboOBJ.SetActive(false);
scoreTextOriginY = scoreTMP.transform.localPosition.y;
comboTextOriginY = comboTMP.transform.localPosition.y;
warningTextOriginY = warningTMP.transform.localPosition.y;
initialized = true;
}
}
private void Start()
{
CheckInit();
}
private void Update()
{
if (currentComboCountdown <= 0)
{
comboTMP.text = "x0";
comboOBJ.SetActive(false);
}
else
{
currentComboCountdown -= Time.deltaTime;
}
if (currentWarningCountdown <= 0)
{
warningTMP.text = "x0";
warningOBJ.SetActive(false);
}
else
{
currentWarningCountdown -= Time.deltaTime;
}
}
public void SetScore(int value) {
scoreTMP.transform.LeanMoveLocalY(scoreTextOriginY + scoreJumpDistance, scoreJumpTime).setLoopPingPong(1).setEase(LeanTweenType.easeOutQuad).setOnComplete(() => scoreTMP.transform.LeanMoveLocalY( scoreTextOriginY,0));
scoreTMP.text = value.ToString();
}
public void SetCombo(int value)
{
currentComboCountdown = comboUITimer;
comboTMP.text = "x" + value;
comboOBJ.SetActive(true);
comboTMP.transform.LeanMoveLocalY(comboTextOriginY + scoreJumpDistance, scoreJumpTime).setLoopPingPong(1).setEase(LeanTweenType.easeOutQuad).setOnComplete(() => comboTMP.transform.LeanMoveLocalY(comboTextOriginY, 0));
}
public void SetWarning(int value)
{
currentWarningCountdown = warningUITimer;
warningTMP.text = "x" + value;
warningOBJ.SetActive(true);
warningTMP.transform.LeanMoveLocalY(warningTextOriginY + scoreJumpDistance, scoreJumpTime).setLoopPingPong(1).setEase(LeanTweenType.easeOutQuad).setOnComplete(() => warningTMP.transform.LeanMoveLocalY(warningTextOriginY, 0));
}
}