/****************************************************************** * * 伙伴信息页 --- 基本属性 * ******************************************************************/ const BridgeComponent = require( "bridge.component" ); const HeroConst = require( "hero_const" ); const HeroEvent = require( "hero_event" ); const HeroControl = require( "hero_controller" ); cc.Class( { extends: BridgeComponent, properties: { nodEquips: { default: null, type: cc.Node }, nodArtifacts: { default: null, type: cc.Node }, }, // 显示 onEnable: function() { // 视图监听 this.vbind( [ [ "ShowPartner", this.onPartnerChanged.bind( this ) ] ] ); // 事件监听 this.bindGEvent( HeroEvent.Hero_Data_Update, this.onPartnerUpdate.bind( this ) ); this.bindGEvent( HeroEvent.Equip_Update_Event, this.onPartnerUpdate.bind( this ) ); }, // 隐藏 onDisable: function() { // 视图监听解除 this.vunbind(); // 事件监听解除 this.unbindGEvents(); }, // 置空 setEmpty: function() { nx.gui.setString( this, "lv/txt", "" ); nx.gui.setActive( this, "career", false ); nx.gui.setActive( this, "help", false ); nx.gui.setString( this, "atk/txt", "0" ); nx.gui.setString( this, "def/txt", "0" ); nx.gui.setString( this, "hp/txt", "0" ); nx.gui.setString( this, "speed/txt", "0" ); }, // 有伙伴数据更新 onPartnerUpdate: function( _vo ) { if( _vo && this.partner && _vo.partner_id == this.partner.partner_id ) { this.onPartnerChanged( _vo ); } }, // 伙伴更新 onPartnerChanged: function( _partner ) { this.partner = _partner; // 置空 if( nx.dt.objEmpty( this.partner ) ) { this.setEmpty(); return; } let key = this.partner.bid + "_" + this.partner.star; let scfg = gdata( "partner_data", "data_partner_star", key ); if( nx.dt.objEmpty( scfg ) ) { nx.error( "升级刷新失败,当前配置无效!", key ); return false; } 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( cbc ) ) { nx.error( "升级刷新失败,当前配置无效!", k1 ); return false; } // 等级 let maxlv = Math.max( cbc.lev_max, scfg.lev_max ); // let txt = `${this.partner.lev}/${maxlv}`; nx.gui.setString( this, "lv/levs/lev", this.partner.lev ); nx.gui.setString( this, "lv/levs/max", maxlv ); // 职业 let career = this.partner.type || 4; let icon = cc.path.join( "coms/images", "career" + career ); let name = nx.text.getKey(HeroConst.CareerName[ career ]) || nx.text.getKey( "lab_none" ); nx.gui.setActive( this, "career", false ); nx.gui.setString( this, "career/txt", nx.text.getKey( name ) ); nx.gui.setSpriteFrame( this, "career/icon", icon ); nx.gui.setActive( this, "help", true ); // 属性 nx.gui.setString( this, "atk/txt", this.partner.atk ); nx.gui.setString( this, "def/txt", this.partner.def ); nx.gui.setString( this, "hp/txt", this.partner.hp ); nx.gui.setString( this, "speed/txt", this.partner.speed ); }, // 点击详情 onTouchDetail: function() { if( nx.dt.objNEmpty( this.partner ) ) { const HC = HeroControl.getInstance(); HC.openHeroTipsAttrPanel( true, this.partner, true ); } }, } );