using System; using System.Collections.Generic; using Animancer; using Logic; using Logic.Action; using Logic.AI; using Logic.Audio; using Logic.Config; using Logic.Multilingual; using ParadoxNotion; using RuntimeData; using Steamworks; using TH1_Core.Events; using TH1_Core.Managers; using TH1_Logic.Action; using TH1_Logic.Config; using TH1_Logic.Core; using TH1_Logic.Net; using TH1_Logic.Steam; using TH1_UI.View.Announce; using TH1Resource; using TMPro; using Unity.VisualScripting; using UnityEngine; using UnityEngine.UI; using ConfigManager = TH1_Logic.Config.ConfigManager; namespace TH1_UI.View.Outside { public class UIOutsideLibraryGridItemMono : MonoBehaviour { public Button Button; public Image HeroAvatar; public Image WonderAvatar; public TextMeshProUGUI Name; public Transform StarGroup; public List Stars; public Sprite StarImg; public Sprite StarImgGray; //关闭时执行的委托 public ViDelegateAssisstant.Dele OnBtnCloseClick; //开始游戏时执行的委托(目前委托内容就是执行controller的Close()) public ViDelegateAssisstant.Dele OnStartGame; public void SetHeroContent(GiantType giantType,Action onClick) { //if (!Table.Instance.UnitTypeDataAssets.GetUnitTypeInfo(new UnitFullType(UnitType.Giant, giantType, 0), out var unitInfo)) return; if (!Table.Instance.LibraryDataAssets.GetLibraryInfoByGiant(giantType, out var info)) return; HeroAvatar.gameObject.SetActive(true); WonderAvatar.gameObject.SetActive(false); HeroAvatar.sprite = info.Illust; MultilingualManager.Instance.SetUIText(Name,info.Name); for (uint k = 1;k <= 3;k++) { if (!AchievementDataManager.Instance.GetSmallIdByGiantType(giantType, out var smallid)) continue; bool isFinished = AchievementDataManager.Instance.IsFinished(2, smallid, k); if(Stars.Count <= k)continue; Stars[(int)k - 1].sprite = isFinished ? StarImg : StarImgGray; } var giantTypeCopy = giantType; Button.onClick.RemoveAllListeners(); Button.onClick.AddListener(()=>onClick.Invoke(giantTypeCopy)); } public void SetWonderContent(Empire empire,WonderTypeEnum wonderType) { Table.Instance.GridAndResourceDataAssets.GetWonderInfoByType(wonderType, empire, out var wonderInfo); HeroAvatar.gameObject.SetActive(false); WonderAvatar.gameObject.SetActive(true); WonderAvatar.sprite = wonderInfo.Sprite; MultilingualManager.Instance.SetUIText(Name,wonderInfo.Name); for (uint k = 1;k <= 3;k++) { if (!AchievementDataManager.Instance.GetSmallIdByWonderAndEmpire(empire,wonderType, out var smallid)) continue; bool isFinished = AchievementDataManager.Instance.IsFinished(3, smallid, k); if(Stars.Count <= k)continue; Stars[(int)k - 1].sprite = isFinished ? StarImg : StarImgGray; } } } }