源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

151 regels
5.1 KiB

4 weken geleden
  1. EquipExamTaskItem = EquipExamTaskItem or BaseClass(BaseItem)
  2. local EquipExamTaskItem = EquipExamTaskItem
  3. function EquipExamTaskItem:__init()
  4. self.base_file = "equipCollect"
  5. self.layout_file = "EquipExamTaskItem"
  6. self.model = EquipCollectModel:GetInstance()
  7. self.item_list = {}
  8. self:Load()
  9. end
  10. function EquipExamTaskItem:Load_callback()
  11. self.nodes = {
  12. "bg:img","item_con", "btn/btn_text:tmp", "btn:obj:imgex", "name_text:tmp", "finish_image:obj", "btn/btn_red:obj",
  13. }
  14. self:GetChildren(self.nodes)
  15. lua_resM:setImageSprite(self, self.bg_img, "equipCollectOut_asset", "equipexam_task_bg")
  16. self:AddEvents()
  17. if self.need_refreshData then
  18. self:UpdateView()
  19. end
  20. end
  21. function EquipExamTaskItem:AddEvents( )
  22. local function on_click( )
  23. if self.is_finish then
  24. self.model:Fire(EquipCollectConst.REQUEST_SCMD_EVENT, 14512, self.data.task_id)
  25. else
  26. if self.is_not_open then
  27. Message.show("该任务"..self.not_open_str)
  28. else
  29. local jump = stringtotable(self.data.jump)
  30. if TableSize(jump) > 0 then
  31. OpenFun.Open(jump[1][1], jump[1][2])
  32. end
  33. end
  34. end
  35. end
  36. AddClickEvent(self.btn_obj, on_click)
  37. end
  38. function EquipExamTaskItem:UpdateView( )
  39. self.is_finish = false
  40. self.can_receive = false
  41. --判断是否开放
  42. -- local condition_data = stringtotable(self.data.condition)
  43. -- if TableSize(condition_data) > 0 then
  44. -- for i,v in ipairs(condition_data) do
  45. -- if v[1] == "lv" then
  46. -- self.is_not_open = RoleManager.Instance.mainRoleInfo.level < v[2]
  47. -- self.not_open_str = string.format("%s 级开启", v[2])
  48. -- elseif v[1] == "turn" then
  49. -- self.is_not_open = RoleManager.Instance.mainRoleInfo.turn < v[2]
  50. -- self.not_open_str = string.format("%s转开启", ChineseNumber(v[2]))
  51. -- end
  52. -- end
  53. -- else
  54. -- self.is_not_open = false
  55. -- end
  56. self.is_not_open = false--判断取消
  57. if self.server_data then
  58. local color_str = ColorUtil.RED_DARK
  59. if self.server_data.process >= self.data.limit_num then
  60. color_str = ColorUtil.GREEN_DARK
  61. self.is_finish = true
  62. end
  63. local str = string.format("%s(%s/%s)", self.data.desc, HtmlColorTxt(self.server_data.process, color_str), self.data.limit_num)
  64. self.name_text_tmp.text = str
  65. self.can_receive = self.server_data.status == 1
  66. else
  67. local color_str = ColorUtil.RED_DARK
  68. local str = string.format("%s(%s/%s)", self.data.desc, HtmlColorTxt(0, color_str), self.data.limit_num)
  69. self.name_text_tmp.text = str
  70. end
  71. local reward_data = stringtotable(self.data.award)
  72. for i,v in ipairs(self.item_list) do
  73. v:SetVisible(false)
  74. end
  75. for i,v in ipairs(reward_data) do
  76. local item = self.item_list[i]
  77. if not item then
  78. item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.item_con)
  79. item:SetItemSize(62,62)
  80. item:SetPosition((i-1)*65, 0)
  81. self.item_list[i] = item
  82. end
  83. item:SetDataWithMapId(v[2], v[3], v[1])
  84. item:SetVisible(true)
  85. end
  86. self.btn_red_obj:SetActive(self.can_receive and not self.is_not_open)--可以领 并且开放领取 才有红点
  87. self.btn_obj:SetActive(not (self.is_finish and not self.can_receive))--完成了又不能领 那就说明已经领了
  88. self.finish_image_obj:SetActive(self.is_finish and not self.can_receive)
  89. if self.is_finish then
  90. if self.is_not_open then
  91. lua_resM:setImageSprite(self, self.btn_imgex, "alphaCommon_asset", "tyui_btn_3")
  92. self.btn_text_tmp.text = self.not_open_str
  93. SetTMPSharedMaterial(self.btn_text_tmp,ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  94. else
  95. lua_resM:setImageSprite(self, self.btn_imgex, "alphaCommon_asset", "tyui_btn_2")
  96. self.btn_text_tmp.text = "领取"
  97. SetTMPSharedMaterial(self.btn_text_tmp,ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
  98. end
  99. else
  100. local condition_data = stringtotable(self.data.condition)
  101. if TableSize(condition_data) > 0 then
  102. for i,v in ipairs(condition_data) do
  103. if v[1] == "lv" then
  104. self.is_not_open = RoleManager.Instance.mainRoleInfo.level < v[2]
  105. self.not_open_str = string.format("%s 级开启", v[2])
  106. elseif v[1] == "turn" then
  107. self.is_not_open = RoleManager.Instance.mainRoleInfo.turn < v[2]
  108. self.not_open_str = string.format("%s转开启", ChineseNumber(v[2]))
  109. end
  110. end
  111. else
  112. self.is_not_open = false
  113. end
  114. if self.is_not_open then
  115. lua_resM:setImageSprite(self, self.btn_imgex, "alphaCommon_asset", "tyui_btn_3")
  116. self.btn_text_tmp.text = self.not_open_str
  117. SetTMPSharedMaterial(self.btn_text_tmp,ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  118. else
  119. lua_resM:setImageSprite(self, self.btn_imgex, "alphaCommon_asset", "tyui_btn_1")
  120. self.btn_text_tmp.text = "前往"
  121. SetTMPSharedMaterial(self.btn_text_tmp,ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkBlueBtn)
  122. end
  123. end
  124. end
  125. function EquipExamTaskItem:SetData( data,index, server_data )
  126. self.data = data
  127. self.index = index
  128. self.server_data = server_data
  129. if self.is_loaded then
  130. self.need_refreshData = false
  131. self:UpdateView()
  132. else
  133. self.need_refreshData = true
  134. end
  135. end
  136. function EquipExamTaskItem:__delete( )
  137. for i,v in ipairs(self.item_list) do
  138. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, v)
  139. v = nil
  140. end
  141. self.item_list = {}
  142. end