段位奖励展示修改、添加收集标签红点

This commit is contained in:
Fang 2023-08-24 18:09:23 +08:00
parent 4d5c23a6b6
commit e76e7ccab6
4 changed files with 56 additions and 24 deletions

View File

@ -1,11 +1,15 @@
local ArenaGradingRewardCell = class("ArenaGradingRewardCell", BaseCell)
local COMMON_SIZE = 220
local UNLOCK_SIZE = 570
local COMMON_GRADING_POSY = 265
local UNLOCK_GRADING_POSY = 375
function ArenaGradingRewardCell:init()
local uiMap = self:getUIMap()
-- 段位spine
self.gradingNode = uiMap["arena_grading_reward_cell.grading"]
self.spineGradingRoot = uiMap["arena_grading_reward_cell.grading.spine_root"]
self.txGrading = uiMap["arena_grading_reward_cell.grading.tx_grading"]
-- 进度
self.progress = uiMap["arena_grading_reward_cell.progress"]
self.imgProgCur = uiMap["arena_grading_reward_cell.progress.img_prog_cur"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER)
@ -24,9 +28,6 @@ function ArenaGradingRewardCell:init()
end
-- 英雄解锁
self.heroUnlock = uiMap["arena_grading_reward_cell.hero_unlock"]
self.spineGradingRoot = uiMap["arena_grading_reward_cell.hero_unlock.spine_root"]
self.spineGrading = uiMap["arena_grading_reward_cell.hero_unlock.spine_grading"]
self.txGrading = uiMap["arena_grading_reward_cell.hero_unlock.title.tx_grading"]
self.txUnlock = uiMap["arena_grading_reward_cell.hero_unlock.tx_unlock"]
self.heroList = uiMap["arena_grading_reward_cell.hero_unlock.hero_list"]
self.heros = {}
@ -52,17 +53,19 @@ function ArenaGradingRewardCell:refresh(id)
-- Logger.logHighlight(id.."当前进度:"..cfg.score.."/" .. curProg .."/"..maxProg)
self.spineGradingRoot:removeAllChildren()
local gradingId = DataManager.ArenaData:getGradingIdFromScore(cfg.score)
SpineManager:loadUISpineWidgetAsync(DataManager.ArenaData:getGradingIconName(gradingId).."_spine", self.spineGradingRoot, function(spineObject)
spineObject:setSkin(DataManager.ArenaData:getGradingNumName(gradingId))
spineObject:playAnim("idle", true)
end)
self.txGrading:setText(DataManager.ArenaData:getGradingName(gradingId))
if cfg.unlock_hero and #cfg.unlock_hero > 0 then
-- 解锁英雄
self.baseObject:setSizeDeltaY(UNLOCK_SIZE)
self.gradingNode:setAnchoredPositionY(UNLOCK_GRADING_POSY)
self.baseObject:setSizeDeltaY(DataManager.ArenaData:getGradingRewardItemHeight(true))
self.heroUnlock:setActive(true)
local gradingId = DataManager.ArenaData:getGradingIdFromScore(cfg.score)
SpineManager:loadUISpineWidgetAsync(DataManager.ArenaData:getGradingIconName(gradingId).."_spine", self.spineGradingRoot, function(spineObject)
spineObject:setSkin(DataManager.ArenaData:getGradingNumName(gradingId))
spineObject:playAnim("idle", true)
end)
self.txGrading:setText(DataManager.ArenaData:getGradingName(gradingId))
if maxPoint >= cfg.score then
self.txUnlock:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_38))
else
@ -76,17 +79,23 @@ function ArenaGradingRewardCell:refresh(id)
hero:setSprite(GConst.ATLAS_PATH.ICON_ITEM, "frame_"..heroInfo.qlt)
local map = hero:genAllChildren()
map["img_hero"]:setSprite(GConst.ATLAS_PATH.ICON_HERO, heroInfo.icon)
hero:addClickListener(function()
ModuleManager.HeroManager:showHeroDetailUI(cfg.unlock_hero[idx], true)
end)
else
hero:setActive(false)
end
end
else
self.baseObject:setSizeDeltaY(COMMON_SIZE)
self.gradingNode:setAnchoredPositionY(COMMON_GRADING_POSY)
self.baseObject:setSizeDeltaY(DataManager.ArenaData:getGradingRewardItemHeight(false))
self.heroUnlock:setActive(false)
end
self.txTag:setText(curPoint)
self.txGradingValue:setText(cfg.score)
local minScore = DataManager.ArenaData:getSeasonGradingMinScore()
self.txTag:setText(curPoint - minScore)
self.txGradingValue:setText(cfg.score - minScore)
self.imgProgCur.value = curProg
self.imgProgMax.value = maxProg

View File

@ -157,6 +157,18 @@ function CollectionUI:refreshCollectPoint()
self.txTotalValue:setText(cur.."/"..total)
GFunc.centerImgAndTx(self.imgGet, self.txGet, 5)
-- 红点
if DataManager.CollectionData:hasCanCollectPoint(GConst.CollectionConst.TYPE.HERO) then
self.btnHero:addRedPoint(25, 30, 0.6)
else
self.btnHero:removeRedPoint()
end
if DataManager.CollectionData:hasCanCollectPoint(GConst.CollectionConst.TYPE.SKIN) then
self.btnSkin:addRedPoint(25, 30, 0.6)
else
self.btnSkin:removeRedPoint()
end
end
function CollectionUI:showFlyAnim()

View File

@ -606,9 +606,14 @@ function ArenaData:hasGradingRewardRedDot()
return false
end
local GRADING_REWARD_COMMON_SIZE = 220
local GRADING_REWARD_COMMON_SIZE = 460
local GRADING_REWARD_UNLOCK_SIZE = 570
-- 获取段位奖励项的高
function ArenaData:getGradingRewardItemHeight(hasUnlockHero)
return hasUnlockHero and GRADING_REWARD_UNLOCK_SIZE or GRADING_REWARD_COMMON_SIZE
end
-- 获取当前列表定位所在档位的高度
function ArenaData:getCurTargetPosY()
-- 判断最低奖励可领取

View File

@ -39,15 +39,11 @@ function CollectionData:hasRedPoint()
end
-- 可领点数
for idx, data in pairs(self:getCollectList(GConst.CollectionConst.TYPE.HERO)) do
if self:canCollectPoint(GConst.CollectionConst.TYPE.HERO, data.id) then
return true
end
if self:hasCanCollectPoint(GConst.CollectionConst.TYPE.HERO) then
return true
end
for idx, data in pairs(self:getCollectList(GConst.CollectionConst.TYPE.SKIN)) do
if self:canCollectPoint(GConst.CollectionConst.TYPE.SKIN, data.id) then
return true
end
if self:hasCanCollectPoint(GConst.CollectionConst.TYPE.SKIN) then
return true
end
-- 可领奖励
@ -60,6 +56,16 @@ function CollectionData:hasRedPoint()
return false
end
-- 是否有可领取的收集值
function CollectionData:hasCanCollectPoint(type)
for idx, data in pairs(self:getCollectList(type)) do
if self:canCollectPoint(type, data.id) then
return true
end
end
return false
end
-- 获取当前收集值
function CollectionData:getCurCollectPoint()
return self.curPoint