源战役客户端
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

1848 wiersze
62 KiB

4 tygodni temu
  1. --[[
  2. BagIconItem
  3. ]]
  4. AwardItem = AwardItem or BaseClass(BaseItem)
  5. local AwardItem = AwardItem
  6. -- 缓存常用对象
  7. local Config = Config
  8. local UIObjPool = UIObjPool
  9. local UIToolTipMgr = UIToolTipMgr
  10. local GoodsModel = GoodsModel
  11. local EquipModel = EquipModel
  12. local GlobalTimerQuest = GlobalTimerQuest
  13. local WordManager = WordManager
  14. local RoleManager = RoleManager
  15. local SetLocalScale = SetLocalScale
  16. local SetImageGray = SetImageGray
  17. local SetSizeDelta = SetSizeDelta
  18. local SetAnchoredPosition = SetAnchoredPosition
  19. local lua_resM = lua_resM
  20. function AwardItem:__init(parent, show_tips)
  21. self.parent = parent
  22. self.base_file = "common"
  23. self.layout_file = "awardItem"
  24. self.prefab_asset = nil
  25. self.layer_name = self.layer_name or "UI"
  26. self.goods_basic = nil
  27. self.show_count = true
  28. self.type_id = nil
  29. self.goods_num = nil
  30. self.color = nil
  31. self.get_goods = false --获取途径
  32. self.random_tip_value = false --随机掉落标识
  33. self.width = 78
  34. self.height = 78
  35. self.bg_visible = true
  36. self.is_select = false
  37. self.ware_tip_state = false
  38. self.must_tip_value = false --必掉提示ICON
  39. self.resetTransform = false --是否在加载完成设置完父对象之后把位置和旋转归零
  40. self.is_fix_size = true --是否使用客户端限制的3种规格
  41. self.force_show_num = false--是否强制显示数字
  42. self.resetPos = false
  43. self.limit_state = BagModel.GoodsLimitState.Normal -- 道具的限时状态
  44. self.stren_prefix = "+"
  45. self.have_career = false --是否要对比职业
  46. self.goods_vo = nil -- 道具的真实数据,由服务端发送,格式参考15010协议
  47. self.force_show_limit_tip_view = false --打开普通物品tips时是否强制显示为限时道具状态(背包物品除外)
  48. if show_tips == nil then
  49. show_tips = true
  50. end
  51. self.show_tips = show_tips
  52. self.raycast_target_enable = show_tips
  53. self.res_use_ref = {}
  54. self.open_show_get_way = true
  55. --self.use_local_view = true
  56. self:Load()
  57. end
  58. function AwardItem:Load_callback()
  59. self.base_sx = self.transform.sizeDelta.x
  60. self.base_sy = self.transform.sizeDelta.y
  61. self.bg_trams = self:GetChild("bg")
  62. self.bg = self:GetChild("bg"):GetComponent("Image")
  63. self.icon = self:GetChild("icon")
  64. self.iconImage = self.icon:GetComponent("Image")
  65. -- self.numBg = self:GetChild("numBg").gameObject
  66. -- self.numBg_trams = self:GetChild("numBg")
  67. self.stren = self:GetChild("stren"):GetComponent("Text")
  68. self.stren_obj = self:GetChild("stren").gameObject
  69. -- self.step = self:GetChild("step"):GetComponent("Image")
  70. -- self.stepNum = self:GetChild("stepNum"):GetComponent("Text")
  71. self.selectImage = self:GetChild("selectImg").gameObject
  72. self.selectImage2 = self:GetChild("selectImg2").gameObject
  73. self.mask_icon = self:GetChild("mask_icon").gameObject
  74. -- self.expiredIcon = self:GetChild("expiredIcon").gameObject
  75. -- self.drop_tip = self:GetChild("must_tip").gameObject
  76. -- self.randomn_drop_tip = self:GetChild("random_tip").gameObject
  77. -- self.randomn_drop_tip_text = self:GetChild("random_tip/text"):GetComponent("Text")
  78. -- self.numBg_sizeDelta = self.numBg_trams.sizeDelta
  79. self.lock = self:GetChild("lock").gameObject
  80. self.getIcon = self:GetChild("getIcon").gameObject
  81. self.effect = self:GetChild("effect")
  82. self.clickBg = self:GetChild("clickBg"):GetComponent("EmptyRaycast")
  83. -- self.guild_tip = self:GetChild("guild_tip").gameObject
  84. -- self.guard_tip = self:GetChild("guard_tip").gameObject
  85. -- self.ware_tip = self:GetChild("ware_tip").gameObject
  86. -- self.double_tip = self:GetChild("double_tip").gameObject
  87. -- self.extra_tip = self:GetChild("extra_tip").gameObject
  88. -- self.true_tip = self:GetChild("true_tip").gameObject
  89. -- self.vip_tip = self:GetChild("vip_tip").gameObject
  90. -- self.numText2 = self:GetChild("numText2"):GetComponent("Text")
  91. -- self.statue_tip = self:GetChild("statue_tip").gameObject
  92. -- self.limit_tip = self:GetChild("limit_tip").gameObject
  93. self.numLimitIcon = self:GetChild("numLimitIcon").gameObject
  94. self.numLimitIcon_img = self:GetChild("numLimitIcon"):GetComponent("Image")
  95. self.warSoulTypeImg_img = self:GetChild("warSoulTypeImg"):GetComponent("Image")
  96. -- self.lb_dai_txt = self:GetChild("lb_dai"):GetComponent("Text")
  97. -- self.di_dai_obj = self:GetChild("di_dai").gameObject
  98. self.numTextT = self:GetChild("numText")
  99. self.numText = self.numTextT:GetComponent("Text")
  100. self.numTextT_sizeDelta = self.numTextT.sizeDelta
  101. self.nodes = {
  102. "equipSeriesText:tmp","get_num:tmp","numText:tmp","redDot:obj","starNum:txt", "starBg:obj"
  103. }
  104. self:GetChildren(self.nodes)
  105. self.xs_imgGo
  106. = GetChildGameObjects(self.transform,{
  107. "xsImg"
  108. })
  109. self.limit_img
  110. = GetChildImages(self.transform,{
  111. "xsImg"
  112. })
  113. for i = 1,3 do
  114. self["star"..i] = self:GetChild("star"..i).gameObject
  115. self["star"..i.."_img"] = self:GetChild("star"..i):GetComponent("Image")
  116. end
  117. self.equip_mark = self:GetChild("equip_mark").gameObject
  118. if self.need_refreshData then
  119. 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)
  120. end
  121. --self.bg.raycastTarget = self.show_tips
  122. self.clickBg.raycastTarget = self.show_tips--如果不需要弹提示就取消触摸响应
  123. self.raycast_target_enable = self.show_tips
  124. if self.need_resize then
  125. self:SetItemSize(self.width, self.height)
  126. self.need_resize = false
  127. end
  128. if self.loadCall then
  129. self.loadCall()
  130. end
  131. if self.resetTransform then
  132. local rect = self.gameObject:GetComponent("RectTransform")
  133. rect.pivot = Vector2(0,1)
  134. rect.anchorMax =Vector2(0,1)
  135. rect.anchorMin =Vector2(0,1)
  136. rect.anchoredPosition = Vector2.zero
  137. rect.localRotation = Quaternion.Euler(0,0,0)
  138. self.resetTransform = false
  139. end
  140. -- self.drop_tip:SetActive(self.must_tip_value)
  141. -- self.randomn_drop_tip:SetActive(self.random_tip_value)
  142. -- if self.random_tip_value and self.random_tip_text then
  143. -- self.randomn_drop_tip_text.text = self.random_tip_text
  144. -- end
  145. self:InitEvent()
  146. if self.custom_num_str then
  147. self:SetNumStr(self.custom_num_str)
  148. end
  149. self:SetSelect(self.is_select)
  150. self:SetWareTip(self.ware_tip_state)
  151. if self.resetPos then
  152. self.clickBg.raycastTarget = self.show_tips
  153. self.raycast_target_enable = self.show_tips
  154. self.transform:SetParent(self.parent)
  155. SetLocalPositionZ(self.transform,0)
  156. self.transform.anchoredPosition = Vector2.zero
  157. if self.anchoredPosition then
  158. self:SetAnchoredPosition(self.anchoredPosition.x,self.anchoredPosition.y)
  159. self.anchoredPosition = false
  160. end
  161. self.resetPos = false
  162. end
  163. if self.need_refreshResetInfo then
  164. self:ResetInfo()
  165. self.need_refreshResetInfo = false
  166. end
  167. -- if self.need_refreshStatue then
  168. -- self:SetStatueTips(self.statue, self.statue_res, self.res_ab)
  169. -- end
  170. if self.need_set_limit_state then
  171. self.need_set_limit_state = false
  172. self:SetLimitState(self.limit_state)
  173. end
  174. if self.need_reset_limit_icon then
  175. self.need_reset_limit_icon = false
  176. self:ShowLimitIcon(self.show_limit,self.show_limit_type)
  177. end
  178. if self.need_refreshIsGetIcon then
  179. self:IsGetGoods(self.get_goods)
  180. end
  181. if self.is_need_rebind_long_press then
  182. 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])
  183. end
  184. SetLocalScale(self.effect.transform, 1, 1, 1)
  185. self.effect.gameObject:SetActive(true)
  186. end
  187. function AwardItem:SetExpiredVisible( bool )
  188. -- if self.expiredIcon then
  189. -- self.expiredIcon:SetActive(bool)
  190. -- end
  191. end
  192. --设置必掉图标
  193. -- function AwardItem:SetMustDropTip(bool)
  194. -- if self.is_loaded then
  195. -- self.drop_tip:SetActive(bool)
  196. -- else
  197. -- self.drop_tip_state = bool
  198. -- end
  199. -- end
  200. --设置双倍掉图标
  201. function AwardItem:SetDoubleTip(bool)
  202. -- if self.is_loaded then
  203. -- self.double_tip:SetActive(bool)
  204. -- end
  205. end
  206. --设置额外图标
  207. function AwardItem:SetExtraTip(bool)
  208. -- if self.is_loaded then
  209. -- self.extra_tip:SetActive(bool)
  210. -- else
  211. -- self.extra_tip_state = bool
  212. -- end
  213. end
  214. --设置随机掉落图标
  215. -- function AwardItem:SetRandomDropTip(bool,text)
  216. -- if self.is_loaded then
  217. -- self.randomn_drop_tip:SetActive(bool)
  218. -- if text then
  219. -- self.randomn_drop_tip_text.text = text
  220. -- end
  221. -- else
  222. -- self.random_tip_value = bool
  223. -- if text then
  224. -- self.random_tip_text = text
  225. -- end
  226. -- end
  227. -- end
  228. --设置社团加成图标
  229. -- function AwardItem:SetGuildAdditionTip( bool )
  230. -- if self.is_loaded then
  231. -- self.guild_tip:SetActive(bool)
  232. -- local num = self.goods_num
  233. -- local lv = GuildModel:getInstance():GetGuildBuildLvInfo(6)
  234. -- num = tonumber(num) * GuildModel:getInstance():GetGuildTaskAddition(lv)/100
  235. -- self.numText.text = WordManager:ConvertNum1(num, bool)
  236. -- end
  237. -- end
  238. function AwardItem:SetVipAdditionTip( bool )
  239. -- if self.is_loaded then
  240. -- self.vip_tip:SetActive(bool)
  241. -- local num = tonumber(self.goods_num) or 0
  242. -- local rate = 0
  243. -- local vip_lv = RoleManager.Instance.mainRoleInfo.vip_flag
  244. -- local cfg = Config.Vipprivilege
  245. -- if not cfg then return end
  246. -- for k,v in pairs(cfg) do
  247. -- if v.module_id == 300 and v.subclass_id == 3 and v.lv == vip_lv then
  248. -- rate = v.value/10000
  249. -- end
  250. -- end
  251. -- num = tonumber(num) * rate
  252. -- self.numText.text = WordManager:ConvertNum1(num, bool)
  253. -- end
  254. end
  255. --提供一个接口给外部直接调用awardItem点击函数
  256. function AwardItem:ManuallyClickFun(target,x,y)
  257. if self.manuallyClickFun then
  258. self.manuallyClickFun(target,x,y)
  259. end
  260. end
  261. function AwardItem:InitEvent()
  262. local function onBtnClickHandler(target,x,y)
  263. if self.show_tips then
  264. if self.withCallback then
  265. self.withCallback()
  266. end
  267. if self.callback then
  268. self.callback(target,x,y)
  269. else
  270. if self.is_long_click then
  271. --长按跳出
  272. elseif self.get_goods and not self.no_need_show_get then
  273. --------------------------------
  274. if self.force_show_limit_tip_view then--强制显示限时状态的物品tips
  275. local parm_list = {force_show_limit = true}
  276. UIToolTipMgr:getInstance():AppendGoodsTips(self.type_id, x, y,nil,nil,parm_list,nil,self.open_show_get_way)
  277. return
  278. end
  279. --------------------------------
  280. UIToolTipMgr:getInstance():AppendGoodsTips(self.type_id, x, y,nil,nil,nil,nil,self.open_show_get_way)
  281. elseif self.get_goods and self.no_need_show_get then
  282. local cfg = ShopModel:getInstance():GetShopTypeIdBuyCFG(self.type_id)
  283. if cfg and TableSize(cfg) > 0 and string.find(self.get_str, ColorUtil.RED_DARK) then
  284. ShopModel:getInstance():Fire(ShopModel.OPEN_SHOP_BUY_TIP_VIEW,self.type_id,self.shop_buy_num)
  285. else
  286. self:ClickCallFun(target,x,y)
  287. end
  288. else
  289. self:ClickCallFun(target,x,y)
  290. end
  291. end
  292. end
  293. end
  294. AddClickEvent(self.gameObject, onBtnClickHandler, nil, false)
  295. self.manuallyClickFun = onBtnClickHandler
  296. end
  297. --点击函数,可在子类继承该方法,实现自己需要的效果
  298. function AwardItem:ClickCallFun(target,x,y)
  299. --[[if self.goods_basic then
  300. if self.goods_basic.type == 11 and self.goods_basic.subtype == 10 then --装备鉴定物
  301. if self.goods_basic.identify > 0 then
  302. UIToolTipMgr:getInstance():AppendEquipIdentifyTips(self.goods_basic.type_id, x, y)
  303. else
  304. Message.show("不可鉴定")
  305. end
  306. else --普通物品
  307. -- if not BoxModel:GetInstance():CheckOptionTypeAndOpen(self.goods_basic.type_id) then
  308. UIToolTipMgr:getInstance():AppendGoodsTips(self.goods_basic.type_id, x, y, nil)
  309. -- end
  310. end
  311. end--]]
  312. -- 先判断goods_vo的情况
  313. if self.goods_vo and self.goods_basic then
  314. if self.goods_basic.type == 9 then -- 圣物装备
  315. UIToolTipMgr:getInstance():AppendPsionicTips(self.goods_vo, x, y, PsionicConst.ArmorItemFlag.Show)
  316. return
  317. else
  318. local parm_list = self.expire_time and {expire_time = self.expire_time,expire_type = self.expire_type}
  319. UIToolTipMgr:getInstance():AppendGoodsTips(self.goods_basic.type_id, x, y,self.goods_vo,nil,parm_list,nil,self.open_show_get_way)
  320. return
  321. end
  322. end
  323. if self.goods_basic then
  324. if self.goods_basic.type == GoodsModel.TYPE.EQUIP then--装备
  325. -- if self.dynamic then --拼接推荐属性
  326. -- UIToolTipMgr:getInstance():AppendEquipShowTips(self.dynamic, x, y, self.show_type)
  327. -- else
  328. 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)
  329. -- end
  330. elseif self.goods_basic.type == GoodsModel.TYPE.WarSoul then--战魂
  331. 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)
  332. elseif self.goods_basic.type == 39 then --幻兽装备
  333. if self.dynamic then --拼接推荐属性
  334. UIToolTipMgr:getInstance():AppendBeastShowTips(self.dynamic, x, y, self.show_type)
  335. else
  336. UIToolTipMgr:getInstance():AppendBeastTips(self.goods_basic.type_id, x, y)
  337. end
  338. elseif self.goods_basic.type == GoodsModel.TYPE.GALAXY and self.goods_basic.subtype == 1 then -- 星辰
  339. local galaxy_vo = GalaxyModel.getInstance():CreateGalaxyBasic(self.goods_basic.type_id, 1)
  340. GalaxyModel.getInstance():InitGoodsData(galaxy_vo)
  341. GalaxyModel.getInstance():Fire(GalaxyConst.OPEN_GOODS_TOOL_TIPS_VIEW, galaxy_vo)
  342. -- elseif self.goods_basic.type == 13 then --圣印装备
  343. -- if self.dynamic then --拼接推荐属性
  344. -- UIToolTipMgr:getInstance():AppendSealShowTips(self.dynamic, x, y, self.show_type)
  345. -- else
  346. -- UIToolTipMgr:getInstance():AppendSealTips(self.goods_basic.type_id, x, y)
  347. -- end
  348. -- elseif self.goods_basic.type == 21 and self.goods_basic.subtype == 1 then --星痕装备
  349. -- UIToolTipMgr:getInstance():AppendStarShadowTips(self.goods_basic.type_id,self.goods_basic, x, y, true,true)
  350. --elseif self.goods_basic.type == 16 and self.goods_basic.subtype == 4 then
  351. -- UIToolTipMgr:getInstance():AppendHorseEquipInfoTips(self.type_id, x, y, nil, HorseEquipInfoTips.UNKNOWN, nil, nil)
  352. elseif self.goods_basic.type == 52 and self.goods_basic.subtype ~= 4 and self.goods_basic.subtype ~= 5 then --魂珠类型
  353. SoulBeadModel:getInstance():Fire(SoulBeadModel.EventName.OPEN_SOUL_BEAD_TIPS, self.type_id, x, y)
  354. else --普通物品
  355. local parm_list = self.expire_time and {expire_time = self.expire_time,expire_type = self.expire_type}
  356. UIToolTipMgr:getInstance():AppendGoodsTips(self.goods_basic.type_id, x, y,nil,nil,parm_list,nil,self.open_show_get_way)
  357. end
  358. end
  359. end
  360. --show 当item被设为隐藏的时候,可通过show标识来设置是否显示默认资源
  361. function AwardItem:SetVisible(b, show, force_hide)
  362. BaseItem.SetVisible(self,b,force_hide)
  363. self.force_hide = force_hide
  364. self.visible_state = b
  365. local show_default = show == nil and false or show
  366. -- if self.is_loaded then
  367. -- if b == false and show_default then
  368. -- lua_resM:setImageSprite(self,self.iconImage,"common_asset","com_ui_17")
  369. -- end
  370. -- end
  371. if self.is_loaded then
  372. if b == false and show_default then
  373. lua_resM:setImageSprite(self,self.iconImage,"common_asset","com_ui_17")
  374. end
  375. self.visible_cache = nil
  376. self.show_default_cache = nil
  377. if not b then
  378. cc.ActionManager:getInstance():removeAllActionsFromTarget(self.star1)--隐藏了就清一遍星星动画
  379. end
  380. --回收的时候重置品质特效
  381. if b == false then
  382. self:ResetItemEffect()
  383. end
  384. else
  385. self.visible_cache = b
  386. self.show_default_cache = show
  387. end
  388. end
  389. function AwardItem:SetLoadCall( loadCall )
  390. self.loadCall = loadCall
  391. if self.is_loaded then
  392. if self.loadCall then
  393. self.loadCall()
  394. end
  395. end
  396. end
  397. --[[Description:新加一个setdata函数,为了增加type_id_main参数,用于方便货币类型的显示
  398. type_id_main参数可以不传SetData
  399. ]]
  400. function AwardItem:SetDataWithMapId(type_id, goods_num, type_id_main , ...)
  401. type_id = type_id or 0
  402. goods_num = goods_num or 0
  403. type_id_main = type_id_main or 0
  404. -------------------------
  405. type_id = GoodsModel:getInstance():GetMappingTypeId(type_id_main, type_id)
  406. self:SetData(type_id, goods_num , ...)
  407. end
  408. -- 传入道具的真实数据goods_vo
  409. function AwardItem:SetGoodsVo(goods_vo)
  410. self.goods_vo = goods_vo
  411. end
  412. function AwardItem:GetTypeId( )
  413. return self.type_id
  414. end
  415. --is_lock 是否绑定,默认false show_decimal 数量后是否显示小数位,默认显示
  416. --show_type 是否是随机属性展示
  417. --hide_color_effect 是否屏蔽高级颜色特效,默认false
  418. --spe_color_effect 显示特殊的颜色特效
  419. --注意:货币类型无法直接显示图标,需要GoodsModel的GetMappingTypeId函数转化,可以使用上方SetDataWithMapId函数一并处理
  420. 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)
  421. -------------------------
  422. --2020.04.07,强制校正stren_data数据格式
  423. if stren_data and type(stren_data) ~= "table" then
  424. stren_data = nil
  425. end
  426. -------------------------
  427. -- print('Cat:AwardItem.lua[367] self.type_id', self.type_id)
  428. self.mask_id = mask_id
  429. self.layer_name = layer_name or self.layer_name
  430. self.spe_color_effect = spe_color_effect
  431. self.show_type = show_type or EquipShowTips.EQUIP_RECOMMAND_TARGET
  432. self.type_id = tonumber(type_id) or self.type_id
  433. self.goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.type_id)
  434. -- print("=============>>> YiRan:AwardItem [start:374] self.goods_basic ------------------------------------------")
  435. -- PrintTable(self.goods_basic)
  436. -- print("=============>>> YiRan:AwardItem [end] ------------------------------------------")
  437. self:ChangeEquipState(nil)
  438. if self.goods_basic == nil then return print("物品db里面没有物品数据:",self.type_id) end
  439. self.goods_num = goods_num or self.goods_num or 1
  440. self.color = color or self.goods_basic and self.goods_basic.color or 1
  441. self.stren_data = stren_data or self.stren_data
  442. self.is_lock = is_lock or self.is_lock or 0
  443. self.hide_color_effect = hide_color_effect or false--or self.hide_color_effect
  444. self.have_career = have_career
  445. -- --没有传mask_id而且要显示特效的情况才去获取mask_id 不需要了 以后改成帧动画 2019.11.13
  446. -- if not self.mask_id and self:IsShowEffect() and not self.hide_color_effect then
  447. -- local p_wnd = self.parent
  448. -- repeat
  449. -- p_wnd = p_wnd.parent
  450. -- if p_wnd and p_wnd.parent then
  451. -- local rect = p_wnd.parent:GetComponent(typeof(UnityEngine.UI.ScrollRect))
  452. -- if rect then
  453. -- if p_wnd:GetComponent("EffectMask") then
  454. -- self.mask_id = 1
  455. -- else
  456. -- local image = p_wnd:GetComponent("Image")
  457. -- if image then
  458. -- self.mask_id = self:RegisterMask(image)
  459. -- print("AwardItem 注册了Mask")
  460. -- end
  461. -- end
  462. -- end
  463. -- end
  464. -- until not p_wnd or self.mask_id
  465. -- end
  466. -- local target_config
  467. -- if self.goods_basic.type == GoodsModel.TYPE.EQUIP then
  468. -- target_config = Config.Equipattr[self.type_id]
  469. -- elseif self.goods_basic.type == 39 then
  470. -- target_config = Config.Eudemonsequipattr[self.type_id]
  471. -- -- elseif self.goods_basic.type == 13 then
  472. -- -- target_config = Config.Holysealgoods[self.type_id]
  473. -- end
  474. -- if target_config then
  475. -- local dynamic = {}
  476. -- dynamic.type_id = self.type_id
  477. -- dynamic.rating = target_config.base_rating
  478. -- dynamic.equip_extra_attr = {}
  479. -- dynamic.equip_type = self.goods_basic.equip_type
  480. -- local target_pro = ErlangParser:GetInstance():Parse(target_config.recommend_attr)
  481. -- for i, v in ipairs(target_pro) do
  482. -- local attr = {}
  483. -- attr.color = tonumber(v[2][1])
  484. -- attr.attr_id = tonumber(v[2][2])
  485. -- if #v[2] == 5 then
  486. -- attr.type_id = 1
  487. -- attr.plus_interval = tonumber(v[2][4])
  488. -- attr.plus_unit = tonumber(v[2][5])
  489. -- else
  490. -- attr.type_id = 2
  491. -- attr.attr_val = tonumber(v[2][3])
  492. -- end
  493. -- table.insert(dynamic.equip_extra_attr, attr)
  494. -- end
  495. -- self.dynamic = dynamic
  496. -- else
  497. -- if self.goods_basic.type == GoodsModel.TYPE.EQUIP or self.goods_basic.type == 39 or self.goods_basic.type == 13 then
  498. -- print("==========AwardItem:SetData=>Can't find "..type_id .." in Config, type is "..self.goods_basic.type)
  499. -- end
  500. -- end
  501. if self.is_loaded then
  502. if self.resetTransform then
  503. local rect = self.gameObject:GetComponent("RectTransform")
  504. rect.pivot = Vector2(0,1)
  505. rect.anchorMax =Vector2(0,1)
  506. rect.anchorMin =Vector2(0,1)
  507. rect.anchoredPosition = Vector2.zero
  508. rect.localRotation = Quaternion.Euler(0,0,0)
  509. self.resetTransform = false
  510. end
  511. self.need_refreshData = false
  512. self:SetGray(self.show_gray, self.mask_limit_icon_gray)
  513. local goods_icon = self.goods_basic.goods_icon
  514. type_id = tonumber(type_id)
  515. if Config.ConfigGoodsByCareer[type_id] then
  516. goods_icon = Config.ConfigGoodsByCareer[type_id][RoleManager.Instance.mainRoleInfo.career]
  517. end
  518. self.numText_tmp.text = WordManager:ConvertNum1(self.goods_num, show_decimal)
  519. self:ChangeCountVisible(self.show_count, self.goods_num)
  520. --锁已经去掉了HWR2020.4.22
  521. if self.is_lock and self.is_lock == 1 then
  522. self.lock:SetActive(false)
  523. else
  524. self.lock:SetActive(false)
  525. end
  526. self.stren.text = ""
  527. self.stren_obj:SetActive(false)
  528. self.equipSeriesText_tmp.text = ""
  529. self:SetStar(0)
  530. self.warSoulTypeImg_img.gameObject:SetActive(false)
  531. if self.goods_basic.type == GoodsModel.TYPE.EQUIP then --装备
  532. local equip_cfg = EquipModel:getInstance():GetEquipmentCfg(self.type_id)
  533. if equip_cfg then
  534. local star = equip_cfg.color >= 3 and 1 or 0
  535. local star_color = self.stren_data and self.stren_data.star_color or 1
  536. if equip_cfg.equip_type >= EquipModel.EquipType.Necklace then--首饰展示预览升星属性
  537. star = #equip_cfg.great_attr_list
  538. for k,v in pairs(equip_cfg.great_attr_list) do
  539. if v[3] then
  540. star_color = star_color < v[3] and v[3] or star_color
  541. end
  542. end
  543. end
  544. self:SetEquipEmpowerColor() -- 设置赋能框
  545. if self.stren_data and equip_cfg.series ~= 99 then--屏蔽守护
  546. if self.stren_data.evolution_level and self.stren_data.evolution_level >= 3 then
  547. -- self.stepNum.text = "升星"..(self.stren_data.evolution_level-2)
  548. end
  549. if self.stren_data.strengthen_level and not self.stren_data.show_gems and not self.stren_data.show_stars then
  550. if self.stren_data.strengthen_level > 0 then
  551. self.stren_obj:SetActive(true)
  552. self.stren.text = "+"..self.stren_data.strengthen_level
  553. -- elseif self.stren_data.strengthen_level == 0 and self.stren_data.equip_key == "EquipView" then--在装备界面要显示强化0级
  554. -- self.stren.text = ""
  555. elseif self.stren_data.strengthen_level == 0 and self.stren_data.equip_key == "BagView" then --背包界面不需要显示0级
  556. self.stren.text = ""
  557. else
  558. self.stren.text = ""
  559. end
  560. elseif self.stren_data.equip_key == "EquipView" then--在装备界面要显示强化0级
  561. self.stren.text = ""
  562. end
  563. star = self.stren_data.star <= star and star or self.stren_data.star
  564. if not self.stren_data.show_lv and not self.stren_data.show_gems then
  565. self:SetStar(star,star_color)
  566. end
  567. if self.stren_data.star_action_index ~= nil then
  568. self:SetStarAction(self.stren_data.star_action_index)
  569. end
  570. else
  571. self:SetStar(star,star_color)
  572. end
  573. if self.show_equip_series then
  574. -- if equip_cfg.series ~= 99 then
  575. -- self.lb_dai_txt.text = ChineseNumber(equip_cfg.series) .. "代装备"
  576. -- self.di_dai_obj:SetActive(true)
  577. -- end
  578. end
  579. --装备代数显示
  580. 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)
  581. and not (self.stren_data and self.stren_data.show_gems) and not (self.stren_data and self.stren_data.show_stars) then
  582. self.equipSeriesText_tmp.text = string.format("%d%s",equip_cfg.series,"")
  583. end
  584. --职业不符合
  585. local career = RoleManager.Instance.mainRoleInfo.career
  586. local have_career = have_career or false
  587. if not have_career then
  588. for i,v in ipairs(equip_cfg.career) do
  589. if v == career then
  590. have_career = true
  591. break
  592. end
  593. end
  594. end
  595. if not have_career then
  596. self:ChangeEquipState(0)
  597. end
  598. end
  599. elseif self.goods_basic.type == 39 then --幻兽
  600. local star = Config.Eudemonsequipattr[self.type_id] and Config.Eudemonsequipattr[self.type_id].star or 0
  601. self:SetStar(star)
  602. --elseif self.goods_basic.type == 16 then --坐骑装备类
  603. -- local star = Config.Mountequipattr[self.goods_basic.type_id] and Config.Mountequipattr[self.goods_basic.type_id].star or 0
  604. -- self:SetStar(star)
  605. elseif self.goods_basic.type == GoodsModel.TYPE.WarSoul then --战魂
  606. self.stren_obj:SetActive(true)
  607. if self.stren_data and self.stren_data.goods_vo and self.stren_data.goods_vo.warSoul_lv
  608. and self.stren_data.goods_vo.warSoul_lv > 0 then
  609. self.stren.text = "+"..self.stren_data.goods_vo.warSoul_lv
  610. else
  611. self.stren.text = ""
  612. end
  613. local war_soul_cfg = WarSoulModel:getInstance():GetWarSoulCfg(self.type_id)
  614. if war_soul_cfg then
  615. self.warSoulTypeImg_img.gameObject:SetActive(true)
  616. self:SetStar(war_soul_cfg.star)
  617. lua_resM:setImageSprite(self, self.warSoulTypeImg_img, "common_asset", "warSoul_goods_type"..war_soul_cfg.kind)
  618. end
  619. elseif self.goods_basic.type == GoodsModel.TYPE.PSIONIC
  620. and self.goods_basic.subtype >= 4
  621. and self.goods_basic.subtype <= 7 then -- 圣物装备
  622. local star = Config.Nucleonequip[self.type_id].star
  623. self:SetStar(star)
  624. else
  625. self:SetStar(0)
  626. end
  627. lua_resM:setOutsideImageSprite(self.res_use_ref,self.iconImage,GameResPath.GetGoodsIcon(goods_icon),true)
  628. lua_resM:setImageSprite(self,self.bg,"common_asset","tyui_pz_"..self.color)
  629. self:SetColorEffect(1)
  630. self:SetItemBgVisible(self.bg_visible)
  631. self:SetNumTextSize()
  632. self:IsGetGoods(self.get_goods)
  633. if self.item_alpha ~= nil then
  634. self:SetAlpha(self.item_alpha)
  635. self.item_alpha = nil
  636. end
  637. if self.visible_cache ~= nil then
  638. self:SetVisible(self.visible_cache, self.show_default_cache, self.force_hide)
  639. self.visible_cache = nil
  640. self.show_default_cache = nil
  641. end
  642. if self.equip_state_cache ~= nil then
  643. self:ChangeEquipState(self.equip_state_cache)
  644. end
  645. self:SetLimitState()
  646. else
  647. self.need_refreshData = true
  648. end
  649. end
  650. --设置背景和图标透明度
  651. function AwardItem:SetAlpha(num)
  652. if self.is_loaded then
  653. self.iconImage.alpha = num
  654. self.bg.alpha = num
  655. self.item_alpha = nil
  656. else
  657. self.item_alpha = num
  658. end
  659. end
  660. --设置赋能等级框
  661. function AwardItem:SetEquipEmpowerColor( color_power_lv )
  662. if not self.is_loaded then return end
  663. local equip_cfg = EquipModel:getInstance():GetEquipmentCfg(self.type_id)
  664. if color_power_lv and color_power_lv > 0 then
  665. if self.goods_basic.color >= 5 and equip_cfg and equip_cfg.equip_type ~= EquipModel.EquipType.Guard then--如果是道具红装
  666. self.color = 4 + color_power_lv
  667. else
  668. self.color = self.goods_basic.color + color_power_lv
  669. end
  670. lua_resM:setImageSprite(self,self.bg,"common_asset","tyui_pz_"..self.color)
  671. self:SetColorEffect(1)
  672. return
  673. end
  674. if self.stren_data and self.stren_data.goods_vo then
  675. local em_power_lv = 0
  676. for i,v in pairs(self.stren_data.goods_vo.other_data) do
  677. if v.type == GoodsModel.GoodsInfoType.EquipEmpower then
  678. em_power_lv = tonumber(v.info)
  679. break
  680. end
  681. end
  682. if em_power_lv == 0 and EquipModel:getInstance():IsWearEquip(self.stren_data.goods_vo.goods_id) then--如果是已穿戴
  683. if equip_cfg and equip_cfg.series ~= 99 then
  684. local server_info = EquipModel:getInstance():GetRedEquipInfo(equip_cfg.series,equip_cfg.equip_type)
  685. em_power_lv = server_info and server_info.lv or 0
  686. if self.stren_data and self.stren_data.goods_vo and self.stren_data.goods_vo.empower_lv then
  687. em_power_lv = self.stren_data.goods_vo.empower_lv
  688. end
  689. end
  690. end
  691. if em_power_lv > 0 then
  692. if self.goods_basic.color >= 5 and equip_cfg and equip_cfg.equip_type ~= EquipModel.EquipType.Guard then--如果是道具红装
  693. self.color = 4 + em_power_lv
  694. else
  695. self.color = self.goods_basic.color + em_power_lv
  696. end
  697. end
  698. end
  699. self.color_power_lv = color_power_lv
  700. end
  701. -- --设置双属性宝石icon显示
  702. -- function AwardItem:SetDataDoubleStone(goods_id)
  703. -- local goodsVo = GoodsModel:getInstance():GetBagGoodsInfoById(goods_id)
  704. -- if goodsVo == nil then return end
  705. -- if goodsVo.type == 14 and (goodsVo.subtype == 9 or goodsVo.subtype == 10) then
  706. -- self:SetDoubleStoneIcon(self.type_id,goodsVo.stage,goodsVo.dstone_lv)
  707. -- end
  708. -- end
  709. -- --设置双属性宝石icon
  710. -- function AwardItem:SetDoubleStoneIcon(type_id,stage,dstone_lv)
  711. -- if type_id and dstone_lv then
  712. -- -- self.step.gameObject:SetActive(true)
  713. -- -- lua_resM:setImageSprite(self,self.step,"tex16bit_asset","icon_step_"..stage, true)
  714. -- self.stepNum.text = stage.."阶"
  715. -- local cfg = Config.Equipdstoneicon[type_id.."@"..dstone_lv]
  716. -- if cfg then
  717. -- local goods_icon = cfg.icon_id
  718. -- lua_resM:setOutsideImageSprite(self.res_use_ref,self.iconImage,GameResPath.GetGoodsIcon(goods_icon))
  719. -- end
  720. -- end
  721. -- end
  722. --直接在外部设置展示属性
  723. function AwardItem:SetShowDynamic(dynamic)
  724. self.dynamic = self.dynamic or {}
  725. for i, v in pairs(dynamic) do
  726. self.dynamic[i] = v
  727. end
  728. end
  729. function AwardItem:SetStar(num,star_color)
  730. star_color = star_color or 1
  731. for i = 1,3 do
  732. if self["star"..i] then
  733. self["star"..i]:SetActive(false)
  734. end
  735. lua_resM:setImageSprite(self, self["star"..i.."_img"], "common_asset", "evo_x_"..star_color)
  736. end
  737. self.starBg_obj:SetActive(num > 3)
  738. if num <= 3 then
  739. self.starNum_txt.text = ""
  740. for i = 1,num do
  741. self["star"..i]:SetActive(true)
  742. end
  743. else
  744. self.starNum_txt.text = num
  745. self["star2"]:SetActive(true)
  746. end
  747. for i=1,3 do
  748. if self["star"..i].activeSelf and star_color >= 2 then
  749. self:AddStarEffect(self["star"..i].transform,"ui_star", 0.6)
  750. else
  751. self:ClearUIEffect(self["star"..i].transform)
  752. end
  753. end
  754. end
  755. function AwardItem:SetStarAction( star_index )
  756. star_index = star_index > 3 and 2 or star_index
  757. local star_img = self["star"..star_index.."_img"]
  758. if not star_img then return end
  759. cc.ActionManager:getInstance():removeAllActionsFromTarget(self.star1)
  760. for i=1,3 do
  761. self["star"..i.."_img"].alpha = 1
  762. end
  763. --第一步动画(左边节点放大显示并延迟然后显示名字)
  764. local function star_alpha_func( percent )
  765. star_img.alpha = percent
  766. end
  767. local hide_action = cc.CustomUpdate.New(1,star_alpha_func)
  768. local function end_alpha_func( percent )
  769. star_img.alpha = 1 - percent
  770. end
  771. local show_action = cc.CustomUpdate.New(1,end_alpha_func)
  772. local action = cc.Sequence.New(hide_action,show_action)
  773. cc.ActionManager:getInstance():addAction(cc.RepeatForever.New(action), self.star1)
  774. end
  775. function AwardItem:SetNumText(num)
  776. local num_str = num
  777. if tonumber(num) then
  778. num_str = WordManager:ConvertNum(num)
  779. end
  780. self.numText_tmp.text = num_str
  781. self:SetNumTextSize()
  782. self:ChangeCountVisible(true,999)
  783. end
  784. function AwardItem:SetNumText2(isLastOne,need_num,have_num)
  785. if isLastOne == true then
  786. self.numText_tmp.text = need_num
  787. else
  788. if have_num >= need_num then
  789. self.numText_tmp.text = string.format("<color=%s>%s/%s</color>",ColorUtil.WHITE,have_num,need_num)
  790. else
  791. self.numText_tmp.text = string.format("<color=%s>%s/%s</color>",ColorUtil.RED,have_num,need_num)
  792. end
  793. end
  794. self:SetNumTextSize()
  795. self.numText.gameObject:SetActive(true)
  796. end
  797. --外部自定义数量字符串
  798. function AwardItem:SetNumStr(str)
  799. local num_str = str and str or ""
  800. self.custom_num_str = num_str
  801. self.numText_tmp.text = num_str
  802. self:SetNumTextSize()
  803. self:ChangeCountVisible(true, 999)
  804. end
  805. --数量是否显示
  806. function AwardItem:ChangeCountVisible(bool, goods_num)
  807. self.show_count = bool
  808. goods_num = goods_num or self.goods_num or 0
  809. local force_max_show_num = self.force_max_show_num or 1
  810. if self.is_loaded then
  811. if self.force_show_num then
  812. self.numText.gameObject:SetActive(true)
  813. else
  814. if not self.show_count or tonumber(goods_num) <= force_max_show_num then
  815. -- self.numBg:SetActive(false)
  816. self.numText.gameObject:SetActive(false)
  817. else
  818. -- self.numBg:SetActive(true)
  819. self.numText.gameObject:SetActive(true)
  820. end
  821. end
  822. end
  823. end
  824. function AwardItem:SetColorEffect(size)
  825. if self.hide_effect then return end
  826. local scale
  827. if self.width and self.height then --已经设置缩放
  828. scale = self.width / self.base_sx
  829. end
  830. scale = size and size or scale
  831. if not self.hide_color_effect then
  832. -- if self.spe_color_effect then
  833. -- if self.spe_color_effect == 3 then
  834. -- --self:SetItemEffect("ui_objecticon04", scale)
  835. -- elseif self.spe_color_effect == 4 then
  836. -- --self:SetItemEffect("ui_objecticon05", scale)
  837. -- end
  838. if self.color == 3 and self.is_act then--是否是活动道具 如果是 紫色的也要显示特效
  839. self:SetItemEffect("ui_pinzhi03", scale)
  840. elseif self.color == 4 then
  841. self:SetItemEffect("ui_pinzhi04", scale)
  842. elseif self.color == 5 then
  843. self:SetItemEffect("ui_pinzhi05", scale)
  844. elseif self.color == 6 then
  845. self:SetItemEffect("ui_pinzhi06", scale)
  846. else
  847. self:ResetItemEffect()
  848. end
  849. else
  850. self:ResetItemEffect()
  851. end
  852. end
  853. --设置是否是活动状态如果是 紫色 的也要显示特效
  854. function AwardItem:SetIsAct( is_act )
  855. self.is_act = is_act
  856. end
  857. function AwardItem:IsShowEffect()
  858. return self.color == 3 or self.color == 4 or self.color == 5 or self.color == 6 or self.spe_color_effect
  859. end
  860. function AwardItem:SetItemEffect(effect, scale)
  861. if effect and self.effect then
  862. --如果当前已经有特效,先检查是否是目标特效
  863. if not IsNull(self.award_effect_gameobject) and self.last_award_effect_name and self.last_award_effect_name == effect then
  864. if type(scale) == "number" then
  865. if scale ~= -1 then
  866. self.award_effect_transform.localScale = Vector3.one * scale * 100
  867. end
  868. elseif type(scale) == "table" then
  869. self.award_effect_transform.localScale = Vector3(scale.x, scale.y, scale.z) * 100
  870. else
  871. self.award_effect_transform.localScale = Vector3(72,72,72)
  872. end
  873. self.award_effect_gameobject:SetActive(true)
  874. return
  875. elseif not IsNull(self.award_effect_gameobject) and self.last_award_effect_name and self.last_award_effect_name ~= effect then
  876. self:ResetItemEffect()
  877. end
  878. local function load_call_back(objs, is_gameObject)
  879. if self.transform then --没有删除根变换
  880. if self._use_delete_method then
  881. if is_gameObject then destroy(objs[0]) end
  882. return
  883. end
  884. if IsNull(self.effect) then
  885. if is_gameObject then destroy(objs[0]) end
  886. return
  887. end
  888. --如果没特效,则返回
  889. if not objs or not objs[0] then
  890. return
  891. end
  892. local go = is_gameObject and objs[0] or newObject(objs[0])
  893. if string.find(go.name, self.last_award_effect_name, 1, true) then
  894. --最后加载的模型是最新的
  895. else
  896. destroy(go) --最后加载的模型不是最新的 就删掉该模型
  897. return
  898. end
  899. local transform = go.transform
  900. transform:SetParent(self.effect)
  901. transform.localPosition = Vector3.zero
  902. SetLocalRotation(transform)
  903. if type(scale) == "number" then
  904. if scale ~= -1 then
  905. transform.localScale = Vector3.one * scale * 100
  906. end
  907. elseif type(scale) == "table" then
  908. transform.localScale = Vector3(scale.x, scale.y, scale.z) * 100
  909. else
  910. transform.localScale = Vector3(72,72,72)
  911. end
  912. self.award_effect_gameobject = go
  913. self.award_effect_transform = transform
  914. end
  915. end
  916. if self.last_award_effect_name and self.last_award_effect_name == effect then
  917. return
  918. end
  919. self.last_award_effect_name = effect
  920. lua_resM:loadPrefab(self, effect, effect, load_call_back, false, ASSETS_LEVEL.HIGHT)
  921. end
  922. end
  923. function AwardItem:ResetItemEffect( )
  924. if not IsNull(self.award_effect_gameobject) and self.last_award_effect_name then
  925. lua_resM:AddObjToPool(self, self.last_award_effect_name, self.last_award_effect_name, self.award_effect_gameobject)
  926. -- destroy(self.award_effect_gameobject)
  927. self.award_effect_gameobject = nil
  928. self.last_award_effect_name = nil
  929. end
  930. end
  931. function AwardItem:AddStarEffect( transform,effect,scale )
  932. if effect and transform then
  933. self:AddUIEffect(effect, transform, self.layer_name, Vector3(2,1,0), scale or 1, true, nil, self.mask_id,nil,nil,0.8)
  934. end
  935. end
  936. function AwardItem:ClearStarEffect( )
  937. if not IsNull(self.transform) then
  938. for i=1,3 do
  939. self:ClearUIEffect(self["star"..i].transform)
  940. end
  941. end
  942. end
  943. function AwardItem:ClearEffectForce( )
  944. self:ClearUIEffect(self.effect)
  945. self:ResetItemEffect()
  946. self:ClearStarEffect()
  947. self.hide_effect = true
  948. end
  949. --设置背景与图标之间的特效 参数1:ab包
  950. function AwardItem:SetBgEffect( bg_effect ,scale,mask_id )
  951. if bg_effect and self.bgeffect then
  952. self:AddUIEffect(bg_effect, self.bgeffect, self.layer_name, nil, scale or 1, true, nil, mask_id)
  953. end
  954. end
  955. function AwardItem:SetItemSize(width, height)
  956. self.width = width
  957. self.height = height
  958. if not self.is_loaded then
  959. self.need_resize = true
  960. return
  961. else
  962. if self.is_fix_size then
  963. if width and width <= 47 then--60%
  964. width = 47
  965. elseif width and width <= 62 then--80%
  966. width = 62
  967. elseif width and width > 62 then--100%
  968. width = 78
  969. end
  970. end
  971. self.width = width or 78
  972. self.height = width or 78
  973. self.need_resize = false
  974. -- self.width = width or self.base_sx
  975. -- self.height = height or self.base_sx
  976. -- local bord = self.width * 1/10
  977. local x_ratio = self.width / self.base_sx --0.88 -- 90/104
  978. local y_ratio = self.height / self.base_sy
  979. --父节点锚点是左上角的情况
  980. self.transform.sizeDelta = Vector2(self.base_sx, self.base_sy)
  981. self.redDot.sizeDelta = Vector2(20 / x_ratio, 20 / y_ratio)
  982. self.transform.pivot = Vector2(0, 1)
  983. if self.parent then
  984. --直接整体缩放
  985. local grid = self.parent:GetComponent("GridLayoutGroup")
  986. if grid and grid.cellSize then
  987. self.transform.pivot = Vector2(0.5, 0.5)
  988. end
  989. end
  990. self.transform.localScale = Vector2(x_ratio, y_ratio)
  991. -- self:SetColorEffect()
  992. end
  993. end
  994. function AwardItem:SetIsFixSize( is_fix_size )
  995. self.is_fix_size = is_fix_size
  996. end
  997. function AwardItem:SetSelect(bool,select_type)
  998. self.is_select = bool
  999. if self.is_loaded then
  1000. if select_type == 2 then--第二种是打勾的形状 很多地方要用到 特地加上
  1001. self.selectImage2:SetActive(bool)
  1002. else
  1003. self.selectImage:SetActive(bool)
  1004. end
  1005. end
  1006. end
  1007. --设置数量的位置,字体,大小
  1008. function AwardItem:SetNumTextSize(refresh_pos)
  1009. -- local bord = self.width * 1/10
  1010. -- local x = self.width / 84 * self.numBg_sizeDelta.x
  1011. -- local y = self.height / 84 * self.numBg_sizeDelta.y
  1012. -- x = x > self.numText_tmp.preferredWidth and x or self.numText_tmp.preferredWidth + 8
  1013. -- self.numBg_trams.sizeDelta = Vector2(x, y)
  1014. -- if refresh_pos then
  1015. -- self.numBg_trams.localPosition = Vector3(self.numBg_trams.localPosition.x, self.numBg_trams.localPosition.y + bord + 2 , 0)
  1016. -- end
  1017. -- local h = self.numText_sizeDelta.y
  1018. -- if refresh_pos then
  1019. -- self.numText_tmp.fontSize = math.floor(16 * self.width / 84)
  1020. -- -- h = 16 / self.numText.sizeDelta.y * (self.numText_tmp.fontSize + 2)
  1021. -- self.numText.localPosition = Vector3(self.numBg_trams.localPosition.x, self.numBg_trams.localPosition.y - bord / 2 , 0)
  1022. -- end
  1023. -- self.numText.sizeDelta = Vector2(x, h)
  1024. end
  1025. function AwardItem:SetItemBgVisible(b)
  1026. if b then
  1027. self.bg_trams.gameObject:SetActive(true)
  1028. else
  1029. self.bg_trams.gameObject:SetActive(false)
  1030. end
  1031. self.bg_visible=b
  1032. end
  1033. function AwardItem:SetItemVisible(b)
  1034. if b then
  1035. self.icon.gameObject:SetActive(true)
  1036. else
  1037. self.icon.gameObject:SetActive(false)
  1038. end
  1039. end
  1040. function AwardItem:SetWareTip(bool )
  1041. -- self.ware_tip_state = bool
  1042. -- if self.is_loaded then
  1043. -- self.ware_tip:SetActive(bool)
  1044. -- end
  1045. end
  1046. --置灰
  1047. function AwardItem:SetGray(bool, mask_limit_icon_gray)
  1048. if self.is_loaded then
  1049. self.show_gray = bool
  1050. self.mask_limit_icon_gray = mask_limit_icon_gray
  1051. self.mask_icon:SetActive(bool)
  1052. if not mask_limit_icon_gray then
  1053. SetImageGray(self.numLimitIcon_img,bool)
  1054. end
  1055. end
  1056. end
  1057. --整个awarditem置灰 包括物品图标icon和背景bg --2020/3/13 策划要求邮件奖励全置灰
  1058. function AwardItem:SetIconGray(bool)
  1059. if self.is_loaded then
  1060. self.show_gray = bool
  1061. self.mask_icon:SetActive(false)--这个遮罩不要,内容有置灰就行了
  1062. self.iconImage.gray = bool
  1063. SetImageGray(self.warSoulTypeImg_img,bool)
  1064. self.bg.gray = bool
  1065. end
  1066. end
  1067. --这个方法用于外部需要另外改变图标的需求
  1068. function AwardItem:SetGoodsIcon(goods_icon, setNativeSize)
  1069. if self.iconImage then
  1070. lua_resM:setOutsideImageSprite(self.res_use_ref, self.iconImage, GameResPath.GetGoodsIcon(goods_icon), setNativeSize)
  1071. end
  1072. end
  1073. --这个方法用于外部需要另外改变图标的需求[不走物品图标路径]
  1074. function AwardItem:SetGoodsIconFormPath(path, setNativeSize)
  1075. if self.iconImage then
  1076. lua_resM:setOutsideImageSprite(self.res_use_ref, self.iconImage, path, setNativeSize)
  1077. end
  1078. end
  1079. --设置上锁的图标
  1080. function AwardItem:SetLockIcon()
  1081. self:ClearAllEffect()
  1082. self:ResetItemEffect()
  1083. self.icon.gameObject:SetActive(true)
  1084. lua_resM:setImageSprite(self, self.iconImage, "common_asset","tyui_suo_2")
  1085. end
  1086. function AwardItem:SetIconEmpty( )
  1087. if self.iconImage then
  1088. self:ClearAllEffect()
  1089. self:ResetItemEffect()
  1090. lua_resM:setImageSprite(self, self.iconImage, "uiComponent_asset","com_empty")
  1091. end
  1092. end
  1093. --装备的升降禁
  1094. function AwardItem:ChangeEquipState(state)
  1095. if self.is_loaded then
  1096. self.need_refreshData = false
  1097. if state then
  1098. self.equip_mark:SetActive(true)
  1099. local src = state == 1 and "tyui_Arrow_1" or state == 2 and "tyui_Arrow_2" or "com_forbid"
  1100. lua_resM:setImageSprite(self,self.equip_mark:GetComponent("Image"),"common_asset",src,true)
  1101. local mark_trans = self.equip_mark.transform
  1102. self.mark_trans = mark_trans
  1103. --if state == 1 then
  1104. --cc.ActionManager:getInstance():removeAllActionsFromTarget(mark_trans)
  1105. --SetLocalPositionY(mark_trans, -77)
  1106. --local x, y = mark_trans:GetLocalPosXY()
  1107. --local action = cc.FloatFadeIn.New(x, y, 0, 20, 0.7, 0.6, mark_trans)
  1108. --cc.ActionManager:getInstance():addAction(action, mark_trans)
  1109. --else
  1110. --SetLocalPositionY(mark_trans, -63.000042)
  1111. --cc.ActionManager:getInstance():removeAllActionsFromTarget(mark_trans)
  1112. --end
  1113. self.equip_mark:SetActive(state ~= 2) --下降不需要显示,下降的箭头
  1114. else
  1115. self.equip_mark:SetActive(false)
  1116. end
  1117. self.equip_state_cache = nil
  1118. else
  1119. self.need_refreshData = true
  1120. self.equip_state_cache = state
  1121. end
  1122. end
  1123. --是否只显示背景
  1124. function AwardItem:OnlyShowBg(is_blank, bg_color)
  1125. if is_blank then
  1126. self.bg_trams.gameObject:SetActive(true)
  1127. self.icon.gameObject:SetActive(false)
  1128. --self.numBg:SetActive(false)
  1129. self.numText.gameObject:SetActive(false)
  1130. self.lock:SetActive(false)
  1131. self:SetStar(0)
  1132. self.show_tips = false
  1133. self:SetGray(false)
  1134. self.stren.text = ""
  1135. -- self.step.gameObject:SetActive(false)
  1136. -- self.stepNum.text = ""
  1137. self:ClearUIEffect(self.effect)
  1138. local color = bg_color or 8
  1139. lua_resM:setImageSprite(self, self.bg,"common_asset","tyui_pz_"..color)
  1140. else
  1141. self.bg_trams.gameObject:SetActive(true)
  1142. self.icon.gameObject:SetActive(true)
  1143. -- self.step.gameObject:SetActive(true)
  1144. self.show_tips = true
  1145. end
  1146. end
  1147. --设置背景边框
  1148. function AwardItem:SetBgShow(bg_color)
  1149. if self.bg then
  1150. local color = bg_color or 8
  1151. lua_resM:setImageSprite(self, self.bg,"common_asset","tyui_pz_"..color)
  1152. end
  1153. end
  1154. function AwardItem:SetCircleBgShow(bg_color)
  1155. if self.bg then
  1156. local color = bg_color or 7
  1157. lua_resM:setImageSprite(self, self.bg,"common_asset","tyui_ypz_"..color)
  1158. end
  1159. end
  1160. --自定义背景
  1161. function AwardItem:SetBgSource(ab_name,real_name)
  1162. if self.bg and ab_name and real_name then
  1163. lua_resM:setImageSprite(self, self.bg,ab_name,real_name)
  1164. end
  1165. end
  1166. --自定义点击物品回调
  1167. function AwardItem:SetCallBack(callback)
  1168. self.show_tips = true
  1169. self.raycast_target_enable = true
  1170. self.clickBg.raycastTarget = true
  1171. self.callback = callback
  1172. end
  1173. --点击回调
  1174. function AwardItem:SetWithCallBack(withCallback)
  1175. self.show_tips = true
  1176. self.withCallback = withCallback
  1177. end
  1178. --是否获取物品途径no_need_show_get(不需要显示获得途径)
  1179. function AwardItem:IsGetGoods(bool,get_str,no_need_show_get,font_size)
  1180. self.get_goods = bool and true or false
  1181. self.no_need_show_get = no_need_show_get or self.no_need_show_get
  1182. self.get_str = get_str or self.get_str
  1183. self.font_size = font_size or 24
  1184. if not self.is_loaded then
  1185. self.need_refreshIsGetIcon = true
  1186. return
  1187. end
  1188. self.need_refreshIsGetIcon = false
  1189. if self.getIcon then
  1190. self.getIcon:SetActive(self.get_goods)
  1191. end
  1192. if self.get_str then
  1193. self.get_num_tmp.text = self.get_str
  1194. end
  1195. -- if self.font_size then
  1196. -- self.get_num_tmp.fontSize = self.font_size
  1197. -- end
  1198. end
  1199. function AwardItem:__delete()
  1200. self:ResetItemEffect()
  1201. self:ClearStarEffect()
  1202. cc.ActionManager:getInstance():removeAllActionsFromTarget(self.transform)
  1203. if self.close_id_long then
  1204. GlobalTimerQuest:CancelQuest(self.close_id_long)
  1205. self.close_id_long = nil
  1206. end
  1207. self:ClearUIEffect(self.effect)
  1208. self:clearResRef()
  1209. if self.mask_id then
  1210. self:UnRegisterMask(self.mask_id)
  1211. self.mask_id = nil
  1212. end
  1213. end
  1214. function AwardItem:SetEmptyGrid( )
  1215. lua_resM:setImageSprite(self,self.bg,"mainUI_asset","main_item_bg")
  1216. end
  1217. function AwardItem:SetEmptyGrid2( )
  1218. lua_resM:setImageSprite(self,self.bg,"common_asset","tyui_pz_8")
  1219. end
  1220. function AwardItem:SetTextPos( pos )
  1221. self.numText.transform.anchoredPosition = pos
  1222. end
  1223. function AwardItem:SetStrenTextPos(x,y)
  1224. self.stren.transform.anchoredPosition = Vector2(x,y)
  1225. end
  1226. function AwardItem:SetParent(parent)
  1227. if self.is_loaded then
  1228. self.transform:SetParent(parent)
  1229. else
  1230. self.parent = parent
  1231. end
  1232. end
  1233. -- function AwardItem:SetGuardTip( bool )
  1234. -- if self.is_loaded then
  1235. -- self.guard_tip:SetActive(bool)
  1236. -- end
  1237. -- end
  1238. function AwardItem:SetTrueTip( bool )
  1239. -- self.is_select = bool
  1240. -- if self.is_loaded then
  1241. -- self.true_tip:SetActive(bool)
  1242. -- end
  1243. end
  1244. --设置数量的位置,字体,大小
  1245. function AwardItem:SetNumTextSize2(value)
  1246. self.numText_tmp.fontSize = value
  1247. end
  1248. function AwardItem:SetStatueTips(bool, image_res, res_ab, is_set_nativesize)
  1249. -- self.statue = bool
  1250. -- self.statue_res = image_res
  1251. -- self.res_ab = res_ab
  1252. -- if self.is_loaded then
  1253. -- self.statue_tip:SetActive(bool)
  1254. -- if bool and image_res and image_res ~= "" then
  1255. -- lua_resM:setImageSprite(self, self.statue_tip.transform:GetComponent("Image"), self.res_ab or "common_asset", image_res)
  1256. -- if is_set_nativesize then
  1257. -- self.statue_tip.transform.sizeDelta = co.TableXY(116,72)
  1258. -- else
  1259. -- self.statue_tip.transform.sizeDelta = co.TableXY(81,50)
  1260. -- end
  1261. -- end
  1262. -- else
  1263. -- self.need_refreshStatue = true
  1264. -- end
  1265. end
  1266. -- function AwardItem:SetLimiticon(bool)
  1267. -- if self.is_loaded then
  1268. -- self.limit_tip:SetActive(bool)
  1269. -- end
  1270. -- end
  1271. function AwardItem:SetRedDot(bool,x,y)
  1272. if self.is_loaded then
  1273. self.redDot_obj:SetActive(bool)
  1274. SetAnchoredPosition(self.redDot,x or 37,y or 37)
  1275. end
  1276. end
  1277. function AwardItem:clearResRef( )
  1278. lua_resM:clearReference(self.res_use_ref)
  1279. end
  1280. function AwardItem:ResetInfo( )
  1281. self:SetIconEmpty()
  1282. self:clearResRef()
  1283. self:ClearUIEffect(self.effect)
  1284. self:ClearCacheEffect()
  1285. self:SetAlpha(1)
  1286. self:IsNeedShowSeries(false)
  1287. self.hide_effect = false--默认不隐藏特效
  1288. self.bg_visible = true
  1289. self.resetPos = false
  1290. self.color = nil
  1291. self.spe_color_effect = nil
  1292. self.is_lock = nil
  1293. self.is_fix_size = true --是否使用客户端限制的3种规格
  1294. if self.mask_id then
  1295. self:UnRegisterMask(self.mask_id)
  1296. self.mask_id = nil
  1297. end
  1298. self:SetGray(false)
  1299. self:SetIconGray(false)
  1300. self.resetTransform = false
  1301. self.callback = nil
  1302. self.withCallback = nil
  1303. self.loadCall = nil
  1304. self.parent = nil
  1305. self.position = false
  1306. self.anchoredPosition = false
  1307. self.ClickCallFun = nil
  1308. self.type_id = nil
  1309. self.goods_num = nil
  1310. self.stren_data = nil--装备精炼数据 {strengthen_level = 1, step = 1, star = 1}
  1311. self.goods_basic = nil
  1312. self.equip_state_cache = nil
  1313. self.extra_tip_state = nil
  1314. self.get_goods = false --获取途径
  1315. self.random_tip_value = false --随机掉落标识
  1316. self.is_select = false
  1317. self.ware_tip_state = false
  1318. self.must_tip_value = false --必掉提示ICON
  1319. self.no_need_show_get = false--不显示获取途径
  1320. self.open_show_get_way = true
  1321. self.show_count = true
  1322. self:IsGetGoods(false)
  1323. self:SetItemVisible(true)
  1324. self:SetEnableClick(true)
  1325. self:SetGoodsVo(nil)
  1326. self.force_show_num = false--是否强制显示数字
  1327. self.shop_buy_num = 1--快捷购买部数量默认是1
  1328. self.limit_state = BagModel.GoodsLimitState.Normal
  1329. self.stren_prefix = "+"
  1330. self.have_career = false
  1331. self.force_show_limit_tip_view = false
  1332. self.force_max_show_num = nil
  1333. self.color_power_lv = 0
  1334. self.get_str = ""
  1335. self.is_act = false--是否是活动道具 如果是 紫色的也要显示特效
  1336. -------------------------
  1337. if self.is_loaded then
  1338. cc.ActionManager:getInstance():removeAllActionsFromTarget(self.star1)
  1339. for i=1,3 do
  1340. self["star"..i.."_img"].alpha = 1
  1341. end
  1342. self.starNum_txt.text = ""
  1343. self.starBg_obj:SetActive(false)
  1344. self:SetVisible(true,nil,true)
  1345. self:SetStar(0)
  1346. self.need_refreshResetInfo = false
  1347. self.numText_tmp.text = ""
  1348. -- self.stepNum.text = ""
  1349. -- self.numText2.text = ""
  1350. self.stren.text = ""
  1351. self.stren_obj:SetActive(false)
  1352. self.get_num_tmp.text = ""
  1353. -- self.lb_dai_txt.text = ""
  1354. self.numText.gameObject:SetActive(true)
  1355. self.bg_trams.gameObject:SetActive(true)
  1356. self.icon.gameObject:SetActive(true)
  1357. -- self.randomn_drop_tip_text.text = "随机"
  1358. -- self.drop_tip:SetActive(false)
  1359. -- self.randomn_drop_tip:SetActive(false)
  1360. self.lock:SetActive(false)
  1361. self.getIcon:SetActive(false)
  1362. -- self.guild_tip:SetActive(false)
  1363. -- self.guard_tip:SetActive(false)
  1364. -- self.ware_tip:SetActive(false)
  1365. self.equip_mark:SetActive(false)
  1366. -- self.expiredIcon:SetActive(false)
  1367. -- self.true_tip:SetActive(false)
  1368. -- self.vip_tip:SetActive(false)
  1369. self.mask_icon:SetActive(false)
  1370. -- self.statue_tip:SetActive(false)
  1371. -- self.limit_tip:SetActive(false)
  1372. self.redDot_obj:SetActive(false)
  1373. self.selectImage:SetActive(false)
  1374. self.selectImage2:SetActive(false)
  1375. -- self.double_tip:SetActive(false)
  1376. -- self.extra_tip:SetActive(false)
  1377. self.xs_imgGo:SetActive(false)
  1378. -- self.di_dai_obj:SetActive(false)
  1379. self.equipSeriesText_tmp.text = ""
  1380. lua_resM:setImageSprite(self,self.bg,"uiComponent_asset","com_empty")
  1381. lua_resM:setImageSprite(self,self.warSoulTypeImg_img,"uiComponent_asset","com_empty")
  1382. lua_resM:setImageSprite(self, self["star5_img"], "common_asset", "tyui_x3")
  1383. -- self.stren.transform.anchoredPosition = Vector2(-10,23.5)
  1384. lua_resM:setImageSprite(self,self.numLimitIcon_img,"uiComponent_asset","com_empty")
  1385. self.numLimitIcon:SetActive(false)
  1386. self.expire_time = false
  1387. self.expire_type = false
  1388. self:ResetLimitState()
  1389. SetLocalScale(self.transform,1,1,1)
  1390. SetAnchoredPosition(self.redDot,37,37)
  1391. -------------------------
  1392. self.ClickCallFun = AwardItem.ClickCallFun
  1393. if self.is_long_click then
  1394. local function empty_call( ) end
  1395. AddDownEvent(self.gameObject, empty_call)
  1396. AddUpEvent(self.gameObject, empty_call)
  1397. self.is_long_click = nil
  1398. end
  1399. else
  1400. self.need_refreshResetInfo = true
  1401. end
  1402. end
  1403. function AwardItem:ReleaseObj( )
  1404. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self)
  1405. end
  1406. -- function AwardItem:SetBottomNumText( str )
  1407. -- self.numText2.text = str
  1408. -- end
  1409. function AwardItem:SetEnableClick(bool)
  1410. self.show_tips = bool
  1411. if self.is_loaded and self.raycast_target_enable ~= self.show_tips then
  1412. self.raycast_target_enable = self.show_tips
  1413. self.clickBg.raycastTarget = self.show_tips
  1414. end
  1415. end
  1416. -- state 是外部传入的状态,针对BagModel.GoodsLimitState
  1417. function AwardItem:SetLimitState(state)
  1418. self.limit_state = state
  1419. if self.is_loaded then
  1420. if self.goods_basic then
  1421. if self.goods_basic.expire_type ~= 0 or (self.limit_state ~= BagModel.GoodsLimitState.Normal and self.limit_state)then
  1422. if self.limit_state then
  1423. self:ShowLimitIcon(true, self.limit_state)
  1424. else
  1425. --外部没传入,默认显示限时
  1426. self:ShowLimitIcon(true,1)
  1427. end
  1428. else
  1429. self:ShowLimitIcon(false)
  1430. end
  1431. else
  1432. self:ShowLimitIcon(false)
  1433. end
  1434. else
  1435. self.need_set_limit_state = true
  1436. end
  1437. end
  1438. function AwardItem:ShowLimitIcon( show,type )
  1439. type = type or 1
  1440. self.show_limit = show
  1441. self.show_limit_type = type
  1442. if not self.is_loaded then
  1443. self.need_reset_limit_icon = true
  1444. return
  1445. end
  1446. self.xs_imgGo:SetActive(show and true or false)
  1447. if type and type == 1 then
  1448. lua_resM:setImageSprite(self,self.limit_img,"uiComponent_asset","ui_com_xs_pointfilter",true)
  1449. elseif type and type == 2 then
  1450. lua_resM:setImageSprite(self,self.limit_img,"uiComponent_asset","ui_com_gq_pointfilter",true)
  1451. end
  1452. end
  1453. function AwardItem:ResetLimitState()
  1454. self:ShowLimitIcon(false)
  1455. self.limit_state = BagModel.GoodsLimitState.Normal
  1456. end
  1457. --长按点击函数
  1458. function AwardItem:BindLongPressEvent(callback, duration, isInfinite, short_click_call_back,long_press_end_call)
  1459. if not self.is_loaded then
  1460. self.cache_bind_long_press_info = {callback, duration, isInfinite, short_click_call_back}
  1461. self.is_need_rebind_long_press = true
  1462. return
  1463. end
  1464. self.is_need_rebind_long_press = false
  1465. duration = duration or 0.3
  1466. if short_click_call_back then
  1467. self.ClickCallFun = function() end
  1468. end
  1469. if callback then
  1470. -- self.callback_long = callback
  1471. local function touch_end(target,x,y)
  1472. if self.close_id_long then
  1473. GlobalTimerQuest:CancelQuest(self.close_id_long)
  1474. self.close_id_long = nil
  1475. end
  1476. local curTime = TimeUtil:getServerTimeMs()/1000
  1477. if curTime - self.click_start_time < duration then
  1478. if short_click_call_back then
  1479. short_click_call_back(target,x,y)
  1480. end
  1481. else--长按之后如果需要回调就执行一下
  1482. if long_press_end_call then
  1483. long_press_end_call()
  1484. end
  1485. end
  1486. end
  1487. local function touch_begin(target,x,y)
  1488. self.click_start_time = TimeUtil:getServerTimeMs()/1000
  1489. local function clockFun()
  1490. local is_stop = callback(target,x,y)
  1491. if is_stop then
  1492. if self.close_id_long then
  1493. GlobalTimerQuest:CancelQuest(self.close_id_long)
  1494. self.close_id_long = nil
  1495. end
  1496. end
  1497. end
  1498. if not self.close_id_long then
  1499. local run_time = 1
  1500. if isInfinite then
  1501. run_time = -1
  1502. end
  1503. self.close_id_long = GlobalTimerQuest:AddPeriodQuest(clockFun, duration, run_time)
  1504. end
  1505. -- self.callback_long(target,x,y)
  1506. end
  1507. AddDownEvent(self.gameObject, touch_begin)
  1508. AddUpEvent(self.gameObject, touch_end)
  1509. self.is_long_click = true
  1510. else
  1511. self.is_long_click = nil
  1512. end
  1513. end
  1514. --设置awarditem左上角或者右上角角标
  1515. --特殊value有些类的资源比较复杂不能只用state创建
  1516. function AwardItem:SetNumLimitVisible( bool, state, value )
  1517. if self.numLimitIcon then
  1518. self.numLimitIcon:SetActive(bool)
  1519. end
  1520. if bool and self.numLimitIcon then
  1521. local ab_name = "common_asset"
  1522. local res_name
  1523. if state and state == 1 then --双倍
  1524. res_name = "con_itemtab_double"
  1525. SetAnchoredPosition(self.numLimitIcon.transform, 20, -10)
  1526. SetSizeDelta(self.numLimitIcon.transform, 59, 38)
  1527. elseif state and state == 2 then --概率
  1528. res_name = "con_itemtab_lucky"
  1529. SetAnchoredPosition(self.numLimitIcon.transform, 20,-10)
  1530. SetSizeDelta(self.numLimitIcon.transform, 59, 37)
  1531. elseif state and state == 3 then --首通
  1532. res_name = "con_itemtab_first"
  1533. SetAnchoredPosition(self.numLimitIcon.transform, 20, -10)
  1534. SetSizeDelta(self.numLimitIcon.transform, 59, 38)
  1535. elseif state and state == 4 then --限量
  1536. res_name = "com_limit_pointfilter"
  1537. SetAnchoredPosition(self.numLimitIcon.transform, 20, -4)
  1538. SetSizeDelta(self.numLimitIcon.transform, 46, 25)
  1539. elseif state and state == 5 then --可上架
  1540. res_name = "com_market"
  1541. SetAnchoredPosition(self.numLimitIcon.transform, 63, -15)
  1542. SetSizeDelta(self.numLimitIcon.transform, 20, 20)
  1543. elseif state and state == 6 then --限时
  1544. res_name = "com_time_limit"
  1545. SetAnchoredPosition(self.numLimitIcon.transform, 63, -6)
  1546. SetSizeDelta(self.numLimitIcon.transform, 35, 18)
  1547. elseif state and state == 7 then --BOSS奖励
  1548. res_name = "con_itemtab_boss"
  1549. SetAnchoredPosition(self.numLimitIcon.transform, 53, -6)
  1550. SetSizeDelta(self.numLimitIcon.transform, 116, 28)
  1551. elseif state and state == 8 then --绝版珍稀
  1552. res_name = "con_itemtab_zhenxi"
  1553. SetAnchoredPosition(self.numLimitIcon.transform, 89, -8)
  1554. SetSizeDelta(self.numLimitIcon.transform, 102, 64)
  1555. elseif state and state == 9 then --已领取
  1556. res_name = "con_itemtab_getted"
  1557. SetAnchoredPosition(self.numLimitIcon.transform, 39,-40)
  1558. SetSizeDelta(self.numLimitIcon.transform, 124*0.7, 67*0.7)
  1559. elseif state and state == 10 then --主战区
  1560. ab_name = "CSGWar_asset"
  1561. res_name = "CSGWar_font15"
  1562. SetAnchoredPosition(self.numLimitIcon.transform, 34, -14)
  1563. SetSizeDelta(self.numLimitIcon.transform, 71, 30)
  1564. elseif state and state == 11 then --副战区
  1565. ab_name = "CSGWar_asset"
  1566. res_name = "CSGWar_font16"
  1567. SetAnchoredPosition(self.numLimitIcon.transform, 34, -14)
  1568. SetSizeDelta(self.numLimitIcon.transform, 71, 30)
  1569. elseif state and state == 12 then --珍宝阁大奖
  1570. ab_name = "treasureHouse_asset"
  1571. res_name = "treasureHouse_rare2"
  1572. SetAnchoredPosition(self.numLimitIcon.transform, 28, -14)
  1573. SetSizeDelta(self.numLimitIcon.transform, 58, 37)
  1574. elseif state and state == 13 then --珍宝阁珍稀
  1575. ab_name = "treasureHouse_asset"
  1576. res_name = "treasureHouse_rare1"
  1577. SetAnchoredPosition(self.numLimitIcon.transform, 28, -14)
  1578. SetSizeDelta(self.numLimitIcon.transform, 58, 37)
  1579. elseif state and state == 15 then --额外
  1580. res_name = "con_itemtab_mul"
  1581. SetAnchoredPosition(self.numLimitIcon.transform, 20, -10)
  1582. SetSizeDelta(self.numLimitIcon.transform, 59, 38)
  1583. elseif state and state == 16 then --独产
  1584. res_name = "com_special"
  1585. SetAnchoredPosition(self.numLimitIcon.transform, 63, -6)
  1586. SetSizeDelta(self.numLimitIcon.transform, 35, 18)
  1587. elseif state and state == 17 then --三星
  1588. res_name = "con_itemtab_threestar"
  1589. SetAnchoredPosition(self.numLimitIcon.transform, 20,-10)
  1590. SetSizeDelta(self.numLimitIcon.transform, 59, 37)
  1591. elseif state and state == 18 then --已领取
  1592. res_name = "con_itemtab_getted"
  1593. SetAnchoredPosition(self.numLimitIcon.transform, 40, -37.5)
  1594. SetSizeDelta(self.numLimitIcon.transform, 124 * 0.8 , 67 * 0.8)
  1595. elseif state and state == 19 then -- 狂战领域 全部奖励
  1596. ab_name = "rageWar_asset"
  1597. res_name = "rw_server_mail"
  1598. local scale = self.transform.localScale
  1599. SetSizeDelta(self.numLimitIcon.transform, 79 / scale.x , 49 / scale.y)
  1600. SetAnchoredPosition(self.numLimitIcon.transform, 32, -19.5)
  1601. elseif state and state == 20 then--立即领取
  1602. ab_name = "kfActivity_asset"
  1603. res_name = "zeroGift_tip"
  1604. SetAnchoredPosition(self.numLimitIcon.transform, 36, -27)
  1605. SetSizeDelta(self.numLimitIcon.transform, 74 , 58)
  1606. elseif state and state == 21 then--已领取(打勾类型)
  1607. res_name = "con_itemtab_getImg2"
  1608. SetAnchoredPosition(self.numLimitIcon.transform, 68,-10)
  1609. SetSizeDelta(self.numLimitIcon.transform, 30, 30)
  1610. elseif state and state == 22 then --背包提示可使用
  1611. ab_name = "bag_asset"
  1612. res_name = "bag_tips_use"
  1613. SetAnchoredPosition(self.numLimitIcon.transform, 53, -26)
  1614. SetSizeDelta(self.numLimitIcon.transform, 55 , 55)
  1615. elseif state and state == 23 then -- 狂战已领取
  1616. ab_name = "rageWar_asset"
  1617. res_name = "rw_received"
  1618. local scale = self.transform.localScale
  1619. SetSizeDelta(self.numLimitIcon.transform, 65, 63)
  1620. SetAnchoredPosition(self.numLimitIcon.transform, 39, -39)
  1621. elseif state and state == 24 then -- 已穿戴
  1622. res_name = "wear_state_img"
  1623. SetSizeDelta(self.numLimitIcon.transform, 52, 20)
  1624. SetAnchoredPosition(self.numLimitIcon.transform, 56, -73)
  1625. elseif state and state == 25 then -- 可领取
  1626. res_name = "con_itemtab_can_getted"
  1627. SetAnchoredPosition(self.numLimitIcon.transform, 20, -10)
  1628. SetSizeDelta(self.numLimitIcon.transform, 81, 37)
  1629. elseif state and state == 27 then -- 源樱之礼 珍稀
  1630. ab_name = "sakuraGift_asset"
  1631. res_name = "sg_tag_rare"
  1632. SetSizeDelta(self.numLimitIcon.transform, 48, 25)
  1633. SetAnchoredPosition(self.numLimitIcon.transform, 25, -13)
  1634. elseif state and state == 28 then -- 源樱之礼 极品
  1635. ab_name = "sakuraGift_asset"
  1636. res_name = "sg_tag_best"
  1637. SetSizeDelta(self.numLimitIcon.transform, 48, 25)
  1638. SetAnchoredPosition(self.numLimitIcon.transform, 25, -13)
  1639. elseif state and state == 29 then -- 大的可上架角标,背包与出售大厅使用
  1640. res_name = "com_market_2"
  1641. SetAnchoredPosition(self.numLimitIcon.transform, 53, -26)
  1642. SetSizeDelta(self.numLimitIcon.transform, 55 , 55)
  1643. elseif state and state == 30 then -- 羁绊预告激活奖励角标
  1644. ab_name = "mate_asset"
  1645. res_name = "mate_item_tag"
  1646. SetSizeDelta(self.numLimitIcon.transform, 87, 30)
  1647. SetAnchoredPosition(self.numLimitIcon.transform, 38, -5)
  1648. elseif state and state == 31 then -- 已经领(圆形的)
  1649. res_name = "con_itemtab_getted_circle"
  1650. SetSizeDelta(self.numLimitIcon.transform, 87, 87)
  1651. SetAnchoredPosition(self.numLimitIcon.transform, 39, -39)
  1652. elseif state and state == 32 then --绝版
  1653. res_name = "con_itemtab_no_have"
  1654. SetAnchoredPosition(self.numLimitIcon.transform, 20, -2)
  1655. SetSizeDelta(self.numLimitIcon.transform, 67, 42)
  1656. elseif state and state == 33 then --UP提升
  1657. res_name = "con_itemtab_up"
  1658. SetAnchoredPosition(self.numLimitIcon.transform, 33, 0)
  1659. SetSizeDelta(self.numLimitIcon.transform, 90, 31)
  1660. end
  1661. if res_name then
  1662. lua_resM:setImageSprite(self,self.numLimitIcon_img,ab_name,res_name, false)
  1663. end
  1664. end
  1665. end
  1666. --force_max_show_num:数量小于这个数时不显示数字,使用这个参数需要传前面的bool为false
  1667. function AwardItem:SetNumForceShow( bool ,force_max_show_num)
  1668. self.force_show_num = bool
  1669. self.force_max_show_num = force_max_show_num or nil
  1670. self:ChangeCountVisible(self.show_count,self.goods_num)
  1671. end--是否强制显示数字
  1672. function AwardItem:SetOpenShowGetWay( bool )
  1673. self.open_show_get_way = bool
  1674. end
  1675. function AwardItem:SetShopBuyNum( num )
  1676. self.shop_buy_num = num or 1
  1677. end
  1678. function AwardItem:IsNeedShowSeries( bool )
  1679. self.show_equip_series = bool
  1680. end
  1681. function AwardItem:GetSize( )
  1682. return self.width, self.height
  1683. end
  1684. --设置限时时间
  1685. function AwardItem:SetExpireTime( expire_data )
  1686. self.expire_time = expire_data.expire_time
  1687. self.expire_type = expire_data.expire_type
  1688. end
  1689. --设置打开物品tips时强制展示限时状态
  1690. function AwardItem:SetForceShowLimitTipView(bool)
  1691. self.force_show_limit_tip_view = bool
  1692. end
  1693. --执行下坠动画
  1694. function AwardItem:PlayFallingVibrationAction( info )
  1695. if self.is_loaded then
  1696. cc.ActionManager:getInstance():removeAllActionsFromTarget(self.transform)
  1697. local function end_call_func( ... )--抖动底座
  1698. end
  1699. local data = {
  1700. transform = self.transform,--节点
  1701. delay_time = info.delay_time or 1.5,--时间
  1702. init_scale = info.init_scale or 2,--初始大小
  1703. end_scale = info.end_scale or 1,--结束大小
  1704. start_pos = info.start_pos or {x = 0,y = 0},--初始坐标
  1705. end_pos = info.end_pos or {x = 0,y = 0},--结束坐标
  1706. init_alpha = info.init_alpha or 0,--初始透明度
  1707. end_alpha = info.end_alpha or 1,--终点透明度
  1708. end_call_func = end_call_func,
  1709. }
  1710. local action = cc.FallingVibration.New(data)
  1711. cc.ActionManager:getInstance():addAction(action, self.transform)
  1712. end
  1713. end