HardMissionDataMgr.lua 3.8 KB

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