段位奖励添加奖励光效

This commit is contained in:
Fang 2023-08-28 17:41:52 +08:00
parent 6ec4c2cd40
commit 36bb8eede2
3 changed files with 38 additions and 0 deletions

View File

@ -33,9 +33,12 @@ function ArenaGradingRewardUI:onLoadRootComplete()
self.scrollrectComp = uiMap["arena_grading_reward_ui.scrollrect"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE) 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.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.btnClose = uiMap["arena_grading_reward_ui.banner.btn_close"]
self.txTips = uiMap["arena_grading_reward_ui.banner.tx_tips"] 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() local cfg = DataManager.ArenaData:getGradingRewardCfg()
self.txTips:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_39)) 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" return "app/ui/arena/cell/arena_grading_reward_cell"
end) end)
self.scrollrectComp:addRefreshCallback(function(index, cell) self.scrollrectComp:addRefreshCallback(function(index, cell)
cell:setUI(self)
cell:refresh(index) cell:refresh(index)
end) end)
self.scrollrectComp:clearCells() self.scrollrectComp:clearCells()

View File

@ -1,5 +1,8 @@
local ArenaGradingRewardCell = class("ArenaGradingRewardCell", BaseCell) local ArenaGradingRewardCell = class("ArenaGradingRewardCell", BaseCell)
-- 光效
local EFFECT_LIGHT = "assets/prefabs/effects/ui/vfx_ui_arena_gift_b01.prefab"
local COMMON_GRADING_POSY = 265 local COMMON_GRADING_POSY = 265
local UNLOCK_GRADING_POSY = 375 local UNLOCK_GRADING_POSY = 375
@ -22,6 +25,7 @@ function ArenaGradingRewardCell:init()
self.commonReward = uiMap["arena_grading_reward_cell.common_reward"] self.commonReward = uiMap["arena_grading_reward_cell.common_reward"]
self.txDesc = uiMap["arena_grading_reward_cell.common_reward.tx_desc"] self.txDesc = uiMap["arena_grading_reward_cell.common_reward.tx_desc"]
self.maskReward = uiMap["arena_grading_reward_cell.common_reward.mask"] self.maskReward = uiMap["arena_grading_reward_cell.common_reward.mask"]
self.rootEffect = uiMap["arena_grading_reward_cell.common_reward.root_effect"]
self.rewards = {} self.rewards = {}
for i = 1, 4 do 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)) 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)
end end
function ArenaGradingRewardCell:setUI(root)
self.uiRoot = root
end
function ArenaGradingRewardCell:refresh(id) function ArenaGradingRewardCell:refresh(id)
self.id = id self.id = id
local cfg = DataManager.ArenaData:getGradingRewardCfg()[self.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)) self.txDesc:setText(I18N:getGlobalText(I18N.GlobalConst.COLLECTION_DESC_6))
end 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 for idx, reward in ipairs(self.rewards) do
if cfg.reward[idx] then if cfg.reward[idx] then
reward:setVisible(true) reward:setVisible(true)
reward:refreshByConfig(cfg.reward[idx], isReceived, isReceived) reward:refreshByConfig(cfg.reward[idx], isReceived, isReceived)
reward:showLight(canGet and not isReceived, self.uiRoot)
else else
reward:setVisible(false) reward:setVisible(false)
end end

View File

@ -1,5 +1,7 @@
local RewardCell = class("RewardCell", BaseCell) local RewardCell = class("RewardCell", BaseCell)
local EFFECT_LIGHT = "assets/prefabs/effects/ui/vfx_ui_arena_gift_b02.prefab"
function RewardCell:init() function RewardCell:init()
local uiMap = self:getUIMap() local uiMap = self:getUIMap()
self.icon = uiMap["reward_cell.item_bg.icon"] self.icon = uiMap["reward_cell.item_bg.icon"]
@ -19,6 +21,8 @@ function RewardCell:init()
-- 皮肤 -- 皮肤
self.skin = uiMap["reward_cell.skin"] self.skin = uiMap["reward_cell.skin"]
self.skinQlt = uiMap["reward_cell.skin.img_qlt"] self.skinQlt = uiMap["reward_cell.skin.img_qlt"]
-- 特效
self.rootEffect = uiMap["reward_cell.root_effect"]
self:hideFrameAnimation() self:hideFrameAnimation()
self.baseObject:addClickListener(function() self.baseObject:addClickListener(function()
@ -127,6 +131,8 @@ function RewardCell:_refreshItem(info, count)
self.matchImg:setVisible(false) self.matchImg:setVisible(false)
self.skin:setVisible(false) self.skin:setVisible(false)
end end
self:showLight(false)
end end
function RewardCell:setNumTx(str) function RewardCell:setNumTx(str)
@ -202,4 +208,15 @@ function RewardCell:showLock(show)
self.lock:setVisible(show == true) self.lock:setVisible(show == true)
end 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 return RewardCell