主城战令显示

This commit is contained in:
chenxi 2023-05-16 22:39:23 +08:00
parent 2430f90295
commit 4a162302ff
2 changed files with 70 additions and 2 deletions

View File

@ -156,6 +156,10 @@ function MainCityUI:_bind()
self:bind(DataManager.DailyTaskData, "redPointFlag", function() self:bind(DataManager.DailyTaskData, "redPointFlag", function()
self:refreshTask() self:refreshTask()
end) end)
self:bind(DataManager.BountyData, "dirty", function()
self:refreshBounty()
end)
end end
function MainCityUI:initBottomUI() function MainCityUI:initBottomUI()
@ -451,6 +455,11 @@ function MainCityUI:initBounty()
self.bountyBanner:addClickListener(function() self.bountyBanner:addClickListener(function()
ModuleManager.BountyManager:showBountyMainUI() ModuleManager.BountyManager:showBountyMainUI()
end) end)
self.bountyBannerInfo = self.uiMap["main_ui.top_node.bounty_node.banner.info"]
self.bountyBannerDescTx = self.uiMap["main_ui.top_node.bounty_node.banner.desc"]
self.bountyBannerSlider = self.uiMap["main_ui.top_node.bounty_node.banner.info.progress_bg.slider"]
self.bountyBannerSliderTx = self.uiMap["main_ui.top_node.bounty_node.banner.info.progress_bg.slider_tx"]
self.bountyBannerLvTx = self.uiMap["main_ui.top_node.bounty_node.banner.info.progress_bg.lv_tx"]
end end
function MainCityUI:initSetting() function MainCityUI:initSetting()
@ -476,8 +485,28 @@ function MainCityUI:refreshBounty()
return return
end end
self.bountyNode:setVisible(true) self.bountyNode:setVisible(true)
local bannerName = DataManager.BountyData:getBannerName() if DataManager.BountyData:getIfCanClaimReward() then
self.bountyBanner:setSprite(GConst.ATLAS_PATH.BOUNTY, bannerName) local bannerName = DataManager.BountyData:getRewardBannerName()
self.bountyBanner:setSprite(GConst.ATLAS_PATH.BOUNTY, bannerName)
self.bountyBannerInfo:setVisible(false)
self.bountyBannerDescTx:setText("临时文本:收集奖励")
else
local bannerName = DataManager.BountyData:getBannerName()
self.bountyBanner:setSprite(GConst.ATLAS_PATH.BOUNTY, bannerName)
self.bountyBannerInfo:setVisible(true)
self.bountyBannerDescTx:setText(GConst.EMPTY_STRING)
local exp = DataManager.BountyData:getExp()
local lvUpExp = DataManager.BountyData:getLvUpExp()
local level = DataManager.BountyData:getLevel()
local maxLevel = DataManager.BountyData:getMaxLevel()
self.bountyBannerSliderTx:setText(exp .. "/" .. lvUpExp)
self.bountyBannerSlider:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER).value = exp / lvUpExp
if level >= maxLevel then
self.bountyBannerLvTx:setText("临时文本:MAX")
else
self.bountyBannerLvTx:setText(tostring(level))
end
end
end end
function MainCityUI:refreshTask() function MainCityUI:refreshTask()

View File

@ -18,7 +18,19 @@ function BountyData:init(data)
self.exp = data.exp or 0 self.exp = data.exp or 0
self.bought = data.bought self.bought = data.bought
self.claimed = data.claimed or {} self.claimed = data.claimed or {}
self.claimedCount = 0
for k, v in pairs(self.claimed) do
if v then
self.claimedCount = self.claimedCount + 1
end
end
self.proClaimed = data.pro_claimed or {} self.proClaimed = data.pro_claimed or {}
self.proClaimedCount = 0
for k, v in pairs(self.proClaimed) do
if v then
self.proClaimedCount = self.proClaimedCount + 1
end
end
self.endTime = 0 self.endTime = 0
self:initBountyTime() self:initBountyTime()
self:initBountyLevelCfg() self:initBountyLevelCfg()
@ -72,9 +84,11 @@ function BountyData:checkNextSeason()
for k, v in pairs(self.claimed) do for k, v in pairs(self.claimed) do
self.claimed[k] = false self.claimed[k] = false
end end
self.claimedCount = 0
for k, v in pairs(self.proClaimed) do for k, v in pairs(self.proClaimed) do
self.proClaimed[k] = false self.proClaimed[k] = false
end end
self.proClaimedCount = 0
self:initBountyLevelCfg() self:initBountyLevelCfg()
end end
@ -132,6 +146,10 @@ function BountyData:getBannerName()
return "bounty_btn_main_1" return "bounty_btn_main_1"
end end
function BountyData:getRewardBannerName()
return "bounty_btn_main_0"
end
function BountyData:getSeason() function BountyData:getSeason()
return self.season return self.season
end end
@ -160,6 +178,19 @@ function BountyData:getIfCanBuyLevel()
return false return false
end end
function BountyData:getIfCanClaimReward()
if not self:getIsOpen() then
return false
end
if self.claimedCount < self.level then
return true
end
if self.bought and self.proClaimedCount < self:getMaxLevel() then
return true
end
return false
end
function BountyData:getIfCanClaimRepeatReward() function BountyData:getIfCanClaimRepeatReward()
local maxLevel = self:getMaxLevel() local maxLevel = self:getMaxLevel()
if maxLevel <= 0 then if maxLevel <= 0 then
@ -172,12 +203,20 @@ function BountyData:getIfCanClaimRepeatReward()
end end
function BountyData:onClaimReward(level) function BountyData:onClaimReward(level)
if self.claimed[level] then
return
end
self.claimed[level] = true self.claimed[level] = true
self.claimedCount = self.claimedCount + 1
self:markDirty() self:markDirty()
end end
function BountyData:onClaimProReward(level) function BountyData:onClaimProReward(level)
if self.proClaimed[level] then
return
end
self.proClaimed[level] = true self.proClaimed[level] = true
self.proClaimedCount = self.proClaimedCount + 1
self:markDirty() self:markDirty()
end end