using ET; using DG.Tweening; using ET.EventType; using FairyGUI; using UnityEngine; namespace ET { public class UpdateHeadInfo_ChangeHpEvent : AEvent_Sync { public override void Run(UpdateHeadInfo_ChangeHp args) { long id = args.unit.Id; float tweenTime; var zoneScene = args.zoneScene; //!玩家的UI if (id == zoneScene.GetComponent().MyId) { if (!(FUIComponent.Instance.Get(FUIPackage.Common_MainUI) is FUI_MainUI ui)) { return; } GProgressBar hpBar = ui.m_mineHeadInfo.m_pBarHp; tweenTime = (float)((4 / MathHelper.Max(hpBar.max,MathHelper.Max(args.old,args.value))) * MathHelper.Abs(args.old - args.value)); DOTween.To(() => (float)hpBar.value, x => hpBar.value =x, args.value, tweenTime).SetEase(Ease.InOutQuad); } else { //!队友的UI if (UpdateTeamHeadInfoEvent.TeamMemberHeadInfoDic.TryGetValue(id, out FUI_HeadInfoItem ui)) { GProgressBar hpBar = ui.m_pBarHp; tweenTime = (float)((4 / MathHelper.Max(hpBar.max, MathHelper.Max(args.old, args.value))) * MathHelper.Abs(args.old - args.value)); DOTween.To(() => (float)hpBar.value, x => hpBar.value = x, args.value, tweenTime).SetEase(Ease.InOutQuad); } } } } }