补充逻辑

This commit is contained in:
Fang 2023-06-12 17:13:53 +08:00
parent e1c54ef97e
commit 9d648fb450
7 changed files with 123 additions and 37 deletions

View File

@ -96,6 +96,18 @@ function RewardCell:_refreshItem(info, count)
end end
end end
function RewardCell:setVisibleFragment(isShow)
self.fragment:setVisible(isShow)
end
function RewardCell:setVisibleS(isShow)
self.sImg:setVisible(isShow)
end
function RewardCell:setRewardIcon(atlas, name)
self.icon:setSprite(atlas, name)
end
function RewardCell:setNumTx(str) function RewardCell:setNumTx(str)
self.numTx:setText(str) self.numTx:setText(str)
end end

View File

@ -37,6 +37,9 @@ end
function DungeonBoardCell:refreshInfo() function DungeonBoardCell:refreshInfo()
self.txTitle:setText(DataManager.DungeonData:getTitle(self.moduleKey)) self.txTitle:setText(DataManager.DungeonData:getTitle(self.moduleKey))
self.txOpen:setText(DataManager.DungeonData:getOpenTimeDesc(self.moduleKey)) self.txOpen:setText(DataManager.DungeonData:getOpenTimeDesc(self.moduleKey))
self.icon:setSprite(DataManager.DungeonData:getIcon(self.moduleKey))
-- self.baseObject:setTexture("assets/arts/textures/background/fund/fund_bg_1.png")
-- self.iconBuff:setSprite(GConst.ATLAS_PATH.ICON_BUFF, "")
if DataManager.DungeonData:isActive(self.moduleKey) then if DataManager.DungeonData:isActive(self.moduleKey) then
self.btnStart:setVisible(true) self.btnStart:setVisible(true)
@ -66,21 +69,30 @@ function DungeonBoardCell:refreshInfo()
end end
function DungeonBoardCell:refreshRewards() function DungeonBoardCell:refreshRewards()
-- self.rewards = DataManager.DungeonData:getBoardShowRewards()
-- if self.rewards == nil then
-- return
-- end
self.scrollRect = self.uiMap["dungeon_board_cell.rewards"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE) self.scrollRect = self.uiMap["dungeon_board_cell.rewards"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
self.scrollRect:addInitCallback(function() self.scrollRect:addInitCallback(function()
return GConst.TYPEOF_LUA_CLASS.REWARD_CELL return GConst.TYPEOF_LUA_CLASS.REWARD_CELL
end) end)
self.scrollRect:addRefreshCallback(function(index, cell)
cell:refreshItemById(1, 0)
cell:setTouchEnable(false)
end)
self.scrollRect:clearCells() self.scrollRect:clearCells()
self.scrollRect:setTotalCount(2)
local rewards = DataManager.DungeonData:getBoardShowRewardId(self.moduleKey)
if rewards ~= nil then
-- 展示实际item
self.scrollRect:addRefreshCallback(function(index, cell)
cell:refreshItemById(rewards[index], 0)
end)
self.scrollRect:setTotalCount(#rewards)
else
rewards = DataManager.DungeonData:getBoardShowRewardIcon(self.moduleKey)
-- 展示icon图片
self.scrollRect:addRefreshCallback(function(index, cell)
cell:setRewardIcon(rewards[index][1], rewards[index][2])
cell:setVisibleS(false)
cell:setVisibleFragment(false)
cell:setTouchEnable(false)
end)
self.scrollRect:setTotalCount(#rewards)
end
end end
function DungeonBoardCell:refreshCountdown(txCountdown) function DungeonBoardCell:refreshCountdown(txCountdown)

View File

@ -10,7 +10,7 @@ end
function DungeonDifficultyUI:ctor(params) function DungeonDifficultyUI:ctor(params)
self.module = params.module self.module = params.module
self.curId = DataManager.DungeonData:getPassedMaxId(self.module) + 1 self.curId = DataManager.DungeonData:getUnlockMaxId(self.module)
end end
function DungeonDifficultyUI:onCover() function DungeonDifficultyUI:onCover()
@ -100,12 +100,12 @@ end
-- 是否是可扫荡关卡 -- 是否是可扫荡关卡
function DungeonDifficultyUI:isCanSweepId() function DungeonDifficultyUI:isCanSweepId()
return self.curId <= DataManager.DungeonData:getPassedMaxId(self.module) return self.curId < DataManager.DungeonData:getUnlockMaxId(self.module)
end end
--是否是能挑战的最大关卡 --是否是能挑战的最大关卡
function DungeonDifficultyUI:isCanChallengeMaxId() function DungeonDifficultyUI:isCanChallengeMaxId()
return self.curId == DataManager.DungeonData:getPassedMaxId(self.module) + 1 return self.curId == DataManager.DungeonData:getUnlockMaxId(self.module)
end end
--是否是能挑战的最小关卡 --是否是能挑战的最小关卡

View File

@ -173,6 +173,11 @@ function DungeonData:isCanSweep(moduleKey, id)
return true return true
end end
-- 获取副本挑战总次数
function DungeonData:getTotalCount(moduleKey)
return self.dataDungeons[moduleKey]:getTotalChallengeCount()
end
-- 获取副本今日剩余次数 -- 获取副本今日剩余次数
function DungeonData:getRemainTimes(moduleKey) function DungeonData:getRemainTimes(moduleKey)
if not self:isActive(moduleKey) then if not self:isActive(moduleKey) then
@ -252,6 +257,16 @@ function DungeonData:getBoardShowRewards(moduleKey)
return nil return nil
end end
-- 获取看板展示的副本奖励(返回icon)
function DungeonData:getBoardShowRewardIcon(moduleKey)
return self.dataDungeons[moduleKey]:getBoardShowRewardIcon()
end
-- 获取看板展示的副本奖励返回item id list
function DungeonData:getBoardShowRewardId(moduleKey)
return self.dataDungeons[moduleKey]:getBoardShowRewardId()
end
-- 获取展示副本首通奖励 -- 获取展示副本首通奖励
function DungeonData:getFirstReward(moduleKey, id) function DungeonData:getFirstReward(moduleKey, id)
-- 通关后,不展示首通奖励 -- 通关后,不展示首通奖励
@ -264,6 +279,15 @@ function DungeonData:getPassReward(moduleKey, id)
return self.dataDungeons[moduleKey]:getPassReward(id) return self.dataDungeons[moduleKey]:getPassReward(id)
end end
--获取副本已解锁最大id
function DungeonData:getUnlockMaxId(moduleKey)
local id = self.dataDungeons[moduleKey]:getPassedMaxId() + 1
if id > #self.dataDungeons[moduleKey]:getConfig() then
id = id - 1
end
return id
end
--获取副本已通关的最高关卡id --获取副本已通关的最高关卡id
function DungeonData:getPassedMaxId(moduleKey) function DungeonData:getPassedMaxId(moduleKey)
return self.dataDungeons[moduleKey]:getPassedMaxId() return self.dataDungeons[moduleKey]:getPassedMaxId()

View File

@ -8,57 +8,72 @@ end
-- 获取副本模块名对应ModuleManager.MODULE_KEY -- 获取副本模块名对应ModuleManager.MODULE_KEY
function DungeonDataBaseComp:getModuleKey() function DungeonDataBaseComp:getModuleKey()
return "" return nil
end end
-- 获取副本开启周期(星期几) -- 获取副本开启周期(星期几)
function DungeonDataBaseComp:getOpenWeekCycle() function DungeonDataBaseComp:getOpenWeekCycle()
return {} return nil
end
-- 获取副本配置名称
function DungeonDataBaseComp:getConfigName()
return nil
end end
-- 获取副本标题文案 -- 获取副本标题文案
function DungeonDataBaseComp:getTitleString() function DungeonDataBaseComp:getTitleString()
return "" return nil
end end
-- 获取副本规则描述 -- 获取副本规则描述(金币副本)
function DungeonDataBaseComp:getRuleString() function DungeonDataBaseComp:getRuleString()
return "" return nil
end
-- 获取副本boss抗性描述(碎片副本)
function DungeonDataBaseComp:getBossBuffString()
return nil
end end
-- 获取开始时间描述 -- 获取开始时间描述
function DungeonDataBaseComp:getOpenWeekString() function DungeonDataBaseComp:getOpenWeekString()
return "" return nil
end end
-- 获取副本角标图 -- 获取副本角标图
function DungeonDataBaseComp:getIcon() function DungeonDataBaseComp:getIcon()
return "" return nil
end end
-- 获取副本banner图 -- 获取副本banner图
function DungeonDataBaseComp:getBanner() function DungeonDataBaseComp:getBanner()
return "" return nil
end
-- 获取总挑战次数
function DungeonDataBaseComp:getTotalChallengeCount()
return nil
end end
-- 获取今日已挑战次数 -- 获取今日已挑战次数
function DungeonDataBaseComp:getTodayChallengeCount() function DungeonDataBaseComp:getTodayChallengeCount()
return 0 return nil
end end
-- 获取已通关的最大副本id -- 获取已通关的最大副本id
function DungeonDataBaseComp:getPassedMaxId() function DungeonDataBaseComp:getPassedMaxId()
return 0 return nil
end end
-- 获取挑战体力消耗 -- 获取挑战体力消耗
function DungeonDataBaseComp:getChallengeHpCost() function DungeonDataBaseComp:getChallengeHpCost()
return 0 return nil
end end
-- 获取每日最大挑战次数 -- 获取每日最大挑战次数
function DungeonDataBaseComp:getTodayMaxCount() function DungeonDataBaseComp:getTodayMaxCount()
return 0 return nil
end end
-- 获取看板展示的副本奖励(返回icon) -- 获取看板展示的副本奖励(返回icon)
@ -66,7 +81,7 @@ function DungeonDataBaseComp:getBoardShowRewardIcon()
return nil return nil
end end
-- 获取看板展示的副本奖励返回id -- 获取看板展示的副本奖励返回id list
function DungeonDataBaseComp:getBoardShowRewardId() function DungeonDataBaseComp:getBoardShowRewardId()
return nil return nil
end end
@ -89,4 +104,9 @@ function DungeonDataBaseComp:getTodayRemainLimitCount()
return self:getTodayMaxCount() - self:getTodayChallengeCount() return self:getTodayMaxCount() - self:getTodayChallengeCount()
end end
-- 获取副本配置
function DungeonDataBaseComp:getConfig()
return ConfigManager:getConfig(self:getConfigName())
end
return DungeonDataBaseComp return DungeonDataBaseComp

View File

@ -4,15 +4,20 @@ local DungeonGoldDataComp = class("DungeonGoldDataComp", DungeonDataBaseComp)
-- 金币副本数据 -- 金币副本数据
function DungeonGoldDataComp:init(data) function DungeonGoldDataComp:init(data)
self.totalChallengeCount = data.total_challenge_count
self.todayChallengeCount = data.today_challenge_count self.todayChallengeCount = data.today_challenge_count
self.maxPassedId = data.max_chapter_gold_id self.maxPassedId = data.max_chapter_gold_id
end end
function DungeonDataBaseComp:getTodayChallengeCount() function DungeonGoldDataComp:getTotalChallengeCount()
return self.totalChallengeCount
end
function DungeonGoldDataComp:getTodayChallengeCount()
return self.todayChallengeCount return self.todayChallengeCount
end end
function DungeonDataBaseComp:getPassedMaxId() function DungeonGoldDataComp:getPassedMaxId()
return self.maxPassedId return self.maxPassedId
end end
@ -24,6 +29,10 @@ function DungeonGoldDataComp:getOpenWeekCycle()
return {2,4,6,7} return {2,4,6,7}
end end
function DungeonGoldDataComp:getConfigName()
return "chapter_dungeon_gold"
end
function DungeonGoldDataComp:getTitleString() function DungeonGoldDataComp:getTitleString()
return I18N:getGlobalText(I18N.GlobalConst.DUNGEON_GOLD_TITLE) return I18N:getGlobalText(I18N.GlobalConst.DUNGEON_GOLD_TITLE)
end end
@ -37,7 +46,7 @@ function DungeonGoldDataComp:getOpenWeekString()
end end
function DungeonGoldDataComp:getIcon() function DungeonGoldDataComp:getIcon()
return "" return GConst.ATLAS_PATH.COMMON,"common_chest_1"
end end
function DungeonGoldDataComp:getBanner() function DungeonGoldDataComp:getBanner()
@ -52,8 +61,8 @@ function DungeonGoldDataComp:getTodayMaxCount()
return GFunc.getConstIntValue("dungeon_gold_limit") return GFunc.getConstIntValue("dungeon_gold_limit")
end end
function DungeonDataBaseComp:getBoardShowRewardId() function DungeonGoldDataComp:getBoardShowRewardId()
return 1 return {1}
end end
function DungeonGoldDataComp:getFirstReward(id) function DungeonGoldDataComp:getFirstReward(id)

View File

@ -4,15 +4,20 @@ local DungeonShardsDataComp = class("DungeonShardsDataComp", DungeonDataBaseComp
-- 碎片副本数据 -- 碎片副本数据
function DungeonShardsDataComp:init(data) function DungeonShardsDataComp:init(data)
self.totalChallengeCount = data.total_challenge_count
self.todayChallengeCount = data.today_challenge_count self.todayChallengeCount = data.today_challenge_count
self.maxPassedId = data.max_chapter_shards_id self.maxPassedId = data.max_chapter_shards_id
end end
function DungeonDataBaseComp:getTodayChallengeCount() function DungeonShardsDataComp:getTotalChallengeCount()
return self.totalChallengeCount
end
function DungeonShardsDataComp:getTodayChallengeCount()
return self.todayChallengeCount return self.todayChallengeCount
end end
function DungeonDataBaseComp:getPassedMaxId() function DungeonShardsDataComp:getPassedMaxId()
return self.maxPassedId return self.maxPassedId
end end
@ -24,12 +29,16 @@ function DungeonShardsDataComp:getOpenWeekCycle()
return {1,3,5,7} return {1,3,5,7}
end end
function DungeonShardsDataComp:getConfigName()
return "chapter_dungeon_shards"
end
function DungeonShardsDataComp:getTitleString() function DungeonShardsDataComp:getTitleString()
return I18N:getGlobalText(I18N.GlobalConst.DUNGEON_SHARDS_TITLE) return I18N:getGlobalText(I18N.GlobalConst.DUNGEON_SHARDS_TITLE)
end end
function DungeonShardsDataComp:getRuleString() function DungeonShardsDataComp:getBossBuffString()
return I18N:getGlobalText(I18N.GlobalConst.DUNGEON_SHARDS_HELP) return I18N:getText("buff", buffId, "desc")
end end
function DungeonShardsDataComp:getOpenWeekString() function DungeonShardsDataComp:getOpenWeekString()
@ -37,7 +46,7 @@ function DungeonShardsDataComp:getOpenWeekString()
end end
function DungeonShardsDataComp:getIcon() function DungeonShardsDataComp:getIcon()
return "" return GConst.ATLAS_PATH.COMMON,"common_dec_3"
end end
function DungeonShardsDataComp:getBanner() function DungeonShardsDataComp:getBanner()
@ -52,7 +61,7 @@ function DungeonShardsDataComp:getTodayMaxCount()
return GFunc.getConstIntValue("dungeon_shards_limit") return GFunc.getConstIntValue("dungeon_shards_limit")
end end
function DungeonDataBaseComp:getBoardShowRewardIcon() function DungeonShardsDataComp:getBoardShowRewardIcon()
return { return {
[1]={ [1]={
GConst.ATLAS_PATH.ICON_ITEM,"4" GConst.ATLAS_PATH.ICON_ITEM,"4"