diff --git a/lua/app/ui/arena/arena_grading_reward_ui.lua b/lua/app/ui/arena/arena_grading_reward_ui.lua index 7606f4cc..66a39251 100644 --- a/lua/app/ui/arena/arena_grading_reward_ui.lua +++ b/lua/app/ui/arena/arena_grading_reward_ui.lua @@ -33,9 +33,12 @@ function ArenaGradingRewardUI:onLoadRootComplete() self.scrollrectComp = uiMap["arena_grading_reward_ui.scrollrect"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE) self.scrollrectContent = uiMap["arena_grading_reward_ui.scrollrect.viewport.content"] + self.bannerCanvas = uiMap["arena_grading_reward_ui.banner"]:getComponent(GConst.TYPEOF_UNITY_CLASS.CANVAS) self.btnClose = uiMap["arena_grading_reward_ui.banner.btn_close"] self.txTips = uiMap["arena_grading_reward_ui.banner.tx_tips"] + self.bannerCanvas.overrideSorting = true + self.bannerCanvas.sortingOrder = self:getUIOrder() + GConst.UI_EFFECT_ORDER.LEVEL5 local cfg = DataManager.ArenaData:getGradingRewardCfg() self.txTips:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_39)) @@ -43,6 +46,7 @@ function ArenaGradingRewardUI:onLoadRootComplete() return "app/ui/arena/cell/arena_grading_reward_cell" end) self.scrollrectComp:addRefreshCallback(function(index, cell) + cell:setUI(self) cell:refresh(index) end) self.scrollrectComp:clearCells() 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 8b13f80c..9114a954 100644 --- a/lua/app/ui/arena/cell/arena_grading_reward_cell.lua +++ b/lua/app/ui/arena/cell/arena_grading_reward_cell.lua @@ -1,5 +1,8 @@ local ArenaGradingRewardCell = class("ArenaGradingRewardCell", BaseCell) +-- 光效 +local EFFECT_LIGHT = "assets/prefabs/effects/ui/vfx_ui_arena_gift_b01.prefab" + local COMMON_GRADING_POSY = 265 local UNLOCK_GRADING_POSY = 375 @@ -22,6 +25,7 @@ function ArenaGradingRewardCell:init() self.commonReward = uiMap["arena_grading_reward_cell.common_reward"] self.txDesc = uiMap["arena_grading_reward_cell.common_reward.tx_desc"] self.maskReward = uiMap["arena_grading_reward_cell.common_reward.mask"] + self.rootEffect = uiMap["arena_grading_reward_cell.common_reward.root_effect"] self.rewards = {} for i = 1, 4 do table.insert(self.rewards, uiMap["arena_grading_reward_cell.common_reward.rewards.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)) @@ -42,6 +46,10 @@ function ArenaGradingRewardCell:init() end) end +function ArenaGradingRewardCell:setUI(root) + self.uiRoot = root +end + function ArenaGradingRewardCell:refresh(id) self.id = id local cfg = DataManager.ArenaData:getGradingRewardCfg()[self.id] @@ -135,10 +143,19 @@ function ArenaGradingRewardCell:refresh(id) self.txDesc:setText(I18N:getGlobalText(I18N.GlobalConst.COLLECTION_DESC_6)) end + self.rootEffect:removeAllChildren() + if canGet and not isReceived then + EffectManager:loadUIEffectAsync(EFFECT_LIGHT, self.uiRoot, self.rootEffect, GConst.UI_EFFECT_ORDER.LEVEL5, function(obj) + obj:setAnchoredPosition(0, 0) + obj:play() + end) + end + for idx, reward in ipairs(self.rewards) do if cfg.reward[idx] then reward:setVisible(true) reward:refreshByConfig(cfg.reward[idx], isReceived, isReceived) + reward:showLight(canGet and not isReceived, self.uiRoot) else reward:setVisible(false) end diff --git a/lua/app/ui/common/cell/reward_cell.lua b/lua/app/ui/common/cell/reward_cell.lua index c2aaac5c..648455ed 100644 --- a/lua/app/ui/common/cell/reward_cell.lua +++ b/lua/app/ui/common/cell/reward_cell.lua @@ -1,5 +1,7 @@ local RewardCell = class("RewardCell", BaseCell) +local EFFECT_LIGHT = "assets/prefabs/effects/ui/vfx_ui_arena_gift_b02.prefab" + function RewardCell:init() local uiMap = self:getUIMap() self.icon = uiMap["reward_cell.item_bg.icon"] @@ -19,6 +21,8 @@ function RewardCell:init() -- 皮肤 self.skin = uiMap["reward_cell.skin"] self.skinQlt = uiMap["reward_cell.skin.img_qlt"] + -- 特效 + self.rootEffect = uiMap["reward_cell.root_effect"] self:hideFrameAnimation() self.baseObject:addClickListener(function() @@ -127,6 +131,8 @@ function RewardCell:_refreshItem(info, count) self.matchImg:setVisible(false) self.skin:setVisible(false) end + + self:showLight(false) end function RewardCell:setNumTx(str) @@ -202,4 +208,15 @@ function RewardCell:showLock(show) self.lock:setVisible(show == true) end +-- 展示光效 +function RewardCell:showLight(show, ui) + self.rootEffect:removeAllChildren() + if show and ui ~= nil then + EffectManager:loadUIEffectAsync(EFFECT_LIGHT, ui, self.rootEffect, GConst.UI_EFFECT_ORDER.LEVEL5, function(obj) + obj:setAnchoredPosition(0, 0) + obj:play() + end) + end +end + return RewardCell \ No newline at end of file