/****************************************************************** * * 伙伴进阶展示界面 * ******************************************************************/ const BridgeWindow = require( "bridge.window" ); const ItemBase = require( "cmp.item.base" ); const HeroController = require( "hero_controller" ); cc.Class( { extends: BridgeWindow, properties: { cmpIcon: { default: null, type: ItemBase }, lstStars: { default: null, type: cc.Node }, lstProps: { default: null, type: cc.Node }, }, // 重载:参数打开 onOpenConfigs: function( _params ) { this.partner_old = _params.old_vo; this.partner_new = _params.new_vo; // 无效 if( nx.dt.objEmpty( this.partner_new ) ) { this.scheduleOnce( () => { this.close(); }, 0.03 ); return; } // 刷新 this.fresh(); }, // 刷新 fresh: function() { // 头像更新 this.cmpIcon.setData( this.partner_new ); // 阶段更新 let HC = HeroController.getInstance(); let HM = HC.getModel(); let cur = this.partner_new.break_lev; let max = HM.getHeroMaxBreakCountByInitStar( this.partner_new.init_star ); let chs = this.lstStars.children; for( let i = 1; i <= max; ++i ) { let node = chs[ i - 1 ]; nx.gui.setActive( node, "on", i <= cur ); nx.gui.setActive( node, "off", i > cur ); } // 属性更新 let k1 = this.partner_old.type + "_" + this.partner_old.break_id + "_" + this.partner_old.break_lev || 0; let k2 = this.partner_new.type + "_" + this.partner_new.break_id + "_" + ( this.partner_new.break_lev || 0 ); let cbc = game.configs.partner_data.data_partner_brach[ k1 ]; let nbc = game.configs.partner_data.data_partner_brach[ k2 ]; if( nx.dt.objEmpty( cbc ) || nx.dt.objEmpty( nbc ) ) { this.scheduleOnce( () => { this.close(); }, 0.03 ); return; } // 首位为战力 let chds = this.lstProps.children; let first = chds[ 0 ]; if( first ) { nx.gui.setString( first, "from", this.partner_old.power ); nx.gui.setString( first, "to", this.partner_new.power ); } // 次位为等级 let second = chds[ 1 ]; if( second ) { nx.gui.setString( second, "from", cbc.lev_max ); nx.gui.setString( second, "to", nbc.lev_max ); } // 其他属性 for( let i = 2; i < chds.length; ++i ) { let node = chds[ i ]; let att = nbc.all_attr[ i - 1 ]; if( !att ) { node.active = false; continue; } node.active = true; let id = att[ 0 ]; let name = game.configs.attr_data.data_key_to_name[ id ]; nx.gui.setString( node, "name", nx.text.getKey( name ) ); if( id == "hp_max" ) { id = "hp"; } nx.gui.setString( node, "from", this.partner_old[ id ] ); nx.gui.setString( node, "to", this.partner_new[ id ] || 0 ); } // 有新技能解锁 this.skill = null; if( nbc.skill_num > cbc.skill_num ) { let key = this.partner_new.bid + "_" + this.partner_new.star; let scfg = gdata( "partner_data", "data_partner_star", key ); if( scfg ) { let sid = null; for( let i in scfg.skills ) { if( scfg.skills[ i ][ 0 ] == nbc.skill_num ) { sid = scfg.skills[ i ][ 1 ]; } } if( sid ) { this.skill = sid; } } } }, // 点击关闭 onTouchClose: function() { let HC = HeroController.getInstance(); HC.openBreakExhibitionWindow( false, this.skill ); }, } );