From f5fc680bde88e6cce73a3f153a52358dd9d8aa76 Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期三, 19 九月 2018 10:08:59 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/OpenServerActivity/OpenServerActivityWin.cs |   76 ++++++++++++++++++++++++++-----------
 1 files changed, 53 insertions(+), 23 deletions(-)

diff --git a/System/OpenServerActivity/OpenServerActivityWin.cs b/System/OpenServerActivity/OpenServerActivityWin.cs
index 939d0b6..ee7fa88 100644
--- a/System/OpenServerActivity/OpenServerActivityWin.cs
+++ b/System/OpenServerActivity/OpenServerActivityWin.cs
@@ -12,7 +12,7 @@
         [SerializeField] ScrollerController m_ActivityCtrl;
         [SerializeField] Button m_BtnClose;
         [SerializeField] Image m_TitleIcon;
-        [SerializeField, Header("鎺掑簭")] List<int> m_SortArray;
+        [SerializeField] List<CustomActivityDisplay> m_CustomActivitys;
 
         Dictionary<int, bool> m_ActivitySpreadDict = new Dictionary<int, bool>();
 
@@ -43,6 +43,7 @@
         {
             m_ActivityCtrl.OnRefreshCell += OnOpenServerActivityRefresh;
             m_ActivityCtrl.OnGetDynamicSize += OnGetDynamicSize;
+            m_ActivityCtrl.lockType = EnhanceLockType.KeepVertical;
             m_BtnClose.onClick.AddListener(CloseClick);
         }
 
@@ -51,9 +52,9 @@
             TimeUtility.OnServerOpenDayRefresh += OnStepServerDayEvent;
             OperationTimeHepler.Instance.operationTimeUpdateEvent += OperationTimeUpdateEvent;
             OpenServerActivityCenter.Instance.openServerActivityStateChange += OpenServerActivityStateChange;
-            for (int i = 0; i < m_SortArray.Count; i++)
+            for (int i = 0; i < m_CustomActivitys.Count; i++)
             {
-                m_ActivitySpreadDict[m_SortArray[i]] = false;
+                m_ActivitySpreadDict[(int)m_CustomActivitys[i].activityType] = false;
             }
             var impactDefaultType= impactRankModel.GetDefaultSelectType();
             if (impactRankModel.IsLock(impactDefaultType))
@@ -137,18 +138,18 @@
             openActivitys.Clear();
             priorityActivitys.Clear();
 
