源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

165 lines
6.9 KiB

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