// 文件位置: Assets/Scripts/TH1_UI/View/Announce/UIInteractionCityUpgradeItem.cs using System; using System.Collections.Generic; using System.Net.Mime; using System.Text; using Logic.Action; using Logic.Multilingual; using Logic.Skill; using RuntimeData; using TH1_Logic.Action; using TH1_Logic.Core; using TH1_Logic.HeroTask; using TH1_UI.HintUI; using TH1Resource; using TMPro; using UI.HintUI; using Unity.VisualScripting; using UnityEngine; using UnityEngine.UI; namespace TH1_UI.View.Info { public class UIInfoCommonBaseSkillCircleMono : MonoBehaviour { public HintTrigger HintTrigger; public Image SkillIcon; public Image SkillIconBG; public Image BanImage; public GameObject SkillLevelArea; public GameObject SkillTimeArea; public TextMeshProUGUI SkillLevelText; public TextMeshProUGUI SkillTimeText; public void SetContent(SkillBase skill,UnitFullType unitFullType, bool isBanned = false) { var skillType = skill.GetSkillType(); //Step #0 基础变量设置 if (!Table.Instance.SkillDataAssets.GetSkillInfo(skillType, out var info)) return; if(Table.Instance.SkillDataAssets.GetSkillIcon(skillType, unitFullType,out var spr)) SkillIcon.sprite = spr; SkillIconBG.color = Table.Instance.SkillDataAssets.GetBGColor(info.SkillViewType,skill.HasTimeLimit); SkillLevelArea.SetActive(skill.HasLevel); if (skill.HasLevel) SkillLevelText.text = skill.Level.ToString(); SkillTimeArea.SetActive(skill.HasTimeLimit); if (skill.HasTimeLimit) SkillTimeText.text = skill.LastTime.ToString(); EnsureHintDataProvider(); HintTrigger.DataProvider.HintDataType = HintDataType.SkillHintData; HintTrigger.DataProvider.SkillTypeData = skillType; HintTrigger.DataProvider.UnitFullType = unitFullType; HintTrigger.DataProvider.SkillParam = skill; if (BanImage != null) BanImage.gameObject.SetActive(isBanned); } public void SetStatusContent(Sprite icon, Color bgColor, string hintText) { SkillIcon.sprite = icon; SkillIconBG.color = bgColor; SkillLevelArea.SetActive(false); SkillTimeArea.SetActive(false); EnsureHintDataProvider(); HintTrigger.DataProvider.HintDataType = HintDataType.TextData; HintTrigger.DataProvider.Text = hintText; HintTrigger.DataProvider.SkillParam = null; if (BanImage != null) BanImage.gameObject.SetActive(false); } private void EnsureHintDataProvider() { if (HintTrigger.DataProvider == null) HintTrigger.DataProvider = new HintDataProvider(); } } }