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