121 lines
3.5 KiB
JavaScript
121 lines
3.5 KiB
JavaScript
/******************************************************************
|
|
*
|
|
* 核心升级
|
|
*
|
|
******************************************************************/
|
|
|
|
const BridgeWindow = require( "bridge.window" );
|
|
const BackpackController = require( "backpack_controller" );
|
|
const KernelController = require( "halidom_controller" );
|
|
|
|
|
|
cc.Class( {
|
|
|
|
extends: BridgeWindow,
|
|
|
|
properties: {
|
|
|
|
lstProps: { default: null, type: cc.Node },
|
|
lstNeeds: { default: null, type: cc.Node },
|
|
},
|
|
|
|
onLoad: function() {
|
|
|
|
|
|
},
|
|
|
|
// 重载:参数打开
|
|
onOpenConfigs: function( _params ) {
|
|
this.level = _params.level;
|
|
this.camp = _params.camp;
|
|
this.fresh( );
|
|
},
|
|
|
|
|
|
// 刷新
|
|
fresh: function( ) {
|
|
|
|
let cfg = game.configs.halidom_data.data_lvup[this.camp][this.level];
|
|
let tfg = game.configs.halidom_data.data_lvup[this.camp][this.level+1];
|
|
nx.gui.setString( this.lstProps, "lev/txt", ("LEVEL " + this.level) );
|
|
nx.gui.setString( this.lstProps, "next_lev/txt", ("LEVEL " + (this.level + 1) ) );
|
|
let node = nx.gui.find( this.lstProps, "list" ).children;
|
|
let props = cfg.attr;
|
|
let nprops = tfg.attr;
|
|
for (let i = 0; i < props.length; i++) {
|
|
let attr = props[i];
|
|
let nattr = nprops[i];
|
|
nx.gui.setString( node[i], "from/from", attr[1] );
|
|
nx.gui.setString( node[i], "to/from", nattr[1] );
|
|
}
|
|
|
|
// 消耗
|
|
this.needs = [];
|
|
if( nx.dt.arrEmpty( cfg.loss ) ) {
|
|
// 无消耗
|
|
nx.gui.hideAllChildren( this.lstNeeds );
|
|
}
|
|
else {
|
|
|
|
let model = BackpackController.getInstance().getModel();
|
|
let chds = this.lstNeeds.children;
|
|
for( let i = 0; i < chds.length; ++i ) {
|
|
|
|
let node = chds[ i ];
|
|
let info = cfg.loss[ i ];
|
|
if( !info ) {
|
|
node.active = false;
|
|
continue;
|
|
}
|
|
|
|
node.active = true;
|
|
let icfg = Utils.getItemConfig( info[ 0 ] );
|
|
nx.bridge.setIcon( node, "icon", icfg.icon );
|
|
|
|
let have = model.getItemNumByBid( info[ 0 ] );
|
|
let str = nx.dt.shortCount( have ) + "/" + nx.dt.shortCount( info[ 1 ] ) ;
|
|
nx.gui.setString( node, "txt", str );
|
|
|
|
let clr = ( have >= info[ 1 ] ) ? cc.Color.WHITE : cc.Color.RED;
|
|
nx.gui.setColor( node, "txt", clr );
|
|
|
|
// 缺少记录
|
|
if( have < info[ 1 ] ) {
|
|
this.needs.push( info[ 0 ] );
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
// 点击确认
|
|
onTouchConfirm: function() {
|
|
|
|
let cfg = game.configs.halidom_data.data_lvup[this.camp][this.level];
|
|
let mat = cfg.loss[0][0];
|
|
let need = cfg.loss[0][1];
|
|
let canUp = BackpackController.getInstance().getModel().getItemNumByBid( mat ) >= need;
|
|
let KC = KernelController.getInstance();
|
|
if( KC ){
|
|
if( canUp ){
|
|
KC.sender22203( this.camp );
|
|
}else{
|
|
let ifg = gdata( "item_data", "data_unit1", mat );
|
|
if( ifg ){
|
|
nx.tbox( nx.text.format( nx.text.getKey( "lab_hero_break_window_tip1" ), ifg.name ) );
|
|
|
|
}
|
|
BackpackController.getInstance().openTipsSource( true, mat );
|
|
}
|
|
|
|
}
|
|
this.close();
|
|
},
|
|
|
|
} );
|