CommonSkillTips = CommonSkillTips or BaseClass(BaseView)
|
|
local CommonSkillTips = CommonSkillTips
|
|
--[[
|
|
self.data = {
|
|
skill_id = 0,
|
|
skill_lv = 1,
|
|
title_name = "界面标题",--界面标题
|
|
skill_name = "技能名",
|
|
active_des = "激活状态",
|
|
need_fight = false,是否需要显示战力,0未激活1已激活
|
|
-------------------------
|
|
tab_title_1 = "技能效果",
|
|
tab_title_2 = "内容标题栏2(激活条件)",
|
|
content_1 = "技能描述1(技能效果描述)",
|
|
content_2 = "技能描述2(技能激活条件)",
|
|
is_pet_skill = false,--是否是宠物技能,单独对宠物技能界面做些处理
|
|
}
|
|
--]]
|
|
function CommonSkillTips:__init()
|
|
self.base_file = "common"
|
|
self.layout_file = "CommonSkillTips"
|
|
self.layer_name = "Activity"
|
|
self.destroy_imm = true
|
|
self.use_background = true
|
|
self.change_scene_close = true
|
|
self.append_to_ctl_queue = false --是否要添加进界面堆栈
|
|
self.need_show_money = false --是否要显示顶部的金钱栏
|
|
self.click_bg_toClose = true
|
|
self.is_set_zdepth = true
|
|
self.blur_activity_bg = true
|
|
self:AddPreLoadList("common", {"CommonSkillTipsDesItem"})
|
|
self.model = PetModel:getInstance()
|
|
self.item_list = {}
|
|
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 CommonSkillTips:Open(data)
|
|
self.data = data
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function CommonSkillTips:SetShow( data )
|
|
self.data = data
|
|
self:UpdateView()
|
|
end
|
|
|
|
function CommonSkillTips:LoadSuccess()
|
|
local nodes = {
|
|
"title:tmp","skillName:tmp","activedFlag:img:obj","conSkill:img",
|
|
"close:obj", "lb_fight:txt", "skillTypeImg:img",
|
|
"desc_scroll/Viewport/desc_con", "desc_scroll:scroll", "bg:raw",
|
|
|
|
}
|
|
self:GetChildren(nodes)
|
|
|
|
lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("common_skill_tip_bg"), false)
|
|
end
|
|
|
|
function CommonSkillTips:AddEvent()
|
|
local function call_back( target )
|
|
if target == self.close_obj then
|
|
self:Close()
|
|
end
|
|
end
|
|
AddClickEvent(self.close_obj,call_back,false)
|
|
end
|
|
|
|
function CommonSkillTips:OpenSuccess()
|
|
self:UpdateView()
|
|
end
|
|
|
|
function CommonSkillTips:UpdateView()
|
|
if (not self.data) or (not self.data.skill_id) then return end
|
|
local skill_conf = SkillManager:getInstance():getSkillFromConfig(self.data.skill_id)
|
|
|
|
--宠物技能尚未同步至技能表,这里暂时不能因为没有技能配置而跳过界面刷新
|
|
if self.data.is_pet_skill then skill_conf = {} end
|
|
|
|
if not skill_conf then return end
|
|
lua_resM:setOutsideImageSprite(self, self.conSkill_img, GameResPath.GetSkillIcon(self.data.skill_id),false)
|
|
self:UpdateSkillDescData(skill_conf)
|
|
self.title_tmp.text = self.data.title_name or "技能"
|
|
self.skillName_tmp.text = self.data.skill_name or Trim(skill_conf.name)
|
|
|
|
if self.data.need_show_lock_state then
|
|
if self.data.is_lock then
|
|
lua_resM:setImageSprite(self, self.activedFlag_img, "common_asset","active_state_2")
|
|
else
|
|
lua_resM:setImageSprite(self, self.activedFlag_img, "common_asset","active_state_1")
|
|
end
|
|
self.activedFlag_obj:SetActive(true)
|
|
else
|
|
self.activedFlag_obj:SetActive(false)
|
|
end
|
|
|
|
if self.data.need_fight then
|
|
local _,fight = GetSkillAttrBySkill( self.data.skill_id, self.data.skill_lv or 1, true ,self.data.need_fight == 1)
|
|
self.lb_fight_txt.text = "f" .. fight
|
|
else
|
|
self.lb_fight_txt.text = ""
|
|
end
|
|
if self.data.skill_type then
|
|
lua_resM:setImageSprite(self, self.skillTypeImg_img, "common_asset", "warSoul_skill_type_img"..self.data.skill_type,true)
|
|
end
|
|
|
|
-- self.tab_title_1_tmp.text = self.data.tab_title_1 or "技能效果"
|
|
-- self.tab_title_2_tmp.text = self.data.tab_title_2 or "激活条件"
|
|
-- -------------------------
|
|
-- if self.data.content_1 then
|
|
-- self.content_1_tmp.text = self.data.content_1
|
|
-- else
|
|
-- local skill_lv = self.data.skill_lv or 1
|
|
-- if skill_conf.lvs and skill_conf.lvs[skill_lv] then
|
|
-- self.content_1_tmp.text = Trim(skill_conf.lvs[skill_lv].desc or "")
|
|
-- else
|
|
-- self.content_1_tmp.text = ""
|
|
-- end
|
|
-- end
|
|
-- self.content_2_tmp.text = self.data.content_2 or "无"
|
|
end
|
|
|
|
-- 加载属性信息
|
|
-- (只是将动态加载标题和内容节点的逻辑拿了过来,方便以后进行拓展,具体的界面数据内容都是临时的,非正式数据结构体!)
|
|
function CommonSkillTips:UpdateSkillDescData(skill_conf)
|
|
if not self.desc_list then
|
|
self.desc_list = {}
|
|
-- 技能效果
|
|
self.desc_list[#self.desc_list+1] = {title = "技能效果"}
|
|
local label1 = ""
|
|
if self.data.content_1 then
|
|
label1 = self.data.content_1
|
|
else
|
|
local skill_lv = self.data.skill_lv or 1
|
|
if skill_conf.lvs and skill_conf.lvs[skill_lv] then
|
|
label1 = Trim(skill_conf.lvs[skill_lv].desc or "")
|
|
end
|
|
end
|
|
self.desc_list[#self.desc_list+1] = {label = label1}
|
|
-- 激活条件
|
|
self.desc_list[#self.desc_list+1] = {title = "学习条件"}
|
|
|
|
self.desc_list[#self.desc_list+1] = {label = self.data.content_2 or "暂无学习条件", isShowBg = self.data.isShowBg == nil and true or self.data.isShowBg, isShowIcon = self.data.isShowIcon == nil and true or self.data.isShowIcon}
|
|
end
|
|
self:UpdateDescItems()
|
|
end
|
|
|
|
function CommonSkillTips:UpdateDescItems(reset_pos)
|
|
local item, height = nil, 0
|
|
for k, v in ipairs(self.desc_list) do
|
|
item = self.item_list[k]
|
|
if not item then
|
|
item = CommonSkillTipsDesItem.New(self.desc_con)
|
|
self.item_list[k] = item
|
|
end
|
|
item:SetVisible(true)
|
|
item:SetAnchoredPosition(0, -height)
|
|
height = height + item:SetData(v)
|
|
end
|
|
-- 设置滚动容器的滚动条件
|
|
self.desc_scroll_scroll.enabled = height > self.desc_scroll.sizeDelta.y
|
|
SetSizeDeltaY(self.desc_con, height + 37)
|
|
end
|
|
|
|
function CommonSkillTips:DestroySuccess( )
|
|
for k, v in pairs(self.item_list) do
|
|
v:DeleteMe()
|
|
v = nil
|
|
end
|
|
self.item_list = nil
|
|
end
|