少年修仙传客户端代码仓库
client_Wu Xijin
2018-08-15 0012445c0109fa67987800a1bac8f32e989b2d19
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();
            }
        }
    }
}