/****************************************************************** * * 聯盟天賦pvp技能升级 * ******************************************************************/ const BridgeWindow = require( "bridge.window" ); const BackpackController = require( "backpack_controller" ); const SkillBase = require( "cmp.skill.base" ); const GuildskillController = require( "guildskill_controller" ); cc.Class( { extends: BridgeWindow, properties: { skillNow: { default: null, type: SkillBase }, skillNext: { default: null, type: SkillBase }, lstNeeds: { default: null, type: cc.Node }, }, onLoad: function() { }, // 重载:参数打开 onOpenConfigs: function( _params ) { /***** * {"career":2, * "lev":{"career":2, * "attr_formation":[{"id":20001,"lev":7}, * {"id":20002,"lev":1}, * {"id":20003,"lev":5}, * {"id":20004,"lev":4}], * "skill_id":0,"skill_lev":0}} */ this.career = _params.career; this.info = _params.lev; this.skill = _params.lev.skill_id; this.fresh(); }, // 刷新 fresh: function( ) { let key = this.career + "_" + ( parseInt( this.info.skill_lev ) + 1 ) ; let cfg = gdata( "guild_skill_data", "data_pvp_skill_info", key ); this.needs = []; if( cfg ){ this.skillNext.setData( cfg.skill_id ); this.skillNow.setData( this.skill ); nx.gui.setActive( this.skillNow, "lock", this.info.skill_lev == 0 ); } let key2 = this.career + "_" + this.info.skill_lev; let mfg = gdata( "guild_skill_data", "data_pvp_skill_info", key2 ); if( nx.dt.arrEmpty( mfg.loss ) ) { // 无消耗 nx.gui.hideAllChildren( this.lstNeeds ); } else { let model = BackpackController.getInstance().getModel(); let chds = this.lstNeeds.children; for( let i = 0; i < chds.length; ++i ) { let node = chds[ i ]; let info = mfg.loss[ i ]; if( !info ) { node.active = false; continue; } node.active = true; let icfg = Utils.getItemConfig( info[ 0 ] ); nx.bridge.setIcon( node, "icon", icfg.icon ); let have = model.getItemNumByBid( info[ 0 ] ); let str = nx.dt.shortCount( info[ 1 ] ) + "/" + nx.dt.shortCount( have ); nx.gui.setString( node, "txt", str ); let clr = ( have >= info[ 1 ] ) ? cc.Color.WHITE : cc.Color.RED; nx.gui.setColor( node, "txt", clr ); // 缺少记录 if( have < info[ 1 ] ) { this.needs.push( info[ 0 ] ); } } } }, // 点击确认 onTouchConfirm: function() { if( !nx.dt.arrEmpty( this.needs ) ){ let mat = this.needs[0]; let ifg = gdata( "item_data", "data_unit1", mat ); if( ifg ){ nx.tbox( nx.text.format( nx.text.getKey( "lab_hero_break_window_tip1" ), ifg.name ) ); } BackpackController.getInstance().openTipsSource( true, mat ); this.close(); return; } let key2 = this.career + "_" + this.info.skill_lev; let mfg = gdata( "guild_skill_data", "data_pvp_skill_info", key2 ); let need_lev = mfg.need_lev; let all = this.info.attr_formation; let count = 0; all.forEach( item => { if( item.lev >= need_lev ){ count++; } }); if( count != all.length ){ // nx.tbox( nx.text.format( "GuildSkillUpLevNeeds", need_lev ) ); return; } let GS = GuildskillController.getInstance(); if( GS ){ GS.send23708( this.career ); } this.close(); }, } );