From 0012445c0109fa67987800a1bac8f32e989b2d19 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期三, 15 八月 2018 15:16:01 +0800
Subject: [PATCH] Merge branch 'master' into leonard

---
 System/OpenServerActivity/OpenServerActivityWin.cs |  250 +++++++++++++------------------------------------
 1 files changed, 68 insertions(+), 182 deletions(-)

diff --git a/System/OpenServerActivity/OpenServerActivityWin.cs b/System/OpenServerActivity/OpenServerActivityWin.cs
index c102975..4908f59 100644
--- a/System/OpenServerActivity/OpenServerActivityWin.cs
+++ b/System/OpenServerActivity/OpenServerActivityWin.cs
@@ -30,24 +30,8 @@
             }
         }
 
-        OSTimeLimitGiftModel m_OSTimeLimitGiftModel;
-        OSTimeLimitGiftModel timeLimitGiftModel {
-            get {
-                return m_OSTimeLimitGiftModel ?? (m_OSTimeLimitGiftModel = ModelCenter.Instance.GetModel<OSTimeLimitGiftModel>());
-            }
-        }
-
-        FlashSaleModel flashSaleModel { get { return ModelCenter.Instance.GetModel<FlashSaleModel>(); } }
-
-        ConsumeRebateModel consumeRebateModel { get { return ModelCenter.Instance.GetModel<ConsumeRebateModel>(); } }
-
-        MultipleExpModel multipleExpModel { get { return ModelCenter.Instance.GetModel<MultipleExpModel>(); } }
-
-        MultipleRealmPointModel multipleRealmPointModel { get { return ModelCenter.Instance.GetModel<MultipleRealmPointModel>(); } }
-        BossRebornModel bossRebornModel { get { return ModelCenter.Instance.GetModel<BossRebornModel>(); } }
-
         List<int> openActivitys = new List<int>();
-        List<int> activityReds = new List<int>();
+        List<int> priorityActivitys = new List<int>();
         List<int> alreadyOpenActivitys = new List<int>();
 
         protected override void BindController()
