源战役客户端
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

136 linhas
4.6 KiB

  1. -- <*
  2. -- @Author: Saber
  3. -- @Description: 转职系统 转职属性提升和解锁内容信息节点
  4. -- *>
  5. ReinTaskDataItem = ReinTaskDataItem or BaseClass(BaseItem)
  6. local ReinTaskDataItem = ReinTaskDataItem
  7. function ReinTaskDataItem:__init(parent_wnd,prefab_asset,layer_name)
  8. self.base_file = "reincarnation"
  9. self.layout_file = "ReinTaskDataItem"
  10. self.parent_wnd = parent_wnd
  11. self.layer_name = layer_name
  12. self.model = ReincarnationModel:getInstance()
  13. self.height = 0
  14. self.skill_item = {}
  15. self.unlock_item = {}
  16. self:Load()
  17. end
  18. function ReinTaskDataItem:Load_callback()
  19. local nodes = {
  20. -- 标题
  21. "title:obj", "title/title_lb:tmp",
  22. -- 属性容器
  23. "attr_con:obj",
  24. "attr_con/attr_name1:tmp",
  25. "attr_con/attr_name2:tmp",
  26. "attr_con/attr_val1:tmp",
  27. "attr_con/attr_val2:tmp",
  28. -- 解锁容器
  29. "skill_con:obj", "unlock_con:obj",
  30. }
  31. self:GetChildren(nodes)
  32. self:AddEvents()
  33. if self.need_refreshData then
  34. self:UpdateView()
  35. end
  36. end
  37. function ReinTaskDataItem:AddEvents( )
  38. end
  39. function ReinTaskDataItem:SetData( data )
  40. self.data = data
  41. if self.is_loaded then
  42. self.need_refreshData = false
  43. self:UpdateView()
  44. else
  45. self.need_refreshData = true
  46. end
  47. return self.height
  48. end
  49. function ReinTaskDataItem:InitNodes( )
  50. if self.title_obj.activeSelf then
  51. self.title_obj:SetActive(false)
  52. end
  53. if self.attr_con_obj.activeSelf then
  54. self.attr_con_obj:SetActive(false)
  55. end
  56. if self.skill_con_obj.activeSelf then
  57. self.skill_con_obj:SetActive(false)
  58. for k, v in pairs(self.skill_item) do
  59. v:SetVisible(false)
  60. end
  61. end
  62. if self.unlock_con_obj.activeSelf then
  63. self.unlock_con_obj:SetActive(false)
  64. for k, v in pairs(self.unlock_item) do
  65. v:SetVisible(false)
  66. end
  67. end
  68. end
  69. function ReinTaskDataItem:UpdateView( )
  70. self:InitNodes()
  71. if self.data then
  72. if self.data.title then -- 标题
  73. self.title_obj:SetActive(true)
  74. self.title_lb_tmp.text = self.data.title
  75. self.height = 36
  76. elseif self.data.attr1 then -- 存在属性词条
  77. self.attr_con_obj:SetActive(true)
  78. self.attr_name1_tmp.text = WordManager:GetProperties(self.data.attr1[1])
  79. self.attr_val1_tmp.text = "+"..WordManager:GetPropertyValue(self.data.attr1[1], self.data.attr1[2])
  80. if self.data.attr2 then
  81. self.attr_name2_tmp.text = WordManager:GetProperties(self.data.attr2[1])
  82. self.attr_val2_tmp.text = "+"..WordManager:GetPropertyValue(self.data.attr2[1], self.data.attr2[2])
  83. end
  84. self.height = self.data.is_last and 47 or 28
  85. elseif self.data.skill_data then -- 技能展示
  86. self.skill_con_obj:SetActive(true)
  87. local item_num = #self.data.skill_data
  88. item_num = item_num > 4 and 4 or item_num
  89. local offset_x = (368 - 80 * item_num) * 0.5
  90. for k, v in ipairs(self.data.skill_data) do
  91. if k > item_num then break end
  92. self.skill_item[k] = self.skill_item[k] or ReinTaskSkillItem.New(self.skill_con)
  93. self.skill_item[k]:SetAnchoredPosition((k - 1) * 80 + offset_x, 0)
  94. self.skill_item[k]:SetVisible(true)
  95. self.skill_item[k]:SetData(v.skill_data)
  96. end
  97. self.height = 92
  98. elseif self.data.equip_data then -- 装备代数
  99. self.unlock_con_obj:SetActive(true)
  100. local item_num = #self.data.equip_data
  101. item_num = item_num > 4 and 4 or item_num
  102. local offset_x = (368 - 74 * item_num) * 0.5
  103. for k, v in ipairs(self.data.equip_data) do
  104. if k > item_num then break end
  105. self.unlock_item[k] = self.unlock_item[k] or UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.unlock_con)
  106. self.unlock_item[k]:SetAnchoredPosition((k - 1) * 74 + offset_x, 0)
  107. self.unlock_item[k]:SetItemSize(62, 62)
  108. self.unlock_item[k]:SetVisible(true)
  109. self.unlock_item[k]:SetData(v.equip_data)
  110. end
  111. self.height = 80
  112. end
  113. end
  114. end
  115. function ReinTaskDataItem:__delete( )
  116. for k, v in pairs(self.skill_item) do
  117. v:DeleteMe()
  118. v = nil
  119. end
  120. self.skill_item = {}
  121. for k, v in pairs(self.unlock_item) do
  122. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, v)
  123. end
  124. self.unlock_item = {}
  125. end