101 lines
2.9 KiB
C#
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()
|
|
{
|
|
|
|
}
|
|
}
|
|
}
|