源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

120 行
4.2 KiB

  1. -- <*
  2. -- @Author: Saber
  3. -- @Description: 圣物装备分解建议tip节点
  4. -- *>
  5. PsionicArmorResolveTipItem = PsionicArmorResolveTipItem or BaseClass(BaseItem)
  6. local PsionicArmorResolveTipItem = PsionicArmorResolveTipItem
  7. function PsionicArmorResolveTipItem:__init(parent_wnd,prefab_asset,layer_name)
  8. self.base_file = "psionic"
  9. self.layout_file = "PsionicArmorResolveTipItem"
  10. self.parent_wnd = parent_wnd
  11. self.layer_name = layer_name
  12. self.height = 0
  13. self.cur_star_list = {}
  14. self.model = PsionicModel:getInstance()
  15. self.goods_model = GoodsModel:getInstance()
  16. self:Load()
  17. end
  18. function PsionicArmorResolveTipItem:Load_callback()
  19. local nodes = {
  20. -- 装备信息
  21. "equip_node:obj",
  22. "equip_node/equip_name:tmp",
  23. "equip_node/star_con",
  24. -- 突破信息
  25. "break_cond_lb:tmp", "line:obj",
  26. -- 其他tips
  27. "resolve_tip:tmp",
  28. }
  29. self:GetChildren(nodes)
  30. self:AddEvents()
  31. if self.need_refreshData then
  32. self:UpdateView()
  33. end
  34. end
  35. function PsionicArmorResolveTipItem:AddEvents( )
  36. end
  37. function PsionicArmorResolveTipItem:SetData( data )
  38. self.data = data
  39. if self.is_loaded then
  40. self.need_refreshData = false
  41. self:UpdateView()
  42. else
  43. self.need_refreshData = true
  44. end
  45. return self.height
  46. end
  47. function PsionicArmorResolveTipItem:InitItemNodes( )
  48. if self.equip_node_obj.activeSelf then
  49. self.equip_node_obj:SetActive(false)
  50. end
  51. -- 调整节点位置 --
  52. SetAnchoredPositionX(self.equip_node, -5)
  53. SetAnchoredPositionX(self.break_cond_lb, 48)
  54. SetAnchoredPositionX(self.resolve_tip, 20)
  55. self.break_cond_lb_tmp.text = ""
  56. self.resolve_tip_tmp.text = ""
  57. self.height = 0
  58. end
  59. function PsionicArmorResolveTipItem:UpdateView( )
  60. self:InitItemNodes()
  61. if self.data.equip_data then -- 装备名称和星数节点
  62. self.equip_node_obj:SetActive(true)
  63. local cur_star = 0
  64. if self.data.equip_data.goods_vo then
  65. self.equip_name_tmp.text = self.goods_model:getGoodsName(self.data.equip_data.goods_vo.type_id, true)
  66. cur_star = self.data.equip_data.goods_vo.star
  67. else
  68. self.equip_name_tmp.text = string.format("未穿戴%s", PsionicConst.EquipSlotName[self.data.equip_data.slot])
  69. end
  70. -- 创建星星
  71. for k, v in ipairs(self.cur_star_list) do
  72. v.gameObject:SetActive(false)
  73. end
  74. for i = 1, cur_star do
  75. self.cur_star_list[i] = self.cur_star_list[i] or UiFactory.createChild(self.star_con, UIType.Image2, "star" .. i)
  76. SetAnchoredPosition(self.cur_star_list[i].transform, (i-1) * 25 - 20, 0)
  77. self.cur_star_list[i].gameObject:SetActive(true)
  78. lua_resM:setImageSprite(self, self.cur_star_list[i]:GetComponent("Image"), "psionic_asset", "ps_star_1", true)
  79. end
  80. self.height = 35
  81. elseif self.data.break_cond then -- 装备突破需求节点
  82. local pos_name = PsionicConst.EquipSlotName[self.data.break_cond.slot]
  83. local cost_equip_cfg = self.data.break_cond.break_cfg
  84. if cost_equip_cfg then
  85. local cost_str = "突破需求 "
  86. for k, v in ipairs(cost_equip_cfg) do
  87. cost_str = cost_str .. string.format("%sx%s\n ",
  88. GoodsModel:getInstance():getGoodsName(v[2], true, true), v[3])
  89. end
  90. self.break_cond_lb_tmp.text = cost_str
  91. -- self.break_cond_lb_tmp.text = string.format("突破需求 <color=%s>%s%s灵装x%s</color>",
  92. -- WordManager.GetGoodsColor(cost_equip_cfg[1]), ColorUtil:getColorName(cost_equip_cfg[1]),
  93. -- pos_name, cost_equip_cfg[2])
  94. else
  95. self.break_cond_lb_tmp.text = string.format("请先穿戴一件%s装备", pos_name)
  96. end
  97. self.line_obj:SetActive(self.data.break_cond.show_line)
  98. self.height = self.break_cond_lb_tmp.preferredHeight < 35 and 35 or self.break_cond_lb_tmp.preferredHeight
  99. elseif self.data.tip_str then -- 其他提示
  100. self.resolve_tip_tmp.text = self.data.tip_str
  101. self.height = self.resolve_tip_tmp.preferredHeight + 17
  102. end
  103. end
  104. function PsionicArmorResolveTipItem:__delete( )
  105. end