CTT/Unity/Assets/HotfixView/Event/UI/UpdateHeadInfo_ChangeMaxExp...

53 lines
1.9 KiB
C#

using DG.Tweening;
using ET.EventType;
using ET;
using System;
using System.Collections.Generic;
using FairyGUI;
namespace ET
{
public class UpdateHeadInfo_ChangeMaxExpEvent : AEvent_Sync<UpdateHeadInfo_ChangeMaxExp>
{
public static long GetMaxExpByLevel(int jobType,int level)
{
Cal.DataTable.RoleGrowth roleGrowth = DataTableHelper.Get<Cal.DataTable.RoleGrowth>(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;
var zoneScene = args.zoneScene;
long maxExp = GetMaxExpByLevel((zoneScene.GetComponent<GlobalVariable>().JobId + 1) / 2,level);
//!玩家的UI
if (id == zoneScene.GetComponent<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);
}
}
}
}
}