c1_lua/lua/app/module/tutorial/tutorial_action.lua
2023-04-21 16:10:28 +08:00

85 lines
2.6 KiB
Lua

local TutorialConst = require "app/module/tutorial/tutorial_const"
local TutorialAction = {}
function TutorialAction:init()
end
function TutorialAction:clear()
end
function TutorialAction:doTutorial(tutorialId)
local tutorialType = DataManager.TutorialData:getTutorialTypeById(tutorialId)
local func = TutorialAction._doTutorial[tutorialType]
if func then
func(tutorialId)
else
ModuleManager.TutorialManager:stopTutorial()
end
end
function TutorialAction:doStepOver(tutorialId)
local tutorialType = DataManager.TutorialData:getTutorialTypeById(tutorialId)
local func = TutorialAction._doStepOver[tutorialType]
if func then
func(tutorialId)
end
end
-- 任意位置点击
local function _tutorialClick(tutorialId)
ModuleManager.TutorialManager:showTalk()
ModuleManager.TutorialManager:registerClickScreenListener(function()
ModuleManager.TutorialManager:checkAndNextTutorial(tutorialId)
end)
end
-- 点击指定按钮
local function _tutorialClickBtn(tutorialId)
local typeParameter = DataManager.TutorialData:getTypeParameter()
ModuleManager.TutorialManager:registerClickBtnListener(function()
ModuleManager.TutorialManager:checkAndNextTutorial(tutorialId)
end, nil, typeParameter)
end
-- 剧情对话
local function _tutorialTalk(tutorialId)
ModuleManager.TutorialManager:showTalk()
local typeParameter = DataManager.TutorialData:getTypeParameter()
ModuleManager.TutorialManager:registerClickBtnListener(function()
ModuleManager.TutorialManager:checkAndNextTutorial(tutorialId)
end, nil, typeParameter)
end
-- 空步骤,什么也不做,一般搭配完成条件使用
local function _tutorialEmpty(tutorialId)
ModuleManager.TutorialManager:checkAndNextTutorial(tutorialId)
end
local function _tutorialEmptyCancelBlock(tutorialId)
ModuleManager.TutorialManager:setBlockTouchEnabled(false)
ModuleManager.TutorialManager:checkAndNextTutorial(tutorialId)
end
local function _tutorialToElimination(tutorialId)
ModuleManager.TutorialManager:setBlockTouchEnabled(false)
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.SHOW_ELIMINATION_TUTORAIL, DataManager.TutorialData:getTargetElement())
ModuleManager.TutorialManager:checkAndNextTutorial(tutorialId)
end
TutorialAction._doTutorial = {
[TutorialConst.TUTORIAL_TYPE.CLICK] = _tutorialClick,
[TutorialConst.TUTORIAL_TYPE.CLICK_BTN] = _tutorialClickBtn,
[TutorialConst.TUTORIAL_TYPE.TALK] = _tutorialTalk,
[TutorialConst.TUTORIAL_TYPE.DO_NOTHING] = _tutorialEmpty,
[TutorialConst.TUTORIAL_TYPE.EMPTY_CANCEL_BLOCK] = _tutorialEmptyCancelBlock,
[TutorialConst.TUTORIAL_TYPE.TO_ELIMINATION] = _tutorialToElimination,
}
-- 此步引导结束的时候
TutorialAction._doStepOver = {
}
return TutorialAction