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