CTT/Unity/Assets/HotfixView/Event/UI/UpdateTeamHeadInfoEvent.cs

62 lines
2.5 KiB
C#

using ET.EventType;
using ET;
using System;
using System.Collections.Generic;
using FairyGUI;
namespace ET
{
public class UpdateTeamHeadInfoEvent : AEvent<UpdateTeamHeadInfo>
{
public static Dictionary<long, FUI_HeadInfoItem> TeamMemberHeadInfoDic { get; private set; } = new Dictionary<long, FUI_HeadInfoItem>();
public override async ETTask Run(UpdateTeamHeadInfo args)
{
Team team = args.team;
TeamMemberHeadInfoDic.Clear();
var zoneScene = args.zoneScene;
if (!(FUIComponent.Instance.Get(FUIPackage.Common_MainUI) is FUI_MainUI mainUI)) return;
mainUI.m_HeadInfoList.RemoveChildrenToPool();
long myId = zoneScene.GetComponent<GlobalVariable>().MyId;
mainUI.m_mineHeadInfo.m_imgLeader.visible = team.Id == myId;
foreach (Unit unit in team.GetAll())
{
if (unit.Id == myId)
{
continue;
}
GComponent item = mainUI.m_HeadInfoList.AddItemFromPool(FUI_HeadInfoItem.URL).asCom;
FUI_HeadInfoItem ui = FUI_HeadInfoItem.GetFormPool(args.zoneScene,item);
ClientUnitCharacter clientUnitCharacter = ClientUnitCharacterComponent.Instance.Get(unit.Id);
ui.m_txtName.text = clientUnitCharacter.NickName;
ui.m_btn.onClick.Set(() =>
{
zoneScene.GetComponent<GlobalVariable>().SelectUnitHeadInfoId = unit.Id;
Game.EventSystem.Publish_Sync(new ET.EventType.ClickTeamMemberHeadInfo
{
zoneScene = zoneScene
});
});
ui.m_imgLeader.visible = unit.IsLeader;
TeamMemberHeadInfoDic.Add(unit.Id, ui);
UpdateHeadInfo(zoneScene,unit);
}
await ETTask.CompletedTask;
}
private void UpdateHeadInfo(Scene zoneScene, Unit unit)
{
NumericComponent num = unit.GetComponent<NumericComponent>();
CharacterUIHelper.UpdateHeadInfo_ChangeLevel(zoneScene, unit);
CharacterUIHelper.Hud_ChangeHpOrMaxHp(zoneScene, unit);
CharacterUIHelper.UpdateHeadInfo_ChangeMaxHp(zoneScene, unit.Id,0,num.GetAsInt(NumericType.MaxHp));
CharacterUIHelper.UpdateHeadInfo_ChangeMp(zoneScene, unit.Id,0,num.GetAsInt(NumericType.Mp));
CharacterUIHelper.UpdateHeadInfo_ChangeMaxMp(zoneScene, unit.Id,0,num.GetAsInt(NumericType.MaxMp));
}
}
}