182 lines
4.5 KiB
Lua
182 lines
4.5 KiB
Lua
local FundData = class("FundData", BaseData)
|
|
|
|
local ACT_GIFT_FUND_BASE_ID_1 = 60202
|
|
local ACT_GIFT_FUND_BASE_ID_2 = 60102
|
|
local ACT_GIFT_FUND_ADVANCE_ID_1 = 60402
|
|
local ACT_GIFT_FUND_ADVANCE_ID_2 = 60302
|
|
|
|
function FundData:init(data)
|
|
data = data or GConst.EMPTY_TABLE
|
|
|
|
self.freeClaimed = {}
|
|
self.freeClaimedCount = 0
|
|
if data.free_awarded then
|
|
for _, v in ipairs(data.free_awarded) do
|
|
self.freeClaimed[v] = true
|
|
self.freeClaimedCount = self.freeClaimedCount + 1
|
|
end
|
|
end
|
|
self.baseClaimed = {}
|
|
self.baseClaimedCount = 0
|
|
if data.pay_low_awarded then
|
|
for _, v in ipairs(data.pay_low_awarded) do
|
|
self.baseClaimed[v] = true
|
|
self.baseClaimedCount = self.baseClaimedCount + 1
|
|
end
|
|
end
|
|
self.advanceClaimed = {}
|
|
self.advanceClaimedCount = 0
|
|
if data.pay_high_awarded then
|
|
for _, v in ipairs(data.pay_high_awarded) do
|
|
self.advanceClaimed[v] = true
|
|
self.advanceClaimedCount = self.advanceClaimedCount + 1
|
|
end
|
|
end
|
|
self:initLevelInfo()
|
|
local fundLevel = 1
|
|
local totalCount = 0
|
|
while true do
|
|
local levelInfoIds = self.levelInfoMap[fundLevel]
|
|
if levelInfoIds == nil then
|
|
fundLevel = fundLevel - 1
|
|
break
|
|
end
|
|
local firstLevelInfoId = levelInfoIds[1]
|
|
local cfg = self:getLevelFundCfg()
|
|
if DataManager.PlayerData:getLv() < cfg[firstLevelInfoId].level then -- 等级不够
|
|
fundLevel = fundLevel - 1
|
|
break
|
|
end
|
|
totalCount = totalCount + #levelInfoIds
|
|
if self.freeClaimedCount == totalCount and
|
|
self.freeClaimedCount == self.baseClaimedCount and
|
|
self.freeClaimedCount == self.advanceClaimedCount then
|
|
fundLevel = fundLevel + 1
|
|
else
|
|
break
|
|
end
|
|
end
|
|
if fundLevel < 1 then
|
|
fundLevel = 1
|
|
end
|
|
self.data.fundLevel = fundLevel
|
|
if self.data.fundLevel == 2 then
|
|
self.fundBaseId = ACT_GIFT_FUND_BASE_ID_2
|
|
self.fundAdvanceId = ACT_GIFT_FUND_ADVANCE_ID_2
|
|
else
|
|
self.fundBaseId = ACT_GIFT_FUND_BASE_ID_1
|
|
self.fundAdvanceId = ACT_GIFT_FUND_ADVANCE_ID_1
|
|
end
|
|
end
|
|
|
|
function FundData:initLevelInfo()
|
|
if not self.levelInfoMap then
|
|
self.levelInfoMap = {}
|
|
local cfg = self:getLevelFundCfg()
|
|
for id, info in pairs(cfg) do
|
|
if not self.levelInfoMap[info.stage] then
|
|
self.levelInfoMap[info.stage] = {}
|
|
end
|
|
table.insert(self.levelInfoMap[info.stage], id)
|
|
end
|
|
for level, _ in pairs(self.levelInfoMap) do
|
|
table.sort(self.levelInfoMap[level], function(a, b)
|
|
return a < b
|
|
end)
|
|
end
|
|
end
|
|
end
|
|
|
|
function FundData:getIsOpen()
|
|
return ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.FUND, true)
|
|
end
|
|
|
|
function FundData:getCurrLevelBaseRechargeId()
|
|
local info = self:getActGiftCfg()[self.fundBaseId]
|
|
return info.recharge_id
|
|
end
|
|
|
|
function FundData:getCurrLevelAdvanceRechargeId()
|
|
local info = self:getActGiftCfg()[self.fundAdvanceId]
|
|
return info.recharge_id
|
|
end
|
|
|
|
function FundData:getActGiftCfg()
|
|
if self.cfg == nil then
|
|
self.cfg = ConfigManager:getConfig("act_gift")
|
|
end
|
|
return self.cfg
|
|
end
|
|
|
|
function FundData:getLevelFundCfg()
|
|
if self.levelFundCfg == nil then
|
|
self.levelFundCfg = ConfigManager:getConfig("act_level_fund")
|
|
end
|
|
return self.levelFundCfg
|
|
end
|
|
|
|
function FundData:getCurrLevelInfoList()
|
|
return self.levelInfoMap[self.data.fundLevel] or GConst.EMPTY_TABLE
|
|
end
|
|
|
|
function FundData:getNeedLevel(id)
|
|
local levelFundInfo = self:getLevelFundCfg()[id]
|
|
if levelFundInfo == nil then
|
|
return 9999
|
|
end
|
|
return levelFundInfo.level
|
|
end
|
|
|
|
function FundData:getAllStepFundRewards(id)
|
|
local levelFundInfo = self:getLevelFundCfg()[id]
|
|
if levelFundInfo == nil then
|
|
return nil, nil, nil
|
|
end
|
|
return levelFundInfo.reward_free, levelFundInfo.reward_small, levelFundInfo.reward
|
|
end
|
|
|
|
function FundData:getFreeFundRewards(id)
|
|
local levelFundInfo = self:getLevelFundCfg()[id]
|
|
if levelFundInfo == nil then
|
|
return nil
|
|
end
|
|
return levelFundInfo.reward_free
|
|
end
|
|
|
|
function FundData:getBaseFundRewards(id)
|
|
local levelFundInfo = self:getLevelFundCfg()[id]
|
|
if levelFundInfo == nil then
|
|
return nil
|
|
end
|
|
return levelFundInfo.reward_small
|
|
end
|
|
|
|
function FundData:getAdvanceFundRewards(id)
|
|
local levelFundInfo = self:getLevelFundCfg()[id]
|
|
if levelFundInfo == nil then
|
|
return nil
|
|
end
|
|
return levelFundInfo.reward
|
|
end
|
|
|
|
function FundData:getIsBoughtBase()
|
|
return DataManager.ShopData:getGiftBoughtNum(PayManager.PURCHARSE_TYPE.ACT_GIFT, self.fundBaseId) > 0
|
|
end
|
|
|
|
function FundData:getIsBoughtAdvance()
|
|
return DataManager.ShopData:getGiftBoughtNum(PayManager.PURCHARSE_TYPE.ACT_GIFT, self.fundAdvanceId) > 0
|
|
end
|
|
|
|
function FundData:getIsClaimedFree(id)
|
|
return self.freeClaimed[id]
|
|
end
|
|
|
|
function FundData:getIsClaimedBase(id)
|
|
return self.baseClaimed[id]
|
|
end
|
|
|
|
function FundData:getIsClaimedAdvance(id)
|
|
return self.advanceClaimed[id]
|
|
end
|
|
|
|
return FundData |