136 lines
4.0 KiB
JavaScript
136 lines
4.0 KiB
JavaScript
|
|
/******************************************************************
|
||
|
|
*
|
||
|
|
* 伙伴进阶展示界面
|
||
|
|
*
|
||
|
|
******************************************************************/
|
||
|
|
|
||
|
|
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 );
|
||
|
|
},
|
||
|
|
|
||
|
|
} );
|