local TaskGroup = class("TaskGroup") function TaskGroup:ctor(groupId) self.groupID = groupId self.groupTask = nil self.taskList = {} self.total = 0 --该条件达成,需要完成多少 self.value = 0 --完成了多少 self.getCount = 0 self.rewardCfg = nil end function TaskGroup:AddTask(taskdata) -- if self.taskList[taskdata._id] == nil then -- self.total = self.total + 1 -- end self.taskList[taskdata._id] = taskdata self:RefreshAllData() end function TaskGroup:RefreshAllData() local finish = 0 local getCount = 0 local total = 0 for _, v in pairs(self.taskList) do local _f,_g = self:RefreshData(v) finish = finish + _f getCount = getCount + _g total = total + 1 end self.value = finish self.getCount = getCount self.total = total end function TaskGroup:RefreshData(data) if self.rewardCfg == nil and #(data._cfgData.GroupReward) > 0 then self.rewardCfg = data._cfgData end local finish = data._got >= 1 and 1 or 0 local get = data._got == 2 and 1 or 0 return finish,get end function TaskGroup:SetWewardCfg(cfg) if self.rewardCfg == nil then self.rewardCfg = cfg end end function TaskGroup:IsGetAllReward() if self.groupTask == nil then LogError("***************** groupTask 為 NULL !!!***************** GID = "..self.groupID) return self.total ~= 0 and self.getCount >= self.total end return self.getCount >= self.total and self.groupTask._got == 2 end return TaskGroup