源战役客户端
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

113 líneas
3.9 KiB

hace 4 semanas
  1. CapsuleEggRewardItem = CapsuleEggRewardItem or BaseClass(BaseItem)
  2. local CapsuleEggRewardItem = CapsuleEggRewardItem
  3. function CapsuleEggRewardItem:__init()
  4. self.base_file = "capsuleEgg"
  5. self.layout_file = "CapsuleEggRewardItem"
  6. self.is_delay_callback = true
  7. self.model = CapsuleEggModel:getInstance()
  8. self.index = false
  9. self.data = false
  10. self.pool_type = false
  11. self.item_list = {}
  12. self:Load()
  13. end
  14. function CapsuleEggRewardItem:Load_callback()
  15. local nodes = {
  16. "reward_scroll/Viewport/reward_con",
  17. "reward_scroll",
  18. "text_1:tmp",
  19. "get_img:obj",
  20. "bg:raw",
  21. "get_btn:obj:img",
  22. "get_btn/get_btn_txt:tmp",
  23. "get_btn/get_btn_red:obj",
  24. }
  25. self:GetChildren(nodes)
  26. self:InitEvent()
  27. if self.need_refreshData then
  28. self:SetData(self.data, self.index, self.pool_type)
  29. end
  30. lua_resM:setOutsideRawImage(self,self.bg_raw,GameResPath.GetCapsuleEggRes("capsule_egg_reward_item_bg"))
  31. self.need_refreshData = false
  32. end
  33. function CapsuleEggRewardItem:SetData(data, index,pool_type)
  34. self.data = data
  35. self.index = index
  36. self.pool_type = pool_type
  37. if self.is_loaded then
  38. self.need_refreshData = false
  39. self:UpdateView()
  40. else
  41. self.need_refreshData = true
  42. end
  43. end
  44. function CapsuleEggRewardItem:__delete()
  45. for i,v in ipairs(self.item_list) do
  46. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, v)
  47. end
  48. end
  49. function CapsuleEggRewardItem:InitEvent()
  50. local function onBtnClickHandler(target)
  51. if target == self.get_btn_obj then
  52. self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17011, 2, self.pool_type, self.draw_times)
  53. end
  54. end
  55. AddClickEvent(self.get_btn_obj,onBtnClickHandler)
  56. end
  57. function CapsuleEggRewardItem:UpdateView()
  58. self.times = self.model:GetSumDrawTimesByPoolType(self.pool_type)
  59. self.draw_times = self.data.draw_times
  60. self.status = self.model:GetTimesRewardStatusByTimes(self.pool_type, self.draw_times)
  61. if self.status then
  62. self.get_btn_obj:SetActive(false)
  63. self.get_img_obj:SetActive(true)
  64. self.text_1_tmp.text = string.format("累计寻宝次数\n%s%s", HtmlColorTxt(self.times, "#2cf86f"), HtmlColorTxt("/" .. self.draw_times, "#f3fcff"))
  65. else
  66. self.get_btn_obj:SetActive(true)
  67. self.get_img_obj:SetActive(false)
  68. if self.times >= self.draw_times then --可领取
  69. self.get_btn_red_obj:SetActive(true)
  70. self.get_btn_txt_tmp.text = "领取"
  71. SetImageGray(self.get_btn_img, false)
  72. SetTMPSharedMaterial(self.get_btn_txt_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
  73. self.text_1_tmp.text = string.format("累计寻宝次数\n%s%s", HtmlColorTxt(self.times, "#2cf86f"), HtmlColorTxt("/" .. self.draw_times, "#f3fcff"))
  74. else --未达成
  75. self.get_btn_red_obj:SetActive(false)
  76. self.get_btn_txt_tmp.text = "未达成"
  77. SetImageGray(self.get_btn_img, true)
  78. SetTMPSharedMaterial(self.get_btn_txt_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  79. self.text_1_tmp.text = string.format("累计寻宝次数\n%s%s", HtmlColorTxt(self.times, ColorUtil.RED_DARK), HtmlColorTxt("/" .. self.draw_times, "#f3fcff"))
  80. end
  81. end
  82. local reward_data = stringtotable(self.data.reward)
  83. for i,v in ipairs(self.item_list) do
  84. v:SetVisible(false)
  85. end
  86. for i,v in ipairs(reward_data) do
  87. local item = self.item_list[i]
  88. if not item then
  89. item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.reward_con)
  90. item:SetItemSize(78, 78)
  91. self.item_list[i] = item
  92. item:SetAnchoredPosition((78 + 17) * (i - 1), 0 )
  93. end
  94. item:SetVisible(true)
  95. local goods_Id, lock = GoodsModel:getInstance():GetMappingTypeId(v[1], v[2])
  96. local goodVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(goods_Id)
  97. if goodVo then
  98. item:SetData(goodVo.type_id, v[3] , goodVo.color, nil, lock)
  99. end
  100. end
  101. SetSizeDelta(self.reward_con, #reward_data * (78 + 17), 86)
  102. SetSizeDelta(self.reward_scroll, #reward_data > 3 and 3 * (78 + 17) or #reward_data * (78 + 17), 86)
  103. end