TH1/Unity/Assets/Scripts/TH1_UI/TopBarUI.cs
2025-08-26 14:32:20 +08:00

85 lines
3.0 KiB
C#

using System.Collections.Generic;
using Animancer;
using Logic.Multilingual;
using RuntimeData;
using TH1_Core.Managers;
using TH1_Logic.Core;
using TH1Resource;
using TMPro;
using UnityEngine;
namespace TH1_UI
{
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,"TopBarUI_ShowTurnHint");
Timer.Instance.TimerRegister(this, () =>
{
ROTurnHint.SetActive(false);
},1.5f + ResourceCache.Instance.AnimCache.UICommonPanelFadeOut.length,"TopBarUI_ShowTurnHint2");
}
public void SetShowTurnHint(int turn)
{
_showTurnHint = true;
var list = new List<string>();
list.Add(turn.ToString());
MultilingualManager.Instance.SetUIText(ROTurnHint.transform.Find("Text").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.ToString();// + "/30";
}
}
}