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

82 lines
2.9 KiB
C#
Raw Normal View History

2021-04-08 20:09:59 +08:00
using ET.EventType;
using ET;
using System;
using System.Collections.Generic;
2021-04-11 19:50:39 +08:00
using FairyGUI;
2021-04-08 20:09:59 +08:00
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)
{
2021-04-11 19:50:39 +08:00
Team team = args.team;
2021-04-08 20:09:59 +08:00
TeamMemberHeadInfoDic.Clear();
if (!(FUIComponent.Instance.Get(FUIPackage.Common_MainUI) is FUI_MainUI mainUI)) return;
mainUI.m_HeadInfoList.RemoveChildrenToPool();
2021-04-11 19:50:39 +08:00
long myId = GlobalVariable.MyId;
2021-04-08 20:09:59 +08:00
mainUI.m_mineHeadInfo.m_imgLeader.visible = team.Id == myId;
2021-04-11 19:50:39 +08:00
foreach (Unit unit in team.GetAll())
2021-04-08 20:09:59 +08:00
{
if (unit.Id == myId) continue;
2021-04-11 19:50:39 +08:00
GComponent item = mainUI.m_HeadInfoList.AddItemFromPool(FUI_HeadInfoItem.URL).asCom;
2021-04-08 20:09:59 +08:00
FUI_HeadInfoItem ui = FUI_HeadInfoItem.GetFormPool(args.zoneScene,item);
2021-04-11 19:50:39 +08:00
ClientUnitCharacter clientUnitCharacter = ClientUnitCharacterComponent.Instance.Get(unit.Id);
2021-04-08 20:09:59 +08:00
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)
{
2021-04-11 19:50:39 +08:00
NumericComponent num = unit.GetComponent<NumericComponent>();
2021-04-08 20:09:59 +08:00
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
});
}
}
}