2025-06-04 05:02:57 +08:00

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