/****************************************************************** * * 伙伴信息页 --- 升阶 * ******************************************************************/ 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 ); } } }, } );