PGRData/Resources/Scripts/XManager/XFunctionalSkipManager.lua
2022-12-26 14:06:01 +05:30

1000 lines
No EOL
38 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

XFunctionalSkipManagerCreator = function()
local XFunctionalSkipManager = {}
local DormDrawGroudId = CS.XGame.ClientConfig:GetInt("DormDrawGroudId")
-- 跳转打开界面选择标签页类型6
function XFunctionalSkipManager.SkipSystemWidthArgs(skipDatas)
if not skipDatas then return end
local param1 = (skipDatas.CustomParams[1] ~= 0) and skipDatas.CustomParams[1] or nil
local param2 = (skipDatas.CustomParams[2] ~= 0) and skipDatas.CustomParams[2] or nil
local param3 = (skipDatas.CustomParams[3] ~= 0) and skipDatas.CustomParams[3] or nil
if skipDatas.UiName == "UiTask" and XLuaUiManager.IsUiShow("UiTask") then
XEventManager.DispatchEvent(XEventId.EVENT_TASK_TAB_CHANGE, param1)
elseif skipDatas.UiName == "UiActivityBriefBase" and XLuaUiManager.IsUiShow("UiActivityBriefBase") then
XEventManager.DispatchEvent(XEventId.EVENT_BRIEF_CHANGE_TAB, param1)
elseif skipDatas.UiName == "UiPuzzleActivity" then
XDataCenter.FubenActivityPuzzleManager.OpenPuzzleGame(param1)
else
XLuaUiManager.Open(skipDatas.UiName, param1, param2, param3)
end
end
-- 跳转副本类型7
function XFunctionalSkipManager.SkipCustom(skipDatas)
if not skipDatas then return end
if XFunctionalSkipManager[skipDatas.UiName] then
XFunctionalSkipManager[skipDatas.UiName](skipDatas)
end
end
-- 跳转宿舍类型8
function XFunctionalSkipManager.SkipDormitory(skipDatas)
if not skipDatas or not XPlayer.Id then return end
if XFunctionalSkipManager[skipDatas.UiName] then
XFunctionalSkipManager[skipDatas.UiName](skipDatas)
end
end
-- 前往宿舍房间
function XFunctionalSkipManager.SkipDormRoom(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil
-- 该房间未激活
if (param1 == nil) or (not XDataCenter.DormManager.IsDormitoryActive(param1)) then
if not XHomeDormManager.InDormScene() then
XHomeDormManager.EnterDorm(XPlayer.Id, nil, false)
end
return
end
-- 房间已激活
if XHomeDormManager.InDormScene() then
if XLuaUiManager.IsUiShow("UiDormTask") then
XLuaUiManager.Close("UiDormTask")
end
if not XHomeDormManager.IsInRoom(param1) then
if not XLuaUiManager.IsUiShow("UiDormSecond") then
XLuaUiManager.Open("UiDormSecond", XDormConfig.VisitDisplaySetType.MySelf, param1)
else
XEventManager.DispatchEvent(XEventId.EVENT_DORM_SKIP, param1)
end
XHomeDormManager.SetSelectedRoom(param1, true)
end
else
XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function()
if not XLuaUiManager.IsUiShow("UiDormSecond") then
XLuaUiManager.Open("UiDormSecond", XDormConfig.VisitDisplaySetType.MySelf, param1)
else
XEventManager.DispatchEvent(XEventId.EVENT_DORM_SKIP, param1)
end
XHomeDormManager.SetSelectedRoom(param1, true)
end)
end
end
-- 前往宿舍主界面
function XFunctionalSkipManager.SkipDormMain()
if XLuaUiManager.IsUiLoad("UiDormTask") then
XLuaUiManager.Remove("UiDormTask")
end
if not XHomeDormManager.InDormScene() then
XHomeDormManager.EnterDorm(XPlayer.Id, nil, false)
elseif XHomeDormManager.InAnyRoom() then
local roomId = XHomeDormManager.GetCurrentRoomId()
if roomId then
XHomeDormManager.SetSelectedRoom(roomId, false)
if XLuaUiManager.IsUiLoad("UiDormSecond") then
XLuaUiManager.Remove("UiDormSecond")
end
end
end
XLuaUiManager:ShowTopUi()
end
-- 前往宿舍访问
function XFunctionalSkipManager.SkipDormVisit(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1
if XHomeDormManager.InDormScene() then
XLuaUiManager.Open("UiDormVisit", nil, param1)
else
XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function()
XLuaUiManager.Open("UiDormVisit", nil, param1)
end)
end
end
-- 前往宿舍任务
function XFunctionalSkipManager.SkipDormTask(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1
if XHomeDormManager.InDormScene() then
XLuaUiManager.Open("UiDormTask", param1)
else
XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function()
XLuaUiManager.Open("UiDormTask", param1)
end)
end
end
-- 前往宿舍仓库界面
function XFunctionalSkipManager.SkipDormWarehouse(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1
if XHomeDormManager.InDormScene() then
XLuaUiManager.Open("UiDormBag", param1)
else
XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function()
XLuaUiManager.Open("UiDormBag", param1)
end)
end
end
-- 前往宿舍成员界面
function XFunctionalSkipManager.SkipDormMember()
if XHomeDormManager.InDormScene() then
XLuaUiManager.Open("UiDormPerson")
else
XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function()
XLuaUiManager.Open("UiDormPerson")
end)
end
end
-- 前往宿舍打工界面
function XFunctionalSkipManager.SkipDormWork()
if XHomeDormManager.InDormScene() then
if not XLuaUiManager.IsUiShow("UiDormWork") then
XLuaUiManager.Open("UiDormWork")
else
XEventManager.DispatchEvent(XEventId.EVENT_DORM_SKIP)
end
else
XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function()
XLuaUiManager.Open("UiDormWork")
end)
end
end
-- 前往宿舍商店界面
function XFunctionalSkipManager.SkipDormShop(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1]
if XHomeDormManager.InDormScene() then
if XLuaUiManager.IsUiShow("UiShop") then return end
XLuaUiManager.Open("UiShop", XShopManager.ShopType.Dorm, nil, param1)
else
XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function()
if XLuaUiManager.IsUiShow("UiShop") then return end
XLuaUiManager.Open("UiShop", XShopManager.ShopType.Dorm, nil, param1)
end)
end
end
-- 前往宿舍研发界面
function XFunctionalSkipManager.SkipDormDraw()
if XHomeDormManager.InDormScene() then
XDataCenter.DrawManager.GetDrawGroupList(
function()
local info = XDataCenter.DrawManager.GetDrawGroupInfoByGroupId(DormDrawGroudId)
if not info then return end
XDataCenter.DrawManager.GetDrawInfoList(DormDrawGroudId, function()
XLuaUiManager.Open("UiDraw", DormDrawGroudId, function()
XHomeSceneManager.ResetToCurrentGlobalIllumination()
end, info.UiBackGround)
end)
end
)
else
XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function()
XDataCenter.DrawManager.GetDrawGroupList(
function()
local info = XDataCenter.DrawManager.GetDrawGroupInfoByGroupId(DormDrawGroudId)
if not info then return end
XDataCenter.DrawManager.GetDrawInfoList(DormDrawGroudId, function()
XLuaUiManager.Open("UiDraw", DormDrawGroudId, function()
XHomeSceneManager.ResetToCurrentGlobalIllumination()
end, info.UiBackGround)
end)
end
)
end)
end
end
-- 前往宿舍建造界面
function XFunctionalSkipManager.SkipDormFurnitureBuild(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1
if XHomeDormManager.InDormScene() then
XLuaUiManager.Open("UiFurnitureBuild", param1)
else
XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function()
XLuaUiManager.Open("UiFurnitureBuild", param1)
end)
end
end
-- 前往巴别塔
function XFunctionalSkipManager.OnOpenBabelTower()
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.BabelTower) then
return
end
local currentActivityNo = XDataCenter.FubenBabelTowerManager.GetCurrentActivityNo()
if not currentActivityNo or not XDataCenter.FubenBabelTowerManager.IsInActivityTime(currentActivityNo) then
XUiManager.TipMsg(CS.XTextManager.GetText("RougeLikeNotInActivityTime"))
return
end
XDataCenter.FubenBabelTowerManager.OpenBabelTowerCheckStory()
end
-- 前往新角色教学活动
function XFunctionalSkipManager.OnOpenNewCharActivity(list)
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.NewCharAct) then
return
end
local actId = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1
-- 活动时间限制
if not XDataCenter.FubenNewCharActivityManager.IsOpen(actId) then
XUiManager.TipText("RougeLikeNotInActivityTime")
return
end
local newCharType = XFubenNewCharConfig.GetNewCharType(actId)
local uiName
if newCharType == XFubenNewCharConfig.NewCharType.YinMianZheGuang then
uiName = "UiNewCharActivity"
elseif newCharType == XFubenNewCharConfig.NewCharType.KoroChar then
uiName = "UiFunbenKoroTutorial"
elseif newCharType == XFubenNewCharConfig.NewCharType.WeiLa then
uiName = "UiFunbenWeiLaTutorial"
end
XLuaUiManager.Open(uiName, actId)
end
-- 前往赏金任务
function XFunctionalSkipManager.OnOpenUiMoneyReward()
if XDataCenter.MaintainerActionManager.IsStart() then
XUiManager.TipText("MaintainerActionEventOver")
XDataCenter.FunctionalSkipManager.OnOpenMaintainerAction()
else
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.BountyTask) then
return
end
XDataCenter.BountyTaskManager.SetBountyTaskLastRefreshTime()
XLuaUiManager.Open("UiMoneyReward")
end
end
-- 前往协同作战
function XFunctionalSkipManager.OnOpenUiOnlineBoss(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1
--开启时间限制
if not XDataCenter.FubenBossOnlineManager.CheckNormalBossOnlineInTime() then
local tipText = XDataCenter.FubenBossOnlineManager.GetNotInTimeTip()
XUiManager.TipError(tipText)
return
end
XDataCenter.FubenBossOnlineManager.OpenBossOnlineUi(param1)
end
-- 前往活动协同作战
function XFunctionalSkipManager.OnOpenUiOnlineBossActivity(list)
local functionId = XFunctionManager.FunctionName.FubenActivityOnlineBoss
local isOpen = XFunctionManager.JudgeCanOpen(functionId) and XDataCenter.FubenBossOnlineManager.GetIsActivity()
if not isOpen then
XUiManager.TipText("ActivityBossOnlineOver")
return
end
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1
XDataCenter.FubenBossOnlineManager.OpenBossOnlineUi(param1)
end
-- 前往特训关
function XFunctionalSkipManager.OnOpenUiSpecialTrainActivity(list)
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.SpecialTrain) then
return
end
if XLuaUiManager.IsUiShow("UiSummerTaskReward") then
return
end
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1
local param2 = (list.CustomParams[2] ~= 0) and list.CustomParams[2] or 1
local param3 = (list.CustomParams[3] ~= 0) and list.CustomParams[3] or 0
if XDataCenter.FubenSpecialTrainManager.CheckActivityTimeout(param1, true) then
return
end
XLuaUiManager.Open("UiSummerEpisodeNew", param1, param2, param3)
end
-- 被感染的守林人
function XFunctionalSkipManager.OnOpenUiActivityBranch(list)
-- 开启时间限制
if not XDataCenter.FubenActivityBranchManager.IsOpen() then
XUiManager.TipText("ActivityBranchNotOpen")
return
end
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1
local param2 = (list.CustomParams[2] ~= 0) and list.CustomParams[2] or nil
if param1 == XDataCenter.FubenActivityBranchManager.BranchType.Difficult then
if not XDataCenter.FubenActivityBranchManager.IsStatusEqualChallengeBegin() then
XUiManager.TipText("ActivityBranchNotOpen")
return
end
end
if XFunctionalSkipManager.IsStageLock(param2) then return end
local sectionId = XDataCenter.FubenActivityBranchManager.GetCurSectionId()
XLuaUiManager.Open("UiActivityBranch", sectionId, param1, param2)
end
-- 前往格式塔
function XFunctionalSkipManager.OnOpenUiActivityBossSingle(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil
local sectionId = XDataCenter.FubenActivityBossSingleManager.GetCurSectionId() or 1
-- 活动时间限制
if not XDataCenter.FubenActivityBossSingleManager.IsOpen() then
XUiManager.TipText("RougeLikeNotInActivityTime")
return
end
if (not param1) or (not XDataCenter.FubenActivityBossSingleManager.IsChallengeUnlock(param1)) then
XLuaUiManager.Open("UiActivityBossSingle", sectionId)
else
XLuaUiManager.Open("UiActivityBossSingleDetail", param1)
end
end
-- 前往纷争战区
function XFunctionalSkipManager.OnOpenUiArena()
local arenaChapters = XFubenConfigs.GetChapterBannerByType(XDataCenter.FubenManager.ChapterType.ARENA)
XDataCenter.ArenaManager.RequestSignUpArena(function()
XLuaUiManager.Open("UiArena", arenaChapters)
end)
end
-- 前往幻痛囚笼
function XFunctionalSkipManager.OnOpenUiFubenBossSingle()
if XDataCenter.FubenBossSingleManager.CheckNeedChooseLevelType() then
XLuaUiManager.Open("UiFubenBossSingleChooseLevelType")
return
end
XDataCenter.FubenBossSingleManager.OpenBossSingleView()
end
-- 前往资源副本
function XFunctionalSkipManager.OnOpenUiFubenDaily(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1]
local param2 = (list.CustomParams[2] ~= 0) and list.CustomParams[2]
if param1 == nil or param1 == 0 then
XLuaUiManager.Open("UiFuben", XDataCenter.FubenManager.StageType.Resource)
return
end
XLuaUiManager.OpenWithCallback("UiFubenDaily", function()
CsXGameEventManager.Instance:Notify(XEventId.EVENT_FUBEN_RESOURCE_AUTOSELECT, param2)
end, XDailyDungeonConfigs.GetDailyDungeonRulesById(param1))
end
-- 前往前传
function XFunctionalSkipManager.OnOpenUiPrequel(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1]
local param2 = (list.CustomParams[2] ~= 0) and list.CustomParams[2]
local covers = XDataCenter.PrequelManager.GetListCovers()
if covers then
local index = 0
for k, v in pairs(covers) do
if v.CoverId == param1 then
index = k
break
end
end
if covers[index] then
if covers[index].IsAllChapterLock and (not covers[index].IsActivity) then
XUiManager.TipMsg(XDataCenter.PrequelManager.GetChapterUnlockDescription(covers[index].ShowChapter))
return
end
XLuaUiManager.Open("UiPrequel", covers[index], nil, param2)
end
end
-- XLuaUiManager.OpenWithCallback("UiFuben", function()
-- CsXGameEventManager.Instance:Notify(XEventId.EVENT_FUBEN_PREQUEL_AUTOSELECT, param1, param2)
-- end, 1)
end
-- 是否能前往前传
function XFunctionalSkipManager.IsCanOpenUiPrequel(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1]
local param2 = (list.CustomParams[2] ~= 0) and list.CustomParams[2]
local covers = XDataCenter.PrequelManager.GetListCovers()
if covers then
local index = 0
for k, v in pairs(covers) do
if v.CoverId == param1 then
index = k
break
end
end
if covers[index] then
if covers[index].IsAllChapterLock and (not covers[index].IsActivity) then
return false
end
return true
end
end
return false
end
-- 前往剧情简章主界面-- 前往据点战主界面
function XFunctionalSkipManager.OnOpenMainlineSubtab(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1
XLuaUiManager.Open("UiFuben", 1, nil, param1)
end
-- 前往隐藏关卡主界面
function XFunctionalSkipManager.OnOpenMainlineWithDifficuty()
XLuaUiManager.OpenWithCallback("UiFuben", function()
CsXGameEventManager.Instance:Notify(XEventId.EVENT_FUBEN_MAINLINE_DIFFICUTY_SELECT)
end, 1)
end
-- 前往展示厅,有参数时打开某个角色
function XFunctionalSkipManager.OnOpenExhibition(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil
XLuaUiManager.OpenWithCallback("UiExhibition", function()
CsXGameEventManager.Instance:Notify(XEventId.EVENT_CHARACTER_EXHIBITION_AUTOSELECT, param1)
end, true, list.CustomParams[2])
end
-- 前往具体的抽卡
function XFunctionalSkipManager.OnOpenDrawDetail(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil
XDataCenter.DrawManager.GetDrawGroupList(function()
local drawGroupInfos = XDataCenter.DrawManager.GetDrawGroupInfos()
for _, info in pairs(drawGroupInfos or {}) do
if param1 and info.Id == param1 then
XDataCenter.DrawManager.GetDrawInfoList(info.Id, function()
XLuaUiManager.Open(info.UiPrefab, info.Id, nil, info.UiBackGround)
end)
break
end
end
end)
end
-- 跳转节日活动
function XFunctionalSkipManager.OnOpenFestivalActivity(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil
local param2 = (list.CustomParams[2] ~= 0) and list.CustomParams[2] or nil
if not XDataCenter.FubenFestivalActivityManager.IsFestivalInActivity(param1) then
XUiManager.TipText("FestivalActivityNotInActivityTime")
return
end
if param2 then
if XFunctionalSkipManager.IsStageLock(param2) then return end
XLuaUiManager.Open("UiFubenChristmasMainLineChapter", param1, param2)
else
XLuaUiManager.Open("UiFubenChristmasMainLineChapter", param1)
end
end
-- 复刷本
function XFunctionalSkipManager.OnOpenRepeatChallengeActivity(list)
local param = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil
if not XDataCenter.FubenRepeatChallengeManager.IsOpen() then
XUiManager.TipMsg(CS.XTextManager.GetText("FubenRepeatNotInActivityTime"))
return
end
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.RepeatChallenge) then
return
end
XLuaUiManager.Open("UiFubenRepeatchallenge", param)
end
-- 爬塔活动
function XFunctionalSkipManager.OnOpenRogueLikeActivity()
local activityId = XDataCenter.FubenRogueLikeManager.GetRogueLikeActivityId()
if activityId == nil or activityId <= 0 then
XUiManager.TipMsg(CS.XTextManager.GetText("RougeLikeNotInActivityTime"))
return
end
local activityConfig = XFubenRogueLikeConfig.GetRogueLikeConfigById(activityId)
if not activityConfig then
return
end
if not XDataCenter.FubenRogueLikeManager.IsInActivity() then
XUiManager.TipMsg(CS.XTextManager.GetText("RougeLikeNotInActivityTime"))
return
end
if activityConfig.FunctionalOpenId > 0 and (not XFunctionManager.DetectionFunction(activityConfig.FunctionalOpenId)) then
return
end
XDataCenter.FubenRogueLikeManager.OpenRogueLikeCheckStory()
end
-- 打开主线、隐藏线、据点战
function XFunctionalSkipManager.OnOpenMainLineStage(list)
local stageId = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil
local param2 = (list.CustomParams[2] ~= 0) and list.CustomParams[2] or nil
local openStageDetail = param2 == 1
if not stageId then return end
local stageInfo = XDataCenter.FubenManager.GetStageInfo(stageId)
if stageInfo.Difficult == XDataCenter.FubenManager.DifficultHard and (not XFunctionManager.JudgeCanOpen(XFunctionManager.FunctionName.FubenDifficulty)) then
local openTips = XFunctionManager.GetFunctionOpenCondition(XFunctionManager.FunctionName.FubenDifficulty)
XUiManager.TipMsg(openTips)
return
end
if stageInfo.Type == XDataCenter.FubenManager.StageType.Bfrt then
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.FubenNightmare) then
return
end
end
if XFunctionalSkipManager.IsStageLock(stageId) then return end
local chapter = XDataCenter.FubenMainLineManager.GetChapterCfg(stageInfo.ChapterId)
if not XDataCenter.FubenMainLineManager.CheckChapterCanGoTo(chapter.ChapterId) then
XUiManager.TipMsg(CS.XTextManager.GetText("FubenMainLineNoneOpen"))
return
end
if openStageDetail then
CsXUiManager.Instance:Open("UiFubenMainLineChapter", chapter, stageId)
else
CsXUiManager.Instance:Open("UiFubenMainLineChapter", chapter)
end
end
-- 狙击战跳转
function XFunctionalSkipManager.OnOpenUnionKill()
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.FubenUnionKill) then
return
end
local unionInfo = XDataCenter.FubenUnionKillManager.GetUnionKillInfo()
if not unionInfo or not unionInfo.Id or unionInfo.Id <= 0 then
XUiManager.TipMsg(CS.XTextManager.GetText("UnionKillMainNotInActivity"))
return
end
if not XFubenUnionKillConfigs.UnionKillInActivity(unionInfo.Id) then
XUiManager.TipMsg(CS.XTextManager.GetText("UnionKillMainNotInActivity"))
return
end
XLuaUiManager.Open("UiUnionKillMain")
end
-- 公会
function XFunctionalSkipManager.OnOpenGuild()
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.Guild) then
return
end
XDataCenter.GuildManager.EnterGuild()
end
-- 跳转巴别塔勋章
function XFunctionalSkipManager.OnOpenMedal(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil
local selectIndex = 4
XLuaUiManager.Open("UiPlayer", nil, selectIndex, nil, param1)
end
-- 跳转图鉴
function XFunctionalSkipManager.OnOpenArchive(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil
if param1 == XArchiveConfigs.SubSystemType.Monster then
XLuaUiManager.Open("UiArchiveMonster")
elseif param1 == XArchiveConfigs.SubSystemType.Weapon then
XLuaUiManager.Open("UiArchiveWeapon")
elseif param1 == XArchiveConfigs.SubSystemType.Awareness then
XLuaUiManager.Open("UiArchiveAwareness")
elseif param1 == XArchiveConfigs.SubSystemType.Story then
XLuaUiManager.Open("UiArchiveStory")
elseif param1 == XArchiveConfigs.SubSystemType.CG then
XLuaUiManager.Open("UiArchiveCG")
elseif param1 == XArchiveConfigs.SubSystemType.NPC then
XLuaUiManager.Open("UiArchiveNpc")
elseif param1 == XArchiveConfigs.SubSystemType.Email then
XLuaUiManager.Open("UiArchiveEmail")
elseif param1 == XArchiveConfigs.SubSystemType.Partner then
XLuaUiManager.Open("UiArchivePartner")
end
end
-- 跳转gacha
function XFunctionalSkipManager.OnOpenGacha(list)
local gachaId = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil
local IsOpen = gachaId and XDataCenter.GachaManager.CheckGachaIsOpenById(gachaId, true) or false
if not IsOpen then
return
end
XDataCenter.GachaManager.GetGachaRewardInfoRequest(gachaId, function()
local gachaRule = XGachaConfigs.GetGachaRuleCfgById(gachaId)
XLuaUiManager.Open(gachaRule.UiName, gachaId)
end)
end
-- 跳转gacha组
function XFunctionalSkipManager.OnOpenGachaOrganize(list)
local organizeId = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil
local IsOpen = organizeId and XDataCenter.GachaManager.CheckGachaOrganizeIsOpen(organizeId, true) or false
if not IsOpen then
return
end
XDataCenter.GachaManager.GetGachaOrganizeInfoRequest(organizeId, function(gachaId)
local organizeRule = XGachaConfigs.GetOrganizeRuleCfg(organizeId)
if not organizeRule then
return
end
-- 'gachaId'为卡池组里最新解锁的卡池Id由服务器下发打开界面时默认选中
XLuaUiManager.Open(organizeRule.UiName, organizeId, gachaId, organizeRule)
end)
end
-- 跳转活动材料商店
function XFunctionalSkipManager.OnOpenActivityBriefShop(list)
local isOpen, desc = XActivityBrieIsOpen.Get(XActivityBriefConfigs.ActivityGroupId.ActivityBriefShop)
if isOpen then
XLuaUiManager.Open("UiActivityBriefShop", nil, nil)
else
XUiManager.TipMsg(desc)
end
end
-- 跳转世界Boss
function XFunctionalSkipManager.OnOpenWorldBoss()
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.WorldBoss) then
return
end
if not XDataCenter.WorldBossManager.IsInActivity() then
XUiManager.TipMsg(CS.XTextManager.GetText("WorldBossNotInActivityTime"))
return
end
XDataCenter.WorldBossManager.OpenWorldMainWind()
end
-- 跳转大富翁
function XFunctionalSkipManager.OnOpenMaintainerAction()
local ret, msg = XDataCenter.MaintainerActionManager.CheckIsOpen()
if not ret then
XUiManager.TipMsg(msg)
return
end
XDataCenter.MaintainerActionManager.OpenMaintainerActionWind()
end
-- 跳转师徒系统
function XFunctionalSkipManager.OnOpenMentorSystem()
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.MentorSystem) then
return
end
XLuaUiManager.Open("UiMentorMain")
end
-- 区域联机
function XFunctionalSkipManager.OnOpenAreanOnlineChapter()
XDataCenter.ArenaOnlineManager.SetCurChapterId()
XLuaUiManager.Open("UiArenaOnlineChapter")
end
-- 检查stageId是否开启
function XFunctionalSkipManager.IsStageLock(stageId)
if not stageId then return false end
local stageInfo = XDataCenter.FubenManager.GetStageInfo(stageId)
if not stageInfo then
return false
end
if not stageInfo.Unlock then
XUiManager.TipMsg(XDataCenter.FubenManager.GetFubenOpenTips(stageId))
return true
end
return false
end
-- 跳转到番外关卡
function XFunctionalSkipManager.ExtraChapter(jumpData)
if not jumpData then return end
if XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.Extra) then
local extraManager = XDataCenter.ExtraChapterManager
if not jumpData.CustomParams then extraManager.JumpToExtraBanner() end
local chapterId = jumpData.CustomParams[1]
if chapterId then extraManager.JumpToExtraStage(chapterId, jumpData.CustomParams[2])
else extraManager.JumpToExtraBanner() end
end
end
function XFunctionalSkipManager.FubenInfesotorExplore()
if XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.FubenInfesotorExplore) then
if XDataCenter.FubenInfestorExploreManager.IsInSectionOne()
or XDataCenter.FubenInfestorExploreManager.IsInSectionTwo() then
local openCb = function()
XLuaUiManager.Open("UiInfestorExploreRank")
end
XDataCenter.FubenInfestorExploreManager.OpenEntranceUi(openCb)
elseif XDataCenter.FubenInfestorExploreManager.IsInSectionEnd() then
XUiManager.TipText("InfestorExploreEnterSectionEnd")
end
end
end
--跳转到尼尔彩蛋界面
function XFunctionalSkipManager.OnNieREasterEgg()
XDataCenter.NieRManager.OpenNieRDataSaveUi()
end
--跳转到尼尔复刷界面
function XFunctionalSkipManager.OnUiFubenNierRepeat(jumpData)
XLuaUiManager.Open("UiFubenNierRepeat", jumpData.ParamId)
end
--跳转到尼尔任务界面
function XFunctionalSkipManager.OnUiFubenNierTask(jumpData)
XLuaUiManager.Open("UiNierTask", jumpData.ParamId)
end
--跳转到尼尔主界面
function XFunctionalSkipManager.OnUiFubenNierEnter()
if XDataCenter.NieRManager.GetIsActivityEnd() then
XUiManager.TipText("NieREnd")
else
XLuaUiManager.Open("UiFubenNierEnter")
end
end
function XFunctionalSkipManager.Expedition()
XDataCenter.ExpeditionManager.JumpToExpedition()
end
function XFunctionalSkipManager.RpgTower()
XDataCenter.RpgTowerManager.JumpTo()
end
function XFunctionalSkipManager.SuperTowerJumpTo()
XDataCenter.SuperTowerManager.JumpTo()
end
function XFunctionalSkipManager.SkipTRPGMain()
XDataCenter.TRPGManager.SkipTRPGMain()
end
--跳转到口袋战双主界面
function XFunctionalSkipManager.SkipToPokemonMainUi()
XDataCenter.PokemonManager.OpenPokemonMainUi()
end
--跳转到追击玩法主界面
function XFunctionalSkipManager.SkipToPursuit()
if XChessPursuitConfig.GetChessPursuitInTimeMapGroup() then
XLuaUiManager.Open("UiChessPursuitMain")
else
XUiManager.TipText("ChessPursuitNotInTime")
end
end
function XFunctionalSkipManager.SkipToSpringFestivalActivity()
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.SpringFestivalActivity) then
return
end
XDataCenter.SpringFestivalActivityManager.OpenActivityMain()
end
function XFunctionalSkipManager.SkipToSpringFestivalActivityWithClose()
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.SpringFestivalActivity) then
return
end
XDataCenter.SpringFestivalActivityManager.OpenMainWithClose()
end
function XFunctionalSkipManager.SkipToSpringFestivalSmashEggs()
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.SpringFestivalActivity) then
return
end
if XDataCenter.SpringFestivalActivityManager.IsOpen() then
XLuaUiManager.PopThenOpen("UiSpringFestivalSmashEggs")
end
end
function XFunctionalSkipManager.SkipToSpringFestivalCollectWord()
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.SpringFestivalActivity) then
return
end
if XDataCenter.SpringFestivalActivityManager.IsOpen() then
XLuaUiManager.PopThenOpen("UiSpringFestivalCollectCard")
end
end
--跳转至2021端午活动主界面
function XFunctionalSkipManager.SkipToRpgMakerGameMain()
XDataCenter.RpgMakerGameManager.RequestRpgMakerGameEnter()
end
--================
--跳转到组合小游戏
--================
function XFunctionalSkipManager.JumpToComposeGame(skipDatas)
XDataCenter.ComposeGameManager.JumpTo(skipDatas.CustomParams[1])
end
--超级据点主界面
function XFunctionalSkipManager.SkipToStrongholdMain()
XDataCenter.StrongholdManager.EnterUiMain()
end
--================
--跳转到白色情人节约会小游戏
--================
function XFunctionalSkipManager.JumpToWhiteValentineGame()
XDataCenter.WhiteValentineManager.JumpTo()
end
-- 跳转到涂装返场商店
function XFunctionalSkipManager.SkipToSpecialShop(skipData)
XShopManager.GetShopInfo(skipData.ParamId, function()
XLuaUiManager.Open("UiSpecialFashionShop", skipData.ParamId)
end)
end
--================
--跳转到猜拳小游戏
--================
function XFunctionalSkipManager.JumpToFingerGuessing()
XDataCenter.FingerGuessingManager.JumpTo()
end
-- 跳转模拟作战
function XFunctionalSkipManager.SkipToSimulatedCombat(list)
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.FubenSimulatedCombat) then
return
end
local mode, childUiType = list.CustomParams[1], list.CustomParams[2]
local isOpen, desc = XDataCenter.FubenSimulatedCombatManager.CheckModeOpen(mode)
if not isOpen then
XUiManager.TipMsg(desc)
return
end
XLuaUiManager.Remove("UiSimulatedCombatMain")
XLuaUiManager.Open("UiSimulatedCombatMain", mode, childUiType)
end
function XFunctionalSkipManager.SkipToMoeWar()
XDataCenter.MoeWarManager.OnOpenMain()
end
function XFunctionalSkipManager.SkipToFubenHack(list)
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.FubenHack) then
return
end
local isEnd, isNotOpen = XDataCenter.FubenHackManager.GetIsActivityEnd()
if isNotOpen then
XUiManager.TipText("CommonActivityNotStart")
elseif isEnd then
XUiManager.TipText("ActivityMainLineEnd")
else
XLuaUiManager.Open("UiFubenHack")
end
end
function XFunctionalSkipManager.SkipToMineSweeping()
XDataCenter.MineSweepingManager.OpenMineSweeping()
end
function XFunctionalSkipManager.SkipToFubenCoupleCombat(list)
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.FubenCoupleCombat) then
return
end
if XDataCenter.FubenCoupleCombatManager.GetIsActivityEnd() then
XUiManager.TipText("ActivityMainLineEnd")
end
local mode = list.CustomParams[1]
local isOpen, desc = XDataCenter.FubenCoupleCombatManager.CheckModeOpen(mode)
if not isOpen then
XUiManager.TipMsg(desc)
return
end
XLuaUiManager.Open("UiCoupleCombatMain", mode)
end
function XFunctionalSkipManager.SkipToMovieAssemble(skipDatas)
XLuaUiManager.Open("UiMovieAssemble", skipDatas.CustomParams[1])
end
function XFunctionalSkipManager.SkipToPartnerTeachingChapter(skipData)
local isUnlock, lockTip = XDataCenter.PartnerTeachingManager.WhetherUnLockChapter(skipData.CustomParams[1])
if isUnlock then
XLuaUiManager.Open("UiPartnerTeachingChapter", skipData.CustomParams[1])
else
XUiManager.TipMsg(lockTip)
end
end
function XFunctionalSkipManager.SkipToReformActivity()
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.Reform) then
return
end
if not XDataCenter.ReformActivityManager.GetIsOpen() then
XUiManager.TipError(CS.XTextManager.GetText("FunctionNotDuringOpening"))
return
end
XDataCenter.ReformActivityManager.EnterRequest(function()
XLuaUiManager.Open("UiReform")
end)
end
function XFunctionalSkipManager.SkipToSuperTowerTier()
XDataCenter.SuperTowerManager.SkipToSuperTowerTier()
end
function XFunctionalSkipManager.SkipToPokerGuessing()
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.PokerGuessing) and (not XDataCenter.PokerGuessingManager.IsOpen()) then
return
end
XDataCenter.PokerGuessingManager.OnOpenMain()
end
function XFunctionalSkipManager.SkipToFashionStory(skipData)
XDataCenter.FashionStoryManager.OpenFashionStoryMain(skipData.CustomParams[1])
end
function XFunctionalSkipManager.OnOpenSlotmachine(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil
XDataCenter.SlotMachineManager.OpenSlotMachine(param1)
end
function XFunctionalSkipManager.SkipToKillZone()
XDataCenter.KillZoneManager.EnterUiMain()
end
function XFunctionalSkipManager.UiDrawNewYear( skipData )
local isOpen = true
local desc
if skipData.CustomParams[3] then
isOpen, desc = XConditionManager.CheckCondition(skipData.CustomParams[3])
end
if not isOpen then
XUiManager.TipError(desc)
else
XDataCenter.GachaManager.GetGachaRewardInfoRequest(skipData.CustomParams[1], function()
XLuaUiManager.Open("UiDrawNewYear", skipData.CustomParams[1], skipData.CustomParams[2])
end)
end
end
function XFunctionalSkipManager.OnOpenSlotmachine(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil
XDataCenter.SlotMachineManager.OpenSlotMachine(param1)
end
return XFunctionalSkipManager
end