zxl
/
CTT
forked from Cal/CTT
1
0
Fork 0
CTT/Unity/Assets/HotfixView/UI/StateBuffUI/StateBuffUI.cs

101 lines
2.9 KiB
C#

using ET;
using System;
using System.Collections.Generic;
using FairyGUI;
namespace ET
{
public class StateBuffUIAwakeSyatem : AwakeSystem<StateBuffUI>
{
public override void Awake(StateBuffUI self)
{
self.Awake();
}
}
public class StateBuffUIDestroySyatem : DestroySystem<StateBuffUI>
{
public override void Destroy(StateBuffUI self)
{
self.Destroy();
}
}
public class StateBuffUI : Entity
{
public FUI_StateBuffUI ui;
private UnOrderMultiMap<long, BuffStateInfo> buffDic;
private FUIWindowComponent window;
public void Awake()
{
ui = GetParent<FUI_StateBuffUI>();
AwakeAsync().Coroutine();
}
private async ETVoid AwakeAsync()
{
ui.m_list.RemoveChildrenToPool();
var unitList = BattleComponent.GetAll();
foreach (Unit unit in unitList)
{
GObject item = ui.m_list.AddItemFromPool();
FUI_LabelStateBuffUI buffItem = FUI_LabelStateBuffUI.GetFormPool(this.ui,item);
long id = unit.Id;
string color = null;
string state = null;
if (unit.IsAlive)
{
color = "#ffff99";
state = "存活";
}
else
{
color = "#ff1100";
state = "死亡";
}
buffItem.self.title = $"[size=15]{id}[/size]\n[color={color}]{state}[/color]";
buffItem.m_buffList.RemoveChildrenToPool();
if (buffDic == null)
continue;
var list = buffDic[unit.Id];
if (list == null)
continue;
foreach (BuffStateInfo buffInfo in list)
{
GButton iconBtn = buffItem.m_buffList.AddItemFromPool().asButton;
iconBtn.onClick.Clear();
TabHelper.SetTab(iconBtn, () =>
{
TabHelper.OpenBuffUI(buffInfo);
});
}
}
await ETTask.CompletedTask;
}
public void Init()
{
if (buffDic != null)
{
//ObjectPool.Instance.Recycle(buffDic);
buffDic = null;
}
}
public void RefreshUI(UnOrderMultiMap<long, BuffStateInfo> map)
{
if (buffDic != null)
{
//ObjectPool.Instance.Recycle(buffDic);
}
buffDic = map;
if (window != null &&
window.IsShowing)
{
AwakeAsync().Coroutine();
}
}
public void Destroy()
{
}
}
}