| | |
| | | [SerializeField] ScrollerController m_ActivityCtrl;
|
| | | [SerializeField] Button m_BtnClose;
|
| | | [SerializeField] Image m_TitleIcon;
|
| | |
|
| | | readonly int[] sortArray = new int[] { 3, 4, 0, 1, 2 };
|
| | | [SerializeField, Header("排序")] List<int> m_SortArray;
|
| | |
|
| | | Dictionary<int, bool> m_ActivitySpreadDict = new Dictionary<int, bool>();
|
| | |
|
| | |
| | |
|
| | | FlashSaleModel flashSaleModel { get { return ModelCenter.Instance.GetModel<FlashSaleModel>(); } }
|
| | |
|
| | | ConsumeRebateModel consumeRebateModel { get { return ModelCenter.Instance.GetModel<ConsumeRebateModel>(); } }
|
| | |
|
| | | List<int> openActivitys = new List<int>();
|
| | | List<int> activityReds = new List<int>();
|
| | |
|
| | | protected override void BindController()
|
| | | {
|
| | |
|
| | |
| | | protected override void OnPreOpen()
|
| | | {
|
| | | TimeUtility.OnServerOpenDayRefresh += OnStepServerDayEvent;
|
| | | for (int i = 0; i < sortArray.Length; i++)
|
| | | for (int i = 0; i < m_SortArray.Count; i++)
|
| | | {
|
| | | m_ActivitySpreadDict[sortArray[i]] = false;
|
| | | m_ActivitySpreadDict[m_SortArray[i]] = false;
|
| | | }
|
| | | impactRankModel.presentSelectType = impactRankModel.GetDefaultSelectType();
|
| | | impactRankModel.gotoImpactRankType = 0;
|
| | | envelopeModel.selectType = 1;
|
| | | UpdateFunctionBtns();
|
| | | m_TitleIcon.SetSprite(OpenServerActivityCenter.Instance.IsFlashSaleTitle() ? "XT_KF_32" : "XT_KF_9");
|
| | | }
|
| | |
|
| | | protected override void OnActived()
|
| | |
| | | }
|
| | | if (functionOrder == 0 && !WindowJumpMgr.Instance.IsJumpState)
|
| | | {
|
| | | bool _step = false;
|
| | |
|
| | | functionOrder = 3;
|
| | | if (OpenServerActivityCenter.Instance.IsTimeLimitGiftOpen())
|
| | | functionOrder = GetDefaultSelect();
|
| | | for (int i = 0; i < m_SortArray.Count; i++)
|
| | | {
|
| | | if (timeLimitGiftModel.redpoint.state == RedPointState.Simple)
|
| | | {
|
| | | functionOrder = 3;
|
| | | _step = true;
|
| | | }
|
| | | }
|
| | | else if (!OpenServerActivityCenter.Instance.IsTimeLimitGiftOpen())
|
| | | {
|
| | | functionOrder = 4;
|
| | | }
|
| | |
|
| | | if (!_step && OpenServerActivityCenter.Instance.IsFlashSaleOpen())
|
| | | {
|
| | | if (flashSaleModel.flashSaleRedpoint.state == RedPointState.Simple)
|
| | | {
|
| | | functionOrder = 4;
|
| | | }
|
| | | }
|
| | | else if (!OpenServerActivityCenter.Instance.IsFlashSaleOpen() && functionOrder == 4)
|
| | | {
|
| | | functionOrder = 0;
|
| | | }
|
| | |
|
| | |
|
| | | if (!_step && OpenServerActivityCenter.Instance.IsImpactRankOpen() && impactRankModel.HasRedpoint())
|
| | | {
|
| | | functionOrder = 0;
|
| | | _step = true;
|
| | | }
|
| | | else if (!OpenServerActivityCenter.Instance.IsImpactRankOpen() && functionOrder == 0)
|
| | | {
|
| | | functionOrder = 2;
|
| | | }
|
| | |
|
| | | if (!_step && OpenServerActivityCenter.Instance.IsRedEnvelopeOpen())
|
| | | {
|
| | | if (envelopeModel.m_RedAchieveRedpoint.state == RedPointState.Simple)
|
| | | {
|
| | | functionOrder = 2;
|
| | | envelopeModel.selectType = 1;
|
| | | _step = true;
|
| | | }
|
| | | else if (envelopeModel.m_OpenServerGetRedpin.state == RedPointState.Simple)
|
| | | {
|
| | | functionOrder = 2;
|
| | | envelopeModel.selectType = 2;
|
| | | _step = true;
|
| | | }
|
| | | }
|
| | | else if (!OpenServerActivityCenter.Instance.IsRedEnvelopeOpen() && functionOrder == 2)
|
| | | {
|
| | | DesignDebug.Log("是不是逻辑有错误");
|
| | | }
|
| | |
|
| | | //if (!_step && OpenServerActivityCenter.Instance.IsTimeLimitGiftOpen())
|
| | | //{
|
| | | // if (timeLimitGiftModel.redpoint.state == RedPointState.Simple)
|
| | | // {
|
| | | // functionOrder = 3;
|
| | | // _step = true;
|
| | | // }
|
| | | //}
|
| | | //else if (!OpenServerActivityCenter.Instance.IsTimeLimitGiftOpen() && functionOrder == 3)
|
| | | //{
|
| | | // functionOrder = 4;
|
| | | //}
|
| | | //
|
| | | //if (!_step && OpenServerActivityCenter.Instance.IsFlashSaleOpen())
|
| | | //{
|
| | | //
|
| | | //}
|
| | | //else if (!OpenServerActivityCenter.Instance.IsFlashSaleOpen() && functionOrder == 4)
|
| | | //{
|
| | | // DesignDebug.Log("是不是逻辑有错误");
|
| | | //}
|
| | |
|
| | | for (int i = 0; i < sortArray.Length; i++)
|
| | | {
|
| | | m_ActivitySpreadDict[sortArray[i]] = sortArray[i] == functionOrder;
|
| | | m_ActivitySpreadDict[m_SortArray[i]] = m_SortArray[i] == functionOrder;
|
| | | }
|
| | | UpdateFunctionBtns();
|
| | | }
|
| | | else
|
| | | {
|
| | | for (int i = 0; i < sortArray.Length; i++)
|
| | | for (int i = 0; i < m_SortArray.Count; i++)
|
| | | {
|
| | | m_ActivitySpreadDict[sortArray[i]] = sortArray[i] == functionOrder;
|
| | | m_ActivitySpreadDict[m_SortArray[i]] = m_SortArray[i] == functionOrder;
|
| | | }
|
| | | if (functionOrder == 2)
|
| | | {
|
| | |
| | | {
|
| | |
|
| | | }
|
| | |
|
| | | 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 (activityReds.Count > 0)
|
| | | {
|
| | | activityReds.Sort(Compare);
|
| | | return activityReds[0];
|
| | | }
|
| | | else
|
| | | {
|
| | | openActivitys.Sort(Compare);
|
| | | return openActivitys[0];
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnOpenServerActivityRefresh(ScrollerDataType type, CellView cell)
|
| | | {
|
| | | switch (type)
|
| | |
| | | private void UpdateFunctionBtns()
|
| | | {
|
| | | m_ActivityCtrl.Refresh();
|
| | | for (int i = 0; i < sortArray.Length; i++)
|
| | | for (int i = 0; i < m_SortArray.Count; i++)
|
| | | {
|
| | | var sort = sortArray[i];
|
| | | var sort = m_SortArray[i];
|
| | | switch (sort)
|
| | | {
|
| | | case 0:
|
| | |
| | | }
|
| | | break;
|
| | | case 1:
|
| | | if (!OpenServerActivityCenter.Instance.IsConsumeRebateOpen())
|
| | | {
|
| | | continue;
|
| | | }
|
| | | m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
|
| | | continue;
|
| | | case 2:
|
| | | if (!OpenServerActivityCenter.Instance.IsRedEnvelopeOpen())
|
| | |
| | | }
|
| | | break;
|
| | | case 1:
|
| | | if (windowState == WindowState.Opened)
|
| | | {
|
| | | WindowCenter.Instance.OpenWithoutAnimation<ConsumeRebateWin>();
|
| | | }
|
| | | else
|
| | | {
|
| | | WindowCenter.Instance.Open<ConsumeRebateWin>(true);
|
| | | }
|
| | | break;
|
| | | case 2:
|
| | | if (windowState == WindowState.Opened)
|
| | |
| | |
|
| | | private void CloseOtherWin()
|
| | | {
|
| | | if (WindowCenter.Instance.CheckOpen<ImpactRankWin>())
|
| | | {
|
| | | WindowCenter.Instance.CloseImmediately<ImpactRankWin>();
|
| | | }
|
| | | if (WindowCenter.Instance.CheckOpen<OpenServerRedEnvelopeWin>())
|
| | | {
|
| | | WindowCenter.Instance.CloseImmediately<OpenServerRedEnvelopeWin>();
|
| | | }
|
| | | if (WindowCenter.Instance.CheckOpen<OSTimeLimitGiftWin>())
|
| | | {
|
| | | WindowCenter.Instance.CloseImmediately<OSTimeLimitGiftWin>();
|
| | | }
|
| | | if (WindowCenter.Instance.CheckOpen<FlashSaleWin>())
|
| | | {
|
| | | WindowCenter.Instance.CloseImmediately<FlashSaleWin>();
|
| | | }
|
| | | WindowCenter.Instance.CloseImmediately<ImpactRankWin>();
|
| | | WindowCenter.Instance.CloseImmediately<OpenServerRedEnvelopeWin>();
|
| | | WindowCenter.Instance.CloseImmediately<OSTimeLimitGiftWin>();
|
| | | WindowCenter.Instance.CloseImmediately<FlashSaleWin>();
|
| | | WindowCenter.Instance.CloseImmediately<ConsumeRebateWin>();
|
| | | }
|
| | |
|
| | | private int Compare(int x, int y)
|
| | | {
|
| | | var index_x = m_SortArray.IndexOf(x);
|
| | | var index_y = m_SortArray.IndexOf(y);
|
| | | return index_x.CompareTo(index_y);
|
| | | }
|
| | | }
|
| | | }
|