From ef77d515f2697a5b2131329caf62bf2185444ae7 Mon Sep 17 00:00:00 2001 From: Fang Date: Fri, 25 Aug 2023 10:36:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=AE=B5=E4=BD=8D=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E6=AE=B5=E4=BD=8D=E5=9B=BE=E6=A0=87=E6=98=BE=E7=A4=BA=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../arena/cell/arena_grading_reward_cell.lua | 11 +++++-- lua/app/userdata/arena/arena_data.lua | 33 ++++++++++++++++--- 2 files changed, 36 insertions(+), 8 deletions(-) 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 4984e9d9..3b9f2112 100644 --- a/lua/app/ui/arena/cell/arena_grading_reward_cell.lua +++ b/lua/app/ui/arena/cell/arena_grading_reward_cell.lua @@ -60,10 +60,11 @@ function ArenaGradingRewardCell:refresh(id) end) self.txGrading:setText(DataManager.ArenaData:getGradingName(gradingId)) + self.baseObject:setSizeDeltaY(DataManager.ArenaData:getGradingRewardItemHeight(self.id)) if cfg.unlock_hero and #cfg.unlock_hero > 0 then -- 解锁英雄 + self.gradingNode:setActive(true) self.gradingNode:setAnchoredPositionY(UNLOCK_GRADING_POSY) - self.baseObject:setSizeDeltaY(DataManager.ArenaData:getGradingRewardItemHeight(true)) self.heroUnlock:setActive(true) if maxPoint >= cfg.score then @@ -88,8 +89,12 @@ function ArenaGradingRewardCell:refresh(id) end end else - self.gradingNode:setAnchoredPositionY(COMMON_GRADING_POSY) - self.baseObject:setSizeDeltaY(DataManager.ArenaData:getGradingRewardItemHeight(false)) + if DataManager.ArenaData:isGradingMin(self.id) then + self.gradingNode:setActive(true) + self.gradingNode:setAnchoredPositionY(COMMON_GRADING_POSY) + else + self.gradingNode:setActive(false) + end self.heroUnlock:setActive(false) end diff --git a/lua/app/userdata/arena/arena_data.lua b/lua/app/userdata/arena/arena_data.lua index ef963b0c..3cfc3b50 100644 --- a/lua/app/userdata/arena/arena_data.lua +++ b/lua/app/userdata/arena/arena_data.lua @@ -606,12 +606,35 @@ function ArenaData:hasGradingRewardRedDot() return false end -local GRADING_REWARD_COMMON_SIZE = 460 +-- 奖励段位是否是段位分界线 +function ArenaData:isGradingMin(id) + local score = self:getGradingRewardCfg()[id].score + + for id, data in pairs(self.cfgRank) do + if score == data.score then + return true + end + end + + return false +end + +local GRADING_REWARD_COMMON_SIZE = 220 +local GRADING_REWARD_GRADING_SIZE = 460 local GRADING_REWARD_UNLOCK_SIZE = 570 -- 获取段位奖励项的高 -function ArenaData:getGradingRewardItemHeight(hasUnlockHero) - return hasUnlockHero and GRADING_REWARD_UNLOCK_SIZE or GRADING_REWARD_COMMON_SIZE +function ArenaData:getGradingRewardItemHeight(id) + if self:getGradingRewardCfg()[id].unlock_hero ~= nil then + -- 有解锁的英雄 + return GRADING_REWARD_UNLOCK_SIZE + elseif self:isGradingMin(id) then + -- 是段位分界线 + return GRADING_REWARD_GRADING_SIZE + else + -- 普通奖励 + return GRADING_REWARD_COMMON_SIZE + end end -- 获取当前列表定位所在档位的高度 @@ -624,7 +647,7 @@ function ArenaData:getCurTargetPosY() return totalHeight end - totalHeight = totalHeight + (data.unlock_hero ~= nil and GRADING_REWARD_UNLOCK_SIZE or GRADING_REWARD_COMMON_SIZE) + totalHeight = totalHeight + self:getGradingRewardItemHeight(id) end -- 判断当前档位 @@ -636,7 +659,7 @@ function ArenaData:getCurTargetPosY() return totalHeight end - totalHeight = totalHeight + (data.unlock_hero ~= nil and GRADING_REWARD_UNLOCK_SIZE or GRADING_REWARD_COMMON_SIZE) + totalHeight = totalHeight + self:getGradingRewardItemHeight(id) end return 0 From de49d604ad4723be1a4e9c9dd2c15284bba90b5d Mon Sep 17 00:00:00 2001 From: Fang Date: Mon, 28 Aug 2023 10:14:38 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=A1=A3=E4=BD=8D=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E6=98=BE=E7=A4=BAfix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/ui/arena/cell/arena_grading_reward_cell.lua | 3 ++- lua/app/userdata/arena/arena_data.lua | 7 ++----- 2 files changed, 4 insertions(+), 6 deletions(-) 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 3b9f2112..8b13f80c 100644 --- a/lua/app/ui/arena/cell/arena_grading_reward_cell.lua +++ b/lua/app/ui/arena/cell/arena_grading_reward_cell.lua @@ -110,13 +110,14 @@ function ArenaGradingRewardCell:refresh(id) local posY = rootHeight * curProg -- 高度超框处理 - if self.id == 1 or self.id == #table.keys(cfg) then + if self.id == 1 or self.id == #DataManager.ArenaData:getGradingRewardCfg() then local tagHeight = self.tagProg:fastGetSizeDeltaY() if posY < tagHeight / 2 then posY = tagHeight / 2 end end self.tagProg:setAnchoredPositionY(posY) + self.baseObject:getTransform():SetAsLastSibling() else self.tagProg:setVisible(false) end diff --git a/lua/app/userdata/arena/arena_data.lua b/lua/app/userdata/arena/arena_data.lua index 3cfc3b50..3ffda486 100644 --- a/lua/app/userdata/arena/arena_data.lua +++ b/lua/app/userdata/arena/arena_data.lua @@ -568,11 +568,8 @@ function ArenaData:getGradingRewardProgressByScore(id, score) if id == 1 then -- 第一个档位特殊处理 - local minScore = self:getSeasonGradingMinScore() - local prog = (score - minScore) / (point - minScore) - if prog > 0.5 then - prog = 0.5 - end + local prog = 0.5 + if score > point then prog = prog + ((score - point) / (rangeMax - point)) end