using DG.Tweening; using FairyGUI; namespace ET { public static class CharacterUIHelper { public static void Hud_ChangeHpOrMaxHp(Scene zoneScene, Entity entity) { NumericComponent num = entity.GetComponent(); HudCharacter hud = entity.GetComponent(); hud.RefreshHp(num); } public static void Hud_ChangeLevel(Scene zoneScene, Entity entity) { NumericComponent num = entity.GetComponent(); HudCharacter hud = entity.GetComponent(); hud.ChangeToLevel(entity); } public static void UpdateHeadInfo_ChangeLevel(Scene zoneScene, Entity entity) { long id = entity.Id; //!玩家的UI if (id == zoneScene.GetComponent().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().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().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().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().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(); hud.SetTitle(titleId); } 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 static void UpdateHeadInfo_ChangeMaxExp(Scene zoneScene, Entity entity,int level) { long id = entity.Id; float tweenTime = 0.4f; long maxExp = GetMaxExpByLevel((zoneScene.GetComponent().JobId + 1) / 2,level); //!玩家的UI if (id == zoneScene.GetComponent().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().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); } } } } }