c1_lua/lua/app/userdata/collection/collection_data.lua
2023-07-17 11:16:51 +08:00

148 lines
4.4 KiB
Lua

local CollectionData = class("CollectionData", BaseData)
function CollectionData:ctor()
self.data.dirtyHero = false
end
function CollectionData:clear()
end
function CollectionData:init(data)
data = data or GConst.EMPTY_TABLE
self:initCollectHero(data.hero)
end
-- 初始化英雄图鉴数据
function CollectionData:initCollectHero(data)
if data == nil then
return
end
if EDITOR_MODE then
Logger.logHighlight("更新英雄图鉴数据")
Logger.printTable(data)
end
self:initAllDataClass()
self.datas[GConst.CollectionConst.TYPE.HERO] = data
self.dataCollects[GConst.CollectionConst.TYPE.HERO]:init(data)
self:setDirty(GConst.CollectionConst.TYPE.HERO)
end
-- 初始化所有图鉴数据类
function CollectionData:initAllDataClass()
if self.dataCollects == nil then
self.dataCollects = {}
self.dataCollects[GConst.CollectionConst.TYPE.HERO] = require "app/userdata/collection/collection_hero_entity":create()
end
if self.datas == nil then
self.datas = {}
end
end
function CollectionData:setDirty(collectionType)
if collectionType == GConst.CollectionConst.TYPE.HERO then
self.data.dirtyHero = not self.data.dirtyHero
end
end
function CollectionData:isOpen(collectionType)
if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.COLLECT, true) then
return false
end
if collectionType and (not self.datas or not self.datas[collectionType]) then
return false
end
return true
end
function CollectionData:getCollectEntity(collectionType)
return self.dataCollects[collectionType]
end
-- 是否有红点
function CollectionData:hasRedPoint(collectionType)
return self.dataCollects[collectionType]:hasRedPoint()
end
-- 获取当前收集值
function CollectionData:getCurCollectPoint(collectionType)
return self.dataCollects[collectionType]:getCurCollectPoint()
end
-- 获取当前已领取奖励图鉴等级
function CollectionData:getCurCollectLevel(collectionType)
return self.dataCollects[collectionType]:getCurCollectLevel()
end
-- 获取总收集值
function CollectionData:getTotalCollectPoint(collectionType)
return self.dataCollects[collectionType]:getTotalCollectPoint()
end
-- 获取收集目标列表
function CollectionData:getCollectList(collectionType)
return self.dataCollects[collectionType]:getCollectList()
end
-- 获取收集奖励列表
function CollectionData:getRewardList(collectionType)
return self.dataCollects[collectionType]:getRewardList()
end
-- 获取当前所在档位id
function CollectionData:getCurTargetId(collectionType)
return self.dataCollects[collectionType]:getCurTargetId()
end
-- 获取奖励档位收集进度
function CollectionData:getRewardTargetProgress(collectionType, id)
return self.dataCollects[collectionType]:getRewardTargetProgress(id)
end
-- 获取当前可领奖or正在进行中的目标
function CollectionData:getCanGetOrCollectingTargetId(collectionType)
return self.dataCollects[collectionType]:getCanGetOrCollectingTargetId()
end
-- 获取收集目标点数
function CollectionData:getTargetPoint(collectionType, id)
return self.dataCollects[collectionType]:getTargetPoint(id)
end
-- 获取基于目标收集点数的当前收集值
function CollectionData:getTargetOwnedPoint(collectionType, id)
return self.dataCollects[collectionType]:getTargetOwnedPoint(id)
end
-- 获取可领取收集值
function CollectionData:getCanCollectPoint(collectionType, id)
return self.dataCollects[collectionType]:getCanCollectPoint(id)
end
-- 奖励是否已领取
function CollectionData:isRewardReceived(collectionType, id)
return self.dataCollects[collectionType]:isRewardReceived(id)
end
-- 是否满足奖励领取条件
function CollectionData:isMeetTargetPoint(collectionType, id)
return self.dataCollects[collectionType]:isMeetTargetPoint(id)
end
-- 事件 -----------------------------------------------------------------------------------------------
-- 领取收集点数成功
function CollectionData:onGetedPointSuccess(collectionType, heroId, point)
self.dataCollects[collectionType]:onGetedPointSuccess(heroId, point)
self:setDirty(collectionType)
end
-- 领取图鉴奖励成功
function CollectionData:onGetedPointRewardSuccess(collectionType)
self.dataCollects[collectionType]:onGetedPointRewardSuccess()
self:setDirty(collectionType)
end
return CollectionData