137 lines
3.5 KiB
JavaScript
137 lines
3.5 KiB
JavaScript
/******************************************************************
|
|
*
|
|
* 伙伴信息页 --- 升阶
|
|
*
|
|
******************************************************************/
|
|
|
|
const BridgeComponent = require( "bridge.component" );
|
|
|
|
const HeroConst = require( "hero_const" );
|
|
const HeroEvent = require( "hero_event" );
|
|
const HeroControl = require( "hero_controller" );
|
|
const HeroCalculate = require( "hero_calculate" );
|
|
|
|
const BackPackConst = require( "backpack_const" );
|
|
const BIT = BackPackConst.item_type;
|
|
|
|
const HEQP = HeroConst.EquipPosList;
|
|
|
|
cc.Class( {
|
|
|
|
extends: BridgeComponent,
|
|
|
|
properties: {
|
|
|
|
lstSkills: { default: null, type: cc.Node },
|
|
|
|
},
|
|
|
|
// 显示
|
|
onEnable: function() {
|
|
|
|
// 视图监听
|
|
this.vbind( [
|
|
[ "ShowPartner", this.onPartnerChanged.bind( this ) ]
|
|
] );
|
|
|
|
// 事件监听
|
|
this.bindGEvent( HeroEvent.Hero_Data_Update, this.onPartnerUpdate.bind( this ) );
|
|
},
|
|
|
|
// 隐藏
|
|
onDisable: function() {
|
|
|
|
// 视图监听解除
|
|
this.vunbind();
|
|
|
|
// 事件监听解除
|
|
this.unbindGEvents();
|
|
|
|
},
|
|
|
|
// 置空
|
|
setEmpty: function() {
|
|
nx.gui.setActive( this.lstSkills, "", false );
|
|
},
|
|
|
|
// 有伙伴数据更新
|
|
onPartnerUpdate: function( _vo ) {
|
|
|
|
if( _vo &&
|
|
this.partner &&
|
|
_vo.partner_id == this.partner.partner_id ) {
|
|
this.onPartnerChanged( _vo );
|
|
}
|
|
},
|
|
|
|
// 伙伴更新
|
|
onPartnerChanged: function( _partner ) {
|
|
|
|
if( !_partner ) {
|
|
return;
|
|
}
|
|
|
|
this.partner = _partner;
|
|
let weapon = {};
|
|
|
|
// 置空
|
|
if( nx.dt.objEmpty( this.partner ) ) {
|
|
this.setEmpty();
|
|
return;
|
|
}
|
|
|
|
if( this.partner.eqm_list ){
|
|
let list = this.partner.eqm_list;
|
|
for (let i in list ) {
|
|
let eqm = list[i];
|
|
if( i == 41 ){
|
|
weapon = eqm;
|
|
}
|
|
}
|
|
}
|
|
|
|
let change = false;
|
|
// 数据统计
|
|
let key = this.partner.bid + "_" + this.partner.star;
|
|
let wcfg = nx.dt.objNEmpty( weapon ) ? game.configs.weapon_data.data_get_skill[weapon.base_id] : {};
|
|
if( nx.dt.objNEmpty( wcfg ) ){
|
|
change = this.partner.bid == wcfg.partner_id;
|
|
}
|
|
|
|
|
|
let scfg = gdata( "partner_data", "data_partner_star", key );
|
|
let k1 = this.partner.type + "_" + this.partner.break_id + "_" + this.partner.break_lev;
|
|
let cbc = game.configs.partner_data.data_partner_brach[ k1 ];
|
|
if( nx.dt.objEmpty( scfg ) || nx.dt.objEmpty( cbc ) ) {
|
|
nx.error( "技能刷新失败,当前配置无效!", k1 );
|
|
this.setEmpty();
|
|
return;
|
|
}
|
|
nx.gui.setActive( this.lstSkills, "", true );
|
|
|
|
const count = cbc.skill_num - 1;
|
|
const chds = this.lstSkills.children;
|
|
for( let i = 0; i < chds.length; ++i ) {
|
|
|
|
// 技能数组[0]为普攻,直接忽略,最多4个技能
|
|
let item = chds[i];
|
|
let sifo = scfg.skills[i+1];
|
|
|
|
// let sifo = scfg.skills[i+1];
|
|
if( !sifo ) {
|
|
item.active = false;
|
|
continue;
|
|
}
|
|
|
|
item.active = true;
|
|
let cmp = nx.gui.getComponent( item, "", "cmp.skill.base" );
|
|
if( cmp ) {
|
|
cmp.setData( i == chds.length - 2 && change ? wcfg.skill_id : sifo[1], ( i + 1 ) > count );
|
|
}
|
|
|
|
}
|
|
},
|
|
|
|
|
|
} );
|