|
-- <*
|
|
-- @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("<color=%s>%s</color>", 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 "<color=#fdffc2><size=16>(圣物觉醒可升级)</size></color>") 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("穿戴 <color=%s>%s以上%s</color> 后解锁",
|
|
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
|