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

110 líneas
3.1 KiB

  1. GodActivityRewardItem = GodActivityRewardItem or BaseClass(BaseItem)
  2. local GodActivityRewardItem = GodActivityRewardItem
  3. GodActivityRewardItem.Width = 84
  4. GodActivityRewardItem.Height = 108
  5. function GodActivityRewardItem:__init(parent_wnd,prefab_asset,layer_name,other_prefab)
  6. self.base_file = "godActivity"
  7. self.other_prefab = other_prefab
  8. self.layout_file = other_prefab or"GodActivityRewardItem"
  9. self.layer_name = layer_name
  10. self.model = GodModel:getInstance()
  11. self:Load()
  12. end
  13. function GodActivityRewardItem:Load_callback()
  14. self.nodes = {
  15. "lb_num:tmp", "con", "red_dot:obj"
  16. }
  17. self:GetChildren(self.nodes)
  18. self:AddEvents()
  19. self.award_item = self.award_item or UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.con)
  20. if self.other_prefab then
  21. self.award_item:SetItemSize(62,62)
  22. else
  23. self.award_item:SetItemSize(62,62)
  24. end
  25. if self.need_refreshData then
  26. self:UpdateView()
  27. end
  28. end
  29. function GodActivityRewardItem:AddEvents( )
  30. end
  31. function GodActivityRewardItem:UpdateView( )
  32. if not self.is_loaded then return end
  33. if not self.data then return end
  34. self:UpdateInfo()
  35. end
  36. function GodActivityRewardItem:UpdateInfo( )
  37. local conf_data = self.data
  38. local base_data = false
  39. if self.type_str == "limit" then
  40. base_data = self.model:GetActivityLimitInfo()
  41. else
  42. base_data = self.model:GetActivityCommonInfo()
  43. end
  44. if not base_data then return end
  45. local status = GodConst.ActivityRewardStatus.Doing
  46. for k,v in pairs(base_data.bless_award) do
  47. if v.stage == conf_data[1] then
  48. status = v.state
  49. break
  50. end
  51. end
  52. self.lb_num_tmp.text = conf_data[2] .. ""
  53. if status == GodConst.ActivityRewardStatus.Doing then
  54. self.award_item:SetGray(false,true)
  55. self.red_dot_obj:SetActive(false)
  56. self.award_item:SetNumLimitVisible(false)
  57. elseif status == GodConst.ActivityRewardStatus.CanGet then
  58. self.award_item:SetGray(false,true)
  59. self.red_dot_obj:SetActive(true)
  60. self.award_item:SetNumLimitVisible(false)
  61. elseif status == GodConst.ActivityRewardStatus.HaveGet then
  62. self.award_item:SetGray(true,true)
  63. self.red_dot_obj:SetActive(false)
  64. self.award_item:SetNumLimitVisible(true,9)
  65. end
  66. if self.status_callback then
  67. self.status_callback(self.index, status ~= GodConst.ActivityRewardStatus.Doing)
  68. end
  69. self.award_item:SetDataWithMapId(conf_data[3][1][2], conf_data[3][1][3], conf_data[3][1][1])
  70. local function call_back( )
  71. if self.type_str == "limit" then
  72. self.model:Fire(GodConst.REQ_ACTIVITY_GET_NUM_AWARD, tonumber(conf_data[1]))
  73. else
  74. -- self.model:Fire(GodConst.REQ_ACTIVITY_GET_NUM_AWARD, GodConst.ActivityType.Common, tonumber(conf_data[1]))
  75. end
  76. end
  77. self.award_item:SetCallBack(call_back)
  78. end
  79. function GodActivityRewardItem:SetData( type_str,data, status_callback, index )
  80. self.type_str = type_str
  81. self.data = data
  82. self.status_callback = status_callback
  83. self.index = index
  84. if self.is_loaded then
  85. self.need_refreshData = false
  86. self:UpdateView()
  87. else
  88. self.need_refreshData = true
  89. end
  90. end
  91. function GodActivityRewardItem:__delete( )
  92. if self.award_item then
  93. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.award_item)
  94. self.award_item = nil
  95. end
  96. end