//-------------------------------------------------------- // [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_MultipleExpBtn; [SerializeField] FunctionButton m_ConsumeRebateBtn; [SerializeField] FunctionButton m_BossReornBtn; [SerializeField] FunctionButton m_NpracticeBtn; [SerializeField] FunctionButtonGroup buttonGroup; [SerializeField] Button closeBtn; [SerializeField] Text m_MultipleExtTitle; [SerializeField] Text m_MultipleRealmPointTitle; MultipleExpModel multipleExpModel { get { return ModelCenter.Instance.GetModel(); } } ConsumeRebateModel consumeRebateModel { get { return ModelCenter.Instance.GetModel(); } } InSevenDayModel m_InSevenDayModel; InSevenDayModel inSevenDay { get { return m_InSevenDayModel ?? (m_InSevenDayModel = ModelCenter.Instance.GetModel()); } } BossRebornModel bossRebornModel { get { return 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); m_NpracticeBtn.AddListener(OnNPractice); closeBtn.onClick.AddListener(CloseClick); m_MultipleExpBtn.onClick.AddListener(OnMultipleExp); m_ConsumeRebateBtn.onClick.AddListener(ConsumeRebateBtn); m_BossReornBtn.AddListener(BossRebornBtn); } 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 ConsumeRebateBtn() { CloseChildWin(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = 4; } private void BossRebornBtn() { CloseChildWin(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = 7; } private void OnExchange() { CloseChildWin(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = 6; } private void OnNPractice() { CloseChildWin(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = 8; } private void OnMultipleExp() { CloseChildWin(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = 5; } 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; if (TimeUtility.CreateDays > 7 && inSevenDay.redPointStre1.state == RedPointState.None)//创角天 { Btn_InSeven.gameObject.SetActive(false); } else { Btn_InSeven.gameObject.SetActive(true); } CheckOperationOpen(); } protected override void OnActived() { base.OnActived(); //if (!Btn_InSeven.gameObject.activeInHierarchy) //{ // functionOrder = 2; //} buttonGroup.TriggerByOrder(functionOrder); } protected override void OnPreClose() { OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent; 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(); } if (WindowCenter.Instance.CheckOpen()) { WindowCenter.Instance.CloseImmediately(); } if (WindowCenter.Instance.CheckOpen()) { WindowCenter.Instance.CloseImmediately(); } WindowCenter.Instance.CloseImmediately(); } private void OperationStartEvent(Operation arg1, int arg2) { CheckOperationOpen(); } void CheckOperationOpen() { m_MultipleExpBtn.gameObject.SetActive(multipleExpModel.Open()); m_ConsumeRebateBtn.gameObject.SetActive(consumeRebateModel.IsOpen); m_BossReornBtn.gameObject.SetActive(bossRebornModel.IsOpen()); if (multipleExpModel.Open()) { OperationBase operationBase; if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipleExp, out operationBase)) { m_MultipleExtTitle.text = Language.Get("ExpActivity_Text5", (operationBase as OperationMultiExp).GetMultipleCHS()); } } OperationBase operation = null; bool isOpen = Open(Operation.MultipRealmPoint, out operation); m_NpracticeBtn.gameObject.SetActive(isOpen); if (isOpen) { m_MultipleRealmPointTitle.text = Language.Get("MultipleRealmPoint", Language.Get(StringUtility.Contact("Num_CHS_", (operation as OperationMultipleRealmPoint).multiplePractice))); } } public bool Open(Operation type,out OperationBase operation) { operation = null; OperationTimeHepler.Instance.TryGetOperationTime(type, out operation); return OperationTimeHepler.Instance.SatisfyOpenCondition(type); } } }