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