using DG.Tweening; using ET.EventType; using ET; using System; using System.Collections.Generic; using FairyGUI; namespace ET { public class UpdateHeadInfo_ChangeMaxExpEvent : AEvent_Sync { public static long GetMaxExpByLevel(int jobType,int level) { Cal.DataTable.RoleGrowth roleGrowth = DataTableHelper.Get(jobType); if (roleGrowth == null) { Log.Error($"roleGrowth == null"); return long.MaxValue; } long needExp = (int)(roleGrowth.ExpArr[0].Exp_BaseNumber * UnityEngine.Mathf.Pow(level, roleGrowth.ExpArr[0].Exp_Power)); return needExp; } public override void Run(UpdateHeadInfo_ChangeMaxExp args) { long id = args.unit.Id; int level = args.level; float tweenTime = 0.4f; long maxExp = GetMaxExpByLevel((GlobalVariable.JobId + 1) / 2,level); //!玩家的UI if (id == GlobalVariable.MyId) { if (!(FUIComponent.Instance.Get(FUIPackage.Common_MainUI) is FUI_MainUI ui)) { return; } GProgressBar hpBar = ui.m_mineHeadInfo.m_pBarExp; DOTween.To(() => (float)hpBar.max, x => hpBar.max = x, maxExp, tweenTime).SetEase(Ease.InOutQuad); } else { //!队友的UI if (UpdateTeamHeadInfoEvent.TeamMemberHeadInfoDic.TryGetValue(id, out FUI_HeadInfoItem ui)) { GProgressBar hpBar = ui.m_pBarExp; DOTween.To(() => (float)hpBar.max, x => hpBar.max = x, maxExp, tweenTime).SetEase(Ease.InOutQuad); } } } } }