From 0fdfa561c04d28e09e25e145fb2ea88041fc05ca Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期五, 15 三月 2019 10:04:28 +0800
Subject: [PATCH] 6340  【前端】【2.0】境界改版开发单

---
 System/Realm/RealmWin.cs                |   52 +++++++++++++++++++++++++++++++---------------------
 System/Realm/RealmAnimationBehaviour.cs |    5 +++++
 2 files changed, 36 insertions(+), 21 deletions(-)

diff --git a/System/Realm/RealmAnimationBehaviour.cs b/System/Realm/RealmAnimationBehaviour.cs
index db3e1b3..632153d 100644
--- a/System/Realm/RealmAnimationBehaviour.cs
+++ b/System/Realm/RealmAnimationBehaviour.cs
@@ -20,6 +20,7 @@
         float m_DeltaAngle { get { return 360f / 8; } }
 
         public event Action onRotateComplete;
+        public event Action onLevelUpComplete;
 
         RealmModel model { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
 
@@ -95,6 +96,10 @@
                 realmStage.DisplayEffect(true);
             }
             yield return WaitingForSecondConst.WaitMS500;
+            if (onLevelUpComplete != null)
+            {
+                onLevelUpComplete();
+            }
             if (index == 3)
             {
                 StartRotate();
diff --git a/System/Realm/RealmWin.cs b/System/Realm/RealmWin.cs
index dce5575..866ec2d 100644
--- a/System/Realm/RealmWin.cs
+++ b/System/Realm/RealmWin.cs
@@ -92,6 +92,7 @@
             PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshEvent;
             model.selectRealmRefresh += SelectRealmRefresh;
             m_RealmAnimation.onRotateComplete += OnRotateComplete;
+            m_RealmAnimation.onLevelUpComplete += OnLevelUpComplete;
 
             cacheRealmLevel = PlayerDatas.Instance.baseData.realmLevel;
         }
@@ -124,6 +125,9 @@
             PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshEvent;
             model.selectRealmRefresh -= SelectRealmRefresh;
             m_RealmAnimation.onRotateComplete -= OnRotateComplete;
+            m_RealmAnimation.onLevelUpComplete -= OnLevelUpComplete;
+
+            HideRealmUp();
         }
 
         protected override void OnAfterClose()
@@ -212,7 +216,8 @@
             }
 
             var config = RealmConfig.Get(model.selectRealm - 1);
-            m_GotoBoss.gameObject.SetActive(model.selectRealm == realmLevel + 1 && config != null && config.BossID != 0);
+            m_GotoBoss.gameObject.SetActive(!model.isBossPass && model.selectRealm == realmLevel + 1
+                && config != null && config.BossID != 0);
         }
 
         void DisplayRealmBrief()
@@ -260,35 +265,26 @@
             if (dataType == PlayerDataType.RealmLevel)
             {
                 var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
-                if (realmLevel == model.realmMaxLevel)
+                var stage = model.GetRealmStage(realmLevel);
+                var currentStage = model.GetRealmStage(cacheRealmLevel);
+                if (cacheRealmLevel > realmLevel || stage > currentStage + 1)
                 {
-                    DisplayRealmLevelUp();
+                    DisplayRealmStages();
                 }
                 else
                 {
-                    var stage = model.GetRealmStage(realmLevel);
-                    var currentStage = model.GetRealmStage(cacheRealmLevel);
-                    model.selectRealm = realmLevel + 1;
-                    if (cacheRealmLevel > realmLevel || stage > currentStage + 1)
+                    List<int> realms = null;
+                    if (model.TryGetRealmStages(currentStage, out realms))
                     {
-                        model.selectRealm = realmLevel + 1;
-                        DisplayRealmStages();
-                    }
-                    else
-                    {
-                        List<int> realms = null;
-                        if (model.TryGetRealmStages(currentStage, out realms))
+                        var index = realms.IndexOf(cacheRealmLevel);
+                        m_RealmAnimation.DisplayLevelUp(realms.IndexOf(cacheRealmLevel));
+                        if (index == 3)
                         {
-                            var index = realms.IndexOf(cacheRealmLevel);
-                            m_RealmAnimation.DisplayLevelUp(realms.IndexOf(cacheRealmLevel));
-                            if (index == 3)
-                            {
-                                m_ContainerUnlockEquip.gameObject.SetActive(false);
-                            }
+                            m_ContainerUnlockEquip.gameObject.SetActive(false);
                         }
                     }
-                    cacheRealmLevel = realmLevel;
                 }
+                cacheRealmLevel = realmLevel;
             }
         }
 
@@ -311,6 +307,20 @@
             DisplayUnlockEquip();
         }
 
+        private void OnLevelUpComplete()
+        {
+            var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
+            if (realmLevel == model.realmMaxLevel)
+            {
+                model.selectRealm = realmLevel;
+                DisplayRealmLevelUp();
+            }
+            else
+            {
+                model.selectRealm = realmLevel + 1;
+            }
+        }
+
         private void SelectRealmRefresh()
         {
             DisplayRealmBrief();

--
Gitblit v1.8.0