121 lines
2.6 KiB
Lua
121 lines
2.6 KiB
Lua
local BountyData = class("BountyData", BaseData)
|
|
|
|
local ACT_GIFT_ID_BOUNTY = 70102
|
|
local ACT_GIFT_ID_BOUNTY_ADVANCED = 70202
|
|
|
|
function BountyData:ctor()
|
|
self.data.dirty = false
|
|
end
|
|
|
|
function BountyData:init(data)
|
|
data = data or GConst.EMPTY_TABLE
|
|
self.season = data.season or 1
|
|
self.level = data.level or 1
|
|
self.exp = data.exp or 0
|
|
self.bought = data.bought
|
|
self.claimed = data.claimed or {}
|
|
self.proClaimed = data.pro_claimed or {}
|
|
self:initBountyLevelCfg()
|
|
end
|
|
|
|
function BountyData:initBountyLevelCfg()
|
|
self.bountyLevelCfg = {}
|
|
local cfg = ConfigManager:getConfig("bounty_level")
|
|
for k, v in pairs(cfg) do
|
|
if v.season == self.season then
|
|
self.bountyLevelCfg[k % 100] = v
|
|
end
|
|
end
|
|
self.repeatLevelInfo = table.remove(self.bountyLevelCfg)
|
|
end
|
|
|
|
function BountyData:getBought()
|
|
return self.bought
|
|
end
|
|
|
|
function BountyData:setBought(bought, level)
|
|
self.bought = bought
|
|
self.level = level or self.level
|
|
self:markDirty()
|
|
end
|
|
|
|
function BountyData:getLevel()
|
|
return self.level
|
|
end
|
|
|
|
function BountyData:getIsOpen()
|
|
-- 开启条件和任务一样
|
|
return ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.TASK, true)
|
|
end
|
|
|
|
function BountyData:getBannerName()
|
|
return "bounty_btn_main_1"
|
|
end
|
|
|
|
function BountyData:getSeason()
|
|
return self.season
|
|
end
|
|
|
|
function BountyData:getSeasonInfoByLevel(lv)
|
|
return self.bountyLevelCfg[lv]
|
|
end
|
|
|
|
function BountyData:getMaxLevel()
|
|
return #self.bountyLevelCfg
|
|
end
|
|
|
|
function BountyData:getMainLevelCount()
|
|
return #self.bountyLevelCfg - 1
|
|
end
|
|
|
|
function BountyData:getLevelState(lv)
|
|
return self.claimed[lv]
|
|
end
|
|
|
|
function BountyData:getProLevelState(lv)
|
|
return self.proClaimed[lv]
|
|
end
|
|
|
|
function BountyData:getIfCanBuyLevel()
|
|
local maxLevel = self:getMaxLevel()
|
|
if maxLevel > 0 and self.level < maxLevel then
|
|
return true
|
|
end
|
|
return false
|
|
end
|
|
|
|
function BountyData:onClaimReward(level)
|
|
self.claimed[level] = true
|
|
self:markDirty()
|
|
end
|
|
|
|
function BountyData:onClaimProReward(level)
|
|
self.proClaimed[level] = true
|
|
self:markDirty()
|
|
end
|
|
|
|
function BountyData:getBuyBountyLevelCost()
|
|
if self.buyBountyLevelCost == nil then
|
|
self.buyBountyLevelCost = ConfigManager:getConfig("const")["bounty_buy_cost"].reward
|
|
end
|
|
return self.buyBountyLevelCost
|
|
end
|
|
|
|
function BountyData:onBoughtLevel()
|
|
self.level = self.level + 1
|
|
self:markDirty()
|
|
end
|
|
|
|
function BountyData:getGiftId(advanced)
|
|
if advanced then
|
|
return ACT_GIFT_ID_BOUNTY_ADVANCED
|
|
else
|
|
return ACT_GIFT_ID_BOUNTY
|
|
end
|
|
end
|
|
|
|
function BountyData:markDirty()
|
|
self.data.dirty = not self.data.dirty
|
|
end
|
|
|
|
return BountyData |