示例#1
0
    /// <summary>
    ///  获取导航数据
    /// </summary>
    /// <param name="nav"></param>
    /// <param name="args">跳转参数</param>
    /// <param name="menuOpendData">需要被打开的面板</param>
    private static void GetNavArgs(MenuNavigation nav, Stack <string> args, out MenuNavigation menuOpenData)
    {
        if (nav.ParentMenuId != -1 && (!MenuParentId.IsMenuIgnore(nav.ParentMenuId)))
        {
            MenuNavigation parentMenu = ConfigDataBase.MenuNavigationConfig.Get(nav.ParentMenuId);
            if (AssertHelper.Check(parentMenu != null, "没有找到跳转数据,没有找到跳转数据 Id=" + parentMenu.Id))
            {
                if (parentMenu.ParentMenuId != -1)
                {
                    if (!string.IsNullOrEmpty(nav.MenuNavParam))
                    {
                        args.Push(nav.MenuNavParam);
                    }
                    GetNavArgs(parentMenu, args, out menuOpenData);

                    return;
                }
            }
        }

        menuOpenData = nav;
    }
示例#2
0
    /// <summary>
    /// 获取某个界面是否解锁
    /// </summary>
    public static bool IsUnlockPanel(MenuNavigation nav, bool showTip = false)
    {
        bool isParentUnlock = true;

        if (nav.ParentMenuId != -1 && (!MenuParentId.IsMenuIgnore(nav.ParentMenuId))) // 有父菜单
        {
            isParentUnlock = IsUnlockPanel(nav.ParentMenuId);
        }
        bool isUnlocked = false;

        switch (nav.MenuUnlockType)
        {
        case MenuUnlockType.DungeonUnlock:
            break;

        case MenuUnlockType.Dungeon:
        case MenuUnlockType.VIPLevel:
        case MenuUnlockType.Level:
            isUnlocked = DataModelManager.Instance.UIMenuNavgation.IsPanelUnlocked(nav.UiRegisterName);
            break;

        default:
            isUnlocked = DataModelManager.Instance.UIMenuNavgation.IsPanelUnlocked(nav.UiRegisterName);
            break;
        }

        if (isParentUnlock && isUnlocked)
        {
            return(true);
        }

        if (showTip)
        {
            ShowUnlockCondition(nav.MenuUnlockType, nav.MenuUnlockPara);
        }

        return(false);
    }