TH1/Unity/Assets/Scripts/TH1_UI/View/Info/UIInfoTechTreeCheckPanelMono.cs
2025-11-21 17:01:48 +08:00

69 lines
2.1 KiB
C#

// 文件位置: Assets/Scripts/TH1_UI/View/Announce/UIInteractionCityUpgradeItem.cs
using System;
using System.Collections.Generic;
using System.Net.Mime;
using System.Text;
using Animancer;
using ET.Server;
using Logic.Action;
using Logic.Multilingual;
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
{
[RequireComponent(typeof(Button))]
public class UIInfoTechTreeCheckPanelMono : MonoBehaviour
{
public AnimancerComponent CheckPanelAnimancer;
public Button CloseButton;
public Button BlockButton;
public Button ResearchButton;
public List<UIInfoTechTreeCircleMono> CircleList;
public void InitStart()
{
CloseButton.onClick.RemoveAllListeners();
CloseButton.onClick.AddListener(OnClose);
BlockButton.onClick.RemoveAllListeners();
BlockButton.onClick.AddListener(OnClose);
gameObject.SetActive(false);
}
public void SetContent(TechType techType)
{
if (!Table.Instance.TechDataAssets.GetTechInfo(techType, out var info)) return;
int count = Mathf.Max(info.TechAtomList.Count, 3);
if(CircleList.Count <= count) return;
for (int i = 0; i < count; i++)
{
CircleList[i].gameObject.SetActive(true);
}
//if (techInfo == null) return;
}
public void OnClose()
{
AnimancerState state = CheckPanelAnimancer.Play(ResourceCache.Instance.AnimCache.UICommonPanelFadeOut);
state.Events.OnEnd += () => { gameObject.SetActive(false); };
}
public void Open(TechType techType)
{
gameObject.SetActive(true);
CheckPanelAnimancer.Play(ResourceCache.Instance.AnimCache.UICommonPanelFadeIn);
SetContent(techType);
}
}
}