源战役客户端
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

221 рядки
7.7 KiB

1 місяць тому
  1. DeityEquipTips = DeityEquipTips or BaseClass(WingInfoTips)
  2. local DeityEquipTips = DeityEquipTips
  3. local Trim = Trim
  4. local SetAnchoredPosition = SetAnchoredPosition
  5. function DeityEquipTips:Open(type_id, x, y, goodsID,goods_vo)
  6. if not Config.Deityprinciple[type_id] then
  7. LogError("DeityEquipTips:Open() 不存在的法则类型, type_id = "..type_id)
  8. self:Close()
  9. return
  10. end
  11. self.type_id = type_id
  12. self.goods_id = goodsID
  13. self.pos_x = x
  14. self.pos_y = y
  15. self.goods_vo = goods_vo
  16. BaseView.Open(self)
  17. end
  18. function DeityEquipTips:LoadSuccess()
  19. EquipToolTips.LoadSuccess(self)
  20. self.normal_tra = self:GetChild("layout/normal")
  21. self.normal_tra.anchoredPosition = Vector2(0,0)
  22. self:GetChild("layout/normal/career_conta/careerName"):GetComponent("Text").text = "部位:"
  23. self:GetChild("layout/normal/ScrollView/Viewport/Content/line2/Text"):GetComponent("Text").text = "法则神力"
  24. self.skill_desc = self:GetChild("layout/normal/ScrollView/Viewport/Content/addStrengthProp"):GetComponent("Text")
  25. self.ScrollView:GetComponent("ScrollRect").enabled = false
  26. SetSizeDelta(self.transform,ScreenWidth,ScreenHeight)
  27. self.layout.gameObject:SetActive(false)
  28. end
  29. function DeityEquipTips:InitEvent()
  30. local function onBtnClickHandler(target)
  31. if target == self.composeBtn then
  32. GlobalEventSystem:Fire(EventName.OPEN_COMPOSE_VIEW)
  33. self:Close()
  34. elseif target == self.wearBtn then
  35. DeityModel:getInstance():OutsideRequireEquip(self.goods_id)
  36. self:Close()
  37. elseif target == self.takeBtn then
  38. if self.goods_vo.pos == GoodsModel.GOODS_POS_TYPE.hunt_store then
  39. TreasureHuntModel:getInstance():Fire(TreasureHuntModel.REQUEST_PROTO, 41605, self.goods_vo.goods_id)
  40. self:Close()
  41. else
  42. GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT,15003,self.goods_vo.goods_id,GoodsModel.GOODS_POS_TYPE.warehouse,GoodsModel.GOODS_POS_TYPE.bag)
  43. self:Close()
  44. end
  45. end
  46. end
  47. AddClickEvent(self.composeBtn, onBtnClickHandler, 2)
  48. AddClickEvent(self.wearBtn, onBtnClickHandler, 2)
  49. AddClickEvent(self.takeBtn, onBtnClickHandler, 2)
  50. end
  51. function DeityEquipTips:SetData()
  52. local vo = Config.Deityprinciple[self.type_id]
  53. local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.type_id)
  54. if vo == nil or basic == nil then
  55. LogError("DeityEquipTips:SetData() 数据错误, vo = "..tostring(wing_vo)..", basic = "..tostring(basic)..", type_id = "..self.type_id)
  56. return
  57. end
  58. -- 名字
  59. self.nameText.text = "<color="..WordManager.GetGoodsColor(basic.color)..">"..basic.goods_name.."</color>"
  60. --部位
  61. local part = tonumber(vo.place)
  62. local part_config = Config.Deityplace[part]
  63. local part_name = part_config and Trim(part_config.name) or ""
  64. self.career.text = part_name
  65. -- 等阶
  66. local step_str = vo.rank..""
  67. self.step_num.text = "<color="..WordManager.GetGoodsColor(basic.color)..">" .. step_str .. "</color>"
  68. -- 等级
  69. color_str = ColorUtil.WHITE
  70. if basic.level > RoleManager.Instance.mainRoleInfo.level then
  71. color_str = ColorUtil.RED
  72. end
  73. self.level.text = "<color="..color_str..">" .. basic.level .. "</color>"
  74. --评分
  75. self.equip_score.text = vo.combat
  76. lua_resM:setImageSprite(self, self.step_bg, "uiComponent_asset", "tsui_pj_"..basic.color)
  77. self.icon_item:SetData(basic)
  78. local base_pro = ErlangParser:GetInstance():Parse(vo.attr)
  79. self:SetPropertyAndSkill(base_pro,vo.skill_id)
  80. self.composite_score.text = GetFighting(base_pro)
  81. self:SetBtns()
  82. self:AdjustLayoutPos()
  83. end
  84. --按钮显示
  85. function DeityEquipTips:SetBtns()
  86. for i,v in ipairs(self.btn_list) do
  87. v:SetActive(false)
  88. end
  89. local btn_list = {}
  90. if self.goods_vo and self.goods_vo.pos == GoodsModel.GOODS_POS_TYPE.hunt_store then
  91. btn_list = {self.takeBtn}
  92. else
  93. table.insert(btn_list, self.wearBtn)
  94. table.insert(btn_list, self.composeBtn)
  95. end
  96. for i,v in ipairs(btn_list) do
  97. v:SetActive(true)
  98. end
  99. self.btn_conta.sizeDelta = Vector2(self.btn_conta.sizeDelta.x, #btn_list * 53 + 20)
  100. end
  101. --设置基础属性
  102. function DeityEquipTips:SetPropertyAndSkill(base_pro,skill_id)
  103. self.addPro.gameObject:SetActive(false)
  104. self.line3.gameObject:SetActive(false)
  105. self.line4.gameObject:SetActive(false)
  106. self.line5.gameObject:SetActive(false)
  107. self.line6.gameObject:SetActive(false)
  108. self.line7.gameObject:SetActive(false)
  109. self.line8.gameObject:SetActive(false)
  110. self.line9.gameObject:SetActive(false)
  111. self.line10.gameObject:SetActive(false)
  112. self.strengthAdd.gameObject:SetActive(false)
  113. self.washName.gameObject:SetActive(false)
  114. self.washPro.gameObject:SetActive(false)
  115. self.spiritName.gameObject:SetActive(false)
  116. self.spiritPro.gameObject:SetActive(false)
  117. self.stone_conta.gameObject:SetActive(false)
  118. self.suitNum.gameObject:SetActive(false)
  119. self.suitName.gameObject:SetActive(false)
  120. self.suitPro.gameObject:SetActive(false)
  121. self.suitNameList.gameObject:SetActive(false)
  122. self.wake_baseName.gameObject:SetActive(false)
  123. self.wake_basePro.gameObject:SetActive(false)
  124. self.wake_baseAdd.gameObject:SetActive(false)
  125. self.wake_strenName.gameObject:SetActive(false)
  126. self.wake_strenPro.gameObject:SetActive(false)
  127. self.wake_strenAdd.gameObject:SetActive(false)
  128. self.wake_suitNum.gameObject:SetActive(false)
  129. self.wake_suitName.gameObject:SetActive(false)
  130. self.wake_suitPro.gameObject:SetActive(false)
  131. self.wake_suitAdd.gameObject:SetActive(false)
  132. self.magic_skillName.gameObject:SetActive(false)
  133. self.magic_skillLevel.gameObject:SetActive(false)
  134. self.expired_label.gameObject:SetActive(false)
  135. self.descCon.gameObject:SetActive(false)
  136. self.addName.gameObject:SetActive(false)
  137. local name_str = ""
  138. local pro_str = ""
  139. local color
  140. local size = #base_pro
  141. for i,v in ipairs(base_pro) do
  142. color = ColorUtil:GetColor(tonumber(v[3]))
  143. name_str = name_str.."<color="..color..">"..WordManager:GetProperties(tonumber(v[1])).."</color>"
  144. pro_str = pro_str.."<color="..color..">".."+"..WordManager:GetPropertyValue(tonumber(v[1]),tonumber(v[2])).."</color>"
  145. if i < size then
  146. name_str = name_str.."\n"
  147. pro_str = pro_str.."\n"
  148. end
  149. end
  150. self.baseName.text = name_str
  151. self.basePro.text = pro_str
  152. SetSizeDelta(self.baseName.transform, self.baseName.transform.sizeDelta.x, 25 * size)
  153. SetSizeDelta(self.basePro.transform, self.basePro.transform.sizeDelta.x, 25 * size)
  154. local equip_cfg = Config.Deityprinciple[self.type_id]
  155. local skill_desc,skill_name = SkillManager:getInstance():GetSkillFromConfigByIdAndLevel(skill_id, equip_cfg.rank)
  156. self.skill_desc.text = "<color=#A4663CFF>"..Trim(skill_desc).."</color>"
  157. local skill_desc_h = 75
  158. SetAnchoredPosition(self.skill_desc.transform, 25, -25 * size - 100)
  159. SetSizeDelta(self.skill_desc.transform, 344, skill_desc_h)
  160. SetAnchoredPosition(self.line2, 0, -25 * size - 52)
  161. SetSizeDelta(self.bg, self.bg.sizeDelta.x, 315 + 25 * size + skill_desc_h)
  162. self.btn_conta.anchoredPosition = Vector2(self.btn_conta.anchoredPosition.x, -205 - 25 * size)
  163. setTimeout(function ()
  164. if not self._use_delete_method then
  165. local skill_desc_h = self.skill_desc.preferredHeight
  166. SetSizeDelta(self.skill_desc.transform, 344, skill_desc_h)
  167. SetSizeDelta(self.bg, self.bg.sizeDelta.x, 315 + 25 * size + skill_desc_h)
  168. self.btn_conta.anchoredPosition = Vector2(self.btn_conta.anchoredPosition.x, -205 - 25 * size - skill_desc_h)
  169. end
  170. end,0)
  171. end
  172. function DeityEquipTips:AdjustLayoutPos()
  173. if self.pos_x and self.pos_y then
  174. local layout_width = self.bg.sizeDelta.x + self.btn_conta.sizeDelta.x
  175. local layout_height = self.bg.sizeDelta.y
  176. local x,y = ScreenToViewportPoint(self.pos_x,self.pos_y)
  177. local iphone_x_offset = math.max(ClientConfig.iphone_x_offset_left,ClientConfig.iphone_x_offset_right)
  178. if x + layout_width + 50 + iphone_x_offset * 2 > SrcScreenWidth then
  179. x = SrcScreenWidth - layout_width - 90 - iphone_x_offset * 2
  180. end
  181. if y < layout_height + 50 then
  182. y = layout_height + 50
  183. end
  184. SetAnchoredPosition(self.layout, x,y - ScreenHeight)
  185. self.layout.gameObject:SetActive(true)
  186. end
  187. end