//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, September 08, 2017 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System; using System.Collections.Generic; //顶层面板框按钮 namespace Snxxz.UI { public class HighSettingTip : MonoBehaviour { [SerializeField] Button _DaTreasureBtn;//打宝按钮 [SerializeField] Button m_LootPrecious;//夺宝 [SerializeField] Button _MarketBtn;//市场按钮 [SerializeField] Button _ShoppingBtn;//商城按钮 [SerializeField] Button _RechargeBtn;//充值按钮 [SerializeField] Button _WelfareBtn;//福利按钮 [SerializeField] Button m_OpenService;//开服活动按钮 [SerializeField] Button _RuneTaBtn;//符印按钮 [SerializeField] UIEffect m_OSCEffect;//开服活动特效 [SerializeField] UIEffect m_StoreEffect;//商城特效 [SerializeField] Button storeDesBtn; //商城活动描述信息 [SerializeField] Button m_HappyXBBtn;//寻宝入口 [SerializeField] Button m_FindHostBtn;//仙宝寻主 [SerializeField] RechargeBtnBehaviour m_RechargetBtnBehaviour; [SerializeField] Button m_ElfFestivalBtn;//仙界盛典 [SerializeField] Button m_CrossServerBtn;//跨服1V1按钮 [SerializeField] Button m_OpenServiceBtn;//周狂欢按钮 [SerializeField] Button m_NewYearBtn;//新年盛典 private bool isNeedTip = true; StoreModel storeModel { get { return ModelCenter.Instance.GetModel(); } } CrossServerOneVsOneModel crossServerModel { get { return ModelCenter.Instance.GetModel(); } } FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel(); } } private void Start() { isNeedTip = true; storeDesBtn.SetListener(() => { storeDesBtn.gameObject.SetActive(false); }); m_LootPrecious.SetListener(LootPreciousButton); _MarketBtn.SetListener(MarketButton); _ShoppingBtn.SetListener(ShoppingButton); _WelfareBtn.SetListener(WelfareButton); _DaTreasureBtn.SetListener(DaTreasureButton); _RechargeBtn.SetListener(RechargeButton); m_HappyXBBtn.SetListener(OnClickHappyXBBtn); m_FindHostBtn.SetListener(OnClickFindHostBtn); m_OpenService.SetListener(OpenService); _RuneTaBtn.SetListener(RuneTaButton); m_ElfFestivalBtn.SetListener(OnClickElfFestivalBtn); m_CrossServerBtn.SetListener(OnClickCrossServerBtn); m_OpenServiceBtn.SetListener(OnClickOpenServiceBtn); m_NewYearBtn.SetListener(OnClickNewYearBtn); } public void Init() { OpenServerActivityStateChange(); m_RechargetBtnBehaviour.Init(); storeModel.StoreFuncOpenAct += OnStoreFuncOpen; OpenServerActivityCenter.Instance.openServerActivityStateChange += OpenServerActivityStateChange; } public void UnInit() { storeModel.StoreFuncOpenAct -= OnStoreFuncOpen; OpenServerActivityCenter.Instance.openServerActivityStateChange -= OpenServerActivityStateChange; m_RechargetBtnBehaviour.UnInit(); } public void AfterOpen() { RefreshOSCEffect(); RefreshStoreEffect(); } private void OnDisable() { StopCoroutine(DelayHideStoreDes()); } private void OpenServerActivityStateChange() { int _order = 0; m_OpenService.gameObject.SetActive(OpenServerActivityCenter.Instance.IsAnyActivityOpen(out _order)); } void MarketButton()//市场按钮 { WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); } void OpenService()//开服活动 { WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); } void ShoppingButton()//商城按钮 { if (FuncOpen.Instance.IsFuncOpen(79)) { WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); } else { SysNotifyMgr.Instance.ShowTip("UnopenedFunction"); } } void WelfareButton()//福利按钮 { WelfareCenter.Instance.OpenWelfare(); } void DaTreasureButton()//打宝按钮 { WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); } void LootPreciousButton()//夺宝 { WindowCenter.Instance.Close(); if (fairyGrabBossModel.InActivityTime && !NewBieCenter.Instance.inGuiding) { WindowCenter.Instance.Open(false, 1); } else { WindowCenter.Instance.Open(false, 1); } } void RechargeButton()//充值按钮 { if (VersionConfig.Get().isBanShu) { SysNotifyMgr.Instance.ShowTip("FuncNoOpen_Nowaday"); return; } switch (m_RechargetBtnBehaviour.state) { case 1: if (!NewBieCenter.Instance.inGuiding) { WindowCenter.Instance.Close(); WindowCenter.Instance.Open(true); } break; case 3: WindowCenter.Instance.Close(); WindowCenter.Instance.Open(false, 0); break; } } void RuneTaButton()//符印塔 { WindowCenter.Instance.Close(); WindowCenter.Instance.Open(false, 0); } void OnClickHappyXBBtn()//寻宝 { WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); } void OnClickFindHostBtn()//仙宝寻主 { WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); } void OnClickElfFestivalBtn() { WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); } void OnClickCrossServerBtn()//跨服PK { int limitlv = FuncOpenLVConfig.Get(157).LimitLV; if (FuncOpen.Instance.IsFuncOpen(157) && TimeUtility.OpenDay >= crossServerModel.afterOpenDayOpenCross) { WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); } else { if (PlayerDatas.Instance.baseData.LV < limitlv) { SysNotifyMgr.Instance.ShowTip("CrossMatching14", limitlv); } else { SysNotifyMgr.Instance.ShowTip("CrossMatching15", crossServerModel.afterOpenDayOpenCross); } } } void OnClickOpenServiceBtn() { WindowCenter.Instance.Open(); } void OnClickNewYearBtn() { WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); } private void RefreshOSCEffect() { var _open = ModelCenter.Instance.GetModel().OSCEffectOpen; if (_open && !m_OSCEffect.IsPlaying) { m_OSCEffect.Play(); } else if (!_open && m_OSCEffect.IsPlaying) { m_OSCEffect.StopImediatly(); } } private void OnStoreFuncOpen() { RefreshStoreEffect(); } private void RefreshStoreEffect() { storeDesBtn.gameObject.SetActive(false); if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Store) || PlayerDatas.Instance.baseData.LV < storeModel.storeTrailerLv || !storeModel.IsNewDay(storeModel.StoreEffectRecord_Key)) return; var storeDatas = storeModel.TryGetStoreDatas(StoreFunc.MysteryStore); if (storeDatas != null && storeDatas.Count > 0 && !m_StoreEffect.IsPlaying) { if (isNeedTip) { storeDesBtn.gameObject.SetActive(true); isNeedTip = false; if (this.gameObject.activeInHierarchy) { StartCoroutine(DelayHideStoreDes()); } } m_StoreEffect.Play(); } else { m_StoreEffect.StopImediatly(); } } IEnumerator DelayHideStoreDes() { yield return new WaitForSeconds(5); storeDesBtn.gameObject.SetActive(false); } } }