少年修仙传客户端代码仓库
client_Wu Xijin
2019-03-25 7c362dd0f94d52a4d784a4c17bab6e3cfdad39c7
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
2个文件已修改
106 ■■■■■ 已修改文件
System/Realm/RealmModel.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Realm/RealmPoolBehaviour.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Realm/RealmModel.cs
@@ -64,6 +64,7 @@
        public readonly Redpoint levelUpRedpoint = new Redpoint(114, 11401);
        public readonly Redpoint challengeRedpoint = new Redpoint(114, 11402);
        public readonly Redpoint realmPoolRedpoint = new Redpoint(114, 11403);
        int m_SelectRealm = 0;
        public int selectRealm
@@ -86,6 +87,8 @@
        bool redpointDirty = false;
        bool serverInited = false;
        public List<int> displayRealms = new List<int>();
        public int displayRealmLevel
@@ -105,6 +108,7 @@
        EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
        PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
        ActivitiesPushModel pushModel { get { return ModelCenter.Instance.GetModel<ActivitiesPushModel>(); } }
        public override void Init()
        {
@@ -120,12 +124,14 @@
            isBossPass = false;
            expStartTime = DateTime.Now;
            startExp = 0;
            serverInited = false;
            SysNotifyMgr.Instance.OnSystemNotifyEvent -= OnSystemNotifyEvent;
        }
        public void OnPlayerLoginOk()
        {
            redpointDirty = true;
            serverInited = true;
            SysNotifyMgr.Instance.OnSystemNotifyEvent -= OnSystemNotifyEvent;
            SysNotifyMgr.Instance.OnSystemNotifyEvent += OnSystemNotifyEvent;
@@ -145,6 +151,10 @@
            {
                RefreshRedpoint();
                redpointDirty = false;
            }
            if (serverInited)
            {
                RefreshRealmPoolRedpoint();
            }
        }
@@ -388,6 +398,33 @@
            GameNetSystem.Instance.SendInfo(pak);
        }
        public void TryPushRealmPoolMessage()
        {
            var remainTime = 0f;
            if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Realm))
            {
                var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
                if (realmLevel >= realmPoolOpenLevel)
                {
                    var config = RealmConfig.Get(realmLevel);
                    if (exp < config.expLimit)
                    {
                        remainTime = realmExpTime * ((config.expLimit - exp) / (float)config.expRate);
                    }
                }
            }
            if (remainTime > 0f)
            {
                var json = pushModel.GetPushJsonData(11403, (int)remainTime,
                    Language.Get("RealmPoolGeTui_Title"), Language.Get("RealmPoolGeTui_Content"));
                pushModel.SendPushInfo(json);
            }
            else
            {
                pushModel.RemovePushInfo(11403);
            }
        }
        public void ReceivePackage(HA311_tagMCSyncRealmInfo package)
        {
            isBossPass = package.IsPass == 1;
@@ -402,6 +439,9 @@
            {
                realmExpRefresh();
            }
            RefreshRealmPoolRedpoint();
            TryPushRealmPoolMessage();
        }
        private void OnStageLoadFinish()
@@ -509,6 +549,27 @@
            levelUpRedpoint.state = levelUpable ? RedPointState.Simple : RedPointState.None;
            challengeRedpoint.state = challengeable ? RedPointState.Simple : RedPointState.None;
            RefreshRealmPoolRedpoint();
        }
        void RefreshRealmPoolRedpoint()
        {
            var isPoolFull = false;
            if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Realm))
            {
                var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
                if (realmLevel >= realmPoolOpenLevel)
                {
                    var config = RealmConfig.Get(PlayerDatas.Instance.baseData.realmLevel);
                    if (totalExp >= config.expLimit)
                    {
                        isPoolFull = true;
                    }
                }
            }
            realmPoolRedpoint.state = isPoolFull ? RedPointState.Simple : RedPointState.None;
        }
    }
}
System/Realm/RealmPoolBehaviour.cs
@@ -14,6 +14,8 @@
        [SerializeField] Transform m_Lock;
        [SerializeField] Text m_Progress;
        [SerializeField] Button m_TakeExp;
        [SerializeField] UIEffect m_CollectEffect;
        [SerializeField] UIEffect m_FullEffect;
        int realmLevel = 0;
@@ -40,6 +42,8 @@
                DisplayProgress();
            }
            DisplayEffect();
            model.realmExpRefresh -= RealmExpRefresh;
            model.realmExpRefresh += RealmExpRefresh;
@@ -55,6 +59,7 @@
            var progressInt = (int)(progress * 100);
            m_Progress.text = StringUtility.Contact(progressInt, "%");
            DisplayWave();
            DisplayEffect();
        }
        public void DisplayWave()
@@ -78,6 +83,46 @@
            }
        }
        void DisplayEffect()
        {
            var config = RealmConfig.Get(realmLevel);
            var isOpen = config.expRate != 0;
            var isFull = model.totalExp >= config.expLimit;
            if (!isOpen)
            {
                StopEffect(m_FullEffect);
            }
            else
            {
                if (isFull)
                {
                    StopEffect(m_CollectEffect);
                    PlayEffect(m_FullEffect);
                }
                else
                {
                    StopEffect(m_FullEffect);
                    PlayEffect(m_CollectEffect);
                }
            }
        }
        void StopEffect(UIEffect effect)
        {
            if (effect.IsPlaying)
            {
                effect.StopImediatly();
            }
        }
        void PlayEffect(UIEffect effect)
        {
            if (!effect.IsPlaying)
            {
                effect.Play();
            }
        }
        private void PerSecond()
        {
            DisplayProgress();