From 82931aabaaa3e479bc04e11630a77cd9c9dd5fe3 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期五, 26 十月 2018 20:05:36 +0800
Subject: [PATCH] Merge branch 'master' into leonard

---
 System/OpenServerActivity/OpenServerActivityWin.cs |  282 ++++++++++++++++++++++++++------------------------------
 1 files changed, 130 insertions(+), 152 deletions(-)

diff --git a/System/OpenServerActivity/OpenServerActivityWin.cs b/System/OpenServerActivity/OpenServerActivityWin.cs
index 8ff32b3..18d89d4 100644
--- a/System/OpenServerActivity/OpenServerActivityWin.cs
+++ b/System/OpenServerActivity/OpenServerActivityWin.cs
@@ -17,20 +17,25 @@
         Dictionary<int, bool> m_ActivitySpreadDict = new Dictionary<int, bool>();
 
         ImpactRankModel m_ImpactRankModel;
-        ImpactRankModel impactRankModel {
-            get {
+        ImpactRankModel impactRankModel
+        {
+            get
+            {
                 return m_ImpactRankModel ?? (m_ImpactRankModel = ModelCenter.Instance.GetModel<ImpactRankModel>());
             }
         }
 
         OSRedEnvelopeModel m_OSRedEnvelopeModel;
-        OSRedEnvelopeModel envelopeModel {
-            get {
+        OSRedEnvelopeModel envelopeModel
+        {
+            get
+            {
                 return m_OSRedEnvelopeModel ?? (m_OSRedEnvelopeModel = ModelCenter.Instance.GetModel<OSRedEnvelopeModel>());
             }
         }
         FairyLeagueModel fairyLeagueModel { get { return ModelCenter.Instance.GetModel<FairyLeagueModel>(); } }
         FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
+        OSGiftModel giftModel { get { return ModelCenter.Instance.GetModel<OSGiftModel>(); } }
 
         List<int> openActivitys = new List<int>();
         List<int> priorityActivitys = new List<int>();
@@ -58,7 +63,7 @@
             {
                 m_ActivitySpreadDict[(int)m_CustomActivitys[i].activityType] = false;
             }
-            var impactDefaultType= impactRankModel.GetDefaultSelectType();
+            var impactDefaultType = impactRankModel.GetDefaultSelectType();
             if (impactRankModel.IsLock(impactDefaultType))
             {
                 impactDefaultType = impactRankModel.billRankCfgDict.Keys.First();
@@ -66,6 +71,7 @@
             impactRankModel.presentSelectType = impactDefaultType;
             impactRankModel.gotoImpactRankType = 0;
             envelopeModel.selectType = 1;
+            giftModel.SetAreadyOpens();
             GlobalTimeEvent.Instance.secondEvent += SecondEvent;
             CheckAlreadyOpen();
             UpdateFunctionBtns();
@@ -109,9 +115,27 @@
                     envelopeModel.selectType = envelopeModel.JumpType != 0 ? envelopeModel.JumpType : 1;
                     envelopeModel.JumpType = 0;
                 }
+                if (functionOrder == 6)
+                {
+                    giftModel.selectIndex = giftModel.GetDefaultSelect();
+                }
                 UpdateFunctionBtns();
             }
             OnOpenActivity(functionOrder);
+
+            var index = functionOrder;
+            if (alreadyOpenActivitys.Contains(6))
+            {
+                if (functionOrder > 6)
+                {
+                    index = functionOrder + giftModel.alreadyOpens.Count - 1;
+                }
+                else if (functionOrder == 6)
+                {
+                    index = functionOrder + giftModel.selectIndex;
+                }
+            }
+            m_ActivityCtrl.JumpIndex(index);
         }
 
         protected override void OnAfterOpen()
@@ -155,6 +179,9 @@
                         {
                             case OpenServerActivityCenter.OSActivityType.OSRedpack:
                                 envelopeModel.selectType = envelopeModel.m_RedAchieveRedpoint.state == RedPointState.Simple ? 1 : 2;
+                                break;
+                            case OpenServerActivityCenter.OSActivityType.OSGift:
+                                giftModel.selectIndex = giftModel.GetDefaultSelect();
                                 break;
                         }
                     }
@@ -244,16 +271,21 @@
 
         private void RefreshOpenActivityCell(OpenServerActivityCell _cell)
         {
+            var activityType = 0;
+            activityType = _cell.index >= 1000 ? _cell.index / 1000 : _cell.index;
+            var extraValue = _cell.index % 1000;
+
             var customActivity = m_CustomActivitys.Find((x) =>
             {
-                return (int)x.activityType == _cell.index;
+                return (int)x.activityType == activityType;
             });
-            bool customIcon = !string.IsNullOrEmpty(customActivity.titleIcon);
 
+            bool customIcon = !string.IsNullOrEmpty(customActivity.titleIcon)
+                || (customActivity.titleIcons != null && customActivity.titleIcons.Count > 0);
             _cell.title.color = UIHelper.GetUIColor(TextColType.NavyBrown);
 
             OperationBase operationBase;
-            switch (_cell.index)
+            switch (activityType)
             {
                 case 5:
                     if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipleExp, out operationBase))
@@ -298,37 +330,63 @@
                     break;
                 default:
                     _cell.title.gameObject.SetActive(!customIcon);
-                    _cell.title.text = Language.Get(StringUtility.Contact("OSActivityTitle_", _cell.index));
+                    if (!customIcon)
+                    {
+                        _cell.title.text = Language.Get(StringUtility.Contact("OSActivityTitle_", _cell.index));
+                    }
                     break;
             }
