TaskDailyItem = TaskDailyItem or BaseClass(BaseItem) TaskDailyItem.Width = 170 TaskDailyItem.Height = 65 function TaskDailyItem:__init() self.base_file = "task" self.layout_file = "TaskDailyItem" self.is_delay_callback = true self.model = TaskModel:getInstance() self:Load() end function TaskDailyItem:Load_callback() self.icon = self:GetChildImages({ "Icon", }) self.name_txt, self.progress_txt, self.content_txt = self:GetChildTexts({ "Name", "Progress", "Content", }) self.go_btn, self.recommend = self:GetChildGameObjects({ "GoBtn", "Recommend", }) self:InitEvent() if self.need_refreshData then self:SetData(self.index,self.info) end end function TaskDailyItem:InitEvent() local function onClickBtnHandler(target) if target == self.go_btn then if not self.info then return end self:ClickOperation(self.info) end end AddClickEvent(self.go_btn,onClickBtnHandler) end function TaskDailyItem:SetData(index,info) self.index = index self.info = info if self.is_loaded then self.need_refreshData = false self.name_txt.text = self.info.str if self.info.id == 1 then local total_times = BaseDungeonModel:getInstance():GetDungeonMaxTimes(3001,BaseDungeonModel.DUN_TYPE.EXP) local left_times = BaseDungeonModel:getInstance():GetDungeonLeftTimes(BaseDungeonModel.DUN_TYPE.EXP) local curr_times = math.max(0,total_times - left_times) self.progress_txt.text = string.format("(%d/%d)",curr_times,total_times) local exp,level = self.model:GetDoubleExp(self.info.id) self.content_txt.text = "预计可提升:"..level.."级" elseif self.info.id == 2 then local taskInfo = TaskModel:getInstance():GetCircleTaskInfo(TaskType.BOUNTY_LINE) if taskInfo then if self.model:CanAcceptCircleTask(TaskType.BOUNTY_LINE) then self.progress_txt.text = string.format("(%d/%d)",taskInfo.cur_progress,taskInfo.total_progress) else self.progress_txt.text = string.format("(%d/%d)",taskInfo.cur_progress + 1,taskInfo.total_progress) end else self.progress_txt.text = "" end local exp,level = self.model:GetDoubleExp(self.info.id) self.content_txt.text = "预计可提升:"..level.."级" elseif self.info.id == 3 then local taskInfo = TaskModel:getInstance():GetCircleTaskInfo(TaskType.GUILD_LINE) if taskInfo then if self.model:CanAcceptCircleTask(TaskType.GUILD_LINE) then self.progress_txt.text = string.format("(%d/%d)",taskInfo.cur_progress,taskInfo.total_progress) else self.progress_txt.text = string.format("(%d/%d)",taskInfo.cur_progress + 1,taskInfo.total_progress) end else self.progress_txt.text = "" end local exp,level = self.model:GetDoubleExp(self.info.id) self.content_txt.text = "预计可提升:"..level.."级" elseif self.info.id == 4 then self.progress_txt.text = "" local exp,level = self.model:GetDoubleExp(self.info.id) self.content_txt.text = "预计可提升:"..level.."级" elseif self.info.id == 5 then self.progress_txt.text = "" self.content_txt.text = "持续挂机,提升等级" elseif self.info.id == 6 then local total_times = BaseDungeonModel:getInstance():GetDungeonMaxTimes(3110,BaseDungeonModel.DUN_TYPE.EQUIP) local left_times = BaseDungeonModel:getInstance():GetDungeonLeftTimes(BaseDungeonModel.DUN_TYPE.EQUIP) local curr_times = math.max(0,total_times - left_times) self.progress_txt.text = string.format("(%d/%d)",curr_times,total_times) local exp,level = self.model:GetDoubleExp(self.info.id) end lua_resM:setImageSprite(self,self.icon,"activityIcon_asset",self.info.icon_name,false) if self.info.show_recommend then self.recommend:SetActive(true) else self.recommend:SetActive(false) end self:SetPosition(0,(self.index - 1) * -98) else self.need_refreshData = true end end function TaskDailyItem:__delete( ) end --点击选项处理 function TaskDailyItem:ClickOperation( vo ) GlobalEventSystem:Fire(EventName.OPEN_TASK_DAILY_VIEW, false) if vo.id == 1 then BaseDungeonModel:getInstance():OpenViewByDunType(BaseDungeonModel.DUN_TYPE.EXP) elseif vo.id == 2 then self.model:DoBountyTask() elseif vo.id == 3 then self.model:DoGuildTask() elseif vo.id == 4 then EscortModel:getInstance():FlyToNpc() elseif vo.id == 5 then local onHookData = DailyModel:getInstance():GetOnhookConfig() if onHookData then local pointList = ErlangParser:GetInstance():Parse(onHookData.xy) local index = math.random(1, #pointList) local randomPoint = pointList[index] local x = tonumber(randomPoint[1]) local y = tonumber(randomPoint[2]) local call_back = function () GlobalEventSystem:Fire(EventName.STARTAUTOFIGHT) end local findVo = FindVo.New() findVo.type = FindVo.POINT findVo.sceneId = tonumber(onHookData.scene_id) findVo.x = x / SceneObj.LogicRealRatio.x findVo.y = y / SceneObj.LogicRealRatio.y findVo.call_back = call_back findVo.force_change_scene = true GlobalEventSystem:Fire(EventName.STOPAUTOFIGHT) GlobalEventSystem:Fire(EventName.FORCE_STOP_DO_TASK) Scene.Instance:FindElement(findVo) Message.show("正在前往挂机") end elseif vo.id == 6 then BaseDungeonModel:getInstance():OpenViewByDunType(BaseDungeonModel.DUN_TYPE.EQUIP) end end