using ET.EventType; using ET; using System; using System.Collections.Generic; using FairyGUI; namespace ET { public class UpdateTeamHeadInfoEvent : AEvent { public static Dictionary TeamMemberHeadInfoDic { get; private set; } = new Dictionary(); 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().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().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(); 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)); } } }