| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- local ActivityKingTaskItem = class("ActivityKingTaskItem",require("Activities/ActivityTypeItem"))
- local ActivityTaskItem = require("Activities/ActivityTaskItem")
- function ActivityKingTaskItem:ctor()
- self.curDay = 0
- self.curDayEndTime = 0
- self.taskList = nil
- self.dayTaskList = nil
- self.redPointType = Enum.RPNotifyType.KingTask
- end
- function ActivityKingTaskItem:SyncSrvData(serverData)
- --LogError("==========SyncSrvData===actId = ".. self.actId.."======="..Inspect(serverData))
- if not self.taskList then
- self.taskList = {}
- end
- if not self.dayTaskList then
- self.dayTaskList = {}
- end
- if self.curDay ~= serverData[1] then
- self.curDay = serverData[1]
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Activity_Day_Change,self.actId)
- end
- self.curDayEndTime = tonumber(tostring(serverData[2] / 1000))
- local idx = 0
- local kingTasks = serverData[3]
- for i = 1, #kingTasks do
- local taskData = kingTasks[i]
- local task = self:GetTaskById(taskData.task_id)
- if not task then
- task = ActivityTaskItem:new(taskData.task_id)
- if taskData.task_type == 5 then
- self.taskList[#self.taskList+1] = task
- else
- idx = idx + 1
- if idx == 1 then
- self.dayTaskList = {}
- end
- self.dayTaskList[#self.dayTaskList+1] = task
- end
- --if task.taskType == Enum.TaskType.Eve_Fight_value then
- -- LogHRWarning(Inspect(taskData))
- -- task.doNum = serverData[4]
- -- task.finishedNum = task.finishedNum + serverData[4]
- -- task.finishedNum1 = ManagerContainer.DataMgr.UserData:GetTotalFightPower()
- --
- -- task.progress = (task.finishedNum1 - task.doNum)/(task.finishedNum - task.doNum)
- --
- -- task.SyncServerData = function(task1, taskData1)
- -- if taskData1.progress ~= nil and #taskData1.progress > 0 then
- -- task1:IsFinished(taskData1.progress[1].value)
- -- end
- --
- -- task1.isGotReward = (taskData1.state == 2)
- -- if task1.isGotReward then
- -- task1.showPriority = 3
- -- end
- -- end
- -- task.IsFinished = function(task1)
- -- return task1.finishedNum1 >= task.finishedNum
- -- end
- -- task.SetOutofDate = function(task1, bOut)
- -- if task1:IsFinished() then
- -- return
- -- end
- -- task1.outOfDate = bOut
- -- if task1.outOfDate then
- -- task1.showPriority = 4
- -- end
- -- end
- --end
- else
- --if task.taskType == Enum.TaskType.Eve_Fight_value then
- -- LogHRWarning(Inspect(taskData))
- -- local fighter = ManagerContainer.DataMgr.UserData:GetTotalFightPower()
- -- task.finishedNum1 = taskData.progress and taskData.progress[1].value or fighter
- -- task.progress = (task.finishedNum1 - task.doNum)/(task.finishedNum - task.doNum)
- --end
- end
- task:SyncServerData(taskData)
- end
- self:SortTask(self.taskList)
- self:SortTask(self.dayTaskList)
- end
- function ActivityKingTaskItem:SortTask(taskList)
- if taskList == nil or #taskList < 2 then
- return
- end
- table.sort(
- taskList,
- function(a, b)
- if a.showPriority < b.showPriority then
- return true
- elseif a.showPriority > b.showPriority then
- return false
- else
- return a.taskId < b.taskId
- end
- end
- )
- end
- function ActivityKingTaskItem:GetTaskById(id)
- if self.taskList == nil then
- return nil
- end
- for i = 1, #self.taskList do
- if self.taskList[i].taskId == id then
- return self.taskList[i]
- end
- end
- for i = 1, #self.dayTaskList do
- if self.dayTaskList[i].taskId == id then
- return self.dayTaskList[i]
- end
- end
- return nil
- end
- function ActivityKingTaskItem:GetTaskList()
- return self.taskList
- end
- function ActivityKingTaskItem:GetDayTaskList()
- return self.dayTaskList
- end
- function ActivityKingTaskItem:HasRedPoint()
- return self:HasGrowTaskRP() or self:HasDayTaskRP()
- end
- function ActivityKingTaskItem:HasGrowTaskRP()
- if self.taskList == nil then
- return false
- end
- for i = 1, #self.taskList do
- local task = self.taskList[i]
- if task:HasRedPoint() then
- return true
- end
- end
- return false
- end
- function ActivityKingTaskItem:HasDayTaskRP()
- if self.dayTaskList == nil then
- return false
- end
- for i = 1, #self.dayTaskList do
- local task = self.dayTaskList[i]
- if task:HasRedPoint() then
- return true
- end
- end
- return false
- end
- function ActivityKingTaskItem:GetDayLeftTime()
- local leftTime = self.curDayEndTime - ManagerContainer.LuaTimerMgr:GetTimeSecond()
- if leftTime < 0 then
- leftTime = 0
- end
- return leftTime
- end
- return ActivityKingTaskItem
|