/****************************************************************** * * 伙伴升星展示界面 * ******************************************************************/ 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 ); }, } );