//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, March 02, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System; //用于主界面 namespace vnxbqy.UI { //用于主界面的Tip的引导结束后出现 public class TipPanel : Singleton { PlayerMainDate m_MainModel; PlayerMainDate mainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel()); } } OffLineOnHookModel m_OnHookModel; OffLineOnHookModel onHookModel { get { return m_OnHookModel ?? (m_OnHookModel = ModelCenter.Instance.GetModel()); } } LoginAdModel loginAdModel { get { return ModelCenter.Instance.GetModel(); } } FirstTimeRechargeModel firstTimeRechargeModel { get { return ModelCenter.Instance.GetModel(); } } StoreModel storeModel { get { return ModelCenter.Instance.GetModel(); } } TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel(); } } FeatureNoticeModel featureNoticeModel { get { return ModelCenter.Instance.GetModel(); } } public void Initialize() { WindowCenter.Instance.windowAfterOpenEvent += windowBeforeOpen; NewBieCenter.Instance.guideCompletedEvent += guideCompleted; StageLoad.Instance.onStageLoadFinish += OnStageLoadFinish; TreasureNewGotWin.CloseTreasureNewGotWinEvent += CloseTreasureNewGotWinEvent; } private void CloseTreasureNewGotWinEvent() { SnxxzGame.Instance.StartCoroutine(Co_Load()); } private void OnStageLoadFinish() { SnxxzGame.Instance.StartCoroutine(Co_Load()); } private void guideCompleted(int obj) { SnxxzGame.Instance.StartCoroutine(Co_GuideComplete()); } private void windowBeforeOpen(Window win) { if (win is MainInterfaceWin) { SnxxzGame.Instance.StartCoroutine(Co_Load()); } } IEnumerator Co_GuideComplete() { yield return null; if (WindowCenter.Instance.IsOpen() && !NewBieCenter.Instance.inGuiding && !WindowCenter.Instance.ExistAnyFullScreenOrMaskWin() && !StageLoad.Instance.isLoading && !treasureModel.newGotShowing) { IsOPenTip(); } } IEnumerator Co_Load() { yield return WaitingForSecondConst.WaitMS500; if (WindowCenter.Instance.IsOpen() && !NewBieCenter.Instance.inGuiding && !WindowCenter.Instance.ExistAnyFullScreenOrMaskWin() && !StageLoad.Instance.isLoading && StageLoad.Instance.currentStage is DungeonStage && !treasureModel.newGotShowing) { IsOPenTip(); } } private bool IsDungeon() { var mapId = PlayerDatas.Instance.baseData.MapID; var mapConfig = MapConfig.Get(mapId); return mapConfig != null && mapConfig.MapFBType != 0; } public void IsOPenTip() { var inDungeon = IsDungeon(); loginAdModel.CheckOpen(); if (onHookModel.openWinState == 2)//脱机挂 { PopupWindowsProcessor.Instance.Add("OffLineOnHookWin"); onHookModel.openWinState = 0; } if (firstTimeRechargeModel.IsTryOut == 1 && !inDungeon)//装备试用 { firstTimeRechargeModel.OpenFirstChargeTrialWin(); } else if (featureNoticeModel.IsShowFeatureN())//功能预告面板 { SysNotifyMgr.Instance.StartCoroutine(featureNoticeModel.WhetherToPlayTheBox()); } else if (!WindowCenter.Instance.IsOpen() && !WindowCenter.Instance.IsOpen()) //灵宠坐骑推送 { storeModel.SetPushPetAndMountWinState(); } if (mainModel.IsTipBool) { if (InGameDownLoad.Instance.IsHighLevelPlayer()) { if (InGameDownLoad.Instance.CheckDominantDownLoad()) { if (InGameDownTestUtility.enable) { if (InGameDownTestUtility.isWifi) { InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.Half); } else { InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.Whole); } } else { if (Application.internetReachability == NetworkReachability.ReachableViaLocalAreaNetwork) { InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.Half); } else { InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.Whole); } } } } if (DTCB105_tagMCPlayerWallow.antiAddictionOpen) { var sdkIDCheckIDAuthentication = ModelCenter.Instance.GetModel().sdkIDCheckIDAuthentication; var certificationState = sdkIDCheckIDAuthentication.type; if (certificationState == "2") { var idNumber = sdkIDCheckIDAuthentication.card_id; if (string.IsNullOrEmpty(idNumber) || !MathUtility.CheckAdult(idNumber)) { WindowCenter.Instance.Open(); } } else { WindowCenter.Instance.Open(); } } mainModel.IsTipBool = false; WindowCenter.Instance.windowBeforeOpenEvent -= windowBeforeOpen; } } } }