少年修仙传客户端代码仓库
hch
2025-03-19 6770e1eb64c4282def45adb824b14b2a407fdd30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
 
namespace vnxbqy.UI
{
    public class RealmLevelUpBehaviour : MonoBehaviour
    {
        [SerializeField] Text m_RealmLevel;
        [SerializeField] Button m_LevelUp;
        [SerializeField] IntensifySmoothSlider ExpSlider;
        [SerializeField] Text m_ExpText;
 
        RealmModel model { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
 
        private void Awake()
        {
            m_LevelUp.AddListener(OnLevelUp);
 
            PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshEvent;
            PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshEvent;
        }
 
        public void Display()
        {
            //RealmLV1    如  55级 筑基后期 · 12阶
            //L1091    {0}阶
            //LoadIconLV    {0}级
            var config = RealmConfig.Get(PlayerDatas.Instance.baseData.realmLevel);
            var beforeConfig = RealmConfig.Get(PlayerDatas.Instance.baseData.realmLevel - 1);
            int newRankLV = PlayerDatas.Instance.baseData.LV - beforeConfig.LVMax;
            m_RealmLevel.text = Language.Get("RealmLV1", Language.Get("LoadIconLV", PlayerDatas.Instance.baseData.LV),
                config.Name, Language.Get("L1091", UIHelper.ChineseNumber(newRankLV)));
 
            ulong totalExp = (ulong)PlayerDatas.Instance.baseData.TotalExp + (ulong)PlayerDatas.Instance.baseData.ExpPoint * Constants.ExpPointValue;
            ulong maxExp = (ulong)PlayerLVConfig.GetExpByPlayerLv(PlayerDatas.Instance.baseData.LV);
            ExpSlider.value = (float)totalExp / maxExp;
            m_ExpText.text = StringUtility.Contact(UIHelper.ReplaceLargeNumEx(totalExp), "/", UIHelper.ReplaceLargeNumEx(maxExp));
            m_LevelUp.SetActive(PlayerDatas.Instance.baseData.realmLevel < model.realmMaxLevel);
        }
 
 
        private void OnLevelUp()
        {
            int error;
            bool hasBoss;
            bool hasAward;
            int id;
            if (model.TryLevelUp(out error, out hasBoss, out hasAward, out id))
            {
                ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("RealmBreakUP"), (bool isOk) => {
                    if (isOk)
                    {
                        CA523_tagCMRealmLVUp pak = new CA523_tagCMRealmLVUp();
                        GameNetSystem.Instance.SendInfo(pak);
                    }
                });
            }
            else
            {
                //根据任务引导
                if (error < 100)
                {
                    model.RealMissionGuide(error, id);
                }
                else
                {
                    DisplayErrorTip(error);
                }
            }
            
        }
 
        void DisplayErrorTip(int error)
        {
            switch (error)
            {
                case 101:
                    SysNotifyMgr.Instance.ShowTip("RealmMissionAward");
                    model.RequestAllAwards();
                    break;
                case 102:
                    SysNotifyMgr.Instance.ShowTip("RealmLevelUpError_1");
                    model.RealMissionGuide(1);
                    break;
                case 103:
                    SysNotifyMgr.Instance.ShowTip("RealmLevelUpError_2");
                    model.RealMissionGuide(1);
                    break;
 
            }
        }
 
        private void PlayerDataRefreshEvent(PlayerDataType dataType)
        {
            if (dataType == PlayerDataType.RealmLevel ||
                dataType == PlayerDataType.LV ||
                dataType == PlayerDataType.TotalExp)
            {
                Display();
            }
        }
    }
 
    
 
}