源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

179 lines
5.9 KiB

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