local DungeonBaseEntity = require "app/userdata/dungeon/dungeon_base_entity" local DungeonWeaponEntity = class("DungeonWeaponEntity", DungeonBaseEntity) local GET_PASS_INFO_INTERVAL = 600 -- 支线副本数据 function DungeonWeaponEntity:init(data) self.maxPassedId = data.max_challenge_id self.farmCount = data.farm_count self.heroes = data.heroes self.giftInfo = data.gift_info self.totalChallengeCount = data.total_challenge_count self.data.isDirty = not self.data.isDirty end function DungeonWeaponEntity:setDirty() self.data.isDirty = not self.data.isDirty end function DungeonWeaponEntity:getTotalChallengeCount() return self.totalChallengeCount end function DungeonWeaponEntity:getTodayChallengeCount() return 0 end function DungeonWeaponEntity:getPassedMaxId() return self.maxPassedId end function DungeonWeaponEntity:getIsAllTimeOpen() return true end function DungeonWeaponEntity:getModuleKey() return ModuleManager.MODULE_KEY.DUNGEON_WEAPON end function DungeonWeaponEntity:getConfigName() return "chapter_dungeon_equip" end function DungeonWeaponEntity:getTitleString() return I18N:getGlobalText(I18N.GlobalConst.DUNGEON_WEAPON_DESC_1) end function DungeonWeaponEntity:getRuleString() return I18N:getGlobalText(I18N.GlobalConst.DUNGEON_WEAPON_DESC_2) end function DungeonWeaponEntity:getOpenWeekString() return I18N:getGlobalText(I18N.GlobalConst.DUNGEON_WEAPON_DESC_3) end function DungeonWeaponEntity:getBanner() return "assets/arts/textures/background/dungeon/dungeon_bg_3.png" end function DungeonWeaponEntity:getOpenTextColor() return "#FFEDC5" end function DungeonWeaponEntity:getChallengeHpCost() return GFunc.getConstReward("dungeon_armor_limit") end function DungeonWeaponEntity:isNoTotalLimit() return true end function DungeonWeaponEntity:onClickFight() ModuleManager.DungeonWeaponManager:showMainUI() end function DungeonWeaponEntity:getDialyFarmLimit() return GFunc.getConstIntValue("dungeon_equip_limit") end function DungeonWeaponEntity:getFarmCount() return self.farmCount end function DungeonWeaponEntity:getRemianFarmCount() local count = self:getDialyFarmLimit() - self:getFarmCount() if count < 0 then count = 0 end return count end function DungeonWeaponEntity:getLevelEnough(chapterId) local config = ConfigManager:getConfig(self:getConfigName())[chapterId] if not config then return false end if config.level > DataManager.PlayerData:getLv() then return false end return true end function DungeonWeaponEntity:canFightChapter(chapterId) if not chapterId then return false end if chapterId <= self.maxPassedId + 1 then if self:getLevelEnough(chapterId) then return true end end return false end function DungeonWeaponEntity:canFarmChapter(chapterId) if not chapterId then return false end return self.maxPassedId >= chapterId end function DungeonWeaponEntity:doCachePassInfo(chapterId, info) if not self.cachePassInfo then self.cachePassInfo = {} end if not info then return end if not self.cachePassInfo[chapterId] then self.cachePassInfo[chapterId] = { info = info, getTime = Time:getServerTime() } else self.cachePassInfo[chapterId].info = info self.cachePassInfo[chapterId].getTime = Time:getServerTime() end end function DungeonBaseEntity:getCachePassInfo(chapterId) if not self.cachePassInfo then self.cachePassInfo = {} end if not self.cachePassInfo[chapterId] then return end if self.cachePassInfo[chapterId].getTime + GET_PASS_INFO_INTERVAL < Time:getServerTime() then -- 过期 return end return self.cachePassInfo[chapterId].info end return DungeonWeaponEntity