251 lines
5.5 KiB
Lua
251 lines
5.5 KiB
Lua
local TutorialConst = require "app/module/tutorial/tutorial_const"
|
|
|
|
local TUTORIAL_CFG = ConfigManager:getConfig("tutorial")
|
|
local TUTORIAL_STARTCFG = ConfigManager:getConfig("tutorial_start")
|
|
|
|
local TutorialData = class("TutorialData", BaseData)
|
|
|
|
function TutorialData:ctor()
|
|
self.inTutorial = false
|
|
self.data.tutorialId = 0 -- 强制引导步骤
|
|
self.isFuncTutorial = false
|
|
end
|
|
|
|
function TutorialData:clear()
|
|
self.inTutorial = false
|
|
self.data.tutorialId = 0
|
|
self.isFuncTutorial = false
|
|
end
|
|
|
|
function TutorialData:init(data)
|
|
data = data or {}
|
|
self.inTutorial = false
|
|
-- 功能开启引导列表
|
|
self.funcTutorialMap = {}
|
|
if data.func then
|
|
for id,v in pairs(data.func) do
|
|
self.funcTutorialMap[id] = v
|
|
end
|
|
end
|
|
end
|
|
|
|
function TutorialData:getIsHaveTutorial()
|
|
if self.data.tutorialId > 0 and self.tutorialInfo ~= nil then
|
|
self.isFuncTutorial = false
|
|
return true
|
|
end
|
|
return false
|
|
end
|
|
|
|
function TutorialData:getIsFuncTutorial()
|
|
return self.isFuncTutorial
|
|
end
|
|
|
|
-- 是不是引导的第一步
|
|
function TutorialData:getIsInFirstStep()
|
|
return self.data.tutorialId == 10010
|
|
end
|
|
|
|
-- 是否有下一步
|
|
function TutorialData:nextTutorial()
|
|
local id = self.tutorialInfo.next_id
|
|
local tutorialInfo = TUTORIAL_CFG[id]
|
|
if tutorialInfo == nil then
|
|
return false
|
|
end
|
|
self.data.tutorialId = id
|
|
self.tutorialInfo = tutorialInfo
|
|
return true
|
|
end
|
|
|
|
function TutorialData:stopTutorial()
|
|
self.inTutorial = false
|
|
self.data.tutorialId = 0
|
|
end
|
|
|
|
-- 当前是否处于引导中
|
|
function TutorialData:getIsInTutorial()
|
|
return self.inTutorial
|
|
end
|
|
|
|
-- 开启引导
|
|
function TutorialData:setInTutorial(value)
|
|
self.inTutorial = value
|
|
end
|
|
|
|
-- 获取当前引导的id
|
|
function TutorialData:getTutorialId()
|
|
return self.data.tutorialId
|
|
end
|
|
|
|
-- 是否显示遮罩
|
|
function TutorialData:getShowMask()
|
|
return self.tutorialInfo.show_mask
|
|
end
|
|
|
|
-- 遮罩半径
|
|
function TutorialData:getMaskRadius()
|
|
return self.tutorialInfo.circle_r
|
|
end
|
|
|
|
-- 圆形遮罩偏移
|
|
function TutorialData:getMaskCircleOffset()
|
|
return self.tutorialInfo.circle_offset
|
|
end
|
|
|
|
-- 遮罩半径尺寸
|
|
function TutorialData:getMaskSquareSize()
|
|
return self.tutorialInfo.square_size
|
|
end
|
|
|
|
-- 遮罩坐标偏移
|
|
function TutorialData:getMaskSquareOffset()
|
|
return self.tutorialInfo.square_offset
|
|
end
|
|
|
|
-- 获取延迟开始的时间
|
|
function TutorialData:getDelayStartTime()
|
|
return self.tutorialInfo.delay or 0
|
|
end
|
|
|
|
-- 是否需要屏蔽点击
|
|
function TutorialData:getTouchEnabled()
|
|
return true
|
|
end
|
|
|
|
function TutorialData:getTutorialType()
|
|
return self.tutorialInfo.type
|
|
end
|
|
|
|
function TutorialData:getTutorialStopFight()
|
|
return self.tutorialInfo.stop_fight ~= nil
|
|
end
|
|
|
|
function TutorialData:getTutorialTypeById(id)
|
|
local tutorialInfo = TUTORIAL_CFG[id]
|
|
if tutorialInfo == nil then
|
|
return nil
|
|
end
|
|
return tutorialInfo.type
|
|
end
|
|
|
|
-- 完成条件
|
|
function TutorialData:getFinishType()
|
|
return self.tutorialInfo.finish
|
|
end
|
|
|
|
function TutorialData:getFinishTypeById(id)
|
|
local tutorialInfo = TUTORIAL_CFG[id]
|
|
if tutorialInfo == nil then
|
|
return nil
|
|
end
|
|
return tutorialInfo.finish
|
|
end
|
|
|
|
-- 完成条件的参数
|
|
function TutorialData:getFinishTypeParams()
|
|
return self.tutorialInfo.finish_parameter
|
|
end
|
|
|
|
-- 引导参数
|
|
function TutorialData:getTypeParameter()
|
|
return self.tutorialInfo.type_parameter
|
|
end
|
|
|
|
function TutorialData:getTargetElement()
|
|
return self.tutorialInfo.target_element
|
|
end
|
|
|
|
function TutorialData:getIsHaveTutorialText()
|
|
if self.tutorialInfo.txt and self.tutorialInfo.txt ~= "" then
|
|
return true
|
|
end
|
|
return false
|
|
end
|
|
|
|
function TutorialData:getTutorialText()
|
|
local tutorialInfoTx = I18N:getConfig("tutorial")[self.tutorialInfo.txt]
|
|
if tutorialInfoTx == nil then
|
|
return GConst.EMPTY_STRING
|
|
end
|
|
return tutorialInfoTx.value
|
|
end
|
|
|
|
function TutorialData:getTutorialDirLeft()
|
|
return self.tutorialInfo.txt_direction == 1
|
|
end
|
|
|
|
function TutorialData:getTutorialOffset()
|
|
return self.tutorialInfo.txt_offset
|
|
end
|
|
|
|
function TutorialData:getFingerDir()
|
|
return self.tutorialInfo.arrow_direction or 2
|
|
end
|
|
|
|
function TutorialData:getFingerOffset()
|
|
return self.tutorialInfo.arrow_offset
|
|
end
|
|
|
|
function TutorialData:getTargetName()
|
|
return self.tutorialInfo.target_name
|
|
end
|
|
|
|
function TutorialData:getTutorialTalkRoleId()
|
|
return self.tutorialInfo.head
|
|
end
|
|
|
|
function TutorialData:getIsHaveFuncTutorial(tutorialId, tutorialInfo)
|
|
-- 说明已经完成了
|
|
if self.funcTutorialMap[tutorialId] then
|
|
return false
|
|
end
|
|
|
|
self.tutorialInfo = tutorialInfo
|
|
self.data.tutorialId = tutorialId
|
|
self.isFuncTutorial = true
|
|
return true
|
|
end
|
|
|
|
function TutorialData:markFuncTutorialFinish(id)
|
|
self.funcTutorialMap[id] = true
|
|
end
|
|
|
|
function TutorialData:getIsFuncTutorialFinished(id)
|
|
return self.funcTutorialMap[id] == true
|
|
end
|
|
|
|
function TutorialData:getTutorialIdList()
|
|
if not self.tutorialIdlist then
|
|
self.tutorialIdlist = {}
|
|
self.tutorialIdMap = {}
|
|
self.funcTutorialUImap = {}
|
|
self.tutorialId2UIPath = {}
|
|
for id, info in ipairs(TUTORIAL_STARTCFG) do
|
|
table.insert(self.tutorialIdlist, id)
|
|
self.tutorialIdMap[id] = true
|
|
if info.uires_path then
|
|
if not self.funcTutorialUImap[info.uires_path] then
|
|
self.funcTutorialUImap[info.uires_path] = {}
|
|
end
|
|
table.insert(self.funcTutorialUImap[info.uires_path], id)
|
|
end
|
|
if info.start_id and info.uires_path then
|
|
self.tutorialId2UIPath[info.start_id] = info.uires_path
|
|
end
|
|
end
|
|
end
|
|
return self.tutorialIdlist
|
|
end
|
|
|
|
function TutorialData:getTutorialIdMap(id)
|
|
self:getTutorialIdList()
|
|
return self.tutorialIdMap[id]
|
|
end
|
|
|
|
function TutorialData:getTutorialId2UIPath(id)
|
|
self:getTutorialIdList()
|
|
return self.tutorialId2UIPath[id]
|
|
end
|
|
|
|
return TutorialData |