|
|
- NewerTaskModel = NewerTaskModel or BaseClass(BaseVo, true)
- local NewerTaskModel = NewerTaskModel
-
- function NewerTaskModel:__init()
- NewerTaskModel.Instance = self
- self:Reset()
- end
-
- function NewerTaskModel:Reset()
- self.award_finish_list = {} --已完成进度列表
- self.cur_show_type = 0 --当前显示的类型
- self.award_end_time = false --奖励显示的结束时间,单纯客户端显示
- self.is_first_show = nil
- self.show_info_list = {}
- end
-
- function NewerTaskModel:getInstance()
- if NewerTaskModel.Instance == nil then
- NewerTaskModel.Instance = NewerTaskModel.New()
- end
- return NewerTaskModel.Instance
- end
-
- function NewerTaskModel:SetAwardFinishList( vo )
- for k,v in pairs(vo) do
- local key = v.type .. "@" .. v.task_id
- self.award_finish_list[key] = true
- end
-
- self:UpdateCurShowType()
- end
-
- function NewerTaskModel:UpdateCurShowType( )
- local cfg = Config.Newertaskawards
- for k,v in pairsByKeys(cfg) do
- if not self.award_finish_list[k] then
- self.cur_show_type = v.type
- break
- end
- end
- end
-
- function NewerTaskModel:GetCurShowType( )
- return self.cur_show_type
- end
-
- function NewerTaskModel:SetSingleAwardFinish( vo )
- local key = vo.type .. "@" .. vo.task_id
- self.award_finish_list[key] = true
- self:UpdateCurShowType()
- end
-
- function NewerTaskModel:IsAwardFinish( type, task_id )
- local key = type .. "@" .. task_id
- return self.award_finish_list[key]
- end
-
- function NewerTaskModel:GetCurShowInfo( type )
- local show_type = type or self.cur_show_type
- if self.show_info_list[show_type] then
- return self.show_info_list[show_type]
- end
- self.show_info_list[show_type] = {}
- local cfg = Config.Newertaskawards
- for k,v in pairsByKeys(cfg) do
- if v.type == show_type then
- table.insert(self.show_info_list[show_type], v)
- end
- end
- return self.show_info_list[show_type]
- end
-
- --下一个可领取的奖励,返回任务id(需要按顺序领取)
- function NewerTaskModel:GetNextCanGetAward( type )
- local cfg = self:GetCurShowInfo(type)
- for i,v in ipairs(cfg) do
- if not self:IsAwardFinish(v.type, v.task_id) then
- return v.task_id
- end
- end
- end
-
- function NewerTaskModel:GetProgress( type )
- local show_type = type or self.cur_show_type
- --没有展示类型,就当做结束
- if not show_type or show_type == 0 then
- return 100, true, false
- end
-
- --任务完成进度
- local cfg = Config.Newertaskprocess
- local progress = 0
- for k,v in pairsByKeys(cfg) do
- if v.type == show_type then
- if TaskModel:getInstance():IsTaskFinished(v.task_id) then
- progress = v.task_pro
- end
- end
- end
-
- --奖励是否完成,是否可领取
- local is_all_finish, is_can_get = true, false
- local award_cfg = Config.Newertaskawards
- for k,v in pairsByKeys(award_cfg) do
- if not self.award_finish_list[k] then
- is_all_finish = false
- if TaskModel:getInstance():IsTaskFinished(v.task_id) then
- is_can_get = true
- break
- end
- end
- end
-
- return progress, is_all_finish, is_can_get
- end
-
- function NewerTaskModel:GetAwardEndTime( )
- if not self.award_end_time then
- local time_str = CookieWrapper.Instance:GetCookie(CookieLevelType.Account, CookieKey.NEWER_TASK_END_TIME)
- if time_str ~= "" then
- self.award_end_time = tonumber(time_str)
- end
- end
- return self.award_end_time
- end
-
- function NewerTaskModel:SetAwardEndTime( )
- local end_time = TimeUtil:getServerTime() + 30*60
- self.award_end_time = end_time
- CookieWrapper.Instance:SaveCookie(CookieLevelType.Account, CookieTimeType.TYPE_ALWAYS, CookieKey.NEWER_TASK_END_TIME, end_time)
- CookieWrapper.Instance:WriteAll()
- end
-
- function NewerTaskModel:GetIsFirstShow( )
- -- if self.is_first_show == nil then
- -- local show_flag = CookieWrapper.Instance:GetCookie(CookieLevelType.Account, CookieKey.NEWER_TASK_SHOW_FLAG)
- -- if show_flag and tonumber(show_flag) == 1 then
- -- self.is_first_show = false
- -- else
- -- self.is_first_show = true
- -- end
- -- end
- -- return self.is_first_show
- end
-
- function NewerTaskModel:SetHasFirstShowFlag( )
- -- if self.is_first_show ~= false then
- -- self.is_first_show = false
- -- local flag = 1
- -- CookieWrapper.Instance:SaveCookie(CookieLevelType.Account, CookieTimeType.TYPE_ALWAYS, CookieKey.NEWER_TASK_SHOW_FLAG, flag)
- -- CookieWrapper.Instance:WriteAll()
- -- end
- end
|