using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
using System;
|
|
/// <summary>
|
/// 关联界面索引表,用于获取途径,富文本打开界面等情况
|
/// </summary>
|
public class UIJumpManager : GameSystemManager<UIJumpManager>
|
{
|
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")
|
{
|
if (int.TryParse(config.Extra, out int result))
|
{
|
//指定商品
|
StoreModel.Instance.jumpShopID = result;
|
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" ||
|
config.WinName == "HeroDebutSkinWin" ||
|
config.WinName == "HeroDebutCheckInWin" ||
|
config.WinName == "HeroDebutGiftWin" ||
|
config.WinName == "HeroDebutShopWin")
|
{
|
var heroDebutAct = HeroDebutManager.Instance.GetOperationHeroAppearInfo();
|
if (heroDebutAct == null)
|
{
|
SysNotifyMgr.Instance.ShowTip("ActivityNoOpen");
|
return;
|
}
|
var actHeroAppearConfig = ActHeroAppearConfig.Get(heroDebutAct.CfgID);
|
if (actHeroAppearConfig == null)
|
{
|
SysNotifyMgr.Instance.ShowTip("ActivityNoOpen");
|
return;
|
}
|
|
// 皮肤商店需要判断物品ID
|
if (config.WinName == "HeroDebutSkinWin")
|
{
|
if (!HeroDebutManager.Instance.HasItemInSkinCTGIDList(heroDebutAct.CfgID, int.Parse(config.Extra)))
|
{
|
SysNotifyMgr.Instance.ShowTip("ActivityNoOpen");
|
return;
|
}
|
}
|
|
if (UIManager.Instance.IsOpened(config.WinName))
|
{
|
UIManager.Instance.CloseWindow(config.WinName);
|
UIManager.Instance.OpenWindow(config.WinName);
|
}
|
}
|
|
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);
|
}
|
}
|
}
|