//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, October 30, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class WelfareWin : Window { [SerializeField] FunctionButton signInTitleBtn; [SerializeField] FunctionButton prayerTitleBtn; [SerializeField] FunctionButton Btn_InSeven; [SerializeField] FunctionButton m_LevelGiftBtn; [SerializeField] FunctionButton m_ExchangeBtn; [SerializeField] FunctionButton m_FairyJadeInvestment; [SerializeField] FunctionButtonGroup buttonGroup; [SerializeField] Button closeBtn; InSevenDayModel m_InSevenDayModel; InSevenDayModel inSevenDay { get { return m_InSevenDayModel ?? (m_InSevenDayModel = ModelCenter.Instance.GetModel()); } } FairyJadeInvestmentModel m_FairyJadeInvestmentModel; FairyJadeInvestmentModel fairyJadeInvestmentModel { get { return m_FairyJadeInvestmentModel ?? (m_FairyJadeInvestmentModel = ModelCenter.Instance.GetModel()); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { signInTitleBtn.onClick.AddListener(OnSignIn); prayerTitleBtn.onClick.AddListener(OnPrayer); Btn_InSeven.AddListener(InSeven); m_LevelGiftBtn.onClick.AddListener(OnLevelGift); m_ExchangeBtn.onClick.AddListener(OnExchange); closeBtn.onClick.AddListener(CloseClick); m_FairyJadeInvestment.AddListener(FairyJade); } private void OnPrayer() { CloseChildWin(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = 1; } private void InSeven() { CloseChildWin(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = 2; } private void OnLevelGift() { CloseChildWin(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = 3; } private void FairyJade() { CloseChildWin(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = 5; } private void OnExchange() { CloseChildWin(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = 4; } private void OnSignIn() { CloseChildWin(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = 0; } protected override void OnPreOpen() { OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent; OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent; if (TimeUtility.CreateDays > 7 && inSevenDay.redPointStre1.state == RedPointState.None)//创角天 { Btn_InSeven.gameObject.SetActive(false); } else { Btn_InSeven.gameObject.SetActive(true); } bool isOpen = false; if (fairyJadeInvestmentModel.InvestmentGrade > 0 && fairyJadeInvestmentModel.InvestmentGrade < 3) { isOpen = true; } else { if (fairyJadeInvestmentModel.InvestmentGrade == 3) { foreach (int key in fairyJadeInvestmentModel.InfoSeriors.Keys) { if (fairyJadeInvestmentModel.InfoSeriors[key] != 3) { isOpen = true; } } } } if (PlayerDatas.Instance.baseData.LV >= 300 && !isOpen) { m_FairyJadeInvestment.gameObject.SetActive(false); } else { m_FairyJadeInvestment.gameObject.SetActive(true); } CheckOperationOpen(); } protected override void OnActived() { base.OnActived(); buttonGroup.TriggerByOrder(functionOrder); } protected override void OnPreClose() { OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent; OperationTimeHepler.Instance.operationEndEvent -= OperationEndEvent; CloseChildWin(); if (NewBieCenter.Instance.inGuiding && NewBieCenter.Instance.currentGuide == 40) { WindowJumpMgr.Instance.ClearJumpData(); WindowCenter.Instance.Open(); } else { WindowCenter.Instance.Open(); } } protected override void OnAfterOpen() { } protected override void OnAfterClose() { } #endregion private void CloseChildWin() { if (WindowCenter.Instance.CheckOpen()) { WindowCenter.Instance.CloseImmediately(); } if (WindowCenter.Instance.CheckOpen()) { WindowCenter.Instance.CloseImmediately(); } if (WindowCenter.Instance.CheckOpen()) { WindowCenter.Instance.CloseImmediately(); } if (WindowCenter.Instance.CheckOpen()) { WindowCenter.Instance.CloseImmediately(); } if (WindowCenter.Instance.CheckOpen()) { WindowCenter.Instance.CloseImmediately(); } if (WindowCenter.Instance.CheckOpen()) { WindowCenter.Instance.CloseImmediately(); } } private void OperationStartEvent(Operation arg1, int arg2) { CheckOperationOpen(); } private void OperationEndEvent(Operation type, int state) { } void CheckOperationOpen() { } public bool Open(Operation type,out OperationBase operation) { operation = null; OperationTimeHepler.Instance.TryGetOperationTime(type, out operation); return OperationTimeHepler.Instance.SatisfyOpenCondition(type); } } }