|
|
- ReinTaskScrollItem = ReinTaskScrollItem or BaseClass(BaseItem)
- local ReinTaskScrollItem = ReinTaskScrollItem
-
- function ReinTaskScrollItem:__init(parent_wnd,prefab_asset,layer_name)
- self.base_file = "reincarnation"
- self.layout_file = "ReinTaskScrollItem"
- self.parent_wnd = parent_wnd
- self.layer_name = layer_name
-
- self.model = ReincarnationModel:getInstance()
- self:Load()
- end
-
- function ReinTaskScrollItem:Load_callback()
- local nodes = {
- "task_title:obj", "task_title/task_progress:tmp",
- "task_condition:obj:img",
- "task_proceed:obj:tmp",
- "task_req:tmp",
- "task_finished:tmp",
- }
- self:GetChildren(nodes)
-
- self:AddEvents()
- if self.need_refreshData then
- self:UpdateView()
- end
- end
-
- function ReinTaskScrollItem:AddEvents( )
- local function click_event(target)
- if target == self.task_proceed_obj then
- if self.data and self.data.task_data then -- 前往任务
- TaskModel:getInstance():TaskClickFun(self.data.task_data)
- GlobalEventSystem:Fire(EventName.CLOSE_NEW_MAIN_ROLE_VIEW)
- end
- end
- end
- AddClickEvent(self.task_proceed_obj, click_event)
-
- local function onTaskUpdate()
- -- 只更新当前任务进度
- if self.data
- and self.data.task_data
- and self.data.task_data.id == self.model:GetCurTaskId() then
- -- self.model:UpdateCurReinTask()
- self:UpdateView()
- end
- end
- self:BindEvent(TaskModel:getInstance(), TaskEvent.TASK_LIST_INIT, onTaskUpdate)
-
- -- -- 当前查看的转职任务是正在进行中的转职任务时,点击自动进行
- -- local function click_event(target)
- -- if target == self.gotoBtn_obj then
- -- if self.data and self.data.reward and self.data.auto_find then
- -- TaskModel:getInstance():TaskClickFun(self.data.reward)
- -- -- 关闭转生任务界面
- -- self.model:Fire(ReincarnationModel.OPEN_REIN_TASK_VIEW, false)
- -- end
- -- end
- -- end
- -- AddClickEvent(self.gotoBtn_obj, click_event)
- end
-
- function ReinTaskScrollItem:InitItemData( )
- self.task_title_obj:SetActive(false)
- self.task_condition_obj:SetActive(false)
- self.task_proceed_obj:SetActive(false)
- self.task_proceed_tmp.text = "<u>前往</u>"
- self.task_req_tmp.text = ""
- self.task_finished_tmp.text = ""
- end
-
- function ReinTaskScrollItem:SetData( data, stage,total_stage)
- self.data = data
- self.stage = stage
- self.total_stage = total_stage
- local height = 0
- if self.is_loaded then
- self.need_refreshData = false
- height = self:UpdateView()
- else
- self.need_refreshData = true
- end
- return height
- end
-
- function ReinTaskScrollItem:UpdateView( )
- local height = 0
- self:InitItemData()
- if self.data.title then -- 任务进度标题
- self.task_title_obj:SetActive(true)
- self.task_progress_tmp.text = self.data.title
- height = 32
- elseif self.data.task_data then -- 有任务阶段数据
- -- 任务内容不能直接用原先的tipContent,需要特殊处理
- local strs = ""
- -- print("Saber:ReinTaskScrollItem [92] self.data.task_data.taskTips[1].type: ",self.data.task_data.taskTips[1].type)
- -- print("Saber:ReinTaskScrollItem [start:93] self.data.task_data.taskTips[1] ------------------------------------------")
- -- PrintTable(self.data.task_data.taskTips[1])
- local cfg = Config.ConfigTaskEffect.ContentTip[self.data.task_data.taskTips[1].type]
- if cfg then
- if self.data.task_data.taskTips[1].type == TaskTipType.TYPE1 then -- 杀怪任务重新构建内容
- local temp = ConfigItemMgr.Instance:GetMonsterDataItem(self.data.task_data.taskTips[1].id)
- if temp then
- cfg = string.gsub(cfg, "<", " <")
- strs = string.format(cfg, Trim(temp.name))
- end
- --显示数量
- if Config.ConfigTaskEffect.NeedShowNumTaskType[self.data.task_data.taskTips[1].type] or
- Config.ConfigTaskEffect.NeedShowNumTaskId[self.data.task_data.id] then
- strs = strs .. "("..HtmlColorTxt(self.data.task_data.taskTips[1].nowCount, "#2CF66F").."/"..self.data.task_data.taskTips[1].count..")"
- end
- elseif self.data.task_data.taskTips[1].type == TaskTipType.TYPE2 then-- 完成副本的要重新构建内容
- strs = string.gsub(self.data.task_data.tipContent, "<", " <")
- elseif self.data.task_data.taskTips[1].type == TaskTipType.TYPE7 then -- 对话NPC的要重新构建内容
- strs = string.gsub(self.data.task_data.tipContent, "<", " <")
- strs = string.gsub(strs, ">", "> ")
- end
- end
- if strs == "" then -- 没有自定义出内容的话,则使用原先任务的内容
- strs = self.data.task_data.tipContent
- end
- self.task_req_tmp.text = strs
-
- local is_task_finished = self.data.task_data.taskTips[1] and self.data.task_data.taskTips[1].isFinish == 1 and true or false
- self.task_proceed_obj:SetActive(not is_task_finished)
- self.task_condition_obj:SetActive(is_task_finished)
- if is_task_finished then
- lua_resM:setImageSprite(self, self.task_condition_img,
- "reincarnation_asset", "rein_preview_finished", true)
- end
-
- -- 一次只会出现两个节点,需要根据不同情况做剧中对齐
- local len1 = self.task_req_tmp.preferredWidth + 10
- local len2 = not is_task_finished and self.task_proceed_tmp.preferredWidth or 0
- local len3 = is_task_finished and self.task_condition.sizeDelta.x or 0
- local offset_x = (352 - len1 - len2 - len3) / 2
- SetAnchoredPositionX(self.task_req, offset_x)
- SetAnchoredPositionX(self.task_proceed, self.task_req.anchoredPosition.x + len1)
- SetAnchoredPositionX(self.task_condition, self.task_req.anchoredPosition.x + len1)
-
- height = self.task_req_tmp.preferredHeight + 12
- elseif self.data.content then -- 直接显示文本
- self.task_finished_tmp.text = self.data.content
- height = 30
- elseif self.data.finish_content then -- 任务已经完成,显示进度文本并打勾
- self.task_req_tmp.text = self.data.finish_content
- self.task_condition_obj:SetActive(true)
- lua_resM:setImageSprite(self, self.task_condition_img, "reincarnation_asset", "rein_preview_finished", true)
-
- local len1 = self.task_req_tmp.preferredWidth + 10
- local len2 = self.task_condition.sizeDelta.x
- local offset_x = (352 - len1 - len2) / 2
- SetAnchoredPositionX(self.task_req, offset_x)
- SetAnchoredPositionX(self.task_condition, self.task_req.anchoredPosition.x + len1)
-
- height = self.task_req_tmp.preferredHeight + 12
- end
- return height
- end
-
- function ReinTaskScrollItem:__delete( )
-
- end
|