源战役客户端
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.
 
 
 
 
 

136 lines
4.6 KiB

-- <*
-- @Author: Saber
-- @Description: 转职系统 转职属性提升和解锁内容信息节点
-- *>
ReinTaskDataItem = ReinTaskDataItem or BaseClass(BaseItem)
local ReinTaskDataItem = ReinTaskDataItem
function ReinTaskDataItem:__init(parent_wnd,prefab_asset,layer_name)
self.base_file = "reincarnation"
self.layout_file = "ReinTaskDataItem"
self.parent_wnd = parent_wnd
self.layer_name = layer_name
self.model = ReincarnationModel:getInstance()
self.height = 0
self.skill_item = {}
self.unlock_item = {}
self:Load()
end
function ReinTaskDataItem:Load_callback()
local nodes = {
-- 标题
"title:obj", "title/title_lb:tmp",
-- 属性容器
"attr_con:obj",
"attr_con/attr_name1:tmp",
"attr_con/attr_name2:tmp",
"attr_con/attr_val1:tmp",
"attr_con/attr_val2:tmp",
-- 解锁容器
"skill_con:obj", "unlock_con:obj",
}
self:GetChildren(nodes)
self:AddEvents()
if self.need_refreshData then
self:UpdateView()
end
end
function ReinTaskDataItem:AddEvents( )
end
function ReinTaskDataItem:SetData( data )
self.data = data
if self.is_loaded then
self.need_refreshData = false
self:UpdateView()
else
self.need_refreshData = true
end
return self.height
end
function ReinTaskDataItem:InitNodes( )
if self.title_obj.activeSelf then
self.title_obj:SetActive(false)
end
if self.attr_con_obj.activeSelf then
self.attr_con_obj:SetActive(false)
end
if self.skill_con_obj.activeSelf then
self.skill_con_obj:SetActive(false)
for k, v in pairs(self.skill_item) do
v:SetVisible(false)
end
end
if self.unlock_con_obj.activeSelf then
self.unlock_con_obj:SetActive(false)
for k, v in pairs(self.unlock_item) do
v:SetVisible(false)
end
end
end
function ReinTaskDataItem:UpdateView( )
self:InitNodes()
if self.data then
if self.data.title then -- 标题
self.title_obj:SetActive(true)
self.title_lb_tmp.text = self.data.title
self.height = 36
elseif self.data.attr1 then -- 存在属性词条
self.attr_con_obj:SetActive(true)
self.attr_name1_tmp.text = WordManager:GetProperties(self.data.attr1[1])
self.attr_val1_tmp.text = "+"..WordManager:GetPropertyValue(self.data.attr1[1], self.data.attr1[2])
if self.data.attr2 then
self.attr_name2_tmp.text = WordManager:GetProperties(self.data.attr2[1])
self.attr_val2_tmp.text = "+"..WordManager:GetPropertyValue(self.data.attr2[1], self.data.attr2[2])
end
self.height = self.data.is_last and 47 or 28
elseif self.data.skill_data then -- 技能展示
self.skill_con_obj:SetActive(true)
local item_num = #self.data.skill_data
item_num = item_num > 4 and 4 or item_num
local offset_x = (368 - 80 * item_num) * 0.5
for k, v in ipairs(self.data.skill_data) do
if k > item_num then break end
self.skill_item[k] = self.skill_item[k] or ReinTaskSkillItem.New(self.skill_con)
self.skill_item[k]:SetAnchoredPosition((k - 1) * 80 + offset_x, 0)
self.skill_item[k]:SetVisible(true)
self.skill_item[k]:SetData(v.skill_data)
end
self.height = 92
elseif self.data.equip_data then -- 装备代数
self.unlock_con_obj:SetActive(true)
local item_num = #self.data.equip_data
item_num = item_num > 4 and 4 or item_num
local offset_x = (368 - 74 * item_num) * 0.5
for k, v in ipairs(self.data.equip_data) do
if k > item_num then break end
self.unlock_item[k] = self.unlock_item[k] or UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.unlock_con)
self.unlock_item[k]:SetAnchoredPosition((k - 1) * 74 + offset_x, 0)
self.unlock_item[k]:SetItemSize(62, 62)
self.unlock_item[k]:SetVisible(true)
self.unlock_item[k]:SetData(v.equip_data)
end
self.height = 80
end
end
end
function ReinTaskDataItem:__delete( )
for k, v in pairs(self.skill_item) do
v:DeleteMe()
v = nil
end
self.skill_item = {}
for k, v in pairs(self.unlock_item) do
UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, v)
end
self.unlock_item = {}
end