const BackPackConst = require( "backpack_const" ); const PathTool = require( "pathtool" ); cc.Class( { extends: cc.Component, properties: { nodList: { default: null, type: cc.Node, displayName: "列表容器" }, }, // 载入 onLoad: function() { }, // 置空 setEmpty: function() { nx.gui.hideAllChildren( this.nodList, "" ); }, // 设置道具 // @ 返回true:需要显示 setData: function( _item, _config, _fromBag ) { // 全隐藏 if( !_item || !_config ) { this.setEmpty(); return false; } // 获取配置 this.item = _item; this.config = _config; //判断是否需要展示套装属性 let skills = []; if( this.config.sub_type == BackPackConst.item_sub_type.HOLYEQUIPMENT ) { //神裝 if( this.config.eqm_set != 0 ) { this.suit_config = gdata( "partner_holy_eqm_data", "data_suit_info", this.config.eqm_set ) skills = this.setSuitSkill(); } else { return false; } } else if( this.config.sub_type == BackPackConst.item_sub_type.SPECIAL ) {//特殊 if( this.item.extra ) { skills = this.setArtSkill(); } else { return false; } } else if( this.config.sub_type == BackPackConst.item_sub_type.ELFIN ) {//精灵 skills = this.setElfinSkill(); } else { return false; } // 统计主属性信息 let props = skills; // 空属性 if( nx.dt.arrEmpty( props ) ) { this.setEmpty(); return false; } // 属性设置 const setProp = function( _node, _prop ) { if( !_node || nx.dt.objEmpty( _prop ) ) { return; } nx.bridge.setIcon( _node, "ico", _prop.icon ); nx.gui.setString( _node, "txt_lay/name", _prop.name ); nx.gui.setString( _node, "txt_lay/txt/view/content/desc", _prop.des ); }; // 列表创建 const chds = this.nodList.children; nx.gui.gocChildren( this.nodList, "", props.length, chds[ 0 ] ); for( let i = 0; i < props.length; ++i ) { setProp( chds[ i ], props[ i ] ); } return true; }, setElfinSkill() { let list = []; let id = this.item.base_id || this.item.item_id || this.item.id; // console.log( JSON.stringify( this.config ) + "当前的技能信息 " + JSON.stringify( this.item ) ); let cur_elfin_cfg = gdata( "sprite_data", "data_elfin_data", id ); if( nx.dt.objEmpty( cur_elfin_cfg ) ) { return false; } var config = gskilldata( 'data_get_skill', cur_elfin_cfg.skill ); list.push( config ); return list; }, //设置符文技能 setArtSkill() { let list = []; for( var i in this.item.extra ) { var value = this.item.extra[ i ]; if( value && value.extra_k && ( value.extra_k == 1 || value.extra_k == 2 || value.extra_k == 8 ) ) { var config = gskilldata( "data_get_skill", [ value.extra_v ] ); if( config ) { list.push( config ); } } } return list; }, // 设置神装技能 setSuitSkill: function() { if( this.config == null ) { return -1 } if( this.suit_config == null ) { return -1 } // 按照套装排个序 this.suit_config.sort( function( a, b ) { return a.num - b.num } ) var name = null var suit_list = [] let show_skill_id = null; for( let index = 0; index < this.suit_config.length; index++ ) { const element = this.suit_config[ index ]; if( name == null ) { name = element.name } if( element.attr || element.skill_id ) { if( this.config.sub_type == BackPackConst.item_sub_type.HOLYEQUIPMENT ) { //神裝 let suit = {} let eqm_set = null suit.count = element.num suit.attr = element.skill_id[ element.skill_id.length - 1 ] eqm_set = element.id if( element.all_skill_desc ) { suit.skill_desc = element.all_skill_desc[ element.all_skill_desc.length - 1 ]//神裝套裝描述 } let star = eqm_set % 100 suit.suit_name = cc.js.formatStr( ( "%s★ Set(%s)" ), star, suit.count ) suit_list.push( suit ) } } } var suit = suit_list[ suit_list.length - 1 ]; // 设置属性 let skill_list = []; for( let index = 0; index < suit_list.length; index++ ) { const element = suit_list[ index ]; if( typeof ( element.attr ) == "number" ) { if( suit.skill_desc[ 0 ] && suit.skill_desc[ 0 ] == 2 ) { show_skill_id = suit.attr; let skill_cfg = gskilldata( 'data_get_skill', show_skill_id ); skill_list.push( skill_cfg ); } } } return skill_list; }, } );