102 lines
3.0 KiB
C#
102 lines
3.0 KiB
C#
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<Image> Stars;
|
|
|
|
public Sprite StarImg;
|
|
public Sprite StarImgGray;
|
|
|
|
|
|
//关闭时执行的委托
|
|
public ViDelegateAssisstant.Dele OnBtnCloseClick;
|
|
|
|
//开始游戏时执行的委托(目前委托内容就是执行controller的Close())
|
|
public ViDelegateAssisstant.Dele OnStartGame;
|
|
|
|
|
|
public void SetHeroContent(GiantType giantType,Action<GiantType> 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,Action<Empire,WonderTypeEnum> onClick)
|
|
{
|
|
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;
|
|
}
|
|
|
|
var empireCopy = empire;
|
|
var wonderTypeCopy = wonderType;
|
|
Button.onClick.RemoveAllListeners();
|
|
Button.onClick.AddListener(()=>onClick.Invoke(empireCopy,wonderTypeCopy));
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|