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
|