219 lines
9.1 KiB
C#
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);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|