191 lines
6.0 KiB
JavaScript
191 lines
6.0 KiB
JavaScript
/******************************************************************
|
|
*
|
|
* 伙伴升星展示界面
|
|
*
|
|
******************************************************************/
|
|
|
|
const BridgeWindow = require( "bridge.window" );
|
|
const ItemBase = require( "cmp.item.base" );
|
|
const HeroController = require( "hero_controller" );
|
|
const SkillBase = require( "cmp.skill.base" );
|
|
|
|
|
|
cc.Class( {
|
|
|
|
extends: BridgeWindow,
|
|
|
|
properties: {
|
|
|
|
cmpIconold: { default: null, type: ItemBase },
|
|
cmpIconnew: { default: null, type: ItemBase },
|
|
lstSkills: { default: null, type: cc.Node },
|
|
lstProps: { default: null, type: cc.Node },
|
|
},
|
|
|
|
// 重载:参数打开
|
|
onOpenConfigs: function( _params ) {
|
|
|
|
this.partner_old = _params.old_vo;
|
|
this.partner_new = _params.new_vo;
|
|
|
|
// 无效
|
|
if( nx.dt.objEmpty( this.partner_new ) ) {
|
|
this.scheduleOnce( () => {
|
|
this.close();
|
|
}, 0.03 );
|
|
return;
|
|
}
|
|
nx.audio.playSFX( "audios/effects/upstar" );
|
|
|
|
// 刷新
|
|
this.fresh();
|
|
},
|
|
|
|
// 刷新
|
|
fresh: function() {
|
|
|
|
// 头像更新
|
|
this.cmpIconnew.setData( this.partner_new );
|
|
this.cmpIconold.setData( this.partner_old );
|
|
|
|
|
|
|
|
// 阶段更新
|
|
let HC = HeroController.getInstance();
|
|
let HM = HC.getModel();
|
|
|
|
// 属性更新
|
|
let k1 = this.partner_old.type + "_" + this.partner_old.break_id + "_" + this.partner_old.break_lev || 0;
|
|
let k2 = this.partner_new.type + "_" + this.partner_new.break_id + "_" + ( this.partner_new.break_lev || 0 );
|
|
let cbc = game.configs.partner_data.data_partner_brach[ k1 ];
|
|
|
|
let nbc = game.configs.partner_data.data_partner_brach[ k2 ];
|
|
if( nx.dt.objEmpty( cbc ) || nx.dt.objEmpty( nbc ) ) {
|
|
this.scheduleOnce( () => {
|
|
this.close();
|
|
}, 0.03 );
|
|
return;
|
|
}
|
|
|
|
// 首位为战力
|
|
let chds = this.lstProps.children;
|
|
let first = chds[ 0 ];
|
|
if( first ) {
|
|
nx.gui.setString( first, "from", this.partner_old.power );
|
|
nx.gui.setString( first, "to", this.partner_new.power );
|
|
}
|
|
|
|
let config = game.configs.partner_data.data_partner_base[this.partner_new.bid]
|
|
// 技能数据
|
|
let key = this.partner_new.bid + "_" + this.partner_new.star;
|
|
let scfg = gdata( "partner_data", "data_partner_star", key );
|
|
|
|
|
|
let old_key = this.partner_old.bid + "_" + this.partner_old.star;
|
|
let new_key = this.partner_new.bid + "_" + this.partner_new.star;
|
|
let old_star_config = gdata("partner_data", "data_partner_star", old_key);
|
|
let new_star_config = gdata("partner_data", "data_partner_star", new_key);
|
|
|
|
|
|
this.baseProps = ["hp","atk","def","speed"];
|
|
// 属性
|
|
|
|
for (let i = 1; i < chds.length; i++) {
|
|
|
|
let base = this.baseProps[ i - 1 ];
|
|
let now = this.partner_new[base];
|
|
let old = this.partner_old[base];
|
|
let node = chds[i];
|
|
nx.gui.setString( node, "from", old );
|
|
nx.gui.setString( node, "to", now );
|
|
|
|
}
|
|
|
|
|
|
nx.gui.setActive( this.lstSkills, "", false );
|
|
|
|
let chdskill = this.lstSkills.children;
|
|
// 技能提升
|
|
let old_skill = null;
|
|
let new_skill_list = {};
|
|
let new_skill_num = 0;
|
|
let dic_old_skill = {};
|
|
for (let i in old_star_config.skills) {
|
|
let skill_info = old_star_config.skills[i];
|
|
dic_old_skill[skill_info[0]] = skill_info[1];
|
|
}
|
|
|
|
for (let i = 0; i < new_star_config.skills.length; i++ ) {
|
|
let skill_info = new_star_config.skills[i];
|
|
if (skill_info[0] != 1) {
|
|
if (dic_old_skill[skill_info[0]]) {
|
|
if (dic_old_skill[skill_info[0]] != skill_info[1]) {
|
|
if (!old_skill){
|
|
old_skill = dic_old_skill[skill_info[0]];
|
|
}
|
|
|
|
new_skill_list[skill_info[0]] = skill_info[1];
|
|
new_skill_num ++;
|
|
}
|
|
}else
|
|
{ // 新技能
|
|
if (!old_skill){
|
|
old_skill = dic_old_skill[skill_info[0]];
|
|
}
|
|
|
|
new_skill_list[skill_info[0]] = skill_info[1];
|
|
new_skill_num ++;
|
|
}
|
|
}
|
|
|
|
}
|
|
let skills = this.partner_new.skills;
|
|
let show_skill = [];
|
|
if( !nx.dt.arrCompare( this.partner_new.skills, this.partner_old.skills ) ){
|
|
|
|
for (let i = 0; i < skills.length; i++) {
|
|
let item = skills[i+1];
|
|
show_skill.push( item );
|
|
}
|
|
}
|
|
|
|
|
|
if ( show_skill.length > 0 ) {
|
|
|
|
nx.gui.setActive( this.lstSkills, "", true );
|
|
for( let i = 0; i < chdskill.length; ++i ) {
|
|
|
|
// 技能数组[0]为普攻,直接忽略,最多4个技能
|
|
let item = chdskill[i];
|
|
let sifo = show_skill[i];
|
|
if( !sifo ) {
|
|
item.active = false;
|
|
continue;
|
|
}else{
|
|
item.active = true;
|
|
let cmp = nx.gui.getComponent( item, "", SkillBase );
|
|
if( cmp ) {
|
|
cmp.setData( sifo.skill_bid );
|
|
}
|
|
}
|
|
}
|
|
nx.gui.setActive( this.lstSkills.parent, "", true );
|
|
|
|
}else{
|
|
nx.gui.setActive( this.lstSkills.parent, "", false );
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
// 点击关闭
|
|
onTouchClose: function() {
|
|
|
|
let HC = HeroController.getInstance();
|
|
HC.openBreakExhibitionWindow( false, this.skill );
|
|
},
|
|
|
|
} );
|
|
|