141 lines
4.0 KiB
JavaScript
141 lines
4.0 KiB
JavaScript
/******************************************************************
|
|
*
|
|
* 聯盟天賦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();
|
|
|
|
},
|
|
|
|
} );
|