少年修仙传客户端代码仓库
client_Zxw
2018-08-13 498ec5c5d03765bbd87c3f75cbe68dd0d413baf9
System/OpenServerActivity/OpenServerActivityWin.cs
@@ -47,8 +47,11 @@
        ConsumeRebateModel consumeRebateModel { get { return ModelCenter.Instance.GetModel<ConsumeRebateModel>(); } }
        MultipleExpModel multipleExpModel { get { return ModelCenter.Instance.GetModel<MultipleExpModel>(); } }
        List<int> openActivitys = new List<int>();
        List<int> activityReds = new List<int>();
        List<int> alreadyOpenActivitys = new List<int>();
        protected override void BindController()
        {
@@ -64,6 +67,7 @@
        protected override void OnPreOpen()
        {
            TimeUtility.OnServerOpenDayRefresh += OnStepServerDayEvent;
            OperationTimeHepler.Instance.operationTimeUpdateEvent += OperationTimeUpdateEvent;
            for (int i = 0; i < m_SortArray.Count; i++)
            {
                m_ActivitySpreadDict[m_SortArray[i]] = false;
@@ -71,6 +75,7 @@
            impactRankModel.presentSelectType = impactRankModel.GetDefaultSelectType();
            impactRankModel.gotoImpactRankType = 0;
            envelopeModel.selectType = 1;
            CheckAlreadyOpen();
            UpdateFunctionBtns();
        }
@@ -113,6 +118,7 @@
        protected override void OnPreClose()
        {
            TimeUtility.OnServerOpenDayRefresh -= OnStepServerDayEvent;
            OperationTimeHepler.Instance.operationTimeUpdateEvent -= OperationTimeUpdateEvent;
            CloseOtherWin();
            WindowCenter.Instance.Open<MainInterfaceWin>();
            impactRankModel.gotoImpactRankType = 0;
@@ -135,7 +141,6 @@
                    activityReds.Add(3);
                }
            }
            if (OpenServerActivityCenter.Instance.IsFlashSaleOpen())
            {
                openActivitys.Add(4);
@@ -144,7 +149,6 @@
                    activityReds.Add(4);
                }
            }
            if (OpenServerActivityCenter.Instance.IsImpactRankOpen())
            {
                openActivitys.Add(0);
@@ -153,7 +157,6 @@
                    activityReds.Add(0);
                }
            }
            if (OpenServerActivityCenter.Instance.IsRedEnvelopeOpen())
            {
                openActivitys.Add(2);
@@ -168,13 +171,20 @@
                    envelopeModel.selectType = 2;
                }
            }
            if (OpenServerActivityCenter.Instance.IsConsumeRebateOpen())
            {
                openActivitys.Add(1);
                if (consumeRebateModel.consumeRebateRedpoint.state == RedPointState.Simple)
                {
                    activityReds.Add(1);
                }
            }
            if (OpenServerActivityCenter.Instance.IsMultipleExpOpen())
            {
                openActivitys.Add(5);
                if (multipleExpModel.multipleExpRedpoint.state == RedPointState.Simple)
                {
                    activityReds.Add(5);
                }
            }
@@ -187,6 +197,35 @@
            {
                openActivitys.Sort(Compare);
                return openActivitys[0];
            }
        }
        void CheckAlreadyOpen()
        {
            alreadyOpenActivitys.Clear();
            if (OpenServerActivityCenter.Instance.IsTimeLimitGiftOpen())
            {
                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);
            }
        }
@@ -205,7 +244,19 @@
        private void RefreshOpenActivityCell(OpenServerActivityCell _cell)
        {
            _cell.title.text = Language.Get(StringUtility.Contact("OSActivityTitle_", _cell.index));
            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;
                default:
                    _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);
@@ -253,13 +304,13 @@
            for (int i = 0; i < m_SortArray.Count; i++)
            {
                var sort = m_SortArray[i];
                if (!alreadyOpenActivitys.Contains(sort))
                {
                    continue;
                }
                switch (sort)
                {
                    case 0:
                        if (!OpenServerActivityCenter.Instance.IsImpactRankOpen())
                        {
                            continue;
                        }
                        m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
                        if (functionOrder != sort)
                        {
@@ -275,17 +326,9 @@
                        }
                        break;
                    case 1:
                        if (!OpenServerActivityCenter.Instance.IsConsumeRebateOpen())
                        {
                            continue;
                        }
                        m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
                        continue;
                    case 2:
                        if (!OpenServerActivityCenter.Instance.IsRedEnvelopeOpen())
                        {
                            continue;
                        }
                        m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
                        if (!m_ActivitySpreadDict[sort])
                        {
@@ -295,17 +338,12 @@
                        m_ActivityCtrl.AddCell(ScrollerDataType.Normal, sort * 100 + 2);
                        break;
                    case 3:
                        if (!OpenServerActivityCenter.Instance.IsTimeLimitGiftOpen())
                        {
                            continue;
                        }
                        m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
                        break;
                    case 4:
                        if (!OpenServerActivityCenter.Instance.IsFlashSaleOpen())
                        {
                            continue;
                        }
                        m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
                        break;
                    case 5:
                        m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
                        break;
                }
@@ -387,6 +425,16 @@
                        WindowCenter.Instance.Open<FlashSaleWin>(true);
                    }
                    break;
                case 5:
                    if (windowState == WindowState.Opened)
                    {
                        WindowCenter.Instance.OpenWithoutAnimation<MultipleExpWin>();
                    }
                    else
                    {
                        WindowCenter.Instance.Open<MultipleExpWin>(true);
                    }
                    break;
            }
        }
@@ -413,6 +461,7 @@
            WindowCenter.Instance.CloseImmediately<OSTimeLimitGiftWin>();
            WindowCenter.Instance.CloseImmediately<FlashSaleWin>();
            WindowCenter.Instance.CloseImmediately<ConsumeRebateWin>();
            WindowCenter.Instance.CloseImmediately<MultipleExpWin>();
        }
        private int Compare(int x, int y)
@@ -421,6 +470,14 @@
            var index_y = m_SortArray.IndexOf(y);
            return index_x.CompareTo(index_y);
        }
        private void OperationTimeUpdateEvent(Operation type)
        {
            if (type == Operation.MultipleExp)
            {
                m_ActivityCtrl.m_Scorller.RefreshActiveCellViews();
            }
        }
    }
}