using System.Collections; using System.Collections.Generic; using Cysharp.Threading.Tasks; using TMPro; using UnityEngine; using UnityEngine.UI; using UnityEngine.UIElements; using Button = UnityEngine.UI.Button; using Image = UnityEngine.UI.Image; using Toggle = UnityEngine.UI.Toggle; using ScrollView = PhxhSDK.PhxhScrollView; using Framework; using Gameplay.Unit; public class UIFightTeamCDController : UIWindow { //UI GameObj ///Auto Gen Start/// ///Auto Gen End/// // deal with input data private List _headList = new(); private List _displayList = new(); public static async UniTask Open() { return await UIManager.Instance.CreateAndOpenWindow(UINameConst.UIFightTeamCD, null, UIManager.ECanvasRoot.Dynamic0); } public override void PreLoad(object data = null) { } // Use this for initialization public override void OnInit() { //bind UI GameObj UIFightTeamCDBinder.GetComponents(this); var goFight = FindObj("UI_LiuHaiRight/UI_OnFight"); for (int i = 0; i < goFight.transform.childCount; i++) { var go = FindObj("UI_LiuHaiRight/UI_OnFight/Item" + i); _headList.Add(go); } } //invoke when open window protected override void OnShowWindow(object data = null) { _SetData(); _Refresh(); } //invoke when reload window protected override void OnReloadWindow(object data = null) { } //invoke when close window protected override void OnHideWindow() { } //invoke when destroy public override void OnRelease() { base.OnRelease(); } private void _SetData() { var fightList = FightTeamManager.Instance.GetFightIDList(); _displayList.Clear(); if (fightList != null) { foreach (var uid in fightList) { _displayList.Add(uid); } } } private void _Refresh() { _RefreshItems(); } private void _RefreshItems() { for (int i = 0; i < _headList.Count; i++) { _RefreshItem(i); } } private void _RefreshItem(int index) { var headObj = _headList[index]; if (index >= _displayList.Count) { headObj.gameObject.SetActiveEx(false); return; } var uid = _displayList[index]; headObj.gameObject.SetActiveEx(true); var teamUnitInfo = FightTeamManager.Instance.GetFightTeamUnitInfo(uid); var isInFightPool = GameUnitManager.instance.infightUnits.Contains(uid); if (!isInFightPool) { return; } var unit = GameUnitManager.instance.infightUnits.Search(uid); var itemCObj = headObj.transform.GetChild(0).gameObject; var itemVObj = headObj.transform.GetChild(1).gameObject; if (unit != null && teamUnitInfo != null) { if (teamUnitInfo.Type == TeamUnitInfo.CharacType.Hero) { itemCObj.SetActiveEx(true); itemVObj.SetActiveEx(false); var cmp = itemCObj.GetComponent(); cmp.SetData(unit); cmp.Refresh(); } else { itemCObj.SetActiveEx(false); itemVObj.SetActiveEx(true); var cmp = itemVObj.GetComponent(); cmp.SetData(unit); cmp.Refresh(); } } } }