zxl
/
CTT
forked from Cal/CTT
1
0
Fork 0
CTT/Unity/Assets/HotfixView/Helper/CharacterUIHelper.cs

219 lines
9.1 KiB
C#

using DG.Tweening;
using FairyGUI;
namespace ET
{
public static class CharacterUIHelper
{
public static void Hud_ChangeHpOrMaxHp(Scene zoneScene, Entity entity)
{
NumericComponent num = entity.GetComponent<NumericComponent>();
HudCharacter hud = entity.GetComponent<HudCharacter>();
hud.RefreshHp(num);
}
public static void Hud_ChangeLevel(Scene zoneScene, Entity entity)
{
NumericComponent num = entity.GetComponent<NumericComponent>();
HudCharacter hud = entity.GetComponent<HudCharacter>();
hud.ChangeToLevel(entity);
}
public static void UpdateHeadInfo_ChangeLevel(Scene zoneScene, Entity entity)
{
long id = entity.Id;
//!玩家的UI
if (id == zoneScene.GetComponent<GlobalVariable>().MyId)
{
if (!(FUIComponent.Instance.Get(FUIPackage.Common_MainUI) is FUI_MainUI ui))
{
return;
}
GTextField txt = ui.m_mineHeadInfo.m_txtLevel;
txt.text = CharacterHelper.GetLevelString(entity);
}
else
{
//!队友的UI
if (UpdateTeamHeadInfoEvent.TeamMemberHeadInfoDic.TryGetValue(id, out FUI_HeadInfoItem ui))
{
GTextField txt = ui.m_txtLevel;
txt.text = CharacterHelper.GetLevelString(entity);
}
}
}
public static void UpdateHeadInfo_ChangeHp(Scene zoneScene, long id, float old, float value)
{
float tweenTime;
//!玩家的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_pBarHp;
tweenTime = (float) ((4 / MathHelper.Max(hpBar.max, MathHelper.Max(old, value))) * MathHelper.Abs(old - value));
DOTween.To(() => (float) hpBar.value, x => hpBar.value = x, 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(old, value))) * MathHelper.Abs(old - value));
DOTween.To(() => (float) hpBar.value, x => hpBar.value = x, value, tweenTime).SetEase(Ease.InOutQuad);
}
}
}
public static void UpdateHeadInfo_ChangeMaxHp(Scene zoneScene, long id, float old, float value)
{
float tweenTime = 0.6f;
//!玩家的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_pBarHp;
DOTween.To(() => (float)hpBar.max, x => hpBar.max = x,value, tweenTime).SetEase(Ease.InOutQuad);
}
else
{
//!队友的UI
if (UpdateTeamHeadInfoEvent.TeamMemberHeadInfoDic.TryGetValue(id, out FUI_HeadInfoItem ui))
{
GProgressBar hpBar = ui.m_pBarHp;
DOTween.To(() => (float)hpBar.max, x => hpBar.max = x, value, tweenTime).SetEase(Ease.InOutQuad);
}
}
}
public static void UpdateHeadInfo_ChangeMp(Scene zoneScene, long id, float old, float value)
{
float tweenTime;
//!玩家的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_pbarMp;
tweenTime = (float)((4 / MathHelper.Max(hpBar.max, MathHelper.Max(old, value))) * MathHelper.Abs(old - value));
DOTween.To(() => (float)hpBar.value, x => hpBar.value = x, value, tweenTime).SetEase(Ease.InOutQuad);
}
else
{
//!队友的UI
if (UpdateTeamHeadInfoEvent.TeamMemberHeadInfoDic.TryGetValue(id, out FUI_HeadInfoItem ui))
{
GProgressBar hpBar = ui.m_pbarMp;
tweenTime = (float)((4 / MathHelper.Max(hpBar.max, MathHelper.Max(old, value))) * MathHelper.Abs(old - value));
DOTween.To(() => (float)hpBar.value, x => hpBar.value = x, value, tweenTime).SetEase(Ease.InOutQuad);
}
}
}
public static void UpdateHeadInfo_ChangeMaxMp(Scene zoneScene, long id, float old, float value)
{
float tweenTime = 0.6f;
//!玩家的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_pbarMp;
DOTween.To(() => (float)hpBar.max, x => hpBar.max = x, value, tweenTime).SetEase(Ease.InOutQuad);
}
else
{
//!队友的UI
if (UpdateTeamHeadInfoEvent.TeamMemberHeadInfoDic.TryGetValue(id, out FUI_HeadInfoItem ui))
{
GProgressBar hpBar = ui.m_pbarMp;
DOTween.To(() => (float)hpBar.max, x => hpBar.max = x, value, tweenTime).SetEase(Ease.InOutQuad);
}
}
}
public static void ChangeTitle(Scene zoneScene,Entity entity, int titleId)
{
HudCharacter hud = entity.GetComponent<HudCharacter>();
hud.SetTitle(titleId);
}
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 static void UpdateHeadInfo_ChangeMaxExp(Scene zoneScene, Entity entity,int level)
{
long id = entity.Id;
float tweenTime = 0.4f;
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);
}
}
}
public static void UpdateHeadInfo_ChangeExp(Scene zoneScene, long id, float old, float value)
{
float tweenTime ;
//!玩家的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;
tweenTime = (float)((4 / MathHelper.Max(hpBar.max, MathHelper.Max(old, value))) * MathHelper.Abs(old - value));
DOTween.To(() => (float)hpBar.value, x => hpBar.value = x, value, tweenTime).SetEase(Ease.InOutQuad);
}
else
{
//!队友的UI
if (UpdateTeamHeadInfoEvent.TeamMemberHeadInfoDic.TryGetValue(id, out FUI_HeadInfoItem ui))
{
GProgressBar hpBar = ui.m_pBarExp;
tweenTime = (float)((4 / MathHelper.Max(hpBar.max, MathHelper.Max(old, value))) * MathHelper.Abs(old - value));
DOTween.To(() => (float)hpBar.value, x => hpBar.value = x, value, tweenTime).SetEase(Ease.InOutQuad);
}
}
}
}
}