-            _cell.order = _cell.index;
-            _cell.redpoint.redpointId = MainRedDot.REDPOINT_OPENSERVER * 100 + _cell.index;
-            _cell.ChangeState(_cell.order == functionOrder ? TitleBtnState.Click : TitleBtnState.Normal);
+
+            _cell.activityType = activityType;
+
+            _cell.titleImage.gameObject.SetActive(customIcon);
+            _cell.titleEffect.StopImediatly();
+            switch (activityType)
+            {
+                case 6:
+                    _cell.redpoint.redpointId = 20906 * 100 + extraValue;
+                    _cell.ChangeState(extraValue == giftModel.selectIndex && functionOrder == activityType
+                        ? TitleBtnState.Click : TitleBtnState.Normal);
+                    if (customIcon)
+                    {
+                        _cell.titleImage.SetSprite(customActivity.titleIcons[extraValue]);
+                        _cell.titleImage.SetNativeSize();
+                    }
+                    if (customActivity.titleEffectIds != null && extraValue < customActivity.titleEffectIds.Count)
+                    {
+                        _cell.titleEffect.effect = customActivity.titleEffectIds[extraValue];
+                        _cell.titleEffect.Play();
+                    }
+                    break;
+                default:
+                    _cell.redpoint.redpointId = MainRedDot.REDPOINT_OPENSERVER * 100 + activityType;
+                    _cell.ChangeState(_cell.activityType == functionOrder ? TitleBtnState.Click : TitleBtnState.Normal);
+                    if (customIcon)
+                    {
+                        _cell.titleImage.SetSprite(customActivity.titleIcon);
+                        _cell.titleImage.SetNativeSize();
+                    }
+                    if (customActivity.titleEffectId != 0)
+                    {
+                        _cell.titleEffect.effect = customActivity.titleEffectId;
+                        _cell.titleEffect.Play();
+                    }
+                    break;
+            }
+
             _cell.downArrow.gameObject.SetActive(false);
             _cell.upArrow.gameObject.SetActive(false);
 
-            _cell.titleImage.gameObject.SetActive(customIcon);
-            if (customIcon)
+            if (_cell.activityType == 0 || _cell.activityType == 2)
             {
-                _cell.titleImage.SetSprite(customActivity.titleIcon);
-                _cell.titleImage.SetNativeSize();
-            }
-            _cell.titleEffect.StopImediatly();
-            if (customActivity.titleEffectId != 0)
-            {
-                _cell.titleEffect.effect = customActivity.titleEffectId;
-                _cell.titleEffect.Play();
+                _cell.downArrow.gameObject.SetActive(m_ActivitySpreadDict[_cell.activityType]);
+                _cell.upArrow.gameObject.SetActive(!m_ActivitySpreadDict[_cell.activityType]);
             }
 
-            if (_cell.order == 0 || _cell.order == 2)
-            {
-                _cell.downArrow.gameObject.SetActive(m_ActivitySpreadDict[_cell.order]);
-                _cell.upArrow.gameObject.SetActive(!m_ActivitySpreadDict[_cell.order]);
-            }
             _cell.funcBtn.onClick.RemoveAllListeners();
             _cell.funcBtn.onClick.AddListener(() =>
             {
-                OnActivityClick(_cell.order);
+                OnActivityClick(_cell.activityType, extraValue);
             });
         }
 
