c1_lua/lua/app/ui/common/cell/reward_cell.lua
xiekaidong 2023930d62 宝箱
2023-05-17 19:19:24 +08:00

143 lines
3.8 KiB
Lua

local RewardCell = class("RewardCell", BaseCell)
function RewardCell:init()
local uiMap = self:getUIMap()
self.icon = uiMap["reward_cell.item_bg.icon"]
self.frameBg = uiMap["reward_cell.item_bg"]
self.mask = uiMap["reward_cell.item_bg.mask"]
self.check = uiMap["reward_cell.check"]
self.numTx = uiMap["reward_cell.item_bg.num"]
self.fragment = uiMap["reward_cell.item_bg.fragment"]
self.leftUpIcon = uiMap["reward_cell.item_bg.left_up_icon"]
self.frameAni = uiMap["reward_cell.frame_ani"]
self:hideFrameAnimation()
self.baseObject:addClickListener(function()
if self.clickCallback then
self.clickCallback()
elseif self.rewardId ~= nil then
local desc = self:getRewardDesc(self.rewardId, self.rewardType)
ModuleManager.TipsManager:showDescTips(desc, self.baseObject)
end
end)
end
function RewardCell:refresh(reward)
self:showMask(false, false)
if reward.type == GConst.REWARD_TYPE.ITEM then
self:_refreshItem(reward.item)
self.rewardId = reward.item.id
self.rewardType = reward.type
else
self.rewardId = nil
end
end
function RewardCell:refreshByConfig(reward, mask, check)
self:showMask(mask, check)
if reward.type == GConst.REWARD_TYPE.ITEM then
self:_refreshItem(reward)
self.rewardId = reward.id
self.rewardType = reward.type
else
self.rewardId = nil
end
end
function RewardCell:_refreshItem(item)
local info = ConfigManager:getConfig("item")[item.id]
if info == nil then
return
end
self.numTx:setVisible(true)
self.frameBg:setSprite(GConst.ATLAS_PATH.ICON_ITEM, GConst.FRAME_QLT[info.qlt])
self.numTx:setText(item.count or item.num)
if info.type == GConst.ItemConst.ITEM_TYPE.HERO_FRAGMENT then
local heroInfo = ConfigManager:getConfig("hero")[info.parameter]
if heroInfo then
self.icon:setLocalScale(0.86, 0.86, 0.86)
self.icon:setSprite(GConst.ATLAS_PATH.ICON_HERO, heroInfo.icon)
else
self.icon:setSprite(GConst.ATLAS_PATH.COMMON, "common_alpha")
end
self.fragment:setVisible(true)
else
self.icon:setLocalScale(1, 1, 1)
self.icon:setSprite(GConst.ATLAS_PATH.ICON_ITEM, info.icon)
self.fragment:setVisible(false)
end
end
function RewardCell:showNumTx(str)
self.numTx:setText(str)
end
function RewardCell:showNumTx(value)
self.numTx:setText(value)
end
function RewardCell:showMask(show, syncCheck)
self.mask:setVisible(show == true)
self:showCheck(syncCheck)
end
function RewardCell:hideCountTx()
end
function RewardCell:showCheck(show)
self.check:setVisible(show == true)
end
function RewardCell:setVisible(visible)
self.baseObject:setActive(visible)
end
function RewardCell:setAnchoredPositionX(x)
self.baseObject:setAnchoredPositionX(x)
end
function RewardCell:setTouchEnable(enable)
self.baseObject:setTouchEnable(enable)
end
function RewardCell:addClickListener(callback)
self.clickCallback = callback
end
function RewardCell:setLocalScale(x, y, z)
self.baseObject:setLocalScale(x, y, z)
end
function RewardCell:getRewardDesc(id, rewardType)
if rewardType == GConst.REWARD_TYPE.ITEM then
local item18NInfo = I18N:getConfig("item")[id]
if item18NInfo then
return item18NInfo.desc
end
end
return GConst.EMPTY_STRING
end
function RewardCell:showFrameAnimation(rewardType)
self.frameAni:setVisible(true)
self.frameAni:getComponent(GConst.TYPEOF_UNITY_CLASS.ANIMATOR).enabled = true
if self.frameAniType ~= GConst.REWARD_TYPE.ITEM then
-- CS.UnityEngine.Animator.StringToHash("frame_reward") 结果是997722489
self.frameAni:getComponent(GConst.TYPEOF_UNITY_CLASS.ANIMATOR):Play(997722489, -1, 0)
self.frameAniType = GConst.REWARD_TYPE.ITEM
end
end
function RewardCell:hideFrameAnimation()
self.frameAni:getComponent(GConst.TYPEOF_UNITY_CLASS.ANIMATOR).enabled = false
self.frameAni:setVisible(false)
end
function RewardCell:showLeftUpIcon(show, atlas, iconName)
self.leftUpIcon:setVisible(show)
if not show then
return
end
self.leftUpIcon:setSprite(atlas, iconName)
end
return RewardCell