-- <* -- @Author: Saber -- @Description: 圣物系统技能tips界面 -- *> PsionicSkillTipView = PsionicSkillTipView or BaseClass(BaseView) local PsionicSkillTipView = PsionicSkillTipView function PsionicSkillTipView:__init() self.base_file = "psionic" self.layout_file = "PsionicSkillTipView" self.layer_name = "Top" self.destroy_imm = true self.use_background = true --全屏界面默认使用这个参数,非全屏界面自行设置 self.click_bg_toClose = true self:AddPreLoadList("psionic", {"PsionicSkillTipItem"}) self.is_set_zdepth = true self.change_scene_close = true --是否切换场景时关闭(弹出界面使用) self.model = PsionicModel:getInstance() self.info_item = {} self.load_callback = function () self:LoadSuccess() self:AddEvent() end self.open_callback = function ( ) self:OpenSuccess() end self.destroy_callback = function ( ) self:DestroySuccess() end end function PsionicSkillTipView:Open(skill_data, x, y) self.skill_data = skill_data self.pos_x = x or 0 self.pos_y = y or 0 self.skill_cfg = ConfigItemMgr.Instance:GetSkillItem(self.skill_data.skill_id) BaseView.Open(self) end function PsionicSkillTipView:LoadSuccess() local nodes = { "content", "content/bg:raw", "content/skill_icon:img", "content/activated:img:obj", "content/info_scroll", "content/info_scroll/Viewport:img", "content/info_scroll/Viewport/info_con", "content/name:tmp", "content/level:tmp", } self:GetChildren(nodes) SetSizeDelta(self.transform, 0, 0) local size_x = self.content.sizeDelta.x local size_y = self.content.sizeDelta.y + 30 self.pos_x = self.pos_x + size_x > ScreenWidth/2 and ScreenWidth/2 - size_x or self.pos_x self.pos_y = self.pos_y - size_y < -ScreenHeight/2 and size_y - ScreenHeight/2 or self.pos_y -- print("Saber:PsionicSkillTipView [55] self.pos_x, self.pos_y: ",self.pos_x, self.pos_y) SetAnchoredPosition(self.content, self.pos_x, self.pos_y) lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("ps_skill_tips_bg")) end function PsionicSkillTipView:AddEvent() end function PsionicSkillTipView:OpenSuccess() self:UpdateView() end function PsionicSkillTipView:UpdateView() self:UpdateBasicData() self:UpdateInfoItems() end -- 加载基础数据 function PsionicSkillTipView:UpdateBasicData( ) self.name_tmp.text = string.format("%s", ColorUtil.PURPLE_DARK, Trim(self.skill_cfg.name)) lua_resM:setOutsideImageSprite(self, self.skill_icon_img, GameResPath.GetSkillIcon(self.skill_data.skill_id), true) local lv = self.skill_data.skill_lv local lv_str = string.format("等级:%s", lv == 0 and 1 or lv) -- 未激活也显示1级 lv_str = lv_str .. (lv > 0 and (lv >= self.skill_cfg.lvs.lvs_total and "" or "(圣物觉醒可升级)") or "") self.level_tmp.text = lv_str lua_resM:setImageSprite(self, self.activated_img, "psionic_asset", lv == 0 and "ps_unactivated" or "ps_activated", true) self.activated_obj:SetActive(true) -- self.lvup_tip_tmp.text = lv > 0 and (lv >= self.skill_cfg.lvs.lvs_total and "" or "(觉醒圣物可升级)") or "" end -- 加载技能描述节点 function PsionicSkillTipView:UpdateInfoItems( ) local info_list = {} local lv = self.skill_data.skill_lv -- 获取不到等级配置就选用1级的配置 local lvs_cfg = self.skill_cfg.lvs and self.skill_cfg.lvs[lv] or self.skill_cfg.lvs[1] if lvs_cfg then info_list[#info_list+1] = {title = "技能效果"} info_list[#info_list+1] = {desc = Trim(lvs_cfg.desc), show_line = true} -- local power = Trim(lvs_cfg.power) -- if power ~= "" then -- info_list[#info_list+1] = {power = power} -- end end info_list[#info_list+1] = {title = "激活条件"} local color_cfg = PsionicConst.RequireEquipColor[PsionicConst.TabId.PSkill] local color = WordManager.GetGoodsColor(color_cfg.color, true) info_list[#info_list+1] = { desc = string.format("穿戴 %s以上%s 后解锁", color, color_cfg.str, PsionicConst.EquipSlotName[self.skill_data.pos]) } local height = 2 local item for k, v in ipairs(info_list) do item = self.info_item[k] if not item then item = PsionicSkillTipItem.New(self.info_con) self.info_item[k] = item end item:SetAnchoredPosition(0, -height) height = height + item:SetData(v) end SetSizeDeltaY(self.info_con, height + 5) self.Viewport_img.raycastTarget = height > self.info_scroll.sizeDelta.y end function PsionicSkillTipView:DestroySuccess( ) for k, v in pairs(self.info_item) do v:DeleteMe() v = nil end self.info_item = nil end