224 lines
5.9 KiB
Lua
224 lines
5.9 KiB
Lua
local RewardCell = class("RewardCell", BaseCell)
|
||
|
||
function RewardCell:init()
|
||
local uiMap = self:getUIMap()
|
||
self.frameAni = uiMap["reward_cell.frame_ani"]
|
||
self.itemCell = uiMap["reward_cell.item_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.ITEM_CELL)
|
||
self.equipCell = uiMap["reward_cell.equip_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.EQUIP_CELL)
|
||
self.imgSelect = uiMap["reward_cell.img_select"]
|
||
-- 概率标记
|
||
self.probNode = uiMap["reward_cell.prob"]
|
||
self.txProb = uiMap["reward_cell.prob.tx_prob"]
|
||
self.firstNode = uiMap["reward_cell.first_bg"]
|
||
self.txfirst = uiMap["reward_cell.first_bg.first_tx"]
|
||
|
||
self:setShowSelect(false)
|
||
self:hideFrameAnimation()
|
||
self:setShowProbTag(false)
|
||
self:setShowFirstTag(false)
|
||
end
|
||
|
||
function RewardCell:refresh(reward, mask, check)
|
||
if reward.type == GConst.REWARD_TYPE.ITEM then
|
||
self.id = reward.item.id
|
||
self.num = reward.item.num
|
||
self.type = reward.type
|
||
self.itemCell:setActive(true)
|
||
self.equipCell:setActive(false)
|
||
|
||
self.itemCell:refreshByCfg(reward.item.id, reward.item.num or reward.item.count)
|
||
elseif reward.type == GConst.REWARD_TYPE.EQUIP then
|
||
self.id = reward.equip.cfg_id
|
||
self.type = reward.type
|
||
self.itemCell:setActive(false)
|
||
self.equipCell:setActive(true)
|
||
|
||
self.equipCell:refreshByServer(reward.equip)
|
||
end
|
||
|
||
self:showMask(mask, check)
|
||
self:showCheck(check)
|
||
self:setShowProbTag(false)
|
||
self:setShowFirstTag(false)
|
||
self:setClickShowTips()
|
||
end
|
||
|
||
function RewardCell:refreshById(id, num)
|
||
self.id = id
|
||
self.num = num
|
||
self.type = GConst.REWARD_TYPE.ITEM
|
||
self.itemCell:setActive(true)
|
||
self.equipCell:setActive(false)
|
||
|
||
|
||
self.itemCell:refreshByCfg(self.id, self.num)
|
||
|
||
self:showMask(false, false)
|
||
self:showCheck(false)
|
||
self:setShowProbTag(false)
|
||
self:setShowFirstTag(false)
|
||
self:setClickShowTips()
|
||
end
|
||
|
||
function RewardCell:refreshByConfig(reward, mask, check)
|
||
self.id = reward.id
|
||
self.type = reward.type
|
||
self.num = reward.num
|
||
if reward.type == GConst.REWARD_TYPE_NUM.ITEM then
|
||
self.itemCell:setActive(true)
|
||
self.equipCell:setActive(false)
|
||
|
||
local num = reward.num or reward.count
|
||
self.itemCell:refreshByCfg(reward.id, num)
|
||
elseif reward.type == GConst.REWARD_TYPE_NUM.EQUIP then
|
||
self.itemCell:setActive(false)
|
||
self.equipCell:setActive(true)
|
||
|
||
self.equipCell:refreshByCfg(reward.id, reward.lv)
|
||
end
|
||
|
||
self:showMask(mask, check)
|
||
self:showCheck(check)
|
||
self:setShowProbTag(false)
|
||
self:setShowFirstTag(false)
|
||
self:setClickShowTips()
|
||
end
|
||
|
||
function RewardCell:refreshByEntity(entity)
|
||
local type = entity:getType()
|
||
if type == GConst.REWARD_TYPE.ITEM then
|
||
local id = entity:getId()
|
||
self:refreshByConfig({type = type, id = id, num = entity:getNum()})
|
||
end
|
||
end
|
||
|
||
function RewardCell:setShowSelect(show, scale)
|
||
self.imgSelect:setActive(show)
|
||
end
|
||
|
||
function RewardCell:setShowProbTag(show, prob)
|
||
if self.probNode == nil or self.txProb == nil then
|
||
return
|
||
end
|
||
self.probNode:setVisible(show)
|
||
self.txProb:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO).fontSize = 24 -- 临时处理,大版本的时候再修改prefab
|
||
self.txProb:setText((prob or 0) .. "%")
|
||
end
|
||
function RewardCell:setShowFirstTag(show)
|
||
if self.firstNode == nil or self.txfirst == nil then
|
||
return
|
||
end
|
||
self.firstNode:setVisible(show)
|
||
self.txfirst:setText(I18N:getGlobalText(I18N.GlobalConst.FIRST_PASS))
|
||
end
|
||
|
||
-- 展示spine动画高亮框
|
||
function RewardCell:showFrameAnimation(scale)
|
||
self.frameAni:setActive(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:setActive(false)
|
||
end
|
||
|
||
function RewardCell:showMask(show, syncCheck)
|
||
self.itemCell:showMask(show)
|
||
self.equipCell:showMask(show)
|
||
self:showCheck(syncCheck)
|
||
end
|
||
|
||
function RewardCell:showCheck(show)
|
||
self.itemCell:showCheck(show)
|
||
self.equipCell:showCheck(show)
|
||
end
|
||
|
||
function RewardCell:showLock(show)
|
||
self.itemCell:showLock(show)
|
||
self.equipCell:showLock(show)
|
||
end
|
||
|
||
function RewardCell:hideRewardNum()
|
||
self.itemCell:setNum(GConst.EMPTY_STRING)
|
||
end
|
||
|
||
function RewardCell:showRewardNum(numStr)
|
||
if not numStr then
|
||
return
|
||
end
|
||
self.itemCell:setNum(numStr)
|
||
end
|
||
|
||
function RewardCell:setNumTxDouble()
|
||
if self.count then
|
||
local count = self.count * 2
|
||
if count > 100 then
|
||
self:showRewardNum(GFunc.num2Str(count))
|
||
else
|
||
self:showRewardNum(GFunc.intToString(count))
|
||
end
|
||
end
|
||
end
|
||
|
||
function RewardCell:setClickShowTips(showItemTip)
|
||
self.itemCell:addClickListener(function()
|
||
ModuleManager.TipsManager:showRewardTips(self.id, self.type, self.baseObject, nil, { num = self.num },
|
||
showItemTip)
|
||
end)
|
||
self.equipCell:addClickListener(function()
|
||
ModuleManager.TipsManager:showRewardTips(self.id, self.type, self.baseObject)
|
||
end)
|
||
end
|
||
|
||
function RewardCell:addClickListener(func)
|
||
self.itemCell:addClickListener(func)
|
||
self.equipCell:addClickListener(func)
|
||
end
|
||
|
||
function RewardCell:setParentUI(parent)
|
||
self.parentUI = parent
|
||
end
|
||
|
||
function RewardCell:removeClickListener()
|
||
self.itemCell:removeClickListener()
|
||
self.equipCell:removeClickListener()
|
||
end
|
||
|
||
function RewardCell:setVisible(visible)
|
||
self.baseObject:setActive(visible)
|
||
end
|
||
|
||
function RewardCell:setActive(active)
|
||
self.baseObject:setActive(active)
|
||
end
|
||
|
||
function RewardCell:setAnchoredPositionX(x)
|
||
self.baseObject:setAnchoredPositionX(x)
|
||
end
|
||
|
||
function RewardCell:getAnchoredPositionX()
|
||
return self.baseObject:getAnchoredPositionX()
|
||
end
|
||
|
||
function RewardCell:getAnchoredPositionY()
|
||
return self.baseObject:getAnchoredPositionY()
|
||
end
|
||
|
||
function RewardCell:setTouchEnable(enable)
|
||
self.baseObject:setTouchEnable(enable)
|
||
self.itemCell:setTouchEnable(enable)
|
||
self.equipCell:setTouchEnable(enable)
|
||
end
|
||
|
||
function RewardCell:setLocalScale(x, y, z)
|
||
self.baseObject:setLocalScale(x, y, z)
|
||
end
|
||
|
||
return RewardCell
|