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