const PathTool = require( "pathtool" ); const BackPackConst = require( "backpack_const" ); const GoodsVo = require( "goods_vo" ); cc.Class( { extends: cc.Component, properties: { nodList: { default: null, type: cc.Node, displayName: "列表容器" }, }, // 载入 onLoad: function() { if( this.tween ){ this.tween.stop(); } }, // 置空 setEmpty: function() { this.suit_config = null; nx.gui.hideAllChildren( this.nodList, "" ); }, // 设置道具 // @ 返回true:需要显示 setData: function( _item, _config, _fromBag ) { // 全隐藏 if( !_item || !_config ) { this.setEmpty(); return false; } // 获取配置 this.item = _item; this.config = _config; //判断是否需要展示套装属性 if( _config.eqm_set && this.config.eqm_set != 0 ) { if( this.config.sub_type == BackPackConst.item_sub_type.HOLYEQUIPMENT ) { //神裝 this.suit_config = gdata( "partner_holy_eqm_data", "data_suit_info", this.config.eqm_set ) } else if( this.config.sub_type == BackPackConst.item_sub_type.EQUIPS ) { this.suit_config = gdata( "partner_eqm_data", "data_eqm_suit", this.config.eqm_set ) } else { return false; } if( this.suit_config ) { // need_show_suitattr = true } } if( this.config.eqm_set == 0 ){ return; } let data = this.setSuitAttrInfo(); // let need_show_skill = data.show_skill_id; // if (need_show_skill != null) { // let config = gskilldata('data_get_skill', need_show_skill) // if (config) { // target_height = target_height + this.skill_panel_height // if (this.skill_item == null) { // this.skill_item = this.createSkillItem(this.skill_panel) // } // this.skill_item.skill.showLockIcon(false) // this.skill_item.skill.setData(config) // this.skill_item.desc.string = (config.des) // } else { // need_show_skill = false // } // } // 统计主属性信息 let props = data; // 空属性 if( nx.dt.arrEmpty( props ) ) { this.setEmpty(); return false; } // 属性设置 const setProp = function( _node, _prop ) { if( !_node || nx.dt.objEmpty( _prop ) ) { return; } let res_path = null; let name = ""; if( _prop.skill_desc ){ if( _prop.skill_desc.length == 1 ) { res_path = PathTool.getAttrIconRes( _prop.attr[ 0 ] ) name = gdata( "attr_data", "data_key_to_name", _prop.attr[ 0 ] ) nx.gui.setActive( _node, "info/dot", true ); } else { res_path = PathTool.getAttrIconRes( "skill" ) name = _prop.skill_desc[ 1 ] || nx.text.getKey( "描述信息無" ); nx.gui.setActive( _node, "info/dot", false ); } }else{ if( _prop.attr.length > 1 ) { res_path = PathTool.getAttrIconRes( _prop.attr[ 0 ] ) name = gdata( "attr_data", "data_key_to_name", _prop.attr[ 0 ] ) nx.gui.setActive( _node, "info/dot", true ); } else { res_path = PathTool.getAttrIconRes( "skill" ) name = _prop.skill_desc[ 1 ] || nx.text.getKey( "描述信息無" ); nx.gui.setActive( _node, "info/dot", false ); } } nx.gui.setSpriteFrame( _node, "info/icon", res_path ); // nx.gui.setString( _node, "info/key", nx.dt.strCut( nx.text.getKey( name ), 8 ) ); if( nx.dt.strNEmpty( name ) ){ nx.gui.setStringRich( _node, "info/key", nx.text.getKey( name ) ); } // nx.gui.setActive( _node, "info/key/show", false ); let val = BackPackConst.getAttrValue( _prop.attr[ 0 ], _prop.attr[ 1 ] ) if( !val ) { val = ""; } nx.gui.setString( _node, "info/val", val ); nx.gui.setString( _node, "suitname", nx.text.getKey( _prop.suit_name ) ); }; // 列表创建 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; }, // 设置套装 setSuitAttrInfo: function() { if( this.config == null ) { return -1 } if( this.suit_config == null ) { return -1 } // var act_count = this.getEquipActiveCount() // 按照套装排个序 this.suit_config.sort( function( a, b ) { return a.num - b.num } ) console.log( "当前的套装相关" + JSON.stringify( this.suit_config ) ); var name = null var suit_list = [] for( let index = 0; index < this.suit_config.length; index++ ) { const element = this.suit_config[ index ]; if( element ) { if( name == null ) { name = element.name; } if( element.attr || element.skill_id ) { let i = index; 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 ];//神裝套裝描述 } suit.suit_name = cc.js.formatStr( ( "%s(%s)" ), element.name, suit.count ); suit_list.push( suit ); } if( element.attr ) { if( this.config.sub_type == BackPackConst.item_sub_type.EQUIPS ) { let suit = {}; let eqm_set = null; suit.count = element.num; suit.attr = element.attr[ element.attr.length - 1 ]; eqm_set = element.id; suit.suit_name = cc.js.formatStr( ( "%s(%s)" ), element.name, suit.count ); suit_list.push( suit ); } } } } } // var suit = suit_list[suit_list.length - 1]; // // 设置属性 // 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 // } // } // } return suit_list; }, onTouchPropName: function( _node ){ let nod = nx.gui.find( _node, "show" ); nx.gui.setActive( nod, "", true ); nx.tween.fadeIn( nod, 0.3 ); this.tween = cc.tween( nod ) .to( 0.01, nod.parent.scaleX < 1 ? { scale: 1.4 } : { scale: 1 } ) .delay( 2 ) .call( ()=>{ nx.tween.fadeOut( nod, 0.3 ); } ) .start(); } } );