|
--[[
|
|
最基础的物品图标类
|
|
只控制物品图标 和 数量
|
|
需要其他功能请在继承中实现
|
|
参考BagIconItem
|
|
]]
|
|
|
|
AwardItem = AwardItem or BaseClass(BaseItem)
|
|
local AwardItem = AwardItem
|
|
-- 缓存常用对象
|
|
local Config = Config
|
|
local UIObjPool = UIObjPool
|
|
local UIToolTipMgr = UIToolTipMgr
|
|
local GoodsModel = GoodsModel
|
|
local EquipModel = EquipModel
|
|
local GlobalTimerQuest = GlobalTimerQuest
|
|
local WordManager = WordManager
|
|
local RoleManager = RoleManager
|
|
|
|
local SetLocalScale = SetLocalScale
|
|
local SetImageGray = SetImageGray
|
|
local SetSizeDelta = SetSizeDelta
|
|
local SetAnchoredPosition = SetAnchoredPosition
|
|
local lua_resM = lua_resM
|
|
|
|
function AwardItem:__init(parent, show_tips)
|
|
self.parent = parent
|
|
self.base_file = "common"
|
|
self.layout_file = "awardItem"
|
|
self.prefab_asset = nil
|
|
self.layer_name = self.layer_name or "UI"
|
|
self.goods_basic = nil
|
|
self.show_count = true
|
|
self.type_id = nil
|
|
self.goods_num = nil
|
|
self.color = nil
|
|
self.get_goods = false --获取途径
|
|
self.random_tip_value = false --随机掉落标识
|
|
self.width = 78
|
|
self.height = 78
|
|
self.bg_visible = true
|
|
self.is_select = false
|
|
self.ware_tip_state = false
|
|
self.must_tip_value = false --必掉提示ICON
|
|
self.resetTransform = false --是否在加载完成设置完父对象之后把位置和旋转归零
|
|
self.is_fix_size = true --是否使用客户端限制的3种规格
|
|
self.force_show_num = false--是否强制显示数字
|
|
self.resetPos = false
|
|
self.limit_state = BagModel.GoodsLimitState.Normal -- 道具的限时状态
|
|
self.stren_prefix = "+"
|
|
self.have_career = false --是否要对比职业
|
|
self.goods_vo = nil -- 道具的真实数据,由服务端发送,格式参考15010协议
|
|
self.force_show_limit_tip_view = false --打开普通物品tips时是否强制显示为限时道具状态(背包物品除外)
|
|
if show_tips == nil then
|
|
show_tips = true
|
|
end
|
|
self.show_tips = show_tips
|
|
self.raycast_target_enable = show_tips
|
|
self.res_use_ref = {}
|
|
self.open_show_get_way = true
|
|
--self.use_local_view = true
|
|
self:Load()
|
|
end
|
|
|
|
function AwardItem:Load_callback()
|
|
self.base_sx = self.transform.sizeDelta.x
|
|
self.base_sy = self.transform.sizeDelta.y
|
|
self.bg_trams = self:GetChild("bg")
|
|
self.bg = self:GetChild("bg"):GetComponent("Image")
|
|
self.icon = self:GetChild("icon")
|
|
self.iconImage = self.icon:GetComponent("Image")
|
|
-- self.numBg = self:GetChild("numBg").gameObject
|
|
-- self.numBg_trams = self:GetChild("numBg")
|
|
self.stren = self:GetChild("stren"):GetComponent("Text")
|
|
self.stren_obj = self:GetChild("stren").gameObject
|
|
|
|
-- self.step = self:GetChild("step"):GetComponent("Image")
|
|
-- self.stepNum = self:GetChild("stepNum"):GetComponent("Text")
|
|
self.selectImage = self:GetChild("selectImg").gameObject
|
|
self.selectImage2 = self:GetChild("selectImg2").gameObject
|
|
|
|
self.mask_icon = self:GetChild("mask_icon").gameObject
|
|
-- self.expiredIcon = self:GetChild("expiredIcon").gameObject
|
|
-- self.drop_tip = self:GetChild("must_tip").gameObject
|
|
-- self.randomn_drop_tip = self:GetChild("random_tip").gameObject
|
|
-- self.randomn_drop_tip_text = self:GetChild("random_tip/text"):GetComponent("Text")
|
|
-- self.numBg_sizeDelta = self.numBg_trams.sizeDelta
|
|
self.lock = self:GetChild("lock").gameObject
|
|
self.getIcon = self:GetChild("getIcon").gameObject
|
|
self.effect = self:GetChild("effect")
|
|
self.clickBg = self:GetChild("clickBg"):GetComponent("EmptyRaycast")
|
|
-- self.guild_tip = self:GetChild("guild_tip").gameObject
|
|
-- self.guard_tip = self:GetChild("guard_tip").gameObject
|
|
-- self.ware_tip = self:GetChild("ware_tip").gameObject
|
|
-- self.double_tip = self:GetChild("double_tip").gameObject
|
|
-- self.extra_tip = self:GetChild("extra_tip").gameObject
|
|
-- self.true_tip = self:GetChild("true_tip").gameObject
|
|
-- self.vip_tip = self:GetChild("vip_tip").gameObject
|
|
-- self.numText2 = self:GetChild("numText2"):GetComponent("Text")
|
|
-- self.statue_tip = self:GetChild("statue_tip").gameObject
|
|
-- self.limit_tip = self:GetChild("limit_tip").gameObject
|
|
self.numLimitIcon = self:GetChild("numLimitIcon").gameObject
|
|
self.numLimitIcon_img = self:GetChild("numLimitIcon"):GetComponent("Image")
|
|
|
|
self.warSoulTypeImg_img = self:GetChild("warSoulTypeImg"):GetComponent("Image")
|
|
-- self.lb_dai_txt = self:GetChild("lb_dai"):GetComponent("Text")
|
|
-- self.di_dai_obj = self:GetChild("di_dai").gameObject
|
|
|
|
self.numTextT = self:GetChild("numText")
|
|
self.numText = self.numTextT:GetComponent("Text")
|
|
self.numTextT_sizeDelta = self.numTextT.sizeDelta
|
|
self.nodes = {
|
|
"equipSeriesText:tmp","get_num:tmp","numText:tmp","redDot:obj","starNum:txt", "starBg:obj"
|
|
}
|
|
self:GetChildren(self.nodes)
|
|
|
|
self.xs_imgGo
|
|
= GetChildGameObjects(self.transform,{
|
|
"xsImg"
|
|
})
|
|
|
|
self.limit_img
|
|
= GetChildImages(self.transform,{
|
|
"xsImg"
|
|
})
|
|
for i = 1,3 do
|
|
self["star"..i] = self:GetChild("star"..i).gameObject
|
|
self["star"..i.."_img"] = self:GetChild("star"..i):GetComponent("Image")
|
|
end
|
|
self.equip_mark = self:GetChild("equip_mark").gameObject
|
|
|
|
if self.need_refreshData then
|
|
self:SetData(self.type_id,self.goods_num,self.color,self.stren_num,self.is_lock,nil,nil,nil,nil,nil,nil,self.have_career)
|
|
end
|
|
--self.bg.raycastTarget = self.show_tips
|
|
self.clickBg.raycastTarget = self.show_tips--如果不需要弹提示就取消触摸响应
|
|
self.raycast_target_enable = self.show_tips
|
|
|
|
if self.need_resize then
|
|
self:SetItemSize(self.width, self.height)
|
|
self.need_resize = false
|
|
end
|
|
|
|
if self.loadCall then
|
|
self.loadCall()
|
|
end
|
|
if self.resetTransform then
|
|
local rect = self.gameObject:GetComponent("RectTransform")
|
|
rect.pivot = Vector2(0,1)
|
|
rect.anchorMax =Vector2(0,1)
|
|
rect.anchorMin =Vector2(0,1)
|
|
rect.anchoredPosition = Vector2.zero
|
|
rect.localRotation = Quaternion.Euler(0,0,0)
|
|
self.resetTransform = false
|
|
end
|
|
-- self.drop_tip:SetActive(self.must_tip_value)
|
|
-- self.randomn_drop_tip:SetActive(self.random_tip_value)
|
|
-- if self.random_tip_value and self.random_tip_text then
|
|
-- self.randomn_drop_tip_text.text = self.random_tip_text
|
|
-- end
|
|
self:InitEvent()
|
|
|
|
if self.custom_num_str then
|
|
self:SetNumStr(self.custom_num_str)
|
|
end
|
|
|
|
self:SetSelect(self.is_select)
|
|
self:SetWareTip(self.ware_tip_state)
|
|
|
|
if self.resetPos then
|
|
self.clickBg.raycastTarget = self.show_tips
|
|
self.raycast_target_enable = self.show_tips
|
|
self.transform:SetParent(self.parent)
|
|
SetLocalPositionZ(self.transform,0)
|
|
self.transform.anchoredPosition = Vector2.zero
|
|
if self.anchoredPosition then
|
|
self:SetAnchoredPosition(self.anchoredPosition.x,self.anchoredPosition.y)
|
|
self.anchoredPosition = false
|
|
end
|
|
self.resetPos = false
|
|
end
|
|
|
|
if self.need_refreshResetInfo then
|
|
self:ResetInfo()
|
|
self.need_refreshResetInfo = false
|
|
end
|
|
-- if self.need_refreshStatue then
|
|
-- self:SetStatueTips(self.statue, self.statue_res, self.res_ab)
|
|
-- end
|
|
|
|
if self.need_set_limit_state then
|
|
self.need_set_limit_state = false
|
|
self:SetLimitState(self.limit_state)
|
|
end
|
|
|
|
if self.need_reset_limit_icon then
|
|
self.need_reset_limit_icon = false
|
|
self:ShowLimitIcon(self.show_limit,self.show_limit_type)
|
|
end
|
|
if self.need_refreshIsGetIcon then
|
|
self:IsGetGoods(self.get_goods)
|
|
end
|
|
if self.is_need_rebind_long_press then
|
|
self:BindLongPressEvent(self.cache_bind_long_press_info[1], self.cache_bind_long_press_info[2], self.cache_bind_long_press_info[3], self.cache_bind_long_press_info[4])
|
|
end
|
|
SetLocalScale(self.effect.transform, 1, 1, 1)
|
|
self.effect.gameObject:SetActive(true)
|
|
end
|
|
|
|
function AwardItem:SetExpiredVisible( bool )
|
|
-- if self.expiredIcon then
|
|
-- self.expiredIcon:SetActive(bool)
|
|
-- end
|
|
end
|
|
|
|
--设置必掉图标
|
|
-- function AwardItem:SetMustDropTip(bool)
|
|
-- if self.is_loaded then
|
|
-- self.drop_tip:SetActive(bool)
|
|
-- else
|
|
-- self.drop_tip_state = bool
|
|
-- end
|
|
-- end
|
|
|
|
--设置双倍掉图标
|
|
function AwardItem:SetDoubleTip(bool)
|
|
-- if self.is_loaded then
|
|
-- self.double_tip:SetActive(bool)
|
|
-- end
|
|
end
|
|
|
|
--设置额外图标
|
|
function AwardItem:SetExtraTip(bool)
|
|
-- if self.is_loaded then
|
|
-- self.extra_tip:SetActive(bool)
|
|
-- else
|
|
-- self.extra_tip_state = bool
|
|
-- end
|
|
end
|
|
|
|
--设置随机掉落图标
|
|
-- function AwardItem:SetRandomDropTip(bool,text)
|
|
-- if self.is_loaded then
|
|
-- self.randomn_drop_tip:SetActive(bool)
|
|
-- if text then
|
|
-- self.randomn_drop_tip_text.text = text
|
|
-- end
|
|
-- else
|
|
-- self.random_tip_value = bool
|
|
-- if text then
|
|
-- self.random_tip_text = text
|
|
-- end
|
|
-- end
|
|
-- end
|
|
|
|
--设置社团加成图标
|
|
-- function AwardItem:SetGuildAdditionTip( bool )
|
|
-- if self.is_loaded then
|
|
-- self.guild_tip:SetActive(bool)
|
|
-- local num = self.goods_num
|
|
-- local lv = GuildModel:getInstance():GetGuildBuildLvInfo(6)
|
|
-- num = tonumber(num) * GuildModel:getInstance():GetGuildTaskAddition(lv)/100
|
|
-- self.numText.text = WordManager:ConvertNum1(num, bool)
|
|
-- end
|
|
-- end
|
|
|
|
|
|
function AwardItem:SetVipAdditionTip( bool )
|
|
-- if self.is_loaded then
|
|
-- self.vip_tip:SetActive(bool)
|
|
-- local num = tonumber(self.goods_num) or 0
|
|
-- local rate = 0
|
|
-- local vip_lv = RoleManager.Instance.mainRoleInfo.vip_flag
|
|
-- local cfg = Config.Vipprivilege
|
|
|
|
-- if not cfg then return end
|
|
-- for k,v in pairs(cfg) do
|
|
-- if v.module_id == 300 and v.subclass_id == 3 and v.lv == vip_lv then
|
|
-- rate = v.value/10000
|
|
-- end
|
|
-- end
|
|
-- num = tonumber(num) * rate
|
|
-- self.numText.text = WordManager:ConvertNum1(num, bool)
|
|
-- end
|
|
end
|
|
|
|
--提供一个接口给外部直接调用awardItem点击函数
|
|
function AwardItem:ManuallyClickFun(target,x,y)
|
|
if self.manuallyClickFun then
|
|
self.manuallyClickFun(target,x,y)
|
|
end
|
|
end
|
|
|
|
function AwardItem:InitEvent()
|
|
local function onBtnClickHandler(target,x,y)
|
|
if self.show_tips then
|
|
if self.withCallback then
|
|
self.withCallback()
|
|
end
|
|
if self.callback then
|
|
self.callback(target,x,y)
|
|
else
|
|
if self.is_long_click then
|
|
--长按跳出
|
|
elseif self.get_goods and not self.no_need_show_get then
|
|
--------------------------------
|
|
if self.force_show_limit_tip_view then--强制显示限时状态的物品tips
|
|
local parm_list = {force_show_limit = true}
|
|
UIToolTipMgr:getInstance():AppendGoodsTips(self.type_id, x, y,nil,nil,parm_list,nil,self.open_show_get_way)
|
|
return
|
|
end
|
|
--------------------------------
|
|
UIToolTipMgr:getInstance():AppendGoodsTips(self.type_id, x, y,nil,nil,nil,nil,self.open_show_get_way)
|
|
elseif self.get_goods and self.no_need_show_get then
|
|
local cfg = ShopModel:getInstance():GetShopTypeIdBuyCFG(self.type_id)
|
|
if cfg and TableSize(cfg) > 0 and string.find(self.get_str, ColorUtil.RED_DARK) then
|
|
ShopModel:getInstance():Fire(ShopModel.OPEN_SHOP_BUY_TIP_VIEW,self.type_id,self.shop_buy_num)
|
|
else
|
|
self:ClickCallFun(target,x,y)
|
|
end
|
|
else
|
|
self:ClickCallFun(target,x,y)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
AddClickEvent(self.gameObject, onBtnClickHandler, nil, false)
|
|
|
|
self.manuallyClickFun = onBtnClickHandler
|
|
end
|
|
|
|
--点击函数,可在子类继承该方法,实现自己需要的效果
|
|
function AwardItem:ClickCallFun(target,x,y)
|
|
--[[if self.goods_basic then
|
|
if self.goods_basic.type == 11 and self.goods_basic.subtype == 10 then --装备鉴定物
|
|
if self.goods_basic.identify > 0 then
|
|
UIToolTipMgr:getInstance():AppendEquipIdentifyTips(self.goods_basic.type_id, x, y)
|
|
else
|
|
Message.show("不可鉴定")
|
|
end
|
|
else --普通物品
|
|
-- if not BoxModel:GetInstance():CheckOptionTypeAndOpen(self.goods_basic.type_id) then
|
|
UIToolTipMgr:getInstance():AppendGoodsTips(self.goods_basic.type_id, x, y, nil)
|
|
-- end
|
|
end
|
|
end--]]
|
|
-- 先判断goods_vo的情况
|
|
if self.goods_vo and self.goods_basic then
|
|
if self.goods_basic.type == 9 then -- 圣物装备
|
|
UIToolTipMgr:getInstance():AppendPsionicTips(self.goods_vo, x, y, PsionicConst.ArmorItemFlag.Show)
|
|
return
|
|
else
|
|
local parm_list = self.expire_time and {expire_time = self.expire_time,expire_type = self.expire_type}
|
|
UIToolTipMgr:getInstance():AppendGoodsTips(self.goods_basic.type_id, x, y,self.goods_vo,nil,parm_list,nil,self.open_show_get_way)
|
|
return
|
|
end
|
|
end
|
|
if self.goods_basic then
|
|
if self.goods_basic.type == GoodsModel.TYPE.EQUIP then--装备
|
|
-- if self.dynamic then --拼接推荐属性
|
|
-- UIToolTipMgr:getInstance():AppendEquipShowTips(self.dynamic, x, y, self.show_type)
|
|
-- else
|
|
UIToolTipMgr:getInstance():AppendEquipTips(self.goods_basic.type_id, x, y,self.stren_data and self.stren_data.goods_vo,nil,nil,nil,self.stren_data and self.stren_data.key_value,nil,nil,self.color_power_lv or 0)
|
|
-- end
|
|
elseif self.goods_basic.type == GoodsModel.TYPE.WarSoul then--战魂
|
|
UIToolTipMgr:getInstance():AppendWarSoulTips(self.goods_basic.type_id, x, y, self.stren_data and self.stren_data.goods_vo,nil,nil,nil,self.stren_data and self.stren_data.key_value)
|
|
elseif self.goods_basic.type == 39 then --幻兽装备
|
|
if self.dynamic then --拼接推荐属性
|
|
UIToolTipMgr:getInstance():AppendBeastShowTips(self.dynamic, x, y, self.show_type)
|
|
else
|
|
UIToolTipMgr:getInstance():AppendBeastTips(self.goods_basic.type_id, x, y)
|
|
end
|
|
elseif self.goods_basic.type == GoodsModel.TYPE.GALAXY and self.goods_basic.subtype == 1 then -- 星辰
|
|
local galaxy_vo = GalaxyModel.getInstance():CreateGalaxyBasic(self.goods_basic.type_id, 1)
|
|
GalaxyModel.getInstance():InitGoodsData(galaxy_vo)
|
|
GalaxyModel.getInstance():Fire(GalaxyConst.OPEN_GOODS_TOOL_TIPS_VIEW, galaxy_vo)
|
|
-- elseif self.goods_basic.type == 13 then --圣印装备
|
|
-- if self.dynamic then --拼接推荐属性
|
|
-- UIToolTipMgr:getInstance():AppendSealShowTips(self.dynamic, x, y, self.show_type)
|
|
-- else
|
|
-- UIToolTipMgr:getInstance():AppendSealTips(self.goods_basic.type_id, x, y)
|
|
-- end
|
|
-- elseif self.goods_basic.type == 21 and self.goods_basic.subtype == 1 then --星痕装备
|
|
-- UIToolTipMgr:getInstance():AppendStarShadowTips(self.goods_basic.type_id,self.goods_basic, x, y, true,true)
|
|
--elseif self.goods_basic.type == 16 and self.goods_basic.subtype == 4 then
|
|
-- UIToolTipMgr:getInstance():AppendHorseEquipInfoTips(self.type_id, x, y, nil, HorseEquipInfoTips.UNKNOWN, nil, nil)
|
|
elseif self.goods_basic.type == 52 and self.goods_basic.subtype ~= 4 and self.goods_basic.subtype ~= 5 then --魂珠类型
|
|
SoulBeadModel:getInstance():Fire(SoulBeadModel.EventName.OPEN_SOUL_BEAD_TIPS, self.type_id, x, y)
|
|
else --普通物品
|
|
local parm_list = self.expire_time and {expire_time = self.expire_time,expire_type = self.expire_type}
|
|
UIToolTipMgr:getInstance():AppendGoodsTips(self.goods_basic.type_id, x, y,nil,nil,parm_list,nil,self.open_show_get_way)
|
|
end
|
|
end
|
|
end
|
|
|
|
--show 当item被设为隐藏的时候,可通过show标识来设置是否显示默认资源
|
|
function AwardItem:SetVisible(b, show, force_hide)
|
|
BaseItem.SetVisible(self,b,force_hide)
|
|
self.force_hide = force_hide
|
|
self.visible_state = b
|
|
local show_default = show == nil and false or show
|
|
-- if self.is_loaded then
|
|
-- if b == false and show_default then
|
|
-- lua_resM:setImageSprite(self,self.iconImage,"common_asset","com_ui_17")
|
|
-- end
|
|
-- end
|
|
if self.is_loaded then
|
|
if b == false and show_default then
|
|
lua_resM:setImageSprite(self,self.iconImage,"common_asset","com_ui_17")
|
|
end
|
|
self.visible_cache = nil
|
|
self.show_default_cache = nil
|
|
if not b then
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.star1)--隐藏了就清一遍星星动画
|
|
end
|
|
--回收的时候重置品质特效
|
|
if b == false then
|
|
self:ResetItemEffect()
|
|
end
|
|
else
|
|
self.visible_cache = b
|
|
self.show_default_cache = show
|
|
end
|
|
end
|
|
|
|
function AwardItem:SetLoadCall( loadCall )
|
|
self.loadCall = loadCall
|
|
if self.is_loaded then
|
|
if self.loadCall then
|
|
self.loadCall()
|
|
end
|
|
end
|
|
end
|
|
|
|
--[[Description:新加一个setdata函数,为了增加type_id_main参数,用于方便货币类型的显示
|
|
type_id_main参数可以不传,此时等同SetData
|
|
]]
|
|
function AwardItem:SetDataWithMapId(type_id, goods_num, type_id_main , ...)
|
|
type_id = type_id or 0
|
|
goods_num = goods_num or 0
|
|
type_id_main = type_id_main or 0
|
|
-------------------------
|
|
type_id = GoodsModel:getInstance():GetMappingTypeId(type_id_main, type_id)
|
|
self:SetData(type_id, goods_num , ...)
|
|
end
|
|
|
|
-- 传入道具的真实数据goods_vo
|
|
function AwardItem:SetGoodsVo(goods_vo)
|
|
self.goods_vo = goods_vo
|
|
end
|
|
|
|
function AwardItem:GetTypeId( )
|
|
return self.type_id
|
|
end
|
|
|
|
--is_lock 是否绑定,默认false show_decimal 数量后是否显示小数位,默认显示
|
|
--show_type 是否是随机属性展示
|
|
--hide_color_effect 是否屏蔽高级颜色特效,默认false
|
|
--spe_color_effect 显示特殊的颜色特效
|
|
--注意:货币类型无法直接显示图标,需要GoodsModel的GetMappingTypeId函数转化,可以使用上方SetDataWithMapId函数一并处理
|
|
function AwardItem:SetData(type_id, goods_num ,color, stren_data, is_lock, show_decimal, show_type, mask_id, layer_name, hide_color_effect, spe_color_effect, have_career)
|
|
-------------------------
|
|
--2020.04.07,强制校正stren_data数据格式
|
|
if stren_data and type(stren_data) ~= "table" then
|
|
stren_data = nil
|
|
end
|
|
-------------------------
|
|
-- print('Cat:AwardItem.lua[367] self.type_id', self.type_id)
|
|
self.mask_id = mask_id
|
|
self.layer_name = layer_name or self.layer_name
|
|
self.spe_color_effect = spe_color_effect
|
|
self.show_type = show_type or EquipShowTips.EQUIP_RECOMMAND_TARGET
|
|
self.type_id = tonumber(type_id) or self.type_id
|
|
self.goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.type_id)
|
|
-- print("=============>>> YiRan:AwardItem [start:374] self.goods_basic ------------------------------------------")
|
|
-- PrintTable(self.goods_basic)
|
|
-- print("=============>>> YiRan:AwardItem [end] ------------------------------------------")
|
|
self:ChangeEquipState(nil)
|
|
if self.goods_basic == nil then return print("物品db里面没有物品数据:",self.type_id) end
|
|
self.goods_num = goods_num or self.goods_num or 1
|
|
self.color = color or self.goods_basic and self.goods_basic.color or 1
|
|
self.stren_data = stren_data or self.stren_data
|
|
self.is_lock = is_lock or self.is_lock or 0
|
|
self.hide_color_effect = hide_color_effect or false--or self.hide_color_effect
|
|
self.have_career = have_career
|
|
-- --没有传mask_id而且要显示特效的情况才去获取mask_id 不需要了 以后改成帧动画 2019.11.13
|
|
-- if not self.mask_id and self:IsShowEffect() and not self.hide_color_effect then
|
|
-- local p_wnd = self.parent
|
|
-- repeat
|
|
-- p_wnd = p_wnd.parent
|
|
-- if p_wnd and p_wnd.parent then
|
|
-- local rect = p_wnd.parent:GetComponent(typeof(UnityEngine.UI.ScrollRect))
|
|
-- if rect then
|
|
-- if p_wnd:GetComponent("EffectMask") then
|
|
-- self.mask_id = 1
|
|
-- else
|
|
-- local image = p_wnd:GetComponent("Image")
|
|
-- if image then
|
|
-- self.mask_id = self:RegisterMask(image)
|
|
-- print("AwardItem 注册了Mask")
|
|
-- end
|
|
-- end
|
|
-- end
|
|
-- end
|
|
-- until not p_wnd or self.mask_id
|
|
-- end
|
|
|
|
-- local target_config
|
|
-- if self.goods_basic.type == GoodsModel.TYPE.EQUIP then
|
|
-- target_config = Config.Equipattr[self.type_id]
|
|
-- elseif self.goods_basic.type == 39 then
|
|
-- target_config = Config.Eudemonsequipattr[self.type_id]
|
|
-- -- elseif self.goods_basic.type == 13 then
|
|
-- -- target_config = Config.Holysealgoods[self.type_id]
|
|
-- end
|
|
-- if target_config then
|
|
-- local dynamic = {}
|
|
-- dynamic.type_id = self.type_id
|
|
-- dynamic.rating = target_config.base_rating
|
|
-- dynamic.equip_extra_attr = {}
|
|
-- dynamic.equip_type = self.goods_basic.equip_type
|
|
-- local target_pro = ErlangParser:GetInstance():Parse(target_config.recommend_attr)
|
|
-- for i, v in ipairs(target_pro) do
|
|
-- local attr = {}
|
|
-- attr.color = tonumber(v[2][1])
|
|
-- attr.attr_id = tonumber(v[2][2])
|
|
-- if #v[2] == 5 then
|
|
-- attr.type_id = 1
|
|
-- attr.plus_interval = tonumber(v[2][4])
|
|
-- attr.plus_unit = tonumber(v[2][5])
|
|
-- else
|
|
-- attr.type_id = 2
|
|
-- attr.attr_val = tonumber(v[2][3])
|
|
-- end
|
|
-- table.insert(dynamic.equip_extra_attr, attr)
|
|
-- end
|
|
-- self.dynamic = dynamic
|
|
-- else
|
|
-- if self.goods_basic.type == GoodsModel.TYPE.EQUIP or self.goods_basic.type == 39 or self.goods_basic.type == 13 then
|
|
-- print("==========AwardItem:SetData=>Can't find "..type_id .." in Config, type is "..self.goods_basic.type)
|
|
-- end
|
|
-- end
|
|
|
|
if self.is_loaded then
|
|
if self.resetTransform then
|
|
local rect = self.gameObject:GetComponent("RectTransform")
|
|
rect.pivot = Vector2(0,1)
|
|
rect.anchorMax =Vector2(0,1)
|
|
rect.anchorMin =Vector2(0,1)
|
|
rect.anchoredPosition = Vector2.zero
|
|
rect.localRotation = Quaternion.Euler(0,0,0)
|
|
self.resetTransform = false
|
|
end
|
|
self.need_refreshData = false
|
|
self:SetGray(self.show_gray, self.mask_limit_icon_gray)
|
|
local goods_icon = self.goods_basic.goods_icon
|
|
type_id = tonumber(type_id)
|
|
if Config.ConfigGoodsByCareer[type_id] then
|
|
goods_icon = Config.ConfigGoodsByCareer[type_id][RoleManager.Instance.mainRoleInfo.career]
|
|
end
|
|
self.numText_tmp.text = WordManager:ConvertNum1(self.goods_num, show_decimal)
|
|
self:ChangeCountVisible(self.show_count, self.goods_num)
|
|
|
|
--锁已经去掉了HWR2020.4.22
|
|
if self.is_lock and self.is_lock == 1 then
|
|
self.lock:SetActive(false)
|
|
else
|
|
self.lock:SetActive(false)
|
|
end
|
|
|
|
self.stren.text = ""
|
|
self.stren_obj:SetActive(false)
|
|
self.equipSeriesText_tmp.text = ""
|
|
self:SetStar(0)
|
|
self.warSoulTypeImg_img.gameObject:SetActive(false)
|
|
if self.goods_basic.type == GoodsModel.TYPE.EQUIP then --装备
|
|
local equip_cfg = EquipModel:getInstance():GetEquipmentCfg(self.type_id)
|
|
if equip_cfg then
|
|
local star = equip_cfg.color >= 3 and 1 or 0
|
|
local star_color = self.stren_data and self.stren_data.star_color or 1
|
|
if equip_cfg.equip_type >= EquipModel.EquipType.Necklace then--首饰展示预览升星属性
|
|
star = #equip_cfg.great_attr_list
|
|
for k,v in pairs(equip_cfg.great_attr_list) do
|
|
if v[3] then
|
|
star_color = star_color < v[3] and v[3] or star_color
|
|
end
|
|
end
|
|
end
|
|
self:SetEquipEmpowerColor() -- 设置赋能框
|
|
if self.stren_data and equip_cfg.series ~= 99 then--屏蔽守护
|
|
if self.stren_data.evolution_level and self.stren_data.evolution_level >= 3 then
|
|
-- self.stepNum.text = "升星"..(self.stren_data.evolution_level-2)
|
|
end
|
|
if self.stren_data.strengthen_level and not self.stren_data.show_gems and not self.stren_data.show_stars then
|
|
if self.stren_data.strengthen_level > 0 then
|
|
self.stren_obj:SetActive(true)
|
|
self.stren.text = "+"..self.stren_data.strengthen_level
|
|
-- elseif self.stren_data.strengthen_level == 0 and self.stren_data.equip_key == "EquipView" then--在装备界面要显示强化0级
|
|
-- self.stren.text = ""
|
|
elseif self.stren_data.strengthen_level == 0 and self.stren_data.equip_key == "BagView" then --背包界面不需要显示0级
|
|
self.stren.text = ""
|
|
else
|
|
self.stren.text = ""
|
|
end
|
|
elseif self.stren_data.equip_key == "EquipView" then--在装备界面要显示强化0级
|
|
self.stren.text = ""
|
|
end
|
|
star = self.stren_data.star <= star and star or self.stren_data.star
|
|
if not self.stren_data.show_lv and not self.stren_data.show_gems then
|
|
self:SetStar(star,star_color)
|
|
end
|
|
if self.stren_data.star_action_index ~= nil then
|
|
self:SetStarAction(self.stren_data.star_action_index)
|
|
end
|
|
else
|
|
self:SetStar(star,star_color)
|
|
end
|
|
|
|
if self.show_equip_series then
|
|
-- if equip_cfg.series ~= 99 then
|
|
-- self.lb_dai_txt.text = ChineseNumber(equip_cfg.series) .. "代装备"
|
|
-- self.di_dai_obj:SetActive(true)
|
|
-- end
|
|
end
|
|
--装备代数显示
|
|
if equip_cfg.series ~= 99 and not (self.stren_data and self.stren_data.is_find) and not (self.stren_data and self.stren_data.show_lv)
|
|
and not (self.stren_data and self.stren_data.show_gems) and not (self.stren_data and self.stren_data.show_stars) then
|
|
self.equipSeriesText_tmp.text = string.format("%d%s",equip_cfg.series,"代")
|
|
end
|
|
|
|
--职业不符合
|
|
local career = RoleManager.Instance.mainRoleInfo.career
|
|
local have_career = have_career or false
|
|
if not have_career then
|
|
for i,v in ipairs(equip_cfg.career) do
|
|
if v == career then
|
|
have_career = true
|
|
break
|
|
end
|
|
end
|
|
end
|
|
|
|
if not have_career then
|
|
self:ChangeEquipState(0)
|
|
end
|
|
end
|
|
|
|
elseif self.goods_basic.type == 39 then --幻兽
|
|
local star = Config.Eudemonsequipattr[self.type_id] and Config.Eudemonsequipattr[self.type_id].star or 0
|
|
self:SetStar(star)
|
|
--elseif self.goods_basic.type == 16 then --坐骑装备类
|
|
-- local star = Config.Mountequipattr[self.goods_basic.type_id] and Config.Mountequipattr[self.goods_basic.type_id].star or 0
|
|
-- self:SetStar(star)
|
|
elseif self.goods_basic.type == GoodsModel.TYPE.WarSoul then --战魂
|
|
self.stren_obj:SetActive(true)
|
|
if self.stren_data and self.stren_data.goods_vo and self.stren_data.goods_vo.warSoul_lv
|
|
and self.stren_data.goods_vo.warSoul_lv > 0 then
|
|
self.stren.text = "+"..self.stren_data.goods_vo.warSoul_lv
|
|
else
|
|
self.stren.text = ""
|
|
end
|
|
local war_soul_cfg = WarSoulModel:getInstance():GetWarSoulCfg(self.type_id)
|
|
if war_soul_cfg then
|
|
self.warSoulTypeImg_img.gameObject:SetActive(true)
|
|
self:SetStar(war_soul_cfg.star)
|
|
lua_resM:setImageSprite(self, self.warSoulTypeImg_img, "common_asset", "warSoul_goods_type"..war_soul_cfg.kind)
|
|
end
|
|
elseif self.goods_basic.type == GoodsModel.TYPE.PSIONIC
|
|
and self.goods_basic.subtype >= 4
|
|
and self.goods_basic.subtype <= 7 then -- 圣物装备
|
|
local star = Config.Nucleonequip[self.type_id].star
|
|
self:SetStar(star)
|
|
else
|
|
self:SetStar(0)
|
|
end
|
|
lua_resM:setOutsideImageSprite(self.res_use_ref,self.iconImage,GameResPath.GetGoodsIcon(goods_icon),true)
|
|
lua_resM:setImageSprite(self,self.bg,"common_asset","tyui_pz_"..self.color)
|
|
self:SetColorEffect(1)
|
|
self:SetItemBgVisible(self.bg_visible)
|
|
self:SetNumTextSize()
|
|
self:IsGetGoods(self.get_goods)
|
|
if self.item_alpha ~= nil then
|
|
self:SetAlpha(self.item_alpha)
|
|
self.item_alpha = nil
|
|
end
|
|
if self.visible_cache ~= nil then
|
|
self:SetVisible(self.visible_cache, self.show_default_cache, self.force_hide)
|
|
self.visible_cache = nil
|
|
self.show_default_cache = nil
|
|
end
|
|
|
|
if self.equip_state_cache ~= nil then
|
|
self:ChangeEquipState(self.equip_state_cache)
|
|
end
|
|
self:SetLimitState()
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
|
|
end
|
|
--设置背景和图标透明度
|
|
function AwardItem:SetAlpha(num)
|
|
if self.is_loaded then
|
|
self.iconImage.alpha = num
|
|
self.bg.alpha = num
|
|
self.item_alpha = nil
|
|
else
|
|
self.item_alpha = num
|
|
end
|
|
end
|
|
--设置赋能等级框
|
|
function AwardItem:SetEquipEmpowerColor( color_power_lv )
|
|
if not self.is_loaded then return end
|
|
local equip_cfg = EquipModel:getInstance():GetEquipmentCfg(self.type_id)
|
|
if color_power_lv and color_power_lv > 0 then
|
|
if self.goods_basic.color >= 5 and equip_cfg and equip_cfg.equip_type ~= EquipModel.EquipType.Guard then--如果是道具红装
|
|
self.color = 4 + color_power_lv
|
|
else
|
|
self.color = self.goods_basic.color + color_power_lv
|
|
end
|
|
lua_resM:setImageSprite(self,self.bg,"common_asset","tyui_pz_"..self.color)
|
|
self:SetColorEffect(1)
|
|
return
|
|
end
|
|
|
|
if self.stren_data and self.stren_data.goods_vo then
|
|
local em_power_lv = 0
|
|
for i,v in pairs(self.stren_data.goods_vo.other_data) do
|
|
if v.type == GoodsModel.GoodsInfoType.EquipEmpower then
|
|
em_power_lv = tonumber(v.info)
|
|
break
|
|
end
|
|
end
|
|
if em_power_lv == 0 and EquipModel:getInstance():IsWearEquip(self.stren_data.goods_vo.goods_id) then--如果是已穿戴
|
|
if equip_cfg and equip_cfg.series ~= 99 then
|
|
local server_info = EquipModel:getInstance():GetRedEquipInfo(equip_cfg.series,equip_cfg.equip_type)
|
|
em_power_lv = server_info and server_info.lv or 0
|
|
if self.stren_data and self.stren_data.goods_vo and self.stren_data.goods_vo.empower_lv then
|
|
em_power_lv = self.stren_data.goods_vo.empower_lv
|
|
end
|
|
end
|
|
end
|
|
if em_power_lv > 0 then
|
|
if self.goods_basic.color >= 5 and equip_cfg and equip_cfg.equip_type ~= EquipModel.EquipType.Guard then--如果是道具红装
|
|
self.color = 4 + em_power_lv
|
|
else
|
|
self.color = self.goods_basic.color + em_power_lv
|
|
end
|
|
end
|
|
end
|
|
self.color_power_lv = color_power_lv
|
|
end
|
|
-- --设置双属性宝石icon显示
|
|
-- function AwardItem:SetDataDoubleStone(goods_id)
|
|
-- local goodsVo = GoodsModel:getInstance():GetBagGoodsInfoById(goods_id)
|
|
-- if goodsVo == nil then return end
|
|
-- if goodsVo.type == 14 and (goodsVo.subtype == 9 or goodsVo.subtype == 10) then
|
|
-- self:SetDoubleStoneIcon(self.type_id,goodsVo.stage,goodsVo.dstone_lv)
|
|
-- end
|
|
-- end
|
|
-- --设置双属性宝石icon
|
|
-- function AwardItem:SetDoubleStoneIcon(type_id,stage,dstone_lv)
|
|
-- if type_id and dstone_lv then
|
|
-- -- self.step.gameObject:SetActive(true)
|
|
-- -- lua_resM:setImageSprite(self,self.step,"tex16bit_asset","icon_step_"..stage, true)
|
|
-- self.stepNum.text = stage.."阶"
|
|
-- local cfg = Config.Equipdstoneicon[type_id.."@"..dstone_lv]
|
|
-- if cfg then
|
|
-- local goods_icon = cfg.icon_id
|
|
-- lua_resM:setOutsideImageSprite(self.res_use_ref,self.iconImage,GameResPath.GetGoodsIcon(goods_icon))
|
|
-- end
|
|
-- end
|
|
-- end
|
|
--直接在外部设置展示属性
|
|
function AwardItem:SetShowDynamic(dynamic)
|
|
self.dynamic = self.dynamic or {}
|
|
for i, v in pairs(dynamic) do
|
|
self.dynamic[i] = v
|
|
end
|
|
end
|
|
|
|
function AwardItem:SetStar(num,star_color)
|
|
star_color = star_color or 1
|
|
for i = 1,3 do
|
|
if self["star"..i] then
|
|
self["star"..i]:SetActive(false)
|
|
end
|
|
lua_resM:setImageSprite(self, self["star"..i.."_img"], "common_asset", "evo_x_"..star_color)
|
|
end
|
|
self.starBg_obj:SetActive(num > 3)
|
|
if num <= 3 then
|
|
self.starNum_txt.text = ""
|
|
for i = 1,num do
|
|
self["star"..i]:SetActive(true)
|
|
end
|
|
else
|
|
self.starNum_txt.text = num
|
|
self["star2"]:SetActive(true)
|
|
end
|
|
for i=1,3 do
|
|
if self["star"..i].activeSelf and star_color >= 2 then
|
|
self:AddStarEffect(self["star"..i].transform,"ui_star", 0.6)
|
|
else
|
|
self:ClearUIEffect(self["star"..i].transform)
|
|
end
|
|
end
|
|
end
|
|
|
|
function AwardItem:SetStarAction( star_index )
|
|
star_index = star_index > 3 and 2 or star_index
|
|
local star_img = self["star"..star_index.."_img"]
|
|
if not star_img then return end
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.star1)
|
|
for i=1,3 do
|
|
self["star"..i.."_img"].alpha = 1
|
|
end
|
|
--第一步动画(左边节点放大显示并延迟然后显示名字)
|
|
local function star_alpha_func( percent )
|
|
star_img.alpha = percent
|
|
end
|
|
local hide_action = cc.CustomUpdate.New(1,star_alpha_func)
|
|
local function end_alpha_func( percent )
|
|
star_img.alpha = 1 - percent
|
|
end
|
|
local show_action = cc.CustomUpdate.New(1,end_alpha_func)
|
|
local action = cc.Sequence.New(hide_action,show_action)
|
|
cc.ActionManager:getInstance():addAction(cc.RepeatForever.New(action), self.star1)
|
|
end
|
|
|
|
function AwardItem:SetNumText(num)
|
|
local num_str = num
|
|
if tonumber(num) then
|
|
num_str = WordManager:ConvertNum(num)
|
|
end
|
|
self.numText_tmp.text = num_str
|
|
self:SetNumTextSize()
|
|
self:ChangeCountVisible(true,999)
|
|
end
|
|
|
|
function AwardItem:SetNumText2(isLastOne,need_num,have_num)
|
|
if isLastOne == true then
|
|
self.numText_tmp.text = need_num
|
|
else
|
|
if have_num >= need_num then
|
|
self.numText_tmp.text = string.format("<color=%s>%s/%s</color>",ColorUtil.WHITE,have_num,need_num)
|
|
else
|
|
self.numText_tmp.text = string.format("<color=%s>%s/%s</color>",ColorUtil.RED,have_num,need_num)
|
|
end
|
|
end
|
|
self:SetNumTextSize()
|
|
self.numText.gameObject:SetActive(true)
|
|
end
|
|
|
|
--外部自定义数量字符串
|
|
function AwardItem:SetNumStr(str)
|
|
local num_str = str and str or ""
|
|
self.custom_num_str = num_str
|
|
self.numText_tmp.text = num_str
|
|
self:SetNumTextSize()
|
|
self:ChangeCountVisible(true, 999)
|
|
end
|
|
|
|
--数量是否显示
|
|
function AwardItem:ChangeCountVisible(bool, goods_num)
|
|
self.show_count = bool
|
|
goods_num = goods_num or self.goods_num or 0
|
|
local force_max_show_num = self.force_max_show_num or 1
|
|
if self.is_loaded then
|
|
if self.force_show_num then
|
|
self.numText.gameObject:SetActive(true)
|
|
else
|
|
if not self.show_count or tonumber(goods_num) <= force_max_show_num then
|
|
-- self.numBg:SetActive(false)
|
|
self.numText.gameObject:SetActive(false)
|
|
else
|
|
-- self.numBg:SetActive(true)
|
|
self.numText.gameObject:SetActive(true)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function AwardItem:SetColorEffect(size)
|
|
if self.hide_effect then return end
|
|
local scale
|
|
if self.width and self.height then --已经设置缩放
|
|
scale = self.width / self.base_sx
|
|
end
|
|
scale = size and size or scale
|
|
|
|
if not self.hide_color_effect then
|
|
-- if self.spe_color_effect then
|
|
-- if self.spe_color_effect == 3 then
|
|
-- --self:SetItemEffect("ui_objecticon04", scale)
|
|
-- elseif self.spe_color_effect == 4 then
|
|
-- --self:SetItemEffect("ui_objecticon05", scale)
|
|
-- end
|
|
if self.color == 3 and self.is_act then--是否是活动道具 如果是 紫色的也要显示特效
|
|
self:SetItemEffect("ui_pinzhi03", scale)
|
|
elseif self.color == 4 then
|
|
self:SetItemEffect("ui_pinzhi04", scale)
|
|
elseif self.color == 5 then
|
|
self:SetItemEffect("ui_pinzhi05", scale)
|
|
elseif self.color == 6 then
|
|
self:SetItemEffect("ui_pinzhi06", scale)
|
|
else
|
|
self:ResetItemEffect()
|
|
end
|
|
else
|
|
self:ResetItemEffect()
|
|
end
|
|
end
|
|
|
|
--设置是否是活动状态如果是 紫色 的也要显示特效
|
|
function AwardItem:SetIsAct( is_act )
|
|
self.is_act = is_act
|
|
end
|
|
|
|
function AwardItem:IsShowEffect()
|
|
return self.color == 3 or self.color == 4 or self.color == 5 or self.color == 6 or self.spe_color_effect
|
|
end
|
|
|
|
function AwardItem:SetItemEffect(effect, scale)
|
|
if effect and self.effect then
|
|
--如果当前已经有特效,先检查是否是目标特效
|
|
if not IsNull(self.award_effect_gameobject) and self.last_award_effect_name and self.last_award_effect_name == effect then
|
|
if type(scale) == "number" then
|
|
if scale ~= -1 then
|
|
self.award_effect_transform.localScale = Vector3.one * scale * 100
|
|
end
|
|
elseif type(scale) == "table" then
|
|
self.award_effect_transform.localScale = Vector3(scale.x, scale.y, scale.z) * 100
|
|
else
|
|
self.award_effect_transform.localScale = Vector3(72,72,72)
|
|
end
|
|
self.award_effect_gameobject:SetActive(true)
|
|
return
|
|
elseif not IsNull(self.award_effect_gameobject) and self.last_award_effect_name and self.last_award_effect_name ~= effect then
|
|
self:ResetItemEffect()
|
|
end
|
|
|
|
local function load_call_back(objs, is_gameObject)
|
|
if self.transform then --没有删除根变换
|
|
if self._use_delete_method then
|
|
if is_gameObject then destroy(objs[0]) end
|
|
return
|
|
end
|
|
|
|
if IsNull(self.effect) then
|
|
if is_gameObject then destroy(objs[0]) end
|
|
return
|
|
end
|
|
|
|
--如果没特效,则返回
|
|
if not objs or not objs[0] then
|
|
return
|
|
end
|
|
|
|
local go = is_gameObject and objs[0] or newObject(objs[0])
|
|
if string.find(go.name, self.last_award_effect_name, 1, true) then
|
|
--最后加载的模型是最新的
|
|
else
|
|
destroy(go) --最后加载的模型不是最新的 就删掉该模型
|
|
return
|
|
end
|
|
|
|
local transform = go.transform
|
|
transform:SetParent(self.effect)
|
|
transform.localPosition = Vector3.zero
|
|
SetLocalRotation(transform)
|
|
|
|
if type(scale) == "number" then
|
|
if scale ~= -1 then
|
|
transform.localScale = Vector3.one * scale * 100
|
|
end
|
|
elseif type(scale) == "table" then
|
|
transform.localScale = Vector3(scale.x, scale.y, scale.z) * 100
|
|
else
|
|
transform.localScale = Vector3(72,72,72)
|
|
end
|
|
self.award_effect_gameobject = go
|
|
self.award_effect_transform = transform
|
|
end
|
|
end
|
|
if self.last_award_effect_name and self.last_award_effect_name == effect then
|
|
return
|
|
end
|
|
self.last_award_effect_name = effect
|
|
lua_resM:loadPrefab(self, effect, effect, load_call_back, false, ASSETS_LEVEL.HIGHT)
|
|
end
|
|
end
|
|
|
|
function AwardItem:ResetItemEffect( )
|
|
if not IsNull(self.award_effect_gameobject) and self.last_award_effect_name then
|
|
lua_resM:AddObjToPool(self, self.last_award_effect_name, self.last_award_effect_name, self.award_effect_gameobject)
|
|
-- destroy(self.award_effect_gameobject)
|
|
self.award_effect_gameobject = nil
|
|
self.last_award_effect_name = nil
|
|
end
|
|
|
|
end
|
|
|
|
function AwardItem:AddStarEffect( transform,effect,scale )
|
|
if effect and transform then
|
|
self:AddUIEffect(effect, transform, self.layer_name, Vector3(2,1,0), scale or 1, true, nil, self.mask_id,nil,nil,0.8)
|
|
end
|
|
end
|
|
|
|
function AwardItem:ClearStarEffect( )
|
|
if not IsNull(self.transform) then
|
|
for i=1,3 do
|
|
self:ClearUIEffect(self["star"..i].transform)
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
function AwardItem:ClearEffectForce( )
|
|
self:ClearUIEffect(self.effect)
|
|
self:ResetItemEffect()
|
|
self:ClearStarEffect()
|
|
self.hide_effect = true
|
|
end
|
|
|
|
--设置背景与图标之间的特效 参数1:ab包
|
|
function AwardItem:SetBgEffect( bg_effect ,scale,mask_id )
|
|
if bg_effect and self.bgeffect then
|
|
self:AddUIEffect(bg_effect, self.bgeffect, self.layer_name, nil, scale or 1, true, nil, mask_id)
|
|
end
|
|
end
|
|
|
|
function AwardItem:SetItemSize(width, height)
|
|
self.width = width
|
|
self.height = height
|
|
if not self.is_loaded then
|
|
self.need_resize = true
|
|
return
|
|
else
|
|
if self.is_fix_size then
|
|
if width and width <= 47 then--60%
|
|
width = 47
|
|
elseif width and width <= 62 then--80%
|
|
width = 62
|
|
elseif width and width > 62 then--100%
|
|
width = 78
|
|
end
|
|
end
|
|
self.width = width or 78
|
|
self.height = width or 78
|
|
self.need_resize = false
|
|
-- self.width = width or self.base_sx
|
|
-- self.height = height or self.base_sx
|
|
-- local bord = self.width * 1/10
|
|
local x_ratio = self.width / self.base_sx --0.88 -- 90/104
|
|
local y_ratio = self.height / self.base_sy
|
|
--父节点锚点是左上角的情况
|
|
self.transform.sizeDelta = Vector2(self.base_sx, self.base_sy)
|
|
self.redDot.sizeDelta = Vector2(20 / x_ratio, 20 / y_ratio)
|
|
self.transform.pivot = Vector2(0, 1)
|
|
if self.parent then
|
|
--直接整体缩放
|
|
local grid = self.parent:GetComponent("GridLayoutGroup")
|
|
if grid and grid.cellSize then
|
|
self.transform.pivot = Vector2(0.5, 0.5)
|
|
end
|
|
end
|
|
self.transform.localScale = Vector2(x_ratio, y_ratio)
|
|
-- self:SetColorEffect()
|
|
end
|
|
end
|
|
|
|
function AwardItem:SetIsFixSize( is_fix_size )
|
|
self.is_fix_size = is_fix_size
|
|
end
|
|
|
|
function AwardItem:SetSelect(bool,select_type)
|
|
self.is_select = bool
|
|
if self.is_loaded then
|
|
if select_type == 2 then--第二种是打勾的形状 很多地方要用到 特地加上
|
|
self.selectImage2:SetActive(bool)
|
|
else
|
|
self.selectImage:SetActive(bool)
|
|
end
|
|
end
|
|
end
|
|
|
|
--设置数量的位置,字体,大小
|
|
function AwardItem:SetNumTextSize(refresh_pos)
|
|
-- local bord = self.width * 1/10
|
|
-- local x = self.width / 84 * self.numBg_sizeDelta.x
|
|
-- local y = self.height / 84 * self.numBg_sizeDelta.y
|
|
-- x = x > self.numText_tmp.preferredWidth and x or self.numText_tmp.preferredWidth + 8
|
|
-- self.numBg_trams.sizeDelta = Vector2(x, y)
|
|
-- if refresh_pos then
|
|
-- self.numBg_trams.localPosition = Vector3(self.numBg_trams.localPosition.x, self.numBg_trams.localPosition.y + bord + 2 , 0)
|
|
-- end
|
|
|
|
-- local h = self.numText_sizeDelta.y
|
|
-- if refresh_pos then
|
|
-- self.numText_tmp.fontSize = math.floor(16 * self.width / 84)
|
|
-- -- h = 16 / self.numText.sizeDelta.y * (self.numText_tmp.fontSize + 2)
|
|
-- self.numText.localPosition = Vector3(self.numBg_trams.localPosition.x, self.numBg_trams.localPosition.y - bord / 2 , 0)
|
|
-- end
|
|
-- self.numText.sizeDelta = Vector2(x, h)
|
|
end
|
|
|
|
function AwardItem:SetItemBgVisible(b)
|
|
|
|
if b then
|
|
self.bg_trams.gameObject:SetActive(true)
|
|
else
|
|
self.bg_trams.gameObject:SetActive(false)
|
|
end
|
|
self.bg_visible=b
|
|
end
|
|
|
|
function AwardItem:SetItemVisible(b)
|
|
if b then
|
|
self.icon.gameObject:SetActive(true)
|
|
else
|
|
self.icon.gameObject:SetActive(false)
|
|
end
|
|
end
|
|
|
|
function AwardItem:SetWareTip(bool )
|
|
-- self.ware_tip_state = bool
|
|
-- if self.is_loaded then
|
|
-- self.ware_tip:SetActive(bool)
|
|
-- end
|
|
end
|
|
|
|
--置灰
|
|
function AwardItem:SetGray(bool, mask_limit_icon_gray)
|
|
if self.is_loaded then
|
|
self.show_gray = bool
|
|
self.mask_limit_icon_gray = mask_limit_icon_gray
|
|
self.mask_icon:SetActive(bool)
|
|
if not mask_limit_icon_gray then
|
|
SetImageGray(self.numLimitIcon_img,bool)
|
|
end
|
|
end
|
|
end
|
|
|
|
--整个awarditem置灰 包括物品图标icon和背景bg --2020/3/13 策划要求邮件奖励全置灰
|
|
function AwardItem:SetIconGray(bool)
|
|
if self.is_loaded then
|
|
self.show_gray = bool
|
|
self.mask_icon:SetActive(false)--这个遮罩不要,内容有置灰就行了
|
|
self.iconImage.gray = bool
|
|
SetImageGray(self.warSoulTypeImg_img,bool)
|
|
self.bg.gray = bool
|
|
end
|
|
end
|
|
|
|
--这个方法用于外部需要另外改变图标的需求
|
|
function AwardItem:SetGoodsIcon(goods_icon, setNativeSize)
|
|
if self.iconImage then
|
|
lua_resM:setOutsideImageSprite(self.res_use_ref, self.iconImage, GameResPath.GetGoodsIcon(goods_icon), setNativeSize)
|
|
end
|
|
end
|
|
|
|
--这个方法用于外部需要另外改变图标的需求[不走物品图标路径]
|
|
function AwardItem:SetGoodsIconFormPath(path, setNativeSize)
|
|
if self.iconImage then
|
|
lua_resM:setOutsideImageSprite(self.res_use_ref, self.iconImage, path, setNativeSize)
|
|
end
|
|
end
|
|
|
|
--设置上锁的图标
|
|
function AwardItem:SetLockIcon()
|
|
self:ClearAllEffect()
|
|
self:ResetItemEffect()
|
|
self.icon.gameObject:SetActive(true)
|
|
lua_resM:setImageSprite(self, self.iconImage, "common_asset","tyui_suo_2")
|
|
end
|
|
|
|
function AwardItem:SetIconEmpty( )
|
|
if self.iconImage then
|
|
self:ClearAllEffect()
|
|
self:ResetItemEffect()
|
|
lua_resM:setImageSprite(self, self.iconImage, "uiComponent_asset","com_empty")
|
|
end
|
|
end
|
|
|
|
--装备的升降禁
|
|
function AwardItem:ChangeEquipState(state)
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
if state then
|
|
self.equip_mark:SetActive(true)
|
|
local src = state == 1 and "tyui_Arrow_1" or state == 2 and "tyui_Arrow_2" or "com_forbid"
|
|
lua_resM:setImageSprite(self,self.equip_mark:GetComponent("Image"),"common_asset",src,true)
|
|
local mark_trans = self.equip_mark.transform
|
|
self.mark_trans = mark_trans
|
|
|
|
--if state == 1 then
|
|
--cc.ActionManager:getInstance():removeAllActionsFromTarget(mark_trans)
|
|
--SetLocalPositionY(mark_trans, -77)
|
|
--local x, y = mark_trans:GetLocalPosXY()
|
|
--local action = cc.FloatFadeIn.New(x, y, 0, 20, 0.7, 0.6, mark_trans)
|
|
--cc.ActionManager:getInstance():addAction(action, mark_trans)
|
|
--else
|
|
--SetLocalPositionY(mark_trans, -63.000042)
|
|
--cc.ActionManager:getInstance():removeAllActionsFromTarget(mark_trans)
|
|
--end
|
|
self.equip_mark:SetActive(state ~= 2) --下降不需要显示,下降的箭头
|
|
else
|
|
self.equip_mark:SetActive(false)
|
|
end
|
|
self.equip_state_cache = nil
|
|
else
|
|
self.need_refreshData = true
|
|
self.equip_state_cache = state
|
|
end
|
|
end
|
|
|
|
--是否只显示背景
|
|
function AwardItem:OnlyShowBg(is_blank, bg_color)
|
|
if is_blank then
|
|
self.bg_trams.gameObject:SetActive(true)
|
|
self.icon.gameObject:SetActive(false)
|
|
--self.numBg:SetActive(false)
|
|
self.numText.gameObject:SetActive(false)
|
|
self.lock:SetActive(false)
|
|
self:SetStar(0)
|
|
self.show_tips = false
|
|
self:SetGray(false)
|
|
self.stren.text = ""
|
|
-- self.step.gameObject:SetActive(false)
|
|
-- self.stepNum.text = ""
|
|
self:ClearUIEffect(self.effect)
|
|
|
|
local color = bg_color or 8
|
|
lua_resM:setImageSprite(self, self.bg,"common_asset","tyui_pz_"..color)
|
|
else
|
|
self.bg_trams.gameObject:SetActive(true)
|
|
self.icon.gameObject:SetActive(true)
|
|
-- self.step.gameObject:SetActive(true)
|
|
self.show_tips = true
|
|
end
|
|
end
|
|
|
|
--设置背景边框
|
|
function AwardItem:SetBgShow(bg_color)
|
|
if self.bg then
|
|
local color = bg_color or 8
|
|
lua_resM:setImageSprite(self, self.bg,"common_asset","tyui_pz_"..color)
|
|
end
|
|
end
|
|
|
|
function AwardItem:SetCircleBgShow(bg_color)
|
|
if self.bg then
|
|
local color = bg_color or 7
|
|
lua_resM:setImageSprite(self, self.bg,"common_asset","tyui_ypz_"..color)
|
|
end
|
|
end
|
|
|
|
--自定义背景
|
|
function AwardItem:SetBgSource(ab_name,real_name)
|
|
if self.bg and ab_name and real_name then
|
|
lua_resM:setImageSprite(self, self.bg,ab_name,real_name)
|
|
end
|
|
end
|
|
|
|
--自定义点击物品回调
|
|
function AwardItem:SetCallBack(callback)
|
|
self.show_tips = true
|
|
self.raycast_target_enable = true
|
|
self.clickBg.raycastTarget = true
|
|
self.callback = callback
|
|
end
|
|
|
|
--点击回调
|
|
function AwardItem:SetWithCallBack(withCallback)
|
|
self.show_tips = true
|
|
self.withCallback = withCallback
|
|
end
|
|
|
|
--是否获取物品途径no_need_show_get(不需要显示获得途径)
|
|
function AwardItem:IsGetGoods(bool,get_str,no_need_show_get,font_size)
|
|
self.get_goods = bool and true or false
|
|
self.no_need_show_get = no_need_show_get or self.no_need_show_get
|
|
self.get_str = get_str or self.get_str
|
|
self.font_size = font_size or 24
|
|
if not self.is_loaded then
|
|
self.need_refreshIsGetIcon = true
|
|
return
|
|
end
|
|
self.need_refreshIsGetIcon = false
|
|
if self.getIcon then
|
|
self.getIcon:SetActive(self.get_goods)
|
|
end
|
|
if self.get_str then
|
|
self.get_num_tmp.text = self.get_str
|
|
end
|
|
-- if self.font_size then
|
|
-- self.get_num_tmp.fontSize = self.font_size
|
|
-- end
|
|
end
|
|
|
|
function AwardItem:__delete()
|
|
self:ResetItemEffect()
|
|
self:ClearStarEffect()
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.transform)
|
|
|
|
if self.close_id_long then
|
|
GlobalTimerQuest:CancelQuest(self.close_id_long)
|
|
self.close_id_long = nil
|
|
end
|
|
|
|
self:ClearUIEffect(self.effect)
|
|
self:clearResRef()
|
|
if self.mask_id then
|
|
self:UnRegisterMask(self.mask_id)
|
|
self.mask_id = nil
|
|
end
|
|
end
|
|
|
|
function AwardItem:SetEmptyGrid( )
|
|
lua_resM:setImageSprite(self,self.bg,"mainUI_asset","main_item_bg")
|
|
end
|
|
|
|
function AwardItem:SetEmptyGrid2( )
|
|
lua_resM:setImageSprite(self,self.bg,"common_asset","tyui_pz_8")
|
|
end
|
|
|
|
function AwardItem:SetTextPos( pos )
|
|
self.numText.transform.anchoredPosition = pos
|
|
end
|
|
|
|
function AwardItem:SetStrenTextPos(x,y)
|
|
self.stren.transform.anchoredPosition = Vector2(x,y)
|
|
end
|
|
|
|
function AwardItem:SetParent(parent)
|
|
if self.is_loaded then
|
|
self.transform:SetParent(parent)
|
|
else
|
|
self.parent = parent
|
|
end
|
|
end
|
|
|
|
|
|
-- function AwardItem:SetGuardTip( bool )
|
|
-- if self.is_loaded then
|
|
-- self.guard_tip:SetActive(bool)
|
|
-- end
|
|
-- end
|
|
|
|
function AwardItem:SetTrueTip( bool )
|
|
-- self.is_select = bool
|
|
-- if self.is_loaded then
|
|
-- self.true_tip:SetActive(bool)
|
|
-- end
|
|
end
|
|
|
|
|
|
--设置数量的位置,字体,大小
|
|
function AwardItem:SetNumTextSize2(value)
|
|
self.numText_tmp.fontSize = value
|
|
end
|
|
|
|
|
|
function AwardItem:SetStatueTips(bool, image_res, res_ab, is_set_nativesize)
|
|
-- self.statue = bool
|
|
-- self.statue_res = image_res
|
|
-- self.res_ab = res_ab
|
|
-- if self.is_loaded then
|
|
-- self.statue_tip:SetActive(bool)
|
|
-- if bool and image_res and image_res ~= "" then
|
|
-- lua_resM:setImageSprite(self, self.statue_tip.transform:GetComponent("Image"), self.res_ab or "common_asset", image_res)
|
|
-- if is_set_nativesize then
|
|
-- self.statue_tip.transform.sizeDelta = co.TableXY(116,72)
|
|
-- else
|
|
-- self.statue_tip.transform.sizeDelta = co.TableXY(81,50)
|
|
-- end
|
|
-- end
|
|
-- else
|
|
-- self.need_refreshStatue = true
|
|
-- end
|
|
end
|
|
|
|
-- function AwardItem:SetLimiticon(bool)
|
|
-- if self.is_loaded then
|
|
-- self.limit_tip:SetActive(bool)
|
|
-- end
|
|
-- end
|
|
|
|
function AwardItem:SetRedDot(bool,x,y)
|
|
if self.is_loaded then
|
|
self.redDot_obj:SetActive(bool)
|
|
SetAnchoredPosition(self.redDot,x or 37,y or 37)
|
|
end
|
|
end
|
|
function AwardItem:clearResRef( )
|
|
lua_resM:clearReference(self.res_use_ref)
|
|
end
|
|
function AwardItem:ResetInfo( )
|
|
self:SetIconEmpty()
|
|
self:clearResRef()
|
|
self:ClearUIEffect(self.effect)
|
|
self:ClearCacheEffect()
|
|
self:SetAlpha(1)
|
|
self:IsNeedShowSeries(false)
|
|
self.hide_effect = false--默认不隐藏特效
|
|
self.bg_visible = true
|
|
self.resetPos = false
|
|
self.color = nil
|
|
self.spe_color_effect = nil
|
|
self.is_lock = nil
|
|
self.is_fix_size = true --是否使用客户端限制的3种规格
|
|
if self.mask_id then
|
|
self:UnRegisterMask(self.mask_id)
|
|
self.mask_id = nil
|
|
end
|
|
self:SetGray(false)
|
|
self:SetIconGray(false)
|
|
self.resetTransform = false
|
|
self.callback = nil
|
|
self.withCallback = nil
|
|
self.loadCall = nil
|
|
self.parent = nil
|
|
self.position = false
|
|
self.anchoredPosition = false
|
|
self.ClickCallFun = nil
|
|
self.type_id = nil
|
|
self.goods_num = nil
|
|
self.stren_data = nil--装备精炼数据 {strengthen_level = 1, step = 1, star = 1}
|
|
self.goods_basic = nil
|
|
self.equip_state_cache = nil
|
|
self.extra_tip_state = nil
|
|
self.get_goods = false --获取途径
|
|
self.random_tip_value = false --随机掉落标识
|
|
self.is_select = false
|
|
self.ware_tip_state = false
|
|
self.must_tip_value = false --必掉提示ICON
|
|
self.no_need_show_get = false--不显示获取途径
|
|
self.open_show_get_way = true
|
|
self.show_count = true
|
|
self:IsGetGoods(false)
|
|
self:SetItemVisible(true)
|
|
self:SetEnableClick(true)
|
|
self:SetGoodsVo(nil)
|
|
self.force_show_num = false--是否强制显示数字
|
|
self.shop_buy_num = 1--快捷购买部数量默认是1
|
|
self.limit_state = BagModel.GoodsLimitState.Normal
|
|
self.stren_prefix = "+"
|
|
self.have_career = false
|
|
self.force_show_limit_tip_view = false
|
|
self.force_max_show_num = nil
|
|
self.color_power_lv = 0
|
|
self.get_str = ""
|
|
self.is_act = false--是否是活动道具 如果是 紫色的也要显示特效
|
|
-------------------------
|
|
if self.is_loaded then
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.star1)
|
|
for i=1,3 do
|
|
self["star"..i.."_img"].alpha = 1
|
|
end
|
|
self.starNum_txt.text = ""
|
|
self.starBg_obj:SetActive(false)
|
|
self:SetVisible(true,nil,true)
|
|
self:SetStar(0)
|
|
self.need_refreshResetInfo = false
|
|
self.numText_tmp.text = ""
|
|
-- self.stepNum.text = ""
|
|
-- self.numText2.text = ""
|
|
self.stren.text = ""
|
|
self.stren_obj:SetActive(false)
|
|
self.get_num_tmp.text = ""
|
|
-- self.lb_dai_txt.text = ""
|
|
self.numText.gameObject:SetActive(true)
|
|
self.bg_trams.gameObject:SetActive(true)
|
|
self.icon.gameObject:SetActive(true)
|
|
-- self.randomn_drop_tip_text.text = "随机"
|
|
-- self.drop_tip:SetActive(false)
|
|
-- self.randomn_drop_tip:SetActive(false)
|
|
self.lock:SetActive(false)
|
|
self.getIcon:SetActive(false)
|
|
-- self.guild_tip:SetActive(false)
|
|
-- self.guard_tip:SetActive(false)
|
|
-- self.ware_tip:SetActive(false)
|
|
self.equip_mark:SetActive(false)
|
|
-- self.expiredIcon:SetActive(false)
|
|
-- self.true_tip:SetActive(false)
|
|
-- self.vip_tip:SetActive(false)
|
|
self.mask_icon:SetActive(false)
|
|
-- self.statue_tip:SetActive(false)
|
|
-- self.limit_tip:SetActive(false)
|
|
self.redDot_obj:SetActive(false)
|
|
self.selectImage:SetActive(false)
|
|
self.selectImage2:SetActive(false)
|
|
-- self.double_tip:SetActive(false)
|
|
-- self.extra_tip:SetActive(false)
|
|
self.xs_imgGo:SetActive(false)
|
|
-- self.di_dai_obj:SetActive(false)
|
|
self.equipSeriesText_tmp.text = ""
|
|
lua_resM:setImageSprite(self,self.bg,"uiComponent_asset","com_empty")
|
|
lua_resM:setImageSprite(self,self.warSoulTypeImg_img,"uiComponent_asset","com_empty")
|
|
lua_resM:setImageSprite(self, self["star5_img"], "common_asset", "tyui_x3")
|
|
-- self.stren.transform.anchoredPosition = Vector2(-10,23.5)
|
|
lua_resM:setImageSprite(self,self.numLimitIcon_img,"uiComponent_asset","com_empty")
|
|
self.numLimitIcon:SetActive(false)
|
|
self.expire_time = false
|
|
self.expire_type = false
|
|
self:ResetLimitState()
|
|
SetLocalScale(self.transform,1,1,1)
|
|
SetAnchoredPosition(self.redDot,37,37)
|
|
-------------------------
|
|
self.ClickCallFun = AwardItem.ClickCallFun
|
|
if self.is_long_click then
|
|
local function empty_call( ) end
|
|
AddDownEvent(self.gameObject, empty_call)
|
|
AddUpEvent(self.gameObject, empty_call)
|
|
self.is_long_click = nil
|
|
end
|
|
else
|
|
self.need_refreshResetInfo = true
|
|
end
|
|
end
|
|
|
|
function AwardItem:ReleaseObj( )
|
|
UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self)
|
|
end
|
|
|
|
-- function AwardItem:SetBottomNumText( str )
|
|
-- self.numText2.text = str
|
|
-- end
|
|
|
|
function AwardItem:SetEnableClick(bool)
|
|
self.show_tips = bool
|
|
if self.is_loaded and self.raycast_target_enable ~= self.show_tips then
|
|
self.raycast_target_enable = self.show_tips
|
|
self.clickBg.raycastTarget = self.show_tips
|
|
end
|
|
end
|
|
|
|
-- state 是外部传入的状态,针对BagModel.GoodsLimitState
|
|
function AwardItem:SetLimitState(state)
|
|
self.limit_state = state
|
|
if self.is_loaded then
|
|
if self.goods_basic then
|
|
if self.goods_basic.expire_type ~= 0 or (self.limit_state ~= BagModel.GoodsLimitState.Normal and self.limit_state)then
|
|
if self.limit_state then
|
|
self:ShowLimitIcon(true, self.limit_state)
|
|
else
|
|
--外部没传入,默认显示限时
|
|
self:ShowLimitIcon(true,1)
|
|
end
|
|
else
|
|
self:ShowLimitIcon(false)
|
|
end
|
|
else
|
|
self:ShowLimitIcon(false)
|
|
end
|
|
else
|
|
self.need_set_limit_state = true
|
|
end
|
|
end
|
|
|
|
function AwardItem:ShowLimitIcon( show,type )
|
|
type = type or 1
|
|
self.show_limit = show
|
|
self.show_limit_type = type
|
|
if not self.is_loaded then
|
|
self.need_reset_limit_icon = true
|
|
return
|
|
end
|
|
self.xs_imgGo:SetActive(show and true or false)
|
|
if type and type == 1 then
|
|
lua_resM:setImageSprite(self,self.limit_img,"uiComponent_asset","ui_com_xs_pointfilter",true)
|
|
elseif type and type == 2 then
|
|
lua_resM:setImageSprite(self,self.limit_img,"uiComponent_asset","ui_com_gq_pointfilter",true)
|
|
end
|
|
end
|
|
|
|
function AwardItem:ResetLimitState()
|
|
self:ShowLimitIcon(false)
|
|
self.limit_state = BagModel.GoodsLimitState.Normal
|
|
end
|
|
|
|
--长按点击函数
|
|
function AwardItem:BindLongPressEvent(callback, duration, isInfinite, short_click_call_back,long_press_end_call)
|
|
if not self.is_loaded then
|
|
self.cache_bind_long_press_info = {callback, duration, isInfinite, short_click_call_back}
|
|
self.is_need_rebind_long_press = true
|
|
return
|
|
end
|
|
self.is_need_rebind_long_press = false
|
|
duration = duration or 0.3
|
|
if short_click_call_back then
|
|
self.ClickCallFun = function() end
|
|
end
|
|
if callback then
|
|
-- self.callback_long = callback
|
|
local function touch_end(target,x,y)
|
|
if self.close_id_long then
|
|
GlobalTimerQuest:CancelQuest(self.close_id_long)
|
|
self.close_id_long = nil
|
|
end
|
|
local curTime = TimeUtil:getServerTimeMs()/1000
|
|
if curTime - self.click_start_time < duration then
|
|
if short_click_call_back then
|
|
short_click_call_back(target,x,y)
|
|
end
|
|
else--长按之后如果需要回调就执行一下
|
|
if long_press_end_call then
|
|
long_press_end_call()
|
|
end
|
|
end
|
|
end
|
|
local function touch_begin(target,x,y)
|
|
self.click_start_time = TimeUtil:getServerTimeMs()/1000
|
|
local function clockFun()
|
|
local is_stop = callback(target,x,y)
|
|
if is_stop then
|
|
if self.close_id_long then
|
|
GlobalTimerQuest:CancelQuest(self.close_id_long)
|
|
self.close_id_long = nil
|
|
end
|
|
end
|
|
end
|
|
if not self.close_id_long then
|
|
local run_time = 1
|
|
if isInfinite then
|
|
run_time = -1
|
|
end
|
|
self.close_id_long = GlobalTimerQuest:AddPeriodQuest(clockFun, duration, run_time)
|
|
end
|
|
-- self.callback_long(target,x,y)
|
|
end
|
|
AddDownEvent(self.gameObject, touch_begin)
|
|
AddUpEvent(self.gameObject, touch_end)
|
|
self.is_long_click = true
|
|
else
|
|
self.is_long_click = nil
|
|
end
|
|
end
|
|
|
|
--设置awarditem左上角或者右上角角标
|
|
--特殊value有些类的资源比较复杂不能只用state创建
|
|
function AwardItem:SetNumLimitVisible( bool, state, value )
|
|
if self.numLimitIcon then
|
|
self.numLimitIcon:SetActive(bool)
|
|
end
|
|
if bool and self.numLimitIcon then
|
|
local ab_name = "common_asset"
|
|
local res_name
|
|
if state and state == 1 then --双倍
|
|
res_name = "con_itemtab_double"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 20, -10)
|
|
SetSizeDelta(self.numLimitIcon.transform, 59, 38)
|
|
elseif state and state == 2 then --概率
|
|
res_name = "con_itemtab_lucky"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 20,-10)
|
|
SetSizeDelta(self.numLimitIcon.transform, 59, 37)
|
|
elseif state and state == 3 then --首通
|
|
res_name = "con_itemtab_first"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 20, -10)
|
|
SetSizeDelta(self.numLimitIcon.transform, 59, 38)
|
|
elseif state and state == 4 then --限量
|
|
res_name = "com_limit_pointfilter"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 20, -4)
|
|
SetSizeDelta(self.numLimitIcon.transform, 46, 25)
|
|
elseif state and state == 5 then --可上架
|
|
res_name = "com_market"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 63, -15)
|
|
SetSizeDelta(self.numLimitIcon.transform, 20, 20)
|
|
elseif state and state == 6 then --限时
|
|
res_name = "com_time_limit"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 63, -6)
|
|
SetSizeDelta(self.numLimitIcon.transform, 35, 18)
|
|
elseif state and state == 7 then --BOSS奖励
|
|
res_name = "con_itemtab_boss"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 53, -6)
|
|
SetSizeDelta(self.numLimitIcon.transform, 116, 28)
|
|
elseif state and state == 8 then --绝版珍稀
|
|
res_name = "con_itemtab_zhenxi"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 89, -8)
|
|
SetSizeDelta(self.numLimitIcon.transform, 102, 64)
|
|
elseif state and state == 9 then --已领取
|
|
res_name = "con_itemtab_getted"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 39,-40)
|
|
SetSizeDelta(self.numLimitIcon.transform, 124*0.7, 67*0.7)
|
|
elseif state and state == 10 then --主战区
|
|
ab_name = "CSGWar_asset"
|
|
res_name = "CSGWar_font15"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 34, -14)
|
|
SetSizeDelta(self.numLimitIcon.transform, 71, 30)
|
|
elseif state and state == 11 then --副战区
|
|
ab_name = "CSGWar_asset"
|
|
res_name = "CSGWar_font16"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 34, -14)
|
|
SetSizeDelta(self.numLimitIcon.transform, 71, 30)
|
|
elseif state and state == 12 then --珍宝阁大奖
|
|
ab_name = "treasureHouse_asset"
|
|
res_name = "treasureHouse_rare2"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 28, -14)
|
|
SetSizeDelta(self.numLimitIcon.transform, 58, 37)
|
|
elseif state and state == 13 then --珍宝阁珍稀
|
|
ab_name = "treasureHouse_asset"
|
|
res_name = "treasureHouse_rare1"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 28, -14)
|
|
SetSizeDelta(self.numLimitIcon.transform, 58, 37)
|
|
elseif state and state == 15 then --额外
|
|
res_name = "con_itemtab_mul"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 20, -10)
|
|
SetSizeDelta(self.numLimitIcon.transform, 59, 38)
|
|
elseif state and state == 16 then --独产
|
|
res_name = "com_special"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 63, -6)
|
|
SetSizeDelta(self.numLimitIcon.transform, 35, 18)
|
|
elseif state and state == 17 then --三星
|
|
res_name = "con_itemtab_threestar"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 20,-10)
|
|
SetSizeDelta(self.numLimitIcon.transform, 59, 37)
|
|
elseif state and state == 18 then --已领取
|
|
res_name = "con_itemtab_getted"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 40, -37.5)
|
|
SetSizeDelta(self.numLimitIcon.transform, 124 * 0.8 , 67 * 0.8)
|
|
elseif state and state == 19 then -- 狂战领域 全部奖励
|
|
ab_name = "rageWar_asset"
|
|
res_name = "rw_server_mail"
|
|
local scale = self.transform.localScale
|
|
SetSizeDelta(self.numLimitIcon.transform, 79 / scale.x , 49 / scale.y)
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 32, -19.5)
|
|
elseif state and state == 20 then--立即领取
|
|
ab_name = "kfActivity_asset"
|
|
res_name = "zeroGift_tip"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 36, -27)
|
|
SetSizeDelta(self.numLimitIcon.transform, 74 , 58)
|
|
elseif state and state == 21 then--已领取(打勾类型)
|
|
res_name = "con_itemtab_getImg2"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 68,-10)
|
|
SetSizeDelta(self.numLimitIcon.transform, 30, 30)
|
|
elseif state and state == 22 then --背包提示可使用
|
|
ab_name = "bag_asset"
|
|
res_name = "bag_tips_use"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 53, -26)
|
|
SetSizeDelta(self.numLimitIcon.transform, 55 , 55)
|
|
elseif state and state == 23 then -- 狂战已领取
|
|
ab_name = "rageWar_asset"
|
|
res_name = "rw_received"
|
|
local scale = self.transform.localScale
|
|
SetSizeDelta(self.numLimitIcon.transform, 65, 63)
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 39, -39)
|
|
elseif state and state == 24 then -- 已穿戴
|
|
res_name = "wear_state_img"
|
|
SetSizeDelta(self.numLimitIcon.transform, 52, 20)
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 56, -73)
|
|
elseif state and state == 25 then -- 可领取
|
|
res_name = "con_itemtab_can_getted"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 20, -10)
|
|
SetSizeDelta(self.numLimitIcon.transform, 81, 37)
|
|
elseif state and state == 27 then -- 源樱之礼 珍稀
|
|
ab_name = "sakuraGift_asset"
|
|
res_name = "sg_tag_rare"
|
|
SetSizeDelta(self.numLimitIcon.transform, 48, 25)
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 25, -13)
|
|
elseif state and state == 28 then -- 源樱之礼 极品
|
|
ab_name = "sakuraGift_asset"
|
|
res_name = "sg_tag_best"
|
|
SetSizeDelta(self.numLimitIcon.transform, 48, 25)
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 25, -13)
|
|
elseif state and state == 29 then -- 大的可上架角标,背包与出售大厅使用
|
|
res_name = "com_market_2"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 53, -26)
|
|
SetSizeDelta(self.numLimitIcon.transform, 55 , 55)
|
|
elseif state and state == 30 then -- 羁绊预告激活奖励角标
|
|
ab_name = "mate_asset"
|
|
res_name = "mate_item_tag"
|
|
SetSizeDelta(self.numLimitIcon.transform, 87, 30)
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 38, -5)
|
|
elseif state and state == 31 then -- 已经领(圆形的)
|
|
res_name = "con_itemtab_getted_circle"
|
|
SetSizeDelta(self.numLimitIcon.transform, 87, 87)
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 39, -39)
|
|
elseif state and state == 32 then --绝版
|
|
res_name = "con_itemtab_no_have"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 20, -2)
|
|
SetSizeDelta(self.numLimitIcon.transform, 67, 42)
|
|
elseif state and state == 33 then --UP提升
|
|
res_name = "con_itemtab_up"
|
|
SetAnchoredPosition(self.numLimitIcon.transform, 33, 0)
|
|
SetSizeDelta(self.numLimitIcon.transform, 90, 31)
|
|
end
|
|
if res_name then
|
|
lua_resM:setImageSprite(self,self.numLimitIcon_img,ab_name,res_name, false)
|
|
end
|
|
end
|
|
end
|
|
|
|
--force_max_show_num:数量小于这个数时不显示数字,使用这个参数需要传前面的bool为false
|
|
function AwardItem:SetNumForceShow( bool ,force_max_show_num)
|
|
self.force_show_num = bool
|
|
self.force_max_show_num = force_max_show_num or nil
|
|
self:ChangeCountVisible(self.show_count,self.goods_num)
|
|
end--是否强制显示数字
|
|
|
|
function AwardItem:SetOpenShowGetWay( bool )
|
|
self.open_show_get_way = bool
|
|
end
|
|
|
|
function AwardItem:SetShopBuyNum( num )
|
|
self.shop_buy_num = num or 1
|
|
end
|
|
|
|
function AwardItem:IsNeedShowSeries( bool )
|
|
self.show_equip_series = bool
|
|
end
|
|
|
|
function AwardItem:GetSize( )
|
|
return self.width, self.height
|
|
end
|
|
|
|
--设置限时时间
|
|
function AwardItem:SetExpireTime( expire_data )
|
|
self.expire_time = expire_data.expire_time
|
|
self.expire_type = expire_data.expire_type
|
|
end
|
|
|
|
--设置打开物品tips时强制展示限时状态
|
|
function AwardItem:SetForceShowLimitTipView(bool)
|
|
self.force_show_limit_tip_view = bool
|
|
end
|
|
|
|
--执行下坠动画
|
|
function AwardItem:PlayFallingVibrationAction( info )
|
|
if self.is_loaded then
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.transform)
|
|
local function end_call_func( ... )--抖动底座
|
|
|
|
end
|
|
|
|
local data = {
|
|
transform = self.transform,--节点
|
|
delay_time = info.delay_time or 1.5,--时间
|
|
init_scale = info.init_scale or 2,--初始大小
|
|
end_scale = info.end_scale or 1,--结束大小
|
|
start_pos = info.start_pos or {x = 0,y = 0},--初始坐标
|
|
end_pos = info.end_pos or {x = 0,y = 0},--结束坐标
|
|
init_alpha = info.init_alpha or 0,--初始透明度
|
|
end_alpha = info.end_alpha or 1,--终点透明度
|
|
end_call_func = end_call_func,
|
|
}
|
|
local action = cc.FallingVibration.New(data)
|
|
cc.ActionManager:getInstance():addAction(action, self.transform)
|
|
end
|
|
end
|