TaskGroup.lua 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. local TaskGroup = class("TaskGroup")
  2. function TaskGroup:ctor(groupId)
  3. self.groupID = groupId
  4. self.groupTask = nil
  5. self.taskList = {}
  6. self.total = 0 --该条件达成,需要完成多少
  7. self.value = 0 --完成了多少
  8. self.getCount = 0
  9. self.rewardCfg = nil
  10. end
  11. function TaskGroup:AddTask(taskdata)
  12. -- if self.taskList[taskdata._id] == nil then
  13. -- self.total = self.total + 1
  14. -- end
  15. self.taskList[taskdata._id] = taskdata
  16. self:RefreshAllData()
  17. end
  18. function TaskGroup:RefreshAllData()
  19. local finish = 0
  20. local getCount = 0
  21. local total = 0
  22. for _, v in pairs(self.taskList) do
  23. local _f,_g = self:RefreshData(v)
  24. finish = finish + _f
  25. getCount = getCount + _g
  26. total = total + 1
  27. end
  28. self.value = finish
  29. self.getCount = getCount
  30. self.total = total
  31. end
  32. function TaskGroup:RefreshData(data)
  33. if self.rewardCfg == nil and #(data._cfgData.GroupReward) > 0 then
  34. self.rewardCfg = data._cfgData
  35. end
  36. local finish = data._got >= 1 and 1 or 0
  37. local get = data._got == 2 and 1 or 0
  38. return finish,get
  39. end
  40. function TaskGroup:IsGetAllReward()
  41. if self.groupTask == nil then
  42. LogError("***************** groupTask 為 NULL !!!*****************")
  43. return self.total ~= 0 and self.getCount >= self.total
  44. end
  45. return self.getCount >= self.total and self.groupTask._got == 2
  46. end
  47. return TaskGroup