源战役客户端
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

277 righe
8.3 KiB

4 settimane fa
  1. RankEquipItem = RankEquipItem or BaseClass(BaseItem)
  2. function RankEquipItem:__init(parent_wnd, prefab_asset, layer_name)
  3. self.base_file = "rank"
  4. self.layout_file = "RankEquipItem"
  5. self.is_delay_callback = true
  6. self.model = EquipModel:getInstance()
  7. self.mainVo = RoleManager.Instance.mainRoleInfo
  8. self.only_show_strength_tag = false --是否仅显示可强化标识
  9. self.pos_type = false
  10. self.pos_type_visible = false
  11. self.bg_alpha = 1
  12. --self.use_local_view = true
  13. self:Load()
  14. end
  15. function RankEquipItem:Load_callback()
  16. self.equip_conta,self.canStren = GetChildTransforms(self.transform,
  17. {
  18. "equip_conta","canStren"
  19. })
  20. self.strengthText,self.stren = GetChildTexts (self.transform,
  21. {
  22. "strengthText","stren"
  23. })
  24. self.default_conta,self.red_dot,self.selectBg,self.canStrenObj = GetChildGameObjects (self.transform,
  25. {
  26. "default_conta","red_dot","selectBg","canStren"
  27. })
  28. self.pos_type_img, self.default_conta_img = GetChildImages (self.transform,
  29. {
  30. "pos_type", "default_conta"
  31. })
  32. self.stren.text = ""
  33. self.icon_item = AwardItem.New(self.equip_conta)
  34. -- self.icon_item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.equip_conta)
  35. self.icon_item:SetItemSize(88,88)
  36. -- self.icon_item:SetAnchoredPosition(0,0)
  37. if self.style_cache then
  38. self:SetEquipStyle(self.style_cache)
  39. self.style_cache = nil
  40. end
  41. if self.need_refreshData then
  42. self:SetData(self.data)
  43. self:SetPosType(self.pos_type, self.pos_type_visible)
  44. self:SetBgAlpha(self.bg_alpha)
  45. end
  46. if self.need_set_ring_show then
  47. self:SetRingShow(self.mate_stage,self.mate_star)
  48. end
  49. self.icon_item.ClickCallFun = function (target,target2,x,y) --覆盖AwardItem 的点击方法
  50. self:ClickHandler(target2,x,y)
  51. end
  52. self:InitEvent()
  53. end
  54. function RankEquipItem:InitEvent()
  55. local function click_fun(target,x,y)
  56. self:ClickHandler(target,x,y)
  57. end
  58. AddClickEvent(self.gameObject, click_fun)
  59. local select_fun = function (goods_vo)
  60. if self.data and goods_vo then
  61. if self.data.goods_id == goods_vo.goods_id then
  62. self:SetSelect(true)
  63. else
  64. self:SetSelect(false)
  65. end
  66. end
  67. end
  68. self.event_id = self.model:Bind(EquipModel.EQUIP_ITEM_BE_CLICK, select_fun)
  69. local change_dynamic = function (goods_id)
  70. if self.data then
  71. if self.data.goods_id == goods_id then
  72. self:SetData(self.data, self.only_show_strength_tag)
  73. end
  74. end
  75. end
  76. self.dynamic_event_id = GlobalEventSystem:Bind(GoodsModel.CHANGE_GOODS_DYNAMIC,change_dynamic)
  77. end
  78. function RankEquipItem:ClickHandler(target,x,y)
  79. if self.data then
  80. UIToolTipMgr:getInstance():AppendEquipTips(self.data.type_id, x, y, self.data, nil,nil,nil,"rank_equip", true)
  81. else
  82. if self.is_open_ring then
  83. UIToolTipMgr:getInstance():AppendEquipTips(self.ring_equip_id, x, y, nil, nil,nil,nil,"rank_equip")
  84. end
  85. end
  86. end
  87. function RankEquipItem:SetData(data, only_show_strength_tag, role_id)
  88. self.data = data
  89. self.role_id = role_id or self.role_id
  90. self.only_show_strength_tag = only_show_strength_tag
  91. if self.is_loaded then
  92. self.need_refreshData = false
  93. --设置装备
  94. local callback = function (dynamic)
  95. if self.data and self.data.goods_id == dynamic.goods_id then
  96. if self.gameObject == nil then return end
  97. if self.data.type_id ~= dynamic.type_id then
  98. self.data.type_id = dynamic.type_id
  99. GoodsModel:getInstance():SetBaseInfo(self.data)
  100. end
  101. self.dynamic = dynamic
  102. self:SetDynamic(self.dynamic)
  103. self:ShowCanStrength(self.data.type_id)
  104. if self.icon_item then
  105. self.icon_item:SetVisible(true)
  106. local stren_data = EquipModel:getInstance():GetBagEquipAwaraItemInfo(self.data)
  107. stren_data.equip_key = "RankEquipItem"
  108. stren_data.is_find = true
  109. local hide_color_effect = false
  110. if self.pos_type == EquipModel.EquipType.Guard or self.pos_type == EquipModel.EquipType.Fetter then
  111. hide_color_effect = true
  112. end
  113. -- self.icon_item:SetData(self.data.type_id, self.data.goods_num, self.dynamic.color,stren_data,nil,nil,nil,nil,nil,nil,nil,true)
  114. self.icon_item:SetData(self.data.type_id, self.data.goods_num, self.dynamic.color,stren_data,nil,nil,nil,nil,nil,hide_color_effect)
  115. --是否过期装备
  116. if self.data.expire_time and self.data.expire_time~=0 and self.data.expire_time - TimeUtil:getServerTime() <= 0 then
  117. self.icon_item:SetExpiredVisible(true)
  118. else
  119. self.icon_item:SetExpiredVisible(false)
  120. end
  121. end
  122. end
  123. end
  124. callback(self.data)
  125. else
  126. self.need_refreshData = true
  127. end
  128. end
  129. --设置一生一世的信息
  130. function RankEquipItem:SetRingShow(mate_stage,mate_star)
  131. self.mate_stage = mate_stage
  132. self.mate_star = mate_star
  133. if self.is_loaded then
  134. self.need_set_ring_show = false
  135. local conf = MateModel:GetInstance():GetShipConf(self.mate_stage, self.mate_star)
  136. local goods_id = conf and conf.goods_id
  137. if goods_id and goods_id > 0 then
  138. --保存数据做tip显示用
  139. EquipModel:getInstance().mate_show_tool_tip_data = {stage = self.mate_stage, star = self.mate_star}
  140. self.ring_equip_id = goods_id
  141. self.icon_item:SetDataWithMapId(goods_id)
  142. self.icon_item:SetVisible(true)
  143. self.is_open_ring = true
  144. else
  145. self.icon_item:SetVisible(false)
  146. self.is_open_ring = false
  147. end
  148. else
  149. self.need_set_ring_show = true
  150. end
  151. end
  152. --是否显示可强化和镶嵌
  153. function RankEquipItem:ShowCanStrength(type_id)
  154. -- local bool = false
  155. -- local equip_cfg = EquipModel:getInstance():GetEquipmentCfg(type_id)
  156. -- -- print("huangcong:EquipItem [start:176] :", type_id)
  157. -- -- PrintTable(equip_cfg)
  158. -- -- print("huangcong:EquipItem [end]")
  159. -- if equip_cfg then
  160. -- bool = EquipModel:getInstance():GetEquipCanStrengthByPos(equip_cfg.series,equip_cfg.equip_type)
  161. -- end
  162. -- print("huangcong:EquipItem [start:180] :", bool)
  163. -- self.red_dot:SetActive(bool)
  164. -- self:showEffect(bool)
  165. end
  166. function RankEquipItem:SetDynamic(dynamic)
  167. if self.gameObject == nil then return end
  168. if dynamic.stren and dynamic.stren > 0 then
  169. self.stren.text = "+" .. dynamic.stren
  170. else
  171. self.stren.text = ""
  172. end
  173. end
  174. function RankEquipItem:SetEquipStyle(style)
  175. self.equip_style = style
  176. if self.is_loaded and style ~= nil then
  177. local str = WordManager:GetEquipStyleStr(style)
  178. self.stren.text = ""
  179. else
  180. self.style_cache = style
  181. end
  182. end
  183. function RankEquipItem:ClearData()
  184. self.data = nil
  185. if self.icon_item then
  186. self.icon_item:SetVisible(false, false)
  187. end
  188. if self.stren then
  189. self.stren.text = ""
  190. end
  191. end
  192. function RankEquipItem:SetSelect(bool)
  193. self.selectBg:SetActive(bool)
  194. end
  195. function RankEquipItem:showEffect(bool)
  196. if bool then
  197. self.canStrenObj:SetActive(true)
  198. if self.is_bag then
  199. self:AddUIEffect("ui_effect_jineng_jiantou1", self.canStren, self.layer_name, nil, nil, true)
  200. else
  201. self:AddUIEffect("ui_effect_jineng_jiantou1", self.canStren, self.layer_name, nil, nil, true)
  202. end
  203. else
  204. self.canStrenObj:SetActive(false)
  205. self:ClearUIEffect(self.canStren)
  206. end
  207. end
  208. function RankEquipItem:__delete()
  209. if self.event_id then
  210. self.model:UnBind(self.event_id)
  211. self.event_id = nil
  212. end
  213. if self.dynamic_event_id then
  214. GlobalEventSystem:UnBind(self.dynamic_event_id)
  215. self.dynamic_event_id = nil
  216. end
  217. self:ClearUIEffect(self.canStren)
  218. if self.icon_item then
  219. self.icon_item:DeleteMe()
  220. -- self.icon_item:ReleaseObj()
  221. self.icon_item = nil
  222. end
  223. end
  224. function RankEquipItem:SetPosType(pos, b)
  225. self.pos_type = pos
  226. self.pos_type_visible = b
  227. if self.is_loaded then
  228. self.need_refreshData = false
  229. self.default_conta:SetActive(self.pos_type and ((self.pos_type == 11 and self.data == nil) or self.pos_type ~= 11))
  230. if self.pos_type then
  231. lua_resM:setImageSprite(self,self.pos_type_img,"common_asset","com_equip_pos_".. self.pos_type, true)
  232. -- lua_resM:setImageSprite(self,self.default_conta_img,"common_asset",self.pos_type >= 11 and "tyui_pz_9" or "tyui_pz_8", true)
  233. lua_resM:setImageSprite(self,self.default_conta_img,"common_asset","tyui_pz_8", true)
  234. end
  235. self.pos_type_img.gameObject:SetActive(self.pos_type_visible)
  236. else
  237. self.need_refreshData = true
  238. end
  239. end
  240. function RankEquipItem:SetBgAlpha(alpha)
  241. self.bg_alpha = alpha
  242. if self.is_loaded then
  243. self.need_refreshData = false
  244. self.icon_item:SetAlpha(self.bg_alpha)
  245. -- if self.bg_alpha == 0 then
  246. -- self.icon_item:SetVisible(false,true)
  247. -- else
  248. -- self.icon_item:SetVisible(true,true)
  249. -- end
  250. else
  251. self.need_refreshData = true
  252. end
  253. end