PsionicToolTipsItem = PsionicToolTipsItem or BaseClass(BaseItem) local PsionicToolTipsItem = PsionicToolTipsItem local string_format = string.format function PsionicToolTipsItem:__init(parent_wnd,prefab_asset,layer_name) self.base_file = "common" self.layout_file = "PsionicToolTipsItem" self.parent_wnd = parent_wnd self.layer_name = layer_name self.model = PsionicModel:getInstance() self.awake_pro_imgs = {} -- 圣物觉醒进度表现 self:Load() end function PsionicToolTipsItem:Load_callback() local nodes = { -- 标题 "title:obj", "title/title_lb:tmp", "title/title_extra", "title/title_extra/title_extra_lb:tmp", -- 配置属性描述 "attr_basic:obj", "attr_basic/attr_basic_lb:tmp", "attr_basic/attr_arrow:obj:img", "attr_basic/attr_basic_dif:tmp", -- 洗练属性描述 "attr_wash:obj", "attr_wash/wash_icon:imgex", "attr_wash/attr_wash_lb:tmp", -- 装备技能描述 "attr_break:obj", "attr_break/attr_break_lb:tmp", } self:GetChildren(nodes) self:AddEvents() if self.need_refreshData then self:UpdateView() end end function PsionicToolTipsItem:AddEvents( ) end function PsionicToolTipsItem:UpdateView( ) local height = 0 -- 初始化节点 self:InitCons() if self.data.title then -- 标题 self.title_obj:SetActive(true) self.title_lb_tmp.text = self.data.title local ex_data = self.data.title_extra if ex_data then -- 有标题额外参数 local awake_req = PsionicConst.RequireEquipColor[PsionicConst.TabId.PSkill] -- 品质需求前端配置 self.title_extra_lb_tmp.text = ex_data.equip_color < awake_req.color and string_format("橙品圣物可激活", ColorUtil.RED_DARK) or (ex_data.has_weared and ex_data.has_weared.color >= awake_req.color and string_format("%s段", ChineseNumber(ex_data.awake_lv)) or string_format("穿戴可激活", ColorUtil.RED_DARK)) -- 觉醒需要有进度表现 if ex_data.equip_color >= awake_req.color and ex_data.has_weared and ex_data.has_weared.color >= awake_req.color then for i = 1, 6 do self.awake_pro_imgs[i] = self.awake_pro_imgs[i] or UiFactory.createChild(self.title_extra, UIType.Image, "pro" .. i) SetAnchoredPosition(self.awake_pro_imgs[i].transform, (i-3) * 12 + 25, 0) lua_resM:setImageSprite(self, self.awake_pro_imgs[i]:GetComponent("Image"), "common_asset", i <= ex_data.awake_lv and "ps_skill_pro1" or "ps_skill_pro0", true) end end else self.title_extra_lb_tmp.text = "" end height = 28 elseif self.data.attr_basic then -- 基础属性 self.attr_basic_obj:SetActive(true) local attr_type = WordManager:GetProperties(self.data.attr_basic[1]) -- 属性值要加上槽位等级带来的等级提升属性量 local attr_val = WordManager:GetPropertyValue(self.data.attr_basic[1], self.data.attr_basic[2] + self.data.add_attr * self.data.slot_lv) self.attr_basic_lb_tmp.text = attr_type .. " " .. string_format("+%s", ColorUtil.GREEN_DARK, attr_val) if self.data.show_diff then -- 有展示属性差距的要求,传入的内容是对比的属性值 self.attr_basic_dif_tmp.text = self.data.show_diff ~= 0 and string_format("%s", self.data.show_diff > 0 and ColorUtil.GREEN_DARK or ColorUtil.RED_DARK, WordManager:GetPropertyValue(self.data.attr_basic[1], math.abs(self.data.show_diff))) or "" lua_resM:setImageSprite(self, self.attr_arrow_img, "common_asset", self.data.show_diff > 0 and "tyui_Arrow_3" or "tyui_Arrow_4") self.attr_arrow_obj:SetActive(self.data.show_diff ~= 0) -- 移动箭头位置 if self.data.show_diff ~= 0 then SetAnchoredPositionX(self.attr_arrow, self.attr_basic_lb.anchoredPosition.x + self.attr_basic_lb_tmp.preferredWidth + 8) SetAnchoredPositionX(self.attr_basic_dif, self.attr_arrow.anchoredPosition.x + 25) end else self.attr_basic_dif_tmp.text = "" self.attr_arrow_obj:SetActive(false) end height = 24 + (self.data.is_last and 7 or 0) elseif self.data.attr_wash then -- 洗练属性 self.attr_wash_obj:SetActive(true) local attr_type = self.data.attr_wash[1] local attr_max_val = self.data.attr_wash[2] self.attr_wash_lb_tmp.text = string_format("%s +%s / %s", WordManager:GetProperties(attr_type), ColorUtil.GREEN_DARK, self.data.cur_val, WordManager:GetPropertyValue(attr_type, attr_max_val)) -- 洗练属性满了才显示左侧小点 self.wash_icon_imgex.enabled = self.data.cur_val >= attr_max_val height = 24 + (self.data.is_last and 7 or 0) elseif self.data.skill_data then -- 技能数据 self.attr_break_obj:SetActive(true) local attr_type = self.data.skill_data[1] local attr_val = self.data.skill_data[2] self.attr_break_lb_tmp.text = string_format("%s +%s", WordManager:GetProperties(attr_type), ColorUtil.GREEN_DARK, WordManager:GetPropertyValue(attr_type, attr_val)) height = 24 + (self.data.is_last and 7 or 0) end return height end -- 初始化界面显示 function PsionicToolTipsItem:InitCons( ) if self.title_obj.activeSelf then self.title_obj:SetActive(false) end if self.attr_basic_obj.activeSelf then self.attr_basic_obj:SetActive(false) end if self.attr_wash_obj.activeSelf then self.attr_wash_obj:SetActive(false) end if self.attr_break_obj.activeSelf then self.attr_break_obj:SetActive(false) end end function PsionicToolTipsItem:SetData( data ) local height = 0 self.data = data if self.is_loaded then self.need_refreshData = false height = self:UpdateView() else self.need_refreshData = true end return height end function PsionicToolTipsItem:__delete( ) end