HardMissionDataMgr.lua 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  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. self.missionType = 1 -- 1 是困难
  9. end
  10. function HardMissionDataMgr:SetMissionType(type)
  11. self.missionType = type
  12. end
  13. function HardMissionDataMgr:InitData()
  14. local cfgs = nil
  15. if self.missionType == 1 then
  16. cfgs = ManagerContainer.CfgMgr:GetHardMissionCfg()
  17. else
  18. cfgs = ManagerContainer.CfgMgr:GetEMMissionCfg()
  19. end
  20. for _, v in pairs(cfgs) do
  21. if not self.GroupCfg[v.GroupID] then
  22. self.GroupCfg[v.GroupID] = GroupItemData:new(v.GroupID)
  23. end
  24. local group = self.GroupCfg[v.GroupID]
  25. local cdtp,cddata = self:GetFirstConditionData(v)
  26. group:SetCondition(cdtp,cddata)
  27. group:AddTaskid(v.MissionID)
  28. group:SetRewardCfg(v)
  29. end
  30. end
  31. function HardMissionDataMgr:GetFirstConditionData(cfg)
  32. local data = nil
  33. local cdtype = nil
  34. if cfg.MissionCondition[1] then
  35. data = cfg.MissionCondition[1][2]
  36. cdtype = cfg.MissionCondition[1][1]
  37. end
  38. return cdtype,data
  39. end
  40. function HardMissionDataMgr:RegisterNetEvents()
  41. end
  42. function HardMissionDataMgr:Clear()
  43. self.TaskGroupList = {}
  44. end
  45. function HardMissionDataMgr:Destroy()
  46. self.TaskGroupList = {}
  47. end
  48. function HardMissionDataMgr:UnRegisterNetEvents()
  49. end
  50. function HardMissionDataMgr:GetReward(rewards)
  51. local datalist = {}
  52. if rewards then
  53. local reward
  54. for i = 1, #rewards do
  55. reward = rewards[i]
  56. datalist[i] = {cfgId = reward[1], num = reward[2]}
  57. end
  58. end
  59. return datalist
  60. end
  61. function HardMissionDataMgr:RefreshAllGroupTask(taskData,groupTaskData)
  62. for _, v in pairs(groupTaskData) do
  63. self:RefreshGroupTaskData(v)
  64. end
  65. for _, v in pairs(taskData) do
  66. self:RefreshGroupTask(v)
  67. end
  68. end
  69. function HardMissionDataMgr:RefreshGroupTask(task)
  70. --LogError("task ID "..task._cfgData.MissionID.." GID = "..task._cfgData.GroupID)
  71. if self.TaskGroupList[task._cfgData.GroupID] == nil then
  72. local taskgroup = TaskGroup:new(task._cfgData.GroupID)
  73. taskgroup:AddTask(task)
  74. self.TaskGroupList[task._cfgData.GroupID] = taskgroup
  75. else
  76. self.TaskGroupList[task._cfgData.GroupID]:AddTask(task)
  77. end
  78. end
  79. function HardMissionDataMgr:RefreshGroupTaskData(grouptask)
  80. --LogError("grouptask ID "..grouptask._id)
  81. if self.TaskGroupList[grouptask._id] == nil then
  82. local taskgroup = TaskGroup:new(grouptask._id)
  83. taskgroup.groupTask = grouptask
  84. self.TaskGroupList[grouptask._id] = taskgroup
  85. else
  86. self.TaskGroupList[grouptask._id].groupTask = grouptask
  87. end
  88. --local rdf = self:GetGroupCfgByGroupID(grouptask._id).RewardCfg
  89. --self.TaskGroupList[grouptask._id]:SetWewardCfg(rdf)
  90. end
  91. function HardMissionDataMgr:GetShowGroup()
  92. local retData = nil
  93. local curmaxGetId = -1
  94. local maxId = -1
  95. local minId = 999999
  96. for _, v in pairs(self.TaskGroupList) do
  97. if v ~= nil and v:IsGetAllReward() and v.groupID > curmaxGetId then
  98. curmaxGetId = v.groupID
  99. end
  100. if v ~= nil and v.groupID > maxId then
  101. maxId = v.groupID
  102. end
  103. if v ~= nil and v.groupID < minId then
  104. minId = v.groupID
  105. end
  106. end
  107. --LogError("-------------curmaxGetId---------- "..curmaxGetId)
  108. curmaxGetId = curmaxGetId + 1
  109. curmaxGetId = curmaxGetId > maxId and maxId or curmaxGetId
  110. curmaxGetId = curmaxGetId < minId and minId or curmaxGetId
  111. retData = self.TaskGroupList[curmaxGetId]
  112. --LogError("-------------GetShowGroup---------- "..curmaxGetId)
  113. return retData
  114. end
  115. function HardMissionDataMgr:GetGroupCfgByGroupID(id)
  116. if self.GroupCfg == nil then
  117. self.GroupCfg = {}
  118. self:InitData()
  119. end
  120. --LogError("---------GetGroupCfgByGroupID----------"..id)
  121. return self.GroupCfg[id]
  122. end
  123. function HardMissionDataMgr:GetConditionTxt(task)
  124. local condition = task._cfgData.MissionCondition[1]
  125. if( condition == nil ) then
  126. return ""
  127. end
  128. local lvCfg = ManagerContainer.CfgMgr:GetLevelDataById(condition[2])
  129. local state = task._got >= 1 and 1 or 0
  130. local txt = I18N.SetLanguageValue("DiffTaskConditionTxt",lvCfg.Name,state)
  131. return txt
  132. end
  133. return HardMissionDataMgr