@@ -402,6 +460,12 @@
                         m_ActivityCtrl.AddCell(ScrollerDataType.Normal, sort * 100 + 1);
                         m_ActivityCtrl.AddCell(ScrollerDataType.Normal, sort * 100 + 2);
                         break;
+                    case 6:
+                        for (int k = 0; k < giftModel.alreadyOpens.Count; k++)
+                        {
+                            m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort * 1000 + giftModel.alreadyOpens[k]);
+                        }
+                        break;
                     default:
                         m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
                         break;
@@ -411,9 +475,9 @@
             m_ActivityCtrl.m_Scorller.RefreshActiveCellViews();
         }
 
-        private void OnActivityClick(int _order)
+        private void OnActivityClick(int _order, int extra = 0)
         {
-            if (functionOrder == _order)
+            if (functionOrder == _order && _order != 6)
             {
                 m_ActivitySpreadDict[_order] = !m_ActivitySpreadDict[_order];
                 UpdateFunctionBtns();
@@ -424,8 +488,20 @@
                 m_ActivitySpreadDict[functionOrder] = false;
                 m_ActivitySpreadDict[_order] = true;
             }
-            functionOrder = _order;
-            OnOpenActivity(functionOrder);
+
+            if (functionOrder != _order)
+            {
+                functionOrder = _order;
+                OnOpenActivity(functionOrder);
+            }
+
+            switch (functionOrder)
+            {
+                case 6:
+                    giftModel.selectIndex = extra;
+                    break;
+            }
+
             UpdateFunctionBtns();
         }
 
