292 lines
8.0 KiB
Plaintext
292 lines
8.0 KiB
Plaintext
QuestManualProxy = class('QuestManualProxy', pm.Proxy)
|
|
QuestManualProxy.Instance = nil;
|
|
QuestManualProxy.NAME = "QuestManualProxy"
|
|
|
|
function QuestManualProxy:ctor(proxyName, data)
|
|
self.proxyName = proxyName or QuestManualProxy.NAME
|
|
if(QuestManualProxy.Instance == nil) then
|
|
QuestManualProxy.Instance = self
|
|
end
|
|
if data ~= nil then
|
|
self:setData(data)
|
|
end
|
|
|
|
self:InitProxy();
|
|
end
|
|
|
|
function QuestManualProxy:InitProxy()
|
|
self.manualDataVersionMap = {}
|
|
end
|
|
|
|
function QuestManualProxy:InitProxyData()
|
|
TableUtility.TableClear(self.manualDataVersionMap)
|
|
end
|
|
|
|
function QuestManualProxy:GetManualQuestDatas( version )
|
|
self.recentVersion = version
|
|
return self.manualDataVersionMap[version];
|
|
end
|
|
|
|
function QuestManualProxy:GetQuestNameById( questId )
|
|
local questName = ""
|
|
if self.recentVersion then
|
|
local versionData = self.manualDataVersionMap[self.recentVersion];
|
|
if versionData then
|
|
questName = versionData.prequest[questId]
|
|
end
|
|
end
|
|
return questName
|
|
end
|
|
|
|
function QuestManualProxy:HandleRecvQueryManualQuestCmd(data)
|
|
-- helplog("==HandleRecvQueryManualQuestCmd=>>>>>")
|
|
-- TableUtil.Print(data)
|
|
local version = data.version
|
|
local manual = data.manual
|
|
--helplog(version)
|
|
if(manual)then
|
|
local oldData = self.manualDataVersionMap[version]
|
|
if(not oldData)then
|
|
manualData = ManualData.new(manual)
|
|
self.manualDataVersionMap[version] = manualData
|
|
end
|
|
end
|
|
end
|
|
|
|
function QuestManualProxy:OpenPuzzle(version, index)
|
|
local versionData = self.manualDataVersionMap[version]
|
|
if(versionData)then
|
|
local openPuzzles = versionData.main.puzzle.open_puzzles
|
|
openPuzzles[#openPuzzles + 1] = index
|
|
|
|
local curentPuzzleCount = #openPuzzles
|
|
local colectAwardList = self:GetQuestPuzzleCollectListByVersion( version )
|
|
local unlockPuzzles = versionData.main.puzzle.unlock_puzzles
|
|
for i=1,#colectAwardList do
|
|
if curentPuzzleCount == colectAwardList[i].indexss then
|
|
unlockPuzzles[#unlockPuzzles + 1] = curentPuzzleCount
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function QuestManualProxy:CheckPuzzleAwardLock(version, index)
|
|
local versionData = self.manualDataVersionMap[version]
|
|
if(versionData)then
|
|
local unlockPuzzles = versionData.main.puzzle.unlock_puzzles
|
|
for i=1,#unlockPuzzles do
|
|
if unlockPuzzles[i] == index then
|
|
return false;
|
|
end
|
|
end
|
|
end
|
|
return true
|
|
end
|
|
|
|
function QuestManualProxy:GetQuestPuzzleCollectListByVersion( version )
|
|
--helplog("==GetQuestPuzzleCollectListByVersion==>>>")
|
|
local puzzleList = {}
|
|
for k,v in pairs(Table_QuestPuzzle) do
|
|
if v.version == version and v.type == "collect" then
|
|
puzzleList[#puzzleList + 1] = v
|
|
end
|
|
end
|
|
return puzzleList
|
|
end
|
|
|
|
ManualData = class("ManualData")
|
|
function ManualData:ctor(data)
|
|
self:updata(data)
|
|
end
|
|
|
|
function ManualData:updata(data)
|
|
-- helplog("==ManualData=>>>>>")
|
|
-- TableUtil.Print(data)
|
|
-- QuestName
|
|
self.prequest = {}
|
|
if data.prequest and #data.prequest > 0 then
|
|
-- helplog("==Init Prequest=>>>>>", #data.prequest)
|
|
for i=1, #data.prequest do
|
|
local quest = data.prequest[i]
|
|
-- helplog("==Init Prequest=>>>>>", quest.id, quest.name)
|
|
self.prequest[quest.id] = quest.name
|
|
end
|
|
end
|
|
|
|
-- QuestManualMain
|
|
if data.main then
|
|
-- helplog("==Init Main=>>>>>")
|
|
self.main = {}
|
|
|
|
self.main.questList = {}
|
|
local mainItems = data.main.items
|
|
-- helplog("==Init main.items=>>>>>", #mainItems)
|
|
if mainItems and #mainItems > 0 then
|
|
for i=1,#mainItems do
|
|
-- helplog("==main QuestManualItem=>>>>>")
|
|
-- TableUtil.Print(mainItems[i])
|
|
self.main.questList[#self.main.questList + 1] = QuestManualItem.new(mainItems[i], self.prequest)
|
|
|
|
end
|
|
end
|
|
|
|
if data.main.puzzle then
|
|
-- TableUtil.Print(data.main.puzzle)
|
|
-- helplog("==Init puzzle=>>>>>")
|
|
self.main.puzzle = QuestPuzzle.new(data.main.puzzle)
|
|
end
|
|
|
|
-- helplog("==Init mainstoryid=>>>>>", data.main.mainstoryid)
|
|
self.main.mainstoryid = data.main.mainstoryid
|
|
|
|
if data.main.previews then
|
|
self.main.questPreviewList = {}
|
|
local previewItems = data.main.previews
|
|
-- helplog("==Init main.previews=>>>>>", #previewItems)
|
|
if previewItems and #previewItems > 0 then
|
|
for i=1,#previewItems do
|
|
self.main.questPreviewList[#self.main.questPreviewList + 1] = QuestPreviewItem.new(previewItems[i])
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
-- QuestManualBranch
|
|
if data.branch then
|
|
--helplog("==Init Branch=>>>>>")
|
|
self.branch = {}
|
|
local questShops = data.branch.shops
|
|
--helplog("==questShops0=>>>>>", #questShops)
|
|
-- helplog("==Init questShops=>>>>>", #questShops)
|
|
for i=1,#questShops do
|
|
--helplog("==questShops1=>>>>>", questShops[i].itemid)
|
|
self.branch[#self.branch + 1] = BranchQuestManualItem.new(questShops[i], self.prequest)
|
|
end
|
|
end
|
|
|
|
-- QuestManualStory
|
|
if data.story and data.story.previews then
|
|
-- helplog("==Init Story=>>>>>", #data.story.previews)
|
|
self.storyQuestList = {}
|
|
local storyItems = data.story.previews
|
|
if storyItems and #storyItems > 0 then
|
|
for i=1,#storyItems do
|
|
self.storyQuestList[#self.storyQuestList + 1] = QuestPreviewItem.new(storyItems[i])
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
QuestManualItem = class("QuestManualItem")
|
|
function QuestManualItem:ctor(data, questNames)
|
|
self:updata(data, questNames)
|
|
end
|
|
|
|
function QuestManualItem:updata(data, questNames)
|
|
-- helplog("===QuestManualItem=>>>>>")
|
|
-- TableUtil.Print(data)
|
|
-- TableUtil.Print(questNames)
|
|
self.type = data.type
|
|
-- QuestData
|
|
if data.data then
|
|
local questData = QuestData.new()
|
|
questData:DoConstruct(false, QuestDataScopeType.QuestDataScopeType_CITY)
|
|
questData:setQuestData(data.data)
|
|
questData:setQuestListType(data.type)
|
|
self.questData = questData
|
|
-- helplog("===QuestManualItem:Id=>>>>>", data.data.id)
|
|
if questNames then
|
|
self.questPreName = questNames[data.data.id]
|
|
end
|
|
end
|
|
|
|
local questSubs = data.subs
|
|
if questSubs and #questSubs > 0 then
|
|
-- helplog("===QuestSubs=>>>>>", #questSubs)
|
|
self.questSubs = {}
|
|
for i=1,#questSubs do
|
|
-- TableUtil.Print(questSubs[i])
|
|
self.questSubs[#self.questSubs + 1] = QuestManualItem.new(questSubs[i], questNames)
|
|
end
|
|
end
|
|
-- questData.staticData.QuestName = config.QuestName
|
|
-- questData.staticData.Name = config.Name
|
|
|
|
-- local desStr = questData:parseTranceInfo()
|
|
-- if(questData.type == QuestDataType.QuestDataType_DAILY)then
|
|
-- local dailyData = QuestProxy.Instance:getDailyQuestData(SceneQuest_pb.EOTHERDATA_DAILY)
|
|
-- local ratio = "0%"
|
|
-- local exp = "0"
|
|
-- if(dailyData)then
|
|
-- ratio = dailyData.param4 * 100
|
|
-- ratio = ratio.."%"
|
|
-- exp = dailyData.param3
|
|
-- end
|
|
-- desStr = string.format(desStr,exp)
|
|
-- end
|
|
-- if not desStr then
|
|
-- desStr = ""
|
|
-- end
|
|
end
|
|
|
|
QuestPuzzle = class("QuestPuzzle")
|
|
function QuestPuzzle:ctor(data)
|
|
self:updata(data)
|
|
end
|
|
|
|
function QuestPuzzle:updata(data)
|
|
self.version = data.version
|
|
self.open_puzzles = {}
|
|
local openedPuzzles = data.open_puzzles
|
|
if openedPuzzles and #openedPuzzles > 0 then
|
|
-- for k,v in pairs(openedPuzzles) do
|
|
for i=1, #openedPuzzles do
|
|
self.open_puzzles[#self.open_puzzles + 1] = openedPuzzles[i]
|
|
end
|
|
end
|
|
|
|
self.unlock_puzzles = {}
|
|
local unlockPuzzles = data.unlock_puzzles
|
|
if unlockPuzzles and #unlockPuzzles > 0 then
|
|
-- for k,v in pairs(unlockPuzzles) do
|
|
for i=1, #unlockPuzzles do
|
|
self.unlock_puzzles[#self.unlock_puzzles + 1] = unlockPuzzles[i]
|
|
end
|
|
end
|
|
end
|
|
|
|
BranchQuestManualItem = class("BranchQuestManualItem")
|
|
function BranchQuestManualItem:ctor(data, prequest)
|
|
self:updata(data, prequest)
|
|
end
|
|
|
|
function BranchQuestManualItem:updata(data, prequest)
|
|
self.itemid = data.itemid
|
|
-- self.unlock = data.unlock
|
|
local questList = data.quests
|
|
if questList and #questList > 0 then
|
|
self.questList = {}
|
|
for i=1, #questList do
|
|
self.questList[#self.questList + 1] = QuestManualItem.new(questList[i], prequest)
|
|
end
|
|
end
|
|
end
|
|
|
|
QuestPreviewItem = class("QuestPreviewItem")
|
|
function QuestPreviewItem:ctor(data)
|
|
self:updata(data)
|
|
end
|
|
|
|
function QuestPreviewItem:updata(data)
|
|
self.questid = data.questid
|
|
self.name = data.name
|
|
self.complete = data.complete
|
|
self.RewardGroup = data.RewardGroup
|
|
local rewardIds = data.allrewardid
|
|
self.allrewardid = {}
|
|
if rewardIds and #rewardIds > 0 then
|
|
for i=1, #rewardIds do
|
|
self.allrewardid[#self.allrewardid + 1] = rewardIds[i]
|
|
end
|
|
end
|
|
end |