2025-07-15 00:15:54 +08:00

82 lines
2.7 KiB
C#

using System.Collections.Generic;
using Animancer;
using UnityEngine;
using TMPro;
using Logic;
using RuntimeData;
using Logic.Multilingual;
using TH1Resource;
public class TopBarUI
{
private Main _main;
private MapData _mapData;
public GameObject ROTopBarUI;
public GameObject ROTurnHint;
//标记,是否显示回合提示
private bool _showTurnHint;
private TextMeshProUGUI _money;
private TextMeshProUGUI _faith;
private TextMeshProUGUI _turn;
//-------- UI层RenderData -------//
public bool RenderMark = false;
public bool _isShow = false;
public TopBarUI(Main main,MapData mapData)
{
_main = main;
_mapData = mapData;
ROTopBarUI = UIManager.Instance.ROUIManager.transform.Find("TopBarPanel").gameObject;
ROTurnHint = ROTopBarUI.transform.Find("TurnHint").gameObject;
_money = ROTopBarUI.transform.Find("MoneyPanel/Text").GetComponent<TextMeshProUGUI>();
_faith = ROTopBarUI.transform.Find("FaithPanel/Text").GetComponent<TextMeshProUGUI>();
_turn = ROTopBarUI.transform.Find("TurnPanel/Text").GetComponent<TextMeshProUGUI>();
_isShow = true;
}
public void ShowTurnHint()
{
var anim = ROTurnHint.GetComponent<AnimancerComponent>();
if (anim == null) return;
ROTurnHint.SetActive(true);
anim.Play(ResourceCache.Instance.AnimCache.UICommonPanelFadeIn);
Timer.Instance.TimerRegister(this, () =>
{
anim.Play(ResourceCache.Instance.AnimCache.UICommonPanelFadeOut);
},1.5f);
Timer.Instance.TimerRegister(this, () =>
{
ROTurnHint.SetActive(false);
},1.5f + ResourceCache.Instance.AnimCache.UICommonPanelFadeOut.length);
}
public void SetShowTurnHint(int turn)
{
_showTurnHint = true;
var list = new List<string>();
list.Add(turn.ToString());
Debug.Log(list[0]);
MultilingualManager.Instance.SetUIText(ROTurnHint.GetComponent<TextMeshProUGUI>(), list);
}
public void Update()
{
if(_isShow && ! ROTopBarUI.activeSelf)
ROTopBarUI.SetActive(true);
if (_showTurnHint)
{
_showTurnHint = false;
ShowTurnHint();
}
_money.text = _main.MapData.PlayerMap.SelfPlayerData.PlayerWealth +
" <color=yellow>+ " + Main.PlayerLogic.GetPlayerStarsPerTurn(_main.MapData, _main.MapData.PlayerMap.SelfPlayerData.Id) + "</color>";
_faith.text = _main.MapData.PlayerMap.SelfPlayerData.PlayerScore.ToString();
_turn.text = _main.MapData.PlayerMap.SelfPlayerData.Turn + "/30";
}
}