@@ -435,154 +511,52 @@
             switch (_order)
             {
                 case 0:
-                    if (windowState == WindowState.Opened)
-                    {
-                        WindowCenter.Instance.OpenWithoutAnimation<ImpactRankWin>();
-                    }
-                    else
-                    {
-                        WindowCenter.Instance.Open<ImpactRankWin>(true);
-                    }
+                    WindowCenter.Instance.Open<ImpactRankWin>(true);
                     break;
                 case 1:
-                    if (windowState == WindowState.Opened)
-                    {
-                        WindowCenter.Instance.OpenWithoutAnimation<ConsumeRebateWin>();
-                    }
-                    else
-                    {
-                        WindowCenter.Instance.Open<ConsumeRebateWin>(true);
-                    }
+                    WindowCenter.Instance.Open<ConsumeRebateWin>(true);
                     break;
                 case 2:
-                    if (windowState == WindowState.Opened)
-                    {
-                        WindowCenter.Instance.OpenWithoutAnimation<OpenServerRedEnvelopeWin>();
-                    }
-                    else
-                    {
-                        WindowCenter.Instance.Open<OpenServerRedEnvelopeWin>(true);
-                    }
+                    WindowCenter.Instance.Open<OpenServerRedEnvelopeWin>(true);
                     break;
                 case 3:
-                    if (windowState == WindowState.Opened)
-                    {
-                        WindowCenter.Instance.OpenWithoutAnimation<OSTimeLimitGiftWin>();
-                    }
-                    else
-                    {
-                        WindowCenter.Instance.Open<OSTimeLimitGiftWin>(true);
-                    }
+                    WindowCenter.Instance.Open<OSTimeLimitGiftWin>(true);
                     break;
                 case 4:
-                    if (windowState == WindowState.Opened)
-                    {
-                        WindowCenter.Instance.OpenWithoutAnimation<FlashSaleWin>();
-                    }
-                    else
-                    {
-                        WindowCenter.Instance.Open<FlashSaleWin>(true);
-                    }
+                    WindowCenter.Instance.Open<FlashSaleWin>(true);
                     break;
                 case 5:
-                    if (windowState == WindowState.Opened)
-                    {
-                        WindowCenter.Instance.OpenWithoutAnimation<MultipleExpWin>();
-                    }
-                    else
-                    {
-                        WindowCenter.Instance.Open<MultipleExpWin>(true);
-                    }
+                    WindowCenter.Instance.Open<MultipleExpWin>(true);
                     break;
                 case 6:
-                    if (windowState == WindowState.Opened)
-                    {
-                        WindowCenter.Instance.OpenWithoutAnimation<OpenServerGiftWin>();
-                    }
-                    else
-                    {
-                        WindowCenter.Instance.Open<OpenServerGiftWin>(true);
-                    }
+                    WindowCenter.Instance.Open<OpenServerGiftWin>(true);
                     break;
                 case 7:
-                    if (windowState == WindowState.Opened)
-                    {
-                        WindowCenter.Instance.OpenWithoutAnimation<LimitedTimePackageWin>();
-                    }
-                    else
-                    {
-                        WindowCenter.Instance.Open<LimitedTimePackageWin>(true);
-                    }
+                    WindowCenter.Instance.Open<LimitedTimePackageWin>(true);
                     break;
                 case 8:
-                    if (windowState == WindowState.Opened)
-                    {
-                        WindowCenter.Instance.OpenWithoutAnimation<NPracticePointWin>();
-                    }
-                    else
-                    {
-                        WindowCenter.Instance.Open<NPracticePointWin>(true);
-                    }
+                    WindowCenter.Instance.Open<NPracticePointWin>(true);
                     break;
                 case 9:
-                    if (windowState == WindowState.Opened)
-                    {
-                        WindowCenter.Instance.OpenWithoutAnimation<BossRebornWin>();
-                    }
-                    else
-                    {
-                        WindowCenter.Instance.Open<BossRebornWin>(true);
-                    }
+                    WindowCenter.Instance.Open<BossRebornWin>(true);
                     break;
                 case 10:
-                    if (windowState == WindowState.Opened)
-                    {
-                        WindowCenter.Instance.OpenWithoutAnimation<FairyJadeInvestmentWin>();
-                    }
-                    else
-                    {
-                        WindowCenter.Instance.Open<FairyJadeInvestmentWin>(true);
-                    }
+                    WindowCenter.Instance.Open<FairyJadeInvestmentWin>(true);
                     break;
                 case 11:
-                    if (windowState == WindowState.Opened)
-                    {
-                        WindowCenter.Instance.OpenWithoutAnimation<VipInvestWin>();
-                    }
-                    else
-                    {
-                        WindowCenter.Instance.Open<VipInvestWin>(true);
-                    }
+                    WindowCenter.Instance.Open<VipInvestWin>(true);
                     break;
                 case 12:
-                    if (windowState == WindowState.Opened)
-                    {
-                        WindowCenter.Instance.OpenWithoutAnimation<FairyLeagueNoticeWin>();
-                    }
-                    else
-                    {
-                        WindowCenter.Instance.Open<FairyLeagueNoticeWin>(true);
-                    }
+                    WindowCenter.Instance.Open<FairyLeagueNoticeWin>(true);
                     break;
                 case 13:
-                    if (windowState == WindowState.Opened)
-                    {
-                        WindowCenter.Instance.OpenWithoutAnimation<FairyGrabBossNoticeWin>();
-                    }
-                    else
-                    {
-                        WindowCenter.Instance.Open<FairyGrabBossNoticeWin>(true);
-                    }
+                    WindowCenter.Instance.Open<FairyGrabBossNoticeWin>(true);
                     break;
                 case 14:
-                    if (windowState == WindowState.Opened)
-                    {
-                        WindowCenter.Instance.OpenWithoutAnimation<FlashRushToBuyWin>();
-                    }
-                    else
-                    {
-                        WindowCenter.Instance.Open<FlashRushToBuyWin>(true);
-                    }
+                    WindowCenter.Instance.Open<FlashRushToBuyWin>(true);
+                    break;
+                case 15:
+                    WindowCenter.Instance.Open<WishingPoolWin>(true);
                     break;
             }
         }
@@ -620,6 +594,7 @@
             WindowCenter.Instance.CloseImmediately<FairyLeagueNoticeWin>();
             WindowCenter.Instance.CloseImmediately<FairyGrabBossNoticeWin>();
             WindowCenter.Instance.CloseImmediately<FlashRushToBuyWin>();
+            WindowCenter.Instance.CloseImmediately<WishingPoolWin>();
         }
 
         private int Compare(int order_x, int order_y)
@@ -668,6 +643,9 @@
             public OpenServerActivityCenter.OSActivityType activityType;
             public string titleIcon;
             public int titleEffectId;
+
+            public List<string> titleIcons;
+            public List<int> titleEffectIds;
         }
     }
 }

--
Gitblit v1.8.0