c1_lua/lua/app/module/fund/fund_manager.lua
2023-05-25 17:05:55 +08:00

73 lines
1.9 KiB
Lua

local FundManager = class("FundManager", BaseModule)
function FundManager:showLevelFundUI()
UIManager:showUI("app/ui/fund/level_fund_ui")
end
function FundManager:buyLevelFund(id)
if not DataManager.FundData:getIsOpen() then
return
end
PayManager:purchasePackage(id, PayManager.PURCHARSE_TYPE.ACT_GIFT)
end
function FundManager:claimFundRewards()
local claimRewards = {}
local playerLevel = DataManager.PlayerData:getLv()
local FundData = DataManager.FundData
local levelInfoIds = FundData:getCurrLevelInfoList()
local isBoughtBase = FundData:getIsBoughtBase()
local isBoughtAdvance = FundData:getIsBoughtAdvance()
local freeClaimed = FundData:getFreeClaimedMap()
local baseClaimed = FundData:getBaseClaimedMap()
local advanceClaimed = FundData:getAdvanceClaimedMap()
for _, id in ipairs(levelInfoIds) do
local levelFundInfo = FundData:getLevelFundCfg()[id]
if levelFundInfo then
if playerLevel >= levelFundInfo.level then -- 等级到了
if not freeClaimed[id] then -- 能领但是没有领
table.insert(claimRewards, {
id = id,
grade = 0
})
end
if isBoughtBase then
if not baseClaimed[id] then -- 能领但是没有领
table.insert(claimRewards, {
id = id,
grade = 1
})
end
end
if isBoughtAdvance then
if not advanceClaimed[id] then -- 能领但是没有领
table.insert(claimRewards, {
id = id,
grade = 2
})
end
end
else
break
end
end
end
if #claimRewards <= 0 then
return
end
local args = {
id_with_lv = claimRewards
}
self:sendMessage(ProtoMsgType.FromMsgEnum.FundAwardReq, args, {}, self.onClaimFundRewards, BIReport.ITEM_GET_TYPE.BOUNTY_REWARD)
end
function FundManager:onClaimFundRewards(result)
if result.err_code == GConst.ERROR_STR.SUCCESS then
if result.rewards then
GFunc.showRewardBox(result.rewards)
end
DataManager.FundData:onClaimFundRewards(result.id_with_lv)
end
end
return FundManager