181 lines
5.4 KiB
JavaScript
181 lines
5.4 KiB
JavaScript
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;
|
|
},
|
|
|
|
} );
|