diff --git a/lua/app/ui/arena/cell/arena_grading_reward_cell.lua b/lua/app/ui/arena/cell/arena_grading_reward_cell.lua index 13da28df..4984e9d9 100644 --- a/lua/app/ui/arena/cell/arena_grading_reward_cell.lua +++ b/lua/app/ui/arena/cell/arena_grading_reward_cell.lua @@ -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 diff --git a/lua/app/ui/collection/collection_ui.lua b/lua/app/ui/collection/collection_ui.lua index 04a0c47b..35a92544 100644 --- a/lua/app/ui/collection/collection_ui.lua +++ b/lua/app/ui/collection/collection_ui.lua @@ -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() diff --git a/lua/app/userdata/arena/arena_data.lua b/lua/app/userdata/arena/arena_data.lua index 75828b59..ef963b0c 100644 --- a/lua/app/userdata/arena/arena_data.lua +++ b/lua/app/userdata/arena/arena_data.lua @@ -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() -- 判断最低奖励可领取 diff --git a/lua/app/userdata/collection/collection_data.lua b/lua/app/userdata/collection/collection_data.lua index 41a0e608..09c55964 100644 --- a/lua/app/userdata/collection/collection_data.lua +++ b/lua/app/userdata/collection/collection_data.lua @@ -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