ActivityTaskItem.lua 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. local ActivityTaskItem = class("ActivityTaskItem")
  2. function ActivityTaskItem:ctor(taskId)
  3. self.taskId = taskId --活动目标id
  4. self.taskType = 0 --目标类型
  5. self.taskDesc = 0
  6. self.name = nil
  7. self.finishedNum = 0 --目标个数
  8. self.rewards = nil --完成获得的奖励
  9. self.gotoPageId = 0 --跳转界面id
  10. self.transferUnlockFunIds = nil
  11. self.showState = false
  12. self.isInited = false
  13. self.outOfDate = false -- 是否超时
  14. self.doNum = 0 --当前完成个数
  15. self.isGotReward = false --是否领取奖励
  16. self.showPriority = 2
  17. self:Init()
  18. end
  19. function ActivityTaskItem:Init()
  20. local cfg = ManagerContainer.CfgMgr:GetActivityTaskCfgById(self.taskId)
  21. if cfg == nil then
  22. LogError(self.taskId .. " 在ActivityTaskCfg 表中未配置!!!!!!!")
  23. self.isInited = false
  24. return
  25. end
  26. if cfg.TaskCondition ~= nil then
  27. local len = #cfg.TaskCondition[1]
  28. self.taskType = cfg.TaskCondition[1][1]
  29. self.finishedNum = cfg.TaskCondition[1][len]
  30. end
  31. self.name = cfg.Title
  32. self.taskDesc = cfg.Desc
  33. self.rewards = cfg.Reward
  34. self.gotoPageId = cfg.GoPageId
  35. self.showState = cfg.ShowState
  36. self.transferUnlockFunIds = cfg.UnlockFunIds
  37. self.showPriority = 2
  38. self.isInited = true
  39. end
  40. function ActivityTaskItem:SetDoNum(num)
  41. --LogError("============== taskName = "..self.name)
  42. --LogError("============== taskNum = "..num)
  43. self.doNum = num or 0
  44. if self:IsFinished() then
  45. self.showPriority = 1
  46. else
  47. self.showPriority = 2
  48. end
  49. end
  50. function ActivityTaskItem:IsGotReward()
  51. return self.isGotReward
  52. end
  53. function ActivityTaskItem:IsFinished()
  54. return self.doNum >= self.finishedNum
  55. end
  56. function ActivityTaskItem:IsOutofDate()
  57. return self.outOfDate
  58. end
  59. function ActivityTaskItem:SetOutofDate(bOut)
  60. if self:IsFinished() then
  61. return
  62. end
  63. self.outOfDate = bOut
  64. if self.outOfDate then
  65. self.showPriority = 4
  66. end
  67. end
  68. function ActivityTaskItem:ShowRewards()
  69. return self.rewards
  70. end
  71. function ActivityTaskItem:SyncServerData(taskData)
  72. if taskData.progress ~= nil and #taskData.progress > 0 then
  73. self:SetDoNum(taskData.progress[1].value)
  74. else
  75. self:SetDoNum(0)
  76. end
  77. self.isGotReward = (taskData.state == 2)
  78. if self.isGotReward then
  79. self.showPriority = 3
  80. end
  81. end
  82. function ActivityTaskItem:HasRedPoint()
  83. return (self:IsFinished() and (not self.isGotReward))
  84. end
  85. function ActivityTaskItem:CanJump()
  86. if self.transferUnlockFunIds == nil then
  87. return true
  88. end
  89. for i = 1, #self.transferUnlockFunIds do
  90. local funId = self.transferUnlockFunIds[i]
  91. if not ManagerContainer.UIFuncUnlockMgr:GetFuncLockStatusById(funId) then
  92. return false
  93. end
  94. end
  95. return true
  96. end
  97. return ActivityTaskItem