ActivityDailyComulativeRechargeROBTItem.lua 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. local ActivityDailyComulativeRechargeROBTItem = class('ActivityDailyComulativeRechargeROBTItem', require('Activities/ActivityTypeItem'))
  2. local ActivityTaskItem = require("Activities/ActivityTaskItem")
  3. function ActivityDailyComulativeRechargeROBTItem:ctor()
  4. self.curDay = 0
  5. self.curDayEndTime = 0
  6. self.weekDayEndTime = 0
  7. self.taskList = nil
  8. self.dayTaskList = nil
  9. self.redPointType = Enum.RPNotifyType.DailyRechargeROBT
  10. end
  11. function ActivityDailyComulativeRechargeROBTItem:SyncSrvData(serverData, curDayEndTime)
  12. if not self.taskList then
  13. self.taskList = {}
  14. end
  15. if not self.dayTaskList then
  16. self.dayTaskList = {}
  17. end
  18. local curDay = serverData.cur_day
  19. if self.curDay ~= curDay then
  20. self.curDay = curDay
  21. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Activity_Day_Change,self.actId)
  22. end
  23. self.curDayEndTime = tonumber(tostring(curDayEndTime / 1000))
  24. if not serverData.bt_rocoin_data then
  25. return
  26. end
  27. self.weekDayEndTime = tonumber(tostring(serverData.bt_rocoin_data.week_day_end_time / 1000))
  28. local taskList = serverData.bt_rocoin_data.week_task_list
  29. if taskList then
  30. for i = 1, #taskList do
  31. local taskData = taskList[i]
  32. local task = self:GetWeekTaskById(taskData.task_id)
  33. if not task then
  34. task = ActivityTaskItem:new(taskData.task_id)
  35. self.taskList[#self.taskList+1] = task
  36. end
  37. task:SyncServerData(taskData)
  38. end
  39. self:SortTask(self.taskList)
  40. end
  41. taskList = serverData.bt_rocoin_data.daily_task_list
  42. if taskList then
  43. for i = 1, #taskList do
  44. local taskData = taskList[i]
  45. local task = self:GetDayTaskById(taskData.task_id)
  46. if not task then
  47. task = ActivityTaskItem:new(taskData.task_id)
  48. self.dayTaskList[#self.dayTaskList+1] = task
  49. end
  50. task:SyncServerData(taskData)
  51. end
  52. self:SortTask(self.dayTaskList)
  53. end
  54. end
  55. function ActivityDailyComulativeRechargeROBTItem:SortTask(taskList)
  56. if taskList == nil or #taskList < 2 then
  57. return
  58. end
  59. table.sort(
  60. taskList,
  61. function(a, b)
  62. if a.showPriority < b.showPriority then
  63. return true
  64. elseif a.showPriority > b.showPriority then
  65. return false
  66. else
  67. return a.taskId < b.taskId
  68. end
  69. end
  70. )
  71. end
  72. function ActivityDailyComulativeRechargeROBTItem:GetDayTaskById(id)
  73. for i = 1, #self.dayTaskList do
  74. if self.dayTaskList[i].taskId == id then
  75. return self.dayTaskList[i]
  76. end
  77. end
  78. return nil
  79. end
  80. function ActivityDailyComulativeRechargeROBTItem:GetWeekTaskById(id)
  81. for i = 1, #self.taskList do
  82. if self.taskList[i].taskId == id then
  83. return self.taskList[i]
  84. end
  85. end
  86. return nil
  87. end
  88. function ActivityDailyComulativeRechargeROBTItem:GetTaskById(id)
  89. local item = self:GetDayTaskById(id)
  90. if item then
  91. return item
  92. end
  93. return self:GetWeekTaskById(id)
  94. end
  95. function ActivityDailyComulativeRechargeROBTItem:GetDayTaskList()
  96. return self.dayTaskList
  97. end
  98. function ActivityDailyComulativeRechargeROBTItem:GetWeekTaskList()
  99. return self.taskList
  100. end
  101. function ActivityDailyComulativeRechargeROBTItem:HasRedPoint()
  102. return self:HasWeekTaskRP() or self:HasDayTaskRP()
  103. end
  104. function ActivityDailyComulativeRechargeROBTItem:HasWeekTaskRP()
  105. if self.taskList == nil then
  106. return false
  107. end
  108. for i = 1, #self.taskList do
  109. local task = self.taskList[i]
  110. if task:HasRedPoint() then
  111. return true
  112. end
  113. end
  114. return false
  115. end
  116. function ActivityDailyComulativeRechargeROBTItem:HasDayTaskRP()
  117. if self.dayTaskList == nil then
  118. return false
  119. end
  120. for i = 1, #self.dayTaskList do
  121. local task = self.dayTaskList[i]
  122. if task:HasRedPoint() then
  123. return true
  124. end
  125. end
  126. return false
  127. end
  128. function ActivityDailyComulativeRechargeROBTItem:GetDayLeftTime()
  129. local leftTime = self.curDayEndTime - ManagerContainer.LuaTimerMgr:GetTimeSecond()
  130. if leftTime < 0 then
  131. leftTime = 0
  132. end
  133. return leftTime
  134. end
  135. function ActivityDailyComulativeRechargeROBTItem:GetWeekLeftTime()
  136. local leftTime = self.weekDayEndTime - ManagerContainer.LuaTimerMgr:GetTimeSecond()
  137. if leftTime < 0 then
  138. leftTime = 0
  139. end
  140. return leftTime
  141. end
  142. return ActivityDailyComulativeRechargeROBTItem