|
|
- 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
|