From 8bbced312e5b16dcd288ff1a42c598be6abd17be Mon Sep 17 00:00:00 2001
From: Client_PangDeRong <593317293@qq.com>
Date: 星期一, 13 八月 2018 21:01:49 +0800
Subject: [PATCH] 【2454】转移N倍修行点

---
 System/OpenServerActivity/ImpactRankModel.cs       |   12 ++++++
 System/OpenServerActivity/OpenServerActivityWin.cs |   48 +++++++++++++++++++-----
 System/Welfare/WelfareWin.cs                       |   38 -------------------
 System/Welfare/NPracticePointWin.cs                |    2 +
 System/Welfare/MultipleRealmPointModel.cs          |   13 +++++-
 5 files changed, 63 insertions(+), 50 deletions(-)

diff --git a/System/OpenServerActivity/ImpactRankModel.cs b/System/OpenServerActivity/ImpactRankModel.cs
index 79d3a83..b2be60b 100644
--- a/System/OpenServerActivity/ImpactRankModel.cs
+++ b/System/OpenServerActivity/ImpactRankModel.cs
@@ -637,6 +637,8 @@
 
         MultipleExpModel multipleExpModel { get { return ModelCenter.Instance.GetModel<MultipleExpModel>(); } }
 
+        MultipleRealmPointModel multipleRealmModel { get { return ModelCenter.Instance.GetModel<MultipleRealmPointModel>(); } }
+
         public event Action openServerActivityStateChange;
 
         public OpenServerActivityCenter()
@@ -722,6 +724,11 @@
                 _functionOrder = 5;
                 return true;
             }
+            if (IsMultipleRealmOpen())
+            {
+                _functionOrder = 8;
+                return true;
+            }
             return false;
         }
 
@@ -768,6 +775,11 @@
             return multipleExpModel.Open();
         }
 
+        public bool IsMultipleRealmOpen()
+        {
+            return multipleRealmModel.IsOpen;
+        }
+
         public void ProcessErrorTip()
         {
             SysNotifyMgr.Instance.ShowTip("ActiveOutTime");
diff --git a/System/OpenServerActivity/OpenServerActivityWin.cs b/System/OpenServerActivity/OpenServerActivityWin.cs
index 2a38f16..b1a9880 100644
--- a/System/OpenServerActivity/OpenServerActivityWin.cs
+++ b/System/OpenServerActivity/OpenServerActivityWin.cs
@@ -49,6 +49,8 @@
 
         MultipleExpModel multipleExpModel { get { return ModelCenter.Instance.GetModel<MultipleExpModel>(); } }
 
+        MultipleRealmPointModel multipleRealmPointModel { get { return ModelCenter.Instance.GetModel<MultipleRealmPointModel>(); } }
+
         List<int> openActivitys = new List<int>();
         List<int> activityReds = new List<int>();
         List<int> alreadyOpenActivitys = new List<int>();
@@ -189,7 +191,14 @@
                     activityReds.Add(5);
                 }
             }
-
+            if (OpenServerActivityCenter.Instance.IsMultipleRealmOpen())
+            {
+                openActivitys.Add(8);
+                if (multipleRealmPointModel.multipleRed.state == RedPointState.Simple)
+                {
+                    activityReds.Add(8);
+                }
+            }
             if (activityReds.Count > 0)
             {
                 activityReds.Sort(Compare);
@@ -229,6 +238,10 @@
             {
                 alreadyOpenActivitys.Add(5);
             }
+            if (OpenServerActivityCenter.Instance.IsMultipleRealmOpen())
+            {
+                alreadyOpenActivitys.Add(8);
+            }
         }
 
         private void OnOpenServerActivityRefresh(ScrollerDataType type, CellView cell)
@@ -246,13 +259,19 @@
 
         private void RefreshOpenActivityCell(OpenServerActivityCell _cell)
         {
+            OperationBase operationBase;
             switch (_cell.index)
             {
                 case 5:
-                    OperationBase operationBase;
                     if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipleExp, out operationBase))
                     {
                         _cell.title.text = Language.Get("ExpActivity_Text5", (operationBase as OperationMultiExp).GetMultipleCHS());
+                    }
+                    break;
+                case 8:
+                    if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipRealmPoint, out operationBase))
+                    {
+                        _cell.title.text = Language.Get("MultipleRealmPoint", Language.Get(StringUtility.Contact("Num_CHS_", (operationBase as OperationMultipleRealmPoint).multiplePractice)));
                     }
                     break;
                 default:
