/****************************************************************** * * 核心升级 * ******************************************************************/ 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(); }, } );