-            for (int i = 0; i < m_SortArray.Count; i++)
+            for (int i = 0; i < m_CustomActivitys.Count; i++)
             {
-                if (OpenServerActivityCenter.Instance.IsActivityOpen(m_SortArray[i]))
+                if (OpenServerActivityCenter.Instance.IsActivityOpen((int)m_CustomActivitys[i].activityType))
                 {
-                    openActivitys.Add(m_SortArray[i]);
-                    if (OpenServerActivityCenter.Instance.IsPriorityOpenOpen(m_SortArray[i]))
+                    openActivitys.Add((int)m_CustomActivitys[i].activityType);
+                    if (OpenServerActivityCenter.Instance.IsPriorityOpenOpen((int)m_CustomActivitys[i].activityType))
                     {
-                        priorityActivitys.Add(m_SortArray[i]);
+                        priorityActivitys.Add((int)m_CustomActivitys[i].activityType);
 
-                        switch (m_SortArray[i])
+                        switch (m_CustomActivitys[i].activityType)
                         {
-                            case 2:
+                            case OpenServerActivityCenter.OSActivityType.OSRedpack:
                                 envelopeModel.selectType = envelopeModel.m_RedAchieveRedpoint.state == RedPointState.Simple ? 1 : 2;
                                 break;
                         }
@@ -170,11 +171,11 @@
         void CheckAlreadyOpen()
         {
             alreadyOpenActivitys.Clear();
-            for (int i = 0; i < m_SortArray.Count; i++)
+            for (int i = 0; i < m_CustomActivitys.Count; i++)
             {
-                if (OpenServerActivityCenter.Instance.IsActivityOpen(m_SortArray[i]))
+                if (OpenServerActivityCenter.Instance.IsActivityOpen((int)m_CustomActivitys[i].activityType))
                 {
-                    alreadyOpenActivitys.Add(m_SortArray[i]);
+                    alreadyOpenActivitys.Add((int)m_CustomActivitys[i].activityType);
                 }
             }
         }
@@ -234,7 +235,22 @@
             _cell.ChangeState(_cell.order == functionOrder ? TitleBtnState.Click : TitleBtnState.Normal);
             _cell.downArrow.gameObject.SetActive(false);
             _cell.upArrow.gameObject.SetActive(false);
-            if(_cell.order == 0 || _cell.order == 2)
+
+            var customActivity = m_CustomActivitys.Find((x) =>
+            {
+                return (int)x.activityType == _cell.index;
+            });
+
+            bool customIcon = !string.IsNullOrEmpty(customActivity.titleIcon);
+            _cell.title.gameObject.SetActive(!customIcon);
+            _cell.titleImage.gameObject.SetActive(customIcon);
+            if (customIcon)
+            {
+                _cell.titleImage.SetSprite(customActivity.titleIcon);
+                _cell.titleImage.SetNativeSize();
+            }
+
+            if (_cell.order == 0 || _cell.order == 2)
             {
                 _cell.downArrow.gameObject.SetActive(m_ActivitySpreadDict[_cell.order]);
                 _cell.upArrow.gameObject.SetActive(!m_ActivitySpreadDict[_cell.order]);
@@ -279,9 +295,9 @@
         private void UpdateFunctionBtns()
         {
             m_ActivityCtrl.Refresh();
-            for (int i = 0; i < m_SortArray.Count; i++)
+            for (int i = 0; i < m_CustomActivitys.Count; i++)
             {
-                var sort = m_SortArray[i];
+                var sort = (int)m_CustomActivitys[i].activityType;
                 if (!alreadyOpenActivitys.Contains(sort))
                 {
                     continue;
@@ -504,10 +520,16 @@
             WindowCenter.Instance.CloseImmediately<VipInvestWin>();
         }
 
-        private int Compare(int x, int y)
+        private int Compare(int order_x, int order_y)
         {
-            var index_x = m_SortArray.IndexOf(x);
-            var index_y = m_SortArray.IndexOf(y);
+            var index_x = m_CustomActivitys.FindIndex((x) =>
+            {
+                return order_x == (int)x.activityType;
+            });
+            var index_y = m_CustomActivitys.FindIndex((x) =>
+            {
+                return order_y == (int)x.activityType;
+            });
             return index_x.CompareTo(index_y);
         }
 
@@ -522,12 +544,12 @@
         private void OpenServerActivityStateChange()
         {
             bool _update = false;
-            for (int i = 0; i < m_SortArray.Count; i++)
+            for (int i = 0; i < m_CustomActivitys.Count; i++)
             {
-                if (OpenServerActivityCenter.Instance.IsActivityOpen(m_SortArray[i])
-                    && !alreadyOpenActivitys.Contains(m_SortArray[i]))
+                if (OpenServerActivityCenter.Instance.IsActivityOpen((int)m_CustomActivitys[i].activityType)
+                    && !alreadyOpenActivitys.Contains((int)m_CustomActivitys[i].activityType))
                 {
-                    alreadyOpenActivitys.Add(m_SortArray[i]);
+                    alreadyOpenActivitys.Add((int)m_CustomActivitys[i].activityType);
                     _update = true;
                 }
             }
@@ -536,6 +558,14 @@
                 UpdateFunctionBtns();
             }
         }
+
+        [Serializable]
+        public struct CustomActivityDisplay
+        {
+            [Header("娲诲姩绫诲瀷"), EnumLabel(typeof(OpenServerActivityCenter.OSActivityType))]
+            public OpenServerActivityCenter.OSActivityType activityType;
+            public string titleIcon;
+        }
     }
 }
 

--
Gitblit v1.8.0