local DungeonBaseEntity = require "app/userdata/dungeon/dungeon_base_entity" local DungeonRuneEntity = class("DungeonRuneEntity", DungeonBaseEntity) local FUND_AD_REWARD_ID = 1 function DungeonRuneEntity:ctor() self.data.isDirty = false self.maxPassedId = 0 self.curday = 1 self.runeInfo = {} end function DungeonRuneEntity:clear() self.data.isDirty = false DataManager:unregisterCrossDayFunc("DungeonRuneEntity") end function DungeonRuneEntity:init(data) if EDITOR_MODE then Logger.logHighlight("-----DungeonRuneEntity------") Logger.printTable(data) end self.totalChallengeCount = data.total_challenge_count self.maxPassedId = data.max_challenge_id or 0 self.curday = data.curday self.runeInfo = data.rune_info or {} self.heroes = data.heroes or {} self.rankInfo = {} self.selfRankInfo = {} self.lastRankInfo = {} self.needGetRankReward = false DataManager.FormationData:initFormationByType(GConst.BattleConst.FORMATION_TYPE.DUNGEON_RUNE, self.heroes) DataManager:registerCrossDayFunc("DungeonRuneEntity", function() self.curday = self.curday + 1 if self.curday > 30 then self.maxPassedId = 0 self.curday = 1 self.runeInfo = {} self.rankInfo = {} self.selfRankInfo = {} self.lastRankInfo = {} self.needGetRankReward = false end self:setDirty() end) end function DungeonRuneEntity:setDirty() self.data.isDirty = not self.data.isDirty end function DungeonRuneEntity:getModuleKey() return ModuleManager.MODULE_KEY.RUNES_OPEN end function DungeonRuneEntity:getConfig(chapterId) return ConfigManager:getConfig(self:getConfigName())[chapterId] end function DungeonRuneEntity:getConfigName() return "chapter_dungeon_rune" end function DungeonRuneEntity:getTitleString() return I18N:getGlobalText(I18N.GlobalConst.DUNGEON_RUNE_TITLE) end function DungeonRuneEntity:getRuleString() return I18N:getGlobalText(I18N.GlobalConst.DUNGEON_RUNE_HELP) end function DungeonRuneEntity:getOpenWeekString() return I18N:getGlobalText(I18N.GlobalConst.DUNGEON_RUNE_DESC) end function DungeonRuneEntity:getBanner() return "assets/arts/textures/background/dungeon/dungeon_bg_4.png" end function DungeonRuneEntity:getOpenTextColor() return "#FFFFFF" end function DungeonRuneEntity:isNoTotalLimit() return true end function DungeonRuneEntity:isNotShowLimitCount() return true end function DungeonRuneEntity:getIsAllTimeOpen() return true end function DungeonRuneEntity:onClickFight() ModuleManager.DungeonRuneManager:showMainUI() end function DungeonRuneEntity:getTodayRemainLimitCount() return DataManager.BagData.ItemData:getItemNumById(GConst.ItemConst.ITEM_ID_GLOD_WING) end function DungeonRuneEntity:getBuySliverWingCost() if not self.buySliverWingCost then self.buySliverWingCost = GFunc.getConstReward("dungeon_rune_cost") end return self.buySliverWingCost end function DungeonRuneEntity:getPassedMaxId() return self.maxPassedId end function DungeonRuneEntity:getRankRp() return true end function DungeonRuneEntity:canSweep(id) if id > self.maxPassedId then return false end return DataManager.BagData.ItemData:getItemNumById(GConst.ItemConst.ITEM_ID_SLIVER_WING) > 0 end function DungeonRuneEntity:canFight(id) if self.maxPassedId + 1 >= id then return true end return false end function DungeonRuneEntity:curFight(id) return id == self.maxPassedId + 1 end function DungeonRuneEntity:getChapterPassRound(id) if not self.runeInfo[id] then return 0 end return self.runeInfo[id].round or 0 end function DungeonRuneEntity:getChapterRewards(id) return self:getConfig(id).first_reward end return DungeonRuneEntity