| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- local HardMissionDataMgr = class('HardMissionDataMgr', require('DataBase'))
- local TaskGroup = require('HardLevel/TaskGroup')
- local GroupItemData = require('HardLevel/GroupItemData')
- function HardMissionDataMgr:ctor()
- --LogError("---------HardMissionDataMgr--------ctor-----")
- self.TaskGroupList = {}
- self.GroupCfg = nil
- self.missionType = 1 -- 1 是困难
- end
- function HardMissionDataMgr:SetMissionType(type)
- self.missionType = type
- end
- function HardMissionDataMgr:InitData()
- local cfgs = nil
- if self.missionType == 1 then
- cfgs = ManagerContainer.CfgMgr:GetHardMissionCfg()
- else
- cfgs = ManagerContainer.CfgMgr:GetHardMissionCfg()
- end
-
- for _, v in pairs(cfgs) do
- if not self.GroupCfg[v.GroupID] then
- self.GroupCfg[v.GroupID] = GroupItemData:new(v.GroupID)
- end
- local group = self.GroupCfg[v.GroupID]
- local cdtp,cddata = self:GetFirstConditionData(v)
- group:SetCondition(cdtp,cddata)
- group:AddTaskid(v.MissionID)
- end
- end
- function HardMissionDataMgr:GetFirstConditionData(cfg)
- local data = nil
- local cdtype = nil
- if cfg.MissionCondition[1] then
- data = cfg.MissionCondition[1][2]
- cdtype = cfg.MissionCondition[1][1]
- end
- return cdtype,data
- end
- function HardMissionDataMgr:RegisterNetEvents()
-
- end
- function HardMissionDataMgr:Clear()
- self.TaskGroupList = {}
- end
- function HardMissionDataMgr:Destroy()
- self.TaskGroupList = {}
- end
- function HardMissionDataMgr:UnRegisterNetEvents()
- end
- function HardMissionDataMgr:GetReward(rewards)
- local datalist = {}
- if rewards then
- local reward
- for i = 1, #rewards do
- reward = rewards[i]
- datalist[i] = {cfgId = reward[1], num = reward[2]}
- end
- end
- return datalist
- end
- function HardMissionDataMgr:RefreshAllGroupTask(taskData,groupTaskData)
- for _, v in pairs(groupTaskData) do
- self:RefreshGroupTaskData(v)
- end
- for _, v in pairs(taskData) do
- self:RefreshGroupTask(v)
- end
- end
- function HardMissionDataMgr:RefreshGroupTask(task)
- if self.TaskGroupList[task._cfgData.GroupID] == nil then
- local taskgroup = TaskGroup:new(task._cfgData.GroupID)
- taskgroup:AddTask(task)
- self.TaskGroupList[task._cfgData.GroupID] = taskgroup
- else
- self.TaskGroupList[task._cfgData.GroupID]:AddTask(task)
- end
- end
- function HardMissionDataMgr:RefreshGroupTaskData(grouptask)
- if self.TaskGroupList[grouptask._id] == nil then
- local taskgroup = TaskGroup:new(grouptask._id)
- taskgroup.groupTask = grouptask
- self.TaskGroupList[grouptask._id] = taskgroup
- else
- self.TaskGroupList[grouptask._id].groupTask = grouptask
- end
- end
- function HardMissionDataMgr:GetShowGroup()
- local retData = nil
-
- local curmaxGetId = -1
- local maxId = -1
- local minId = 999999
- for _, v in pairs(self.TaskGroupList) do
-
- if v ~= nil and v:IsGetAllReward() and v.groupID > curmaxGetId then
- curmaxGetId = v.groupID
- end
- if v ~= nil and v.groupID > maxId then
- maxId = v.groupID
- end
- if v ~= nil and v.groupID < minId then
- minId = v.groupID
- end
- end
- --LogError("-------------curmaxGetId---------- "..curmaxGetId)
- curmaxGetId = curmaxGetId + 1
- curmaxGetId = curmaxGetId > maxId and maxId or curmaxGetId
- curmaxGetId = curmaxGetId < minId and minId or curmaxGetId
- retData = self.TaskGroupList[curmaxGetId]
- --LogError("-------------GetShowGroup---------- "..curmaxGetId)
- return retData
- end
- function HardMissionDataMgr:GetGroupCfgByGroupID(id)
- if self.GroupCfg == nil then
- self.GroupCfg = {}
- self:InitData()
- end
- --LogError("---------GetGroupCfgByGroupID----------"..id)
- return self.GroupCfg[id]
- end
- function HardMissionDataMgr:GetConditionTxt(task)
-
- local condition = task._cfgData.MissionCondition[1]
- if( condition == nil ) then
- return ""
- end
- local lvCfg = ManagerContainer.CfgMgr:GetLevelDataById(condition[2])
- local state = task._got >= 1 and 1 or 0
- local txt = I18N.SetLanguageValue("DiffTaskConditionTxt",lvCfg.Name,state)
- return txt
- end
- return HardMissionDataMgr
|