using System.Collections.Generic; using System.Linq; using UnityEngine; using System; /// /// 关联界面索引表,用于获取途径,富文本打开界面等情况 /// public class UIJumpManager : GameSystemManager { public override void Init() { } public bool CanOpenWin(int winID, bool showTip = false) { var config = WindowSearchConfig.Get(winID); if (config == null) { return false; } if (config.FuncID != 0 && !FuncOpen.Instance.IsFuncOpen(config.FuncID, showTip)) { return false; } if (config.ActiveType != 0 && !OperationTimeHepler.Instance.SatisfyOpenCondition((OperationType)config.ActiveType)) { if (showTip) { SysNotifyMgr.Instance.ShowTip("ActivityNoOpen"); } return false; } //活动后续补充 return true; } public void OpenWindow(int winID, bool showTip = true) { if (!CanOpenWin(winID, showTip)) { return; } var config = WindowSearchConfig.Get(winID); if (config.WinName == "StoreBaseWin") { //指定商品 StoreModel.Instance.jumpShopID = int.Parse(config.Extra); if (StoreModel.Instance.jumpShopID == 0) { StoreModel.Instance.selectStoreFuncType = StoreFunc.Normal; } else { StoreModel.Instance.selectStoreFuncType = (StoreFunc)StoreConfig.Get(StoreModel.Instance.jumpShopID).ShopType; } } else if (config.WinName == "HeroDebutCallWin") { var heroDebutAct = HeroDebutManager.Instance.GetOperationHeroAppearInfo(); if (heroDebutAct == null) return; ActHeroAppearConfig actHeroAppearConfig = ActHeroAppearConfig.Get(heroDebutAct.CfgID); if (actHeroAppearConfig == null) return; if (actHeroAppearConfig.ExShopCostItemID != int.Parse(config.Extra)) { SysNotifyMgr.Instance.ShowTip("ActivityNoOpen"); } else { if (UIManager.Instance.IsOpened()) { UIManager.Instance.CloseWindow(); UIManager.Instance.OpenWindow(); } } } if (!UIManager.Instance.IsOpened(config.WinName)) { UIManager.Instance.OpenWindow(config.WinName, config.TabIndex); } else { var ui = UIManager.Instance.GetUI(config.WinName) as OneLevelWin; ui?.ClickFuncBtn(config.TabIndex); } } }