@@ -66,8 +50,7 @@
         {
             TimeUtility.OnServerOpenDayRefresh += OnStepServerDayEvent;
             OperationTimeHepler.Instance.operationTimeUpdateEvent += OperationTimeUpdateEvent;
-            OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
-            OperationTimeHepler.Instance.operationAdvanceEvent += OperationAdvanceEvent;
+            OpenServerActivityCenter.Instance.openServerActivityStateChange += OpenServerActivityStateChange;
             for (int i = 0; i < m_SortArray.Count; i++)
             {
                 m_ActivitySpreadDict[m_SortArray[i]] = false;
@@ -81,9 +64,10 @@
 
         protected override void OnActived()
         {
-            if (functionOrder == 1)
+            if (alreadyOpenActivitys.Count == 0)
             {
-                functionOrder = 0;
+                CloseImmediately();
+                return;
             }
             if (functionOrder == 0 && !WindowJumpMgr.Instance.IsJumpState)
             {
@@ -96,6 +80,10 @@
             }
             else
             {
+                if (!alreadyOpenActivitys.Contains(functionOrder))
+                {
+                    functionOrder = GetDefaultSelect();
+                }
                 for (int i = 0; i < m_SortArray.Count; i++)
                 {
                     m_ActivitySpreadDict[m_SortArray[i]] = m_SortArray[i] == functionOrder;
@@ -119,8 +107,7 @@
         {
             TimeUtility.OnServerOpenDayRefresh -= OnStepServerDayEvent;
             OperationTimeHepler.Instance.operationTimeUpdateEvent -= OperationTimeUpdateEvent;
-            OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent;
-            OperationTimeHepler.Instance.operationAdvanceEvent -= OperationAdvanceEvent;
+            OpenServerActivityCenter.Instance.openServerActivityStateChange -= OpenServerActivityStateChange;
             CloseOtherWin();
             WindowCenter.Instance.Open<MainInterfaceWin>();
             impactRankModel.gotoImpactRankType = 0;
@@ -134,82 +121,30 @@
         int GetDefaultSelect()
         {
             openActivitys.Clear();
-            activityReds.Clear();
-            if (OpenServerActivityCenter.Instance.IsTimeLimitGiftOpen())
-            {
-                openActivitys.Add(3);
-                if (timeLimitGiftModel.redpoint.state == RedPointState.Simple)
-                {
-                    activityReds.Add(3);
-                }
-            }
-            if (OpenServerActivityCenter.Instance.IsFlashSaleOpen())
-            {
-                openActivitys.Add(4);
-                if (flashSaleModel.flashSaleRedpoint.state == RedPointState.Simple)
-                {
-                    activityReds.Add(4);
-                }
-            }
-            if (OpenServerActivityCenter.Instance.IsImpactRankOpen())
-            {
-                openActivitys.Add(0);
-                if (impactRankModel.HasRedpoint())
-                {
-                    activityReds.Add(0);
-                }
-            }
-            if (OpenServerActivityCenter.Instance.IsRedEnvelopeOpen())
-            {
-                openActivitys.Add(2);
-                if (envelopeModel.m_RedAchieveRedpoint.state == RedPointState.Simple)
-                {
-                    activityReds.Add(2);
-                    envelopeModel.selectType = 1;
-                }
-                else if (envelopeModel.m_OpenServerGetRedpin.state == RedPointState.Simple)
-                {
-                    activityReds.Add(2);
-                    envelopeModel.selectType = 2;
-                }
-            }
-            if (OpenServerActivityCenter.Instance.IsConsumeRebateOpen())
-            {
-                openActivitys.Add(1);
-                if (consumeRebateModel.consumeRebateRedpoint.state == RedPointState.Simple)
-                {
-                    activityReds.Add(1);
-                }
-            }
-            if (OpenServerActivityCenter.Instance.IsBossRebornOpen())
-            {
-                openActivitys.Add(9);
-                if (bossRebornModel.bossRebornPoint.state == RedPointState.Simple)
-                {
-                    activityReds.Add(9);
-                }
-            }
+            priorityActivitys.Clear();
 
-            if (OpenServerActivityCenter.Instance.IsMultipleExpOpen())
+            for (int i = 0; i < m_SortArray.Count; i++)
             {
-                openActivitys.Add(5);
-                if (multipleExpModel.multipleExpRedpoint.state == RedPointState.Simple)
+                if (OpenServerActivityCenter.Instance.IsActivityOpen(m_SortArray[i]))
                 {
-                    activityReds.Add(5);
+                    openActivitys.Add(m_SortArray[i]);
+                    if (OpenServerActivityCenter.Instance.IsPriorityOpenOpen(m_SortArray[i]))
+                    {
+                        priorityActivitys.Add(m_SortArray[i]);
+
+                        switch (m_SortArray[i])
+                        {
+                            case 2:
+                                envelopeModel.selectType = envelopeModel.m_RedAchieveRedpoint.state == RedPointState.Simple ? 1 : 2;
+                                break;
+                        }
+                    }
                 }
             }
-            if (OpenServerActivityCenter.Instance.IsMultipleRealmOpen())
+            if (priorityActivitys.Count > 0)
             {
-                openActivitys.Add(8);
-                if (multipleRealmPointModel.multipleRed.state == RedPointState.Simple)
-                {
-                    activityReds.Add(8);
-                }
-            }
-            if (activityReds.Count > 0)
-            {
-                activityReds.Sort(Compare);
-                return activityReds[0];
+                priorityActivitys.Sort(Compare);
+                return priorityActivitys[0];
             }
             else
             {
@@ -221,38 +156,12 @@
         void CheckAlreadyOpen()
         {
             alreadyOpenActivitys.Clear();
-            if (OpenServerActivityCenter.Instance.IsTimeLimitGiftOpen())
+            for (int i = 0; i < m_SortArray.Count; i++)
             {
-                alreadyOpenActivitys.Add(3);
-            }
-            if (OpenServerActivityCenter.Instance.IsFlashSaleOpen())
-            {
-                alreadyOpenActivitys.Add(4);
-            }
-            if (OpenServerActivityCenter.Instance.IsImpactRankOpen())
-            {
-                alreadyOpenActivitys.Add(0);
-            }
-            if (OpenServerActivityCenter.Instance.IsRedEnvelopeOpen())
-            {
-                alreadyOpenActivitys.Add(2);
-            }
-            if (OpenServerActivityCenter.Instance.IsConsumeRebateOpen())
-            {
-                alreadyOpenActivitys.Add(1);
-            }
-            if (OpenServerActivityCenter.Instance.IsMultipleExpOpen())
-            {
-                alreadyOpenActivitys.Add(5);
-            }
-            if (OpenServerActivityCenter.Instance.IsMultipleRealmOpen())
-            {
-                alreadyOpenActivitys.Add(8);
-            }
-
-            if (OpenServerActivityCenter.Instance.IsBossRebornOpen())
-            {
-                alreadyOpenActivitys.Add(9);
+                if (OpenServerActivityCenter.Instance.IsActivityOpen(m_SortArray[i]))
+                {
+                    alreadyOpenActivitys.Add(m_SortArray[i]);
+                }
             }
         }
 
@@ -379,9 +288,6 @@
                             m_ActivityCtrl.AddCell(ScrollerDataType.Normal, sort * 100 + _type);
                         }
                         break;
-                    case 1:
-                        m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
-                        continue;
                     case 2:
                         m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
                         if (!m_ActivitySpreadDict[sort])
@@ -391,11 +297,7 @@
                         m_ActivityCtrl.AddCell(ScrollerDataType.Normal, sort * 100 + 1);
                         m_ActivityCtrl.AddCell(ScrollerDataType.Normal, sort * 100 + 2);
                         break;
-                    case 3:
-                    case 4:
-                    case 5:
-                    case 8:
-                    case 9:
+                    default:
                         m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
                         break;
                 }
@@ -487,6 +389,26 @@
                         WindowCenter.Instance.Open<MultipleExpWin>(true);
                     }
                     break;
+                case 6:
+                    if (windowState == WindowState.Opened)
+                    {
+                        WindowCenter.Instance.OpenWithoutAnimation<OpenServerGiftWin>();
+                    }
+                    else
+                    {
+                        WindowCenter.Instance.Open<OpenServerGiftWin>(true);
+                    }
+                    break;
+                case 7:
+                    if (windowState == WindowState.Opened)
+                    {
+                        WindowCenter.Instance.OpenWithoutAnimation<LimitedTimePackageWin>();
+                    }
+                    else
+                    {
+                        WindowCenter.Instance.Open<LimitedTimePackageWin>(true);
+                    }
+                    break;
                 case 8:
                     if (windowState == WindowState.Opened)
                     {
@@ -537,6 +459,8 @@
             WindowCenter.Instance.CloseImmediately<MultipleExpWin>();
             WindowCenter.Instance.CloseImmediately<NPracticePointWin>();
             WindowCenter.Instance.CloseImmediately<BossRebornWin>();
+            WindowCenter.Instance.CloseImmediately<OpenServerGiftWin>();
+            WindowCenter.Instance.CloseImmediately<LimitedTimePackageWin>();
         }
 
         private int Compare(int x, int y)
@@ -548,66 +472,28 @@
 
         private void OperationTimeUpdateEvent(Operation type)
         {
-            if (type == Operation.MultipleExp)
+            if (type == Operation.MultipleExp || type == Operation.MultipRealmPoint)
             {
                 m_ActivityCtrl.m_Scorller.RefreshActiveCellViews();
             }
         }
 
-        private void OperationStartEvent(Operation type, int state)
+        private void OpenServerActivityStateChange()
         {
-            switch (type)
+            bool _update = false;
+            for (int i = 0; i < m_SortArray.Count; i++)
             {
-                case Operation.MultipleExp:
-                    if (state == 1 && !alreadyOpenActivitys.Contains(5))
-                    {
-                        alreadyOpenActivitys.Add(5);
-                        UpdateFunctionBtns();
-                    }
-                    break;
-                case Operation.ConsumeRebate:
-                    if (state == 0 && !alreadyOpenActivitys.Contains(1))
-                    {
-                        alreadyOpenActivitys.Add(1);
-                        UpdateFunctionBtns();
-                    }
-                    break;
-                case Operation.FlashSale:
-                    if (state == 0 && !alreadyOpenActivitys.Contains(4))
-                    {
-                        alreadyOpenActivitys.Add(4);
-                        UpdateFunctionBtns();
-                    }
-                    break;
-                case Operation.BossReborn:
-                    if (state == 0 && !alreadyOpenActivitys.Contains(9))
-                    {
-                        alreadyOpenActivitys.Add(9);
-                        UpdateFunctionBtns();
-                    }
-                    break;
-                case Operation.GiftPackage:
-                    break;
-                case Operation.MultipRealmPoint:
-                    if (state == 0 && !alreadyOpenActivitys.Contains(8))
-                    {
-                        alreadyOpenActivitys.Add(8);
-                        UpdateFunctionBtns();
-                    }
-                    break;
-            }
-        }
-
-        private void OperationAdvanceEvent(Operation type)
-        {
-            if (type == Operation.FlashSale)
-            {
-                if (!alreadyOpenActivitys.Contains(4))
+                if (OpenServerActivityCenter.Instance.IsActivityOpen(m_SortArray[i])
+                    && !alreadyOpenActivitys.Contains(m_SortArray[i]))
                 {
-                    alreadyOpenActivitys.Add(4);
-                    UpdateFunctionBtns();
+                    alreadyOpenActivitys.Add(m_SortArray[i]);
+                    _update = true;
                 }
             }
+            if (_update)
+            {
+                UpdateFunctionBtns();
+            }
         }
     }
 }

--
Gitblit v1.8.0