HardMissionDataMgr.lua 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. local HardMissionDataMgr = class('HardMissionDataMgr', require('DataBase'))
  2. local TaskGroup = require('HardLevel/TaskGroup')
  3. local GroupItemData = require('HardLevel/GroupItemData')
  4. function HardMissionDataMgr:ctor()
  5. --LogError("---------HardMissionDataMgr--------ctor-----")
  6. self.TaskGroupList = {}
  7. self.GroupCfg = nil
  8. end
  9. function HardMissionDataMgr:InitData()
  10. local cfgs = ManagerContainer.CfgMgr:GetHardMissionCfg()
  11. for _, v in pairs(cfgs) do
  12. if not self.GroupCfg[v.GroupID] then
  13. self.GroupCfg[v.GroupID] = GroupItemData:new(v.GroupID)
  14. end
  15. local group = self.GroupCfg[v.GroupID]
  16. group:SetCondition(102,self:GetFirstConditionData(v))
  17. group:AddTaskid(v.MissionID)
  18. end
  19. end
  20. function HardMissionDataMgr:GetFirstConditionData(cfg)
  21. local data = nil
  22. if cfg.MissionCondition[1] then
  23. data = cfg.MissionCondition[1][2]
  24. end
  25. return data
  26. end
  27. function HardMissionDataMgr:RegisterNetEvents()
  28. end
  29. function HardMissionDataMgr:Clear()
  30. self.TaskGroupList = {}
  31. end
  32. function HardMissionDataMgr:Destroy()
  33. self.TaskGroupList = {}
  34. end
  35. function HardMissionDataMgr:UnRegisterNetEvents()
  36. end
  37. function HardMissionDataMgr:GetReward(rewards)
  38. local datalist = {}
  39. if rewards then
  40. local reward
  41. for i = 1, #rewards do
  42. reward = rewards[i]
  43. datalist[i] = {cfgId = reward[1], num = reward[2]}
  44. end
  45. end
  46. return datalist
  47. end
  48. function HardMissionDataMgr:RefreshAllGroupTask(taskData,groupTaskData)
  49. for _, v in pairs(groupTaskData) do
  50. self:RefreshGroupTaskData(v)
  51. end
  52. for _, v in pairs(taskData) do
  53. self:RefreshGroupTask(v)
  54. end
  55. end
  56. function HardMissionDataMgr:RefreshGroupTask(task)
  57. if self.TaskGroupList[task._cfgData.GroupID] == nil then
  58. local taskgroup = TaskGroup:new(task._cfgData.GroupID)
  59. taskgroup:AddTask(task)
  60. self.TaskGroupList[task._cfgData.GroupID] = taskgroup
  61. else
  62. self.TaskGroupList[task._cfgData.GroupID]:AddTask(task)
  63. end
  64. end
  65. function HardMissionDataMgr:RefreshGroupTaskData(grouptask)
  66. if self.TaskGroupList[grouptask._id] == nil then
  67. local taskgroup = TaskGroup:new(grouptask._id)
  68. taskgroup.groupTask = grouptask
  69. self.TaskGroupList[grouptask._id] = taskgroup
  70. else
  71. self.TaskGroupList[grouptask._id].groupTask = grouptask
  72. end
  73. end
  74. function HardMissionDataMgr:GetShowGroup()
  75. local retData = nil
  76. LogError("------TaskGroupList-1-----"..Inspect(self.TaskGroupList))
  77. table.sort(self.TaskGroupList,function (a,b)
  78. --LogError("------a------"..Inspect(a))
  79. --LogError("------b------"..Inspect(b))
  80. if a == nil then
  81. return false
  82. elseif b == nil then
  83. return true
  84. end
  85. return a.groupID < b.groupID
  86. end)
  87. LogError("------TaskGroupList-2-----"..Inspect(self.TaskGroupList))
  88. for _, v in pairs(self.TaskGroupList) do
  89. --LogError("------TaskGroupList------"..v.groupID)
  90. if v and retData == nil then
  91. retData = v
  92. elseif v and retData:IsGetAllReward() and not v:IsGetAllReward() and v.groupID > retData.groupID then
  93. retData = v
  94. break
  95. end
  96. end
  97. return retData
  98. end
  99. function HardMissionDataMgr:GetGroupCfgByGroupID(id)
  100. if self.GroupCfg == nil then
  101. self.GroupCfg = {}
  102. self:InitData()
  103. end
  104. --LogError("---------GetGroupCfgByGroupID----------"..id)
  105. return self.GroupCfg[id]
  106. end
  107. function HardMissionDataMgr:GetConditionTxt(task)
  108. local condition = task._cfgData.MissionCondition[1]
  109. if( condition == nil ) then
  110. return ""
  111. end
  112. local lvCfg = ManagerContainer.CfgMgr:GetLevelDataById(condition[2])
  113. local state = task._got >= 1 and 1 or 0
  114. local txt = I18N.SetLanguageValue("DiffTaskConditionTxt",lvCfg.Name,state)
  115. return txt
  116. end
  117. return HardMissionDataMgr