@@ -340,12 +359,9 @@
                         m_ActivityCtrl.AddCell(ScrollerDataType.Normal, sort * 100 + 2);
                         break;
                     case 3:
-                        m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
-                        break;
                     case 4:
-                        m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
-                        break;
                     case 5:
+                    case 8:
                         m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
                         break;
                 }
@@ -437,6 +453,16 @@
                         WindowCenter.Instance.Open<MultipleExpWin>(true);
                     }
                     break;
+                case 8:
+                    if (windowState == WindowState.Opened)
+                    {
+                        WindowCenter.Instance.OpenWithoutAnimation<NPracticePointWin>();
+                    }
+                    else
+                    {
+                        WindowCenter.Instance.Open<NPracticePointWin>(true);
+                    }
+                    break;
             }
         }
 
@@ -464,6 +490,7 @@
             WindowCenter.Instance.CloseImmediately<FlashSaleWin>();
             WindowCenter.Instance.CloseImmediately<ConsumeRebateWin>();
             WindowCenter.Instance.CloseImmediately<MultipleExpWin>();
+            WindowCenter.Instance.CloseImmediately<NPracticePointWin>();
         }
 
         private int Compare(int x, int y)
@@ -510,11 +537,12 @@
                     break;
                 case Operation.GiftPackage:
                     break;
-                case Operation.FairyCeremony:
-                    break;
                 case Operation.MultipRealmPoint:
-                    break;
-                case Operation.max:
+                    if (state == 0 && !alreadyOpenActivitys.Contains(8))
+                    {
+                        alreadyOpenActivitys.Add(8);
+                        UpdateFunctionBtns();
+                    }
                     break;
             }
         }
diff --git a/System/Welfare/MultipleRealmPointModel.cs b/System/Welfare/MultipleRealmPointModel.cs
index f34af24..faf147b 100644
--- a/System/Welfare/MultipleRealmPointModel.cs
+++ b/System/Welfare/MultipleRealmPointModel.cs
@@ -5,8 +5,7 @@
 {
     public class MultipleRealmPointModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
     {
-        public const int MULTIPLEREALM_KEY = 20109;
-        public Redpoint multipleRed = new Redpoint(201,MULTIPLEREALM_KEY);
+        public Redpoint multipleRed = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, 20908);
         public string LocalRecord_Key = "MultipleRealmRecord";
         bool isNewDay = false;
         public override void Init()
@@ -41,6 +40,16 @@
           
         }
 
+        public bool IsOpen
+        {
+            get
+            {
+                OperationBase operation;
+                OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipRealmPoint, out operation);
+                return operation != null && operation.SatisfyOpenCondition() && operation.InDay(TimeUtility.ServerNow);
+            }
+        }
+
         private void RefreshOperationClose(Operation type)
         {
             if (type != Operation.MultipRealmPoint) return;
diff --git a/System/Welfare/NPracticePointWin.cs b/System/Welfare/NPracticePointWin.cs
index 29c1a46..e254f6d 100644
--- a/System/Welfare/NPracticePointWin.cs
+++ b/System/Welfare/NPracticePointWin.cs
@@ -12,6 +12,7 @@
         [SerializeField] Image multipleRealmImg;
         [SerializeField] Text activeRuleText;
         OperationBase operation;
+        MultipleRealmPointModel multipleRealm { get { return ModelCenter.Instance.GetModel<MultipleRealmPointModel>(); } }
         protected override void BindController()
         {
 
@@ -24,6 +25,7 @@
 
         protected override void OnPreOpen()
         {
+            multipleRealm.CheckShowRed(true);
             GlobalTimeEvent.Instance.secondEvent += RefreshSecond;
             InitUI();
         }
diff --git a/System/Welfare/WelfareWin.cs b/System/Welfare/WelfareWin.cs
index bf1dd59..320717a 100644
--- a/System/Welfare/WelfareWin.cs
+++ b/System/Welfare/WelfareWin.cs
@@ -20,14 +20,10 @@
         [SerializeField] FunctionButton m_LevelGiftBtn;
         [SerializeField] FunctionButton m_ExchangeBtn;
         [SerializeField] FunctionButton m_BossReornBtn;
-        [SerializeField] FunctionButton m_NpracticeBtn;
         [SerializeField] FunctionButton m_FairyJadeInvestment;
         [SerializeField] FunctionButtonGroup buttonGroup;
         [SerializeField] Button closeBtn;
 
-        [SerializeField] Text m_MultipleRealmPointTitle;
-
-        MultipleRealmPointModel multipleRealmModel { get { return ModelCenter.Instance.GetModel<MultipleRealmPointModel>(); } }
         InSevenDayModel m_InSevenDayModel;
         InSevenDayModel inSevenDay { get { return m_InSevenDayModel ?? (m_InSevenDayModel = ModelCenter.Instance.GetModel<InSevenDayModel>()); } }
     
@@ -46,7 +42,6 @@
             Btn_InSeven.AddListener(InSeven);
             m_LevelGiftBtn.onClick.AddListener(OnLevelGift);
             m_ExchangeBtn.onClick.AddListener(OnExchange);
-            m_NpracticeBtn.AddListener(OnNPractice);
             closeBtn.onClick.AddListener(CloseClick);
             m_BossReornBtn.AddListener(BossRebornBtn);
             m_FairyJadeInvestment.AddListener(FairyJade);
@@ -135,22 +130,6 @@
                 WindowCenter.Instance.Open<AwardExchangeWin>();
             }
             functionOrder = 6;
-        }
-
-
-        private void OnNPractice()
-        {
-            CloseChildWin();
-            if (windowState == WindowState.Opened)
-            {
-                WindowCenter.Instance.OpenWithoutAnimation<NPracticePointWin>();
-            }
-            else
-            {
-                WindowCenter.Instance.Open<NPracticePointWin>();
-            }
-            multipleRealmModel.CheckShowRed(true);
-            functionOrder = 8;
         }
 
         private void OnSignIn()
@@ -265,10 +244,6 @@
             {
                 WindowCenter.Instance.CloseImmediately<AwardExchangeWin>();
             }
-            if (WindowCenter.Instance.CheckOpen<NPracticePointWin>())
-            {
-                WindowCenter.Instance.CloseImmediately<NPracticePointWin>();
-            }
             if (WindowCenter.Instance.CheckOpen<FairyJadeInvestmentWin>())
             {
                 WindowCenter.Instance.CloseImmediately<FairyJadeInvestmentWin>();
@@ -283,12 +258,7 @@
 
         private void OperationEndEvent(Operation type, int state)
         {
-            OperationBase operation;
             if (type == Operation.BossReborn && !bossRebornModel.IsOpen() && WindowCenter.Instance.CheckOpen<BossRebornWin>())
-            {
-                buttonGroup.TriggerByOrder(WelfareCenter.Instance.GetWelfareFuncOrder());
-            }
-            else if (type == Operation.MultipRealmPoint && !Open(Operation.MultipRealmPoint, out operation) && WindowCenter.Instance.CheckOpen<NPracticePointWin>())
             {
                 buttonGroup.TriggerByOrder(WelfareCenter.Instance.GetWelfareFuncOrder());
             }
@@ -297,14 +267,6 @@
         void CheckOperationOpen()
         {
             m_BossReornBtn.gameObject.SetActive(bossRebornModel.IsOpen());
-
-            OperationBase operation = null;
-            bool isOpen = Open(Operation.MultipRealmPoint, out operation);
-            m_NpracticeBtn.gameObject.SetActive(isOpen);
-            if (isOpen)
-            {
-                m_MultipleRealmPointTitle.text = Language.Get("MultipleRealmPoint", Language.Get(StringUtility.Contact("Num_CHS_", (operation as OperationMultipleRealmPoint).multiplePractice)));
-            }
         }
 
         public bool Open(Operation type,out OperationBase operation)

--
Gitblit v1.8.0