源战役客户端
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

135 lines
4.9 KiB

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