Files
fc/dev/project/assets/Scripts/mod/home/base_kernel/cmp.kernel.uplevel.js
T

121 lines
3.5 KiB
JavaScript
Raw Normal View History

2026-05-23 22:10:14 +08:00
/******************************************************************
*
* 核心升级
*
******************************************************************/
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();
},
} );