70 lines
2.4 KiB
C#
70 lines
2.4 KiB
C#
using Logic.Multilingual;
|
||
using RuntimeData;
|
||
using TH1_Logic.Core;
|
||
using TH1_Logic.MatchConfig;
|
||
using TMPro;
|
||
using UnityEngine;
|
||
using UnityEngine.UI;
|
||
|
||
namespace TH1_UI.View.Info
|
||
{
|
||
public class UIInfoCultureTaskMono : MonoBehaviour
|
||
{
|
||
public Image Icon;
|
||
public TextMeshProUGUI Desc;
|
||
public TextMeshProUGUI CultureValue;
|
||
public TextMeshProUGUI ExecuteCountText;
|
||
public GameObject CompletedGroup;
|
||
public GameObject ValueGroup;
|
||
public GameObject AwardTitle;
|
||
public GameObject AwardTitlePer;
|
||
|
||
private MomentItemBase _momentItem;
|
||
private MomentSubData _momentSubData;
|
||
|
||
public void Init(MomentItemBase momentItem)
|
||
{
|
||
_momentItem = momentItem;
|
||
if (_momentItem == null) return;
|
||
|
||
var subType = _momentItem.GetMomentSubType();
|
||
if (!Table.Instance.MomentDataAssets.GetMomentSubData(subType, out _momentSubData)) return;
|
||
|
||
// 描述
|
||
if (Desc != null)
|
||
MultilingualManager.Instance.SetUIText(Desc, _momentSubData.Desc);
|
||
|
||
// 图标
|
||
if (Icon != null && _momentSubData.Icon != null)
|
||
Icon.sprite = _momentSubData.Icon;
|
||
|
||
// 文化值
|
||
if (CultureValue != null)
|
||
CultureValue.text = _momentItem.PlayerCultureValue.ToString();
|
||
}
|
||
|
||
public void UpdateInfo(PlayerData player)
|
||
{
|
||
if (_momentItem == null) return;
|
||
|
||
// 判断是否是一次性moment:IsExecute为true说明是已完成的一次性;
|
||
// ExecuteCount>0但IsExecute为false说明是可重复的
|
||
bool isOneTime = _momentItem.IsExecute || _momentItem.ExecuteCount == 0;
|
||
bool oneTimeCompleted = _momentItem.IsExecute;
|
||
|
||
// 一次性显示AwardTitle,可重复显示AwardTitlePer
|
||
if (AwardTitle != null) AwardTitle.SetActive(isOneTime);
|
||
if (AwardTitlePer != null) AwardTitlePer.SetActive(!isOneTime);
|
||
|
||
// 执行次数
|
||
if (ExecuteCountText != null)
|
||
ExecuteCountText.text = _momentItem.ExecuteCount.ToString();
|
||
|
||
// 一次性且已完成:显示CompletedGroup,隐藏ValueGroup
|
||
// 否则:显示ValueGroup,隐藏CompletedGroup
|
||
if (CompletedGroup != null) CompletedGroup.SetActive(oneTimeCompleted);
|
||
if (ValueGroup != null) ValueGroup.SetActive(!oneTimeCompleted);
|
||
}
|
||
}
|
||
}
|