源战役客户端
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.

119 line
4.6 KiB

  1. ChildMainTaskItem = ChildMainTaskItem or BaseClass(BaseItem)
  2. function ChildMainTaskItem:__init()
  3. self.base_file = "child"
  4. self.layout_file = "ChildMainTaskItem"
  5. self.is_delay_callback = true
  6. -- self.use_local_view = true
  7. self.model = ChildModel:GetInstance()
  8. self:Load()
  9. end
  10. function ChildMainTaskItem:Load_callback()
  11. self.nodes = {
  12. "bg/txt_desc:tmp","bg/image_had:obj","bg/image_go:obj:img","bg/image_get:obj:img",
  13. "bg/image_go/lb_image_go:tmp", "bg/image_get/lb_image_get:tmp",
  14. "bg:obj","bg/red_dot:obj",
  15. "bg/txt_num:tmp", "bg/fillImg:img", "bg/progressText:tmp",
  16. "bg/awardCon",
  17. }
  18. self:GetChildren(self.nodes)
  19. self:InitEvent()
  20. if self.need_refreshData then
  21. self:SetData(self.data)
  22. end
  23. end
  24. function ChildMainTaskItem:InitEvent()
  25. local function onBtnClickHandler(target, x, y)
  26. if self.model:IsHeartValueMax() then
  27. Message.show("同心值已满,请尽快领取奖励!")
  28. return
  29. end
  30. if target == self.image_get_obj then
  31. if self.data.task_state == 1 then
  32. -- Message.show("完成任务:",self.data.task_id)
  33. self.model:Fire(ChildConst.CHILD_REQ_EVENT, 16506,1,self.data.task_id,0)
  34. elseif self.data.task_state == 2 then
  35. Message.show("已领取")
  36. else
  37. end
  38. elseif target == self.image_go_obj then
  39. local list = stringtotable(self.data.client_skip)
  40. local winId = tonumber(list[1][1])
  41. local subId = tonumber(list[1][2])
  42. OpenFun.Open(winId, subId)
  43. end
  44. end
  45. AddClickEvent(self.image_get_obj, onBtnClickHandler)
  46. AddClickEvent(self.image_go_obj, onBtnClickHandler)
  47. end
  48. function ChildMainTaskItem:SetData(data)
  49. self.data = data
  50. if self.is_loaded then
  51. if not data then return end
  52. local color = "#18a426"
  53. if data.progress < data.progress_max then
  54. color = "#ff373c"
  55. end
  56. -- 描述
  57. self.txt_desc_tmp.text = string.format("%s (<color=%s>%s</color>/%s)",Trim(data.desc),color,data.progress,data.progress_max) or ""
  58. --同心值
  59. --self.txt_num_tmp.text = data.reward_exp or 0
  60. self.main_reward_item = self.main_reward_item or UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.awardCon)
  61. self.main_reward_item:SetPosition(0, 0)
  62. self.main_reward_item:SetItemSize(62, 62)
  63. self.main_reward_item:SetVisible(true)
  64. local reward = stringtotable(self.model:GetConfigChildKvVal("heart_feed"))[1]
  65. local goods_Id, lock = GoodsModel:getInstance():GetMappingTypeId(0, reward[1])
  66. local goodVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(goods_Id)
  67. if goodVo then
  68. self.main_reward_item:SetData(goodVo.type_id, data.reward_exp or 0, goodVo.color, 0, lock,true,nil)
  69. end
  70. -- 进度
  71. self.progressText_tmp.text = string.format("(<color=%s>%s</color>/%s)", ColorUtil.WHITE_DARK, data.progress,data.progress_max)
  72. self.fillImg_img.fillAmount = data.progress / data.progress_max
  73. -- 按钮状态
  74. self.image_get_obj:SetActive(false)
  75. self.image_had_obj:SetActive(false)
  76. self.image_go_obj:SetActive(false)
  77. self.red_dot_obj:SetActive(false)
  78. --0-未完成 1-已完成未领取 2-已领取
  79. if data.task_state == 1 then
  80. self.image_get_obj:SetActive(true) --未领取
  81. self.red_dot_obj:SetActive(not self.model:IsHeartValueMax())
  82. elseif data.task_state == 2 then
  83. self.image_had_obj:SetActive(true) --已完成
  84. else
  85. self.image_go_obj:SetActive(true) --已领取未完成
  86. end
  87. if self.model:IsHeartValueMax() then
  88. SetImageGray(self.image_get_img, true)
  89. SetTMPSharedMaterial(self.lb_image_get_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  90. SetImageGray(self.image_go_img, true)
  91. SetTMPSharedMaterial(self.lb_image_go_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  92. else
  93. SetImageGray(self.image_get_img, false)
  94. SetTMPSharedMaterial(self.lb_image_get_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
  95. SetImageGray(self.image_go_img, false)
  96. SetTMPSharedMaterial(self.lb_image_go_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkBlueBtn)
  97. end
  98. else
  99. self.need_refreshData = true
  100. end
  101. end
  102. function ChildMainTaskItem:__delete( )
  103. if self.main_reward_item then
  104. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.main_reward_item)
  105. self.main_reward_item = nil
  106. end
  107. end