151 lines
3.8 KiB
Lua
151 lines
3.8 KiB
Lua
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 |