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

113 lines
3.4 KiB

  1. ChildHeartRewardItem = ChildHeartRewardItem or BaseClass(BaseItem)
  2. local ChildHeartRewardItem = ChildHeartRewardItem
  3. function ChildHeartRewardItem:__init()
  4. self.base_file = "child"
  5. self.layout_file = "ChildHeartRewardItem"
  6. self.model = ChildModel:getInstance()
  7. self:Load()
  8. end
  9. function ChildHeartRewardItem:Load_callback()
  10. self.nodes = {
  11. "heartValue:tmp", "hasGetImg:obj", "canGetImg:obj", "awardCon",
  12. }
  13. self:GetChildren(self.nodes)
  14. self:AddEvents()
  15. self:UpdateBaseView( )
  16. if self.need_refreshData then
  17. self:UpdateView()
  18. end
  19. end
  20. function ChildHeartRewardItem:AddEvents( )
  21. local on_click = function ( click_obj )
  22. if self.canGetImg_obj == click_obj then
  23. if self.click_callback and self.data.reward_id then
  24. self.click_callback(self.data.reward_id)
  25. end
  26. end
  27. end
  28. AddClickEvent(self.canGetImg_obj, on_click)
  29. end
  30. function ChildHeartRewardItem:UpdateBaseView( )
  31. end
  32. function ChildHeartRewardItem:UpdateView( )
  33. if self.data then
  34. local data = self.data
  35. self.heartValue_tmp.text = data.need_exp
  36. self.is_last_reward = self.model:GetMaxHeartValue( ) == data.need_exp
  37. if self.is_last_reward then
  38. self.image_item = {}
  39. self.image_item.gameObject = UiFactory.createChild(self.awardCon, UIType.Image)
  40. self.image_item.transform = self.image_item.gameObject.transform
  41. self.image_item.img = self.image_item.gameObject:GetComponent("Image")
  42. lua_resM:setImageSprite(self, self.image_item.img, "child_asset", "child_heart_baby_icon", true)
  43. -- SetSizeDelta(self.image_item.transform, 78, 78)
  44. SetAnchoredPosition(self.image_item.transform, 0, 0)
  45. else
  46. -- 设置奖励
  47. local reward_data = data.reward_new[1]
  48. self.main_reward_item = self.main_reward_item or UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.awardCon)
  49. self.main_reward_item:SetPosition(0, 0)
  50. self.main_reward_item:SetItemSize(78, 78)
  51. self.main_reward_item:SetVisible(true)
  52. local goods_Id, lock = GoodsModel:getInstance():GetMappingTypeId(reward_data[1], reward_data[2])
  53. local goodVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(goods_Id)
  54. if goodVo then
  55. self.main_reward_item:SetData(goodVo.type_id, reward_data[3] , goodVo.color, 0, lock,true,nil)
  56. end
  57. end
  58. -- 领取状态
  59. local reward_status = self.model:GetHeartRewardStatus(data.reward_id)
  60. local info = self.model:GetChildInfo()
  61. local cur_heart_value = info.heart_link_exp or 0
  62. local need_gray = false
  63. if cur_heart_value >= data.need_exp then -- 可以领哦
  64. if reward_status == 1 then -- 已经领了
  65. self.canGetImg_obj:SetActive(false)
  66. self.hasGetImg_obj:SetActive(true)
  67. need_gray = true
  68. else -- 没有领
  69. self.canGetImg_obj:SetActive(true)
  70. self.hasGetImg_obj:SetActive(false)
  71. need_gray = false
  72. end
  73. else -- 还不可以领
  74. self.canGetImg_obj:SetActive(false)
  75. self.hasGetImg_obj:SetActive(false)
  76. need_gray = false
  77. end
  78. if self.is_last_reward then
  79. SetImageGray(self.image_item.img, need_gray)
  80. else
  81. self.main_reward_item:SetGray(need_gray)
  82. end
  83. end
  84. end
  85. function ChildHeartRewardItem:SetData( data, click_callback )
  86. self.data = data
  87. self.click_callback = click_callback
  88. if self.is_loaded then
  89. self.need_refreshData = false
  90. self:UpdateView()
  91. else
  92. self.need_refreshData = true
  93. end
  94. end
  95. function ChildHeartRewardItem:__delete( )
  96. if self.main_reward_item then
  97. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.main_reward_item)
  98. self.main_reward_item = nil
  99. end
  100. end