645 lines
20 KiB
JavaScript
645 lines
20 KiB
JavaScript
|
|
/******************************************************************
|
||
|
|
*
|
||
|
|
* 僚机背包页
|
||
|
|
*
|
||
|
|
******************************************************************/
|
||
|
|
|
||
|
|
const MenuPage = require( "cmp.com.menu.page" );
|
||
|
|
const ElfinEvent = require( "elfin_event" );
|
||
|
|
const ElfinController = require( "elfin_controller" );
|
||
|
|
const TipsController = require( "tips_controller" );
|
||
|
|
const RoleController = require( "role_controller" );
|
||
|
|
const BackpackController = require( "backpack_controller" );
|
||
|
|
const NxSpine = require( "nx.fx.spine" );
|
||
|
|
const ItemBase = require( "cmp.item.base" );
|
||
|
|
const wing = "wing";
|
||
|
|
|
||
|
|
cc.Class( {
|
||
|
|
|
||
|
|
extends: MenuPage,
|
||
|
|
|
||
|
|
properties: {
|
||
|
|
|
||
|
|
power : {
|
||
|
|
default : null,
|
||
|
|
type : cc.Node,
|
||
|
|
},
|
||
|
|
|
||
|
|
lev : {
|
||
|
|
default : null,
|
||
|
|
type : cc.Node,
|
||
|
|
},
|
||
|
|
|
||
|
|
stageInfo : {
|
||
|
|
default : null,
|
||
|
|
type : cc.Node,
|
||
|
|
},
|
||
|
|
|
||
|
|
props : {
|
||
|
|
default : null,
|
||
|
|
type : cc.Node,
|
||
|
|
},
|
||
|
|
|
||
|
|
stages : {
|
||
|
|
default : [],
|
||
|
|
type : cc.Node,
|
||
|
|
},
|
||
|
|
|
||
|
|
skills : {
|
||
|
|
default : [],
|
||
|
|
type : cc.Node,
|
||
|
|
},
|
||
|
|
|
||
|
|
needs : {
|
||
|
|
default : null,
|
||
|
|
type : cc.Node,
|
||
|
|
},
|
||
|
|
|
||
|
|
ops: {
|
||
|
|
default : null,
|
||
|
|
type : cc.Node,
|
||
|
|
},
|
||
|
|
|
||
|
|
role: {
|
||
|
|
default : null,
|
||
|
|
type : cc.Sprite,
|
||
|
|
},
|
||
|
|
|
||
|
|
nodMax: {
|
||
|
|
default : null,
|
||
|
|
type : cc.Node,
|
||
|
|
},
|
||
|
|
|
||
|
|
spEffect: { default: null, type: NxSpine },
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
onLoad: function() {
|
||
|
|
|
||
|
|
nx.gui.setSpriteFrame( this.role, "", null );
|
||
|
|
this.spEffect.stop();
|
||
|
|
},
|
||
|
|
|
||
|
|
onEnable: function(){
|
||
|
|
|
||
|
|
// 事件监听
|
||
|
|
this.bindGEvent( ElfinEvent.Get_Elfin_Tree_Data_Event, this.onFreshFirst.bind( this ) );
|
||
|
|
this.bindGEvent( ElfinEvent.Elfin_Plan_From_Info_Event, this.onFreshDefault.bind( this ) );
|
||
|
|
this.bindGEvent( ElfinEvent.Elfin_Tree_Lv_Up_Event, this.onPlayEffect.bind( this ) );
|
||
|
|
this.onDealData();
|
||
|
|
},
|
||
|
|
|
||
|
|
onDisable: function(){
|
||
|
|
this.unbindGEvents();
|
||
|
|
},
|
||
|
|
|
||
|
|
// 首次点击如果获取不到相关的僚机数据,请求
|
||
|
|
onDealData : function(){
|
||
|
|
|
||
|
|
let Elfin = ElfinController.getInstance();
|
||
|
|
let model = Elfin.getModel();
|
||
|
|
this.elfinData = model.getElfinTreeData();
|
||
|
|
// if( nx.dt.objEmpty( this.elfinData ) ){
|
||
|
|
// Elfin.sender26510();
|
||
|
|
// }else{
|
||
|
|
// this.onFreshFirst();
|
||
|
|
// }
|
||
|
|
Elfin.sender26510();
|
||
|
|
// getElfinTreeData
|
||
|
|
},
|
||
|
|
|
||
|
|
// 收到消息
|
||
|
|
onFreshFirst: function( _data ){
|
||
|
|
|
||
|
|
let Elfin = ElfinController.getInstance();
|
||
|
|
let model = Elfin.getModel();
|
||
|
|
this.elfinData = model.getElfinTreeData() || _data;
|
||
|
|
this.onFreshWings( this.elfinData );
|
||
|
|
},
|
||
|
|
|
||
|
|
onFreshWings : function( _data ){
|
||
|
|
|
||
|
|
let elfinData = _data;
|
||
|
|
if( !this.dataAnalyst() ){
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
// {"pos":2,"item_bid":0},{"pos":1,"item_bid":113005}
|
||
|
|
let cfg = game.configs.sprite_data.data_tree_step[elfinData.break_lev];
|
||
|
|
// 等级
|
||
|
|
|
||
|
|
let txt = `${elfinData.lev}/${cfg.lev_max}`;
|
||
|
|
|
||
|
|
nx.gui.setString( this.power, "", elfinData.power );
|
||
|
|
nx.gui.setStringRich( this.lev, "", nx.text.format( "WingLevel", elfinData.lev, cfg.lev_max ) );
|
||
|
|
nx.gui.setString( this.props, "ATK/txt", elfinData.atk );
|
||
|
|
nx.gui.setString( this.props, "HP/txt", elfinData.hp_max );
|
||
|
|
nx.gui.setString( this.props, "DEF/txt", elfinData.def );
|
||
|
|
nx.gui.setString( this.props, "SPD/txt", elfinData.speed );
|
||
|
|
nx.gui.setString( this.stageInfo, "", nx.text.format( "FortressLevel_", elfinData.break_lev ) );
|
||
|
|
this.reds = [];
|
||
|
|
this.updateNeeds();
|
||
|
|
this.freshOps();
|
||
|
|
this.setWingsInfo( this.elfinData );
|
||
|
|
// if( )
|
||
|
|
// nx.bridge.setIcon( this.role, "", ifg.imageid );
|
||
|
|
// let ifg = gdata( "item_data","data_unit9", cmp.mdata );
|
||
|
|
// nx.bridge.setIcon( this.role, "", ifg.imageid );
|
||
|
|
// this.role_bid = cmp.mdata;
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
// 操作刷新
|
||
|
|
freshOps: function() {
|
||
|
|
nx.gui.setActive( this, "upstar", false );
|
||
|
|
// 尚未当阶段满级,更新升级花费
|
||
|
|
// 最大等级按照当前阶段的最高等级/如果是顶阶那么按照最大等级
|
||
|
|
let maxLv = this.data.cbc.lev_max;
|
||
|
|
if( nx.dt.objEmpty( this.data.nbc ) ) {
|
||
|
|
maxLv = Math.max( maxLv, this.data.scfg.lev );
|
||
|
|
}
|
||
|
|
if( this.elfinData.lev < maxLv ) {
|
||
|
|
nx.gui.setActive( this.ops, "uplevel", true );
|
||
|
|
nx.gui.setActive( this.nodMax, "", false );
|
||
|
|
nx.gui.setActive( this.ops, "break", false );
|
||
|
|
this.updateNeeds();
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
// 当前满级,需要升阶判断
|
||
|
|
// 已经顶阶
|
||
|
|
if( nx.dt.objEmpty( this.data.nbc ) ) {
|
||
|
|
nx.gui.setActive( this.nodMax, "", true );
|
||
|
|
nx.gui.setActive( this.needs, "", false );
|
||
|
|
nx.gui.setActive( this.ops, "uplevel", false );
|
||
|
|
nx.gui.setActive( this.ops, "break", false );
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
if( this.elfinData.lev == maxLv && this.data.cbc.count <= this.elfinData.break_lev ) {
|
||
|
|
nx.gui.setActive( this.needs, "", true );
|
||
|
|
nx.gui.setActive( this.nodMax, "", false );
|
||
|
|
nx.gui.setActive( this.ops, "uplevel", false );
|
||
|
|
nx.gui.setActive( this.ops, "break", true );
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 红点提示
|
||
|
|
this.freshRed();
|
||
|
|
},
|
||
|
|
|
||
|
|
// 刷新当前位置上显示的僚机信息与对应的技能信息
|
||
|
|
setWingsInfo: function( _elfinData ){
|
||
|
|
|
||
|
|
/**
|
||
|
|
* {"lev":2,"break_lev":0,"atk":5872,"def_p":0,"def_s":0,"hp_max":35261,"speed":110,"hit_rate":9999,"dodge_rate":0,"crit_rate":2000,"crit_ratio":1200,"hit_magic":0,"dodge_magic":0,"def":220,
|
||
|
|
* "sprites":[{"pos":1,"item_bid":111004}],"power":75}
|
||
|
|
*/
|
||
|
|
let sprites = _elfinData.sprites;
|
||
|
|
sprites.sort( Utils.tableLowerSorter( [ "pos" ] ) ) ;
|
||
|
|
let chd = this.stages;
|
||
|
|
|
||
|
|
for (let i = 0; i < chd.length; i++) {
|
||
|
|
nx.gui.setString( chd[i], "name/txt", nx.text.format( "FortressLevel_Unlocked", i ) );
|
||
|
|
// nx.gui.setActive( this.skills[i], "", );
|
||
|
|
let sprite = sprites[i];
|
||
|
|
if( sprite ){
|
||
|
|
let cmp = chd[sprite.pos-1].getComponent( ItemBase );
|
||
|
|
|
||
|
|
if( cmp ){
|
||
|
|
cmp.setLocked( false );
|
||
|
|
if( sprite.item_bid >= 0 ){
|
||
|
|
cmp.setData( sprite.item_bid );
|
||
|
|
if( i == 0 ){
|
||
|
|
if( sprite.item_bid >= 0 ){
|
||
|
|
this.role_bid = sprite.item_bid > 0 ? sprite.item_bid : 0;
|
||
|
|
this.onTouchFormOn( 0 );
|
||
|
|
// let ifg = gdata( "item_data","data_unit9", sprite.item_bid )
|
||
|
|
// nx.bridge.setIcon( this.role, "", ifg.imageid );
|
||
|
|
}else{
|
||
|
|
nx.gui.setSpriteFrame( this.role, "", null );
|
||
|
|
this.role_bid = null;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
let sfgc = game.configs.sprite_data.data_elfin_data[sprite.item_bid];
|
||
|
|
let scmp = this.skills[sprite.pos-1].getComponent( "cmp.skill.base" );
|
||
|
|
let sfg = gdata( "sprite_data","data_elfin_data", sprite.item_bid );
|
||
|
|
if( sfgc ){
|
||
|
|
let sfgg = gdata( "skill_data4", "data_get_skill", sfg.skill );
|
||
|
|
nx.bridge.setIcon( this.skills[ sprite.pos - 1 ], "icon", sfgg.icon );
|
||
|
|
|
||
|
|
if( scmp ){
|
||
|
|
scmp.setData( sfg.skill );
|
||
|
|
|
||
|
|
}
|
||
|
|
}else{
|
||
|
|
scmp.setData( {} );
|
||
|
|
nx.gui.getComponent( this.skills[ sprite.pos - 1 ], "icon", cc.Sprite ).curKey = "";
|
||
|
|
}
|
||
|
|
nx.gui.setActive( this.skills[ sprite.pos - 1 ], "skillsp", sprite.item_bid > 0 );
|
||
|
|
|
||
|
|
// if( sfgs ) {
|
||
|
|
// nx.bridge.setIcon( this.skills[sprite.pos-1], "icon", parseInt( sfgs.icon ) );
|
||
|
|
// }
|
||
|
|
// if( sfgc ){
|
||
|
|
// if( scmp ){
|
||
|
|
|
||
|
|
// scmp.setData( sfg.skill );
|
||
|
|
// }
|
||
|
|
// }else{
|
||
|
|
// if( scmp ){
|
||
|
|
// scmp.setData( [] );
|
||
|
|
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
freshRed: function(){
|
||
|
|
let canUpLevel = true;
|
||
|
|
let needs = 0;
|
||
|
|
this.reds.forEach( _need =>{
|
||
|
|
if( _need.is_enough ){
|
||
|
|
needs++;
|
||
|
|
}
|
||
|
|
} )
|
||
|
|
|
||
|
|
canUpLevel = needs >= 2;
|
||
|
|
nx.gui.setActive( this.ops, "uplevel/tip", false );
|
||
|
|
nx.gui.setActive( this.ops, "uplevel/tipSp", !!canUpLevel );
|
||
|
|
},
|
||
|
|
|
||
|
|
// 数据统计
|
||
|
|
dataAnalyst: function() {
|
||
|
|
|
||
|
|
// 空目标
|
||
|
|
if( nx.dt.objEmpty( this.elfinData ) ) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
let scfg = gdata( "sprite_data", "data_tree_up_lv", this.elfinData.lev );
|
||
|
|
if( nx.dt.objEmpty( scfg ) ) {
|
||
|
|
nx.error( "升级刷新失败,当前配置无效!" );
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
let cbc = game.configs.sprite_data.data_tree_step[ this.elfinData.break_lev ];
|
||
|
|
if( nx.dt.objEmpty( cbc ) ) {
|
||
|
|
nx.error( "升级刷新失败,当前配置无效!" );
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
let k2 = this.elfinData.break_lev + 1 ;
|
||
|
|
let nbc = game.configs.sprite_data.data_tree_step[ k2 ];
|
||
|
|
|
||
|
|
this.data = {
|
||
|
|
scfg: scfg, // 当前配置
|
||
|
|
cbc: cbc, // 当前阶段配置
|
||
|
|
nbc: nbc, // 下个阶段配置
|
||
|
|
};
|
||
|
|
|
||
|
|
return true;
|
||
|
|
},
|
||
|
|
|
||
|
|
// 更新升级花费
|
||
|
|
updateNeeds: function() {
|
||
|
|
|
||
|
|
let lev = this.elfinData.lev;
|
||
|
|
let max = lev;
|
||
|
|
let step = 1;
|
||
|
|
|
||
|
|
let needs = {};
|
||
|
|
let model = BackpackController.getInstance().getModel();
|
||
|
|
let check = function( _costs ) {
|
||
|
|
let cur = {};
|
||
|
|
let enough = true;
|
||
|
|
for( let i = 0; i < _costs.length; ++i ) {
|
||
|
|
|
||
|
|
let cost = _costs[ i ];
|
||
|
|
let id = cost[ 0 ];
|
||
|
|
if( cur[ id ] == null ) {
|
||
|
|
cur[ id ] = 0;
|
||
|
|
}
|
||
|
|
cur[ id ] = cur[ id ] + cost[ 1 ];
|
||
|
|
|
||
|
|
let count = model.getItemNumByBid( id );
|
||
|
|
if( count < cur[ id ] ) {
|
||
|
|
enough = false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return { is_enough: enough, cur_cost_list: cur }
|
||
|
|
};
|
||
|
|
|
||
|
|
// 资源统计
|
||
|
|
let maxLv = Math.max( this.data.cbc.lev_max, this.data.scfg.lev );
|
||
|
|
for( let i = 1; i <= step; ++i ) {
|
||
|
|
|
||
|
|
let next = this.elfinData.lev + i - 1;
|
||
|
|
if( next >= maxLv ) {
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
|
||
|
|
let cfg = gdata( "sprite_data", "data_tree_up_lv", next );
|
||
|
|
if( cfg ) {
|
||
|
|
let up_cost = cfg.expend || [];
|
||
|
|
let ret = check( up_cost );
|
||
|
|
this.reds.push( ret );
|
||
|
|
let is_enough = ret.is_enough;
|
||
|
|
let cost_list = ret.cur_cost_list;
|
||
|
|
|
||
|
|
if( is_enough ) {
|
||
|
|
needs = cost_list;
|
||
|
|
max = next;
|
||
|
|
} else {
|
||
|
|
if( i == 1 ) {
|
||
|
|
needs = cost_list;
|
||
|
|
}
|
||
|
|
break
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
let role_vo = RoleController.getInstance().getRoleVo();
|
||
|
|
let cfgs = gdata( "sprite_data", "data_tree_step", this.elfinData.break_lev );
|
||
|
|
// console.log( role_vo.lev + "当前的判断" + JSON.stringify( cfgs.step_cond[0][1] ) );
|
||
|
|
if( role_vo.lev < cfgs.step_cond[0][1] ){
|
||
|
|
nx.gui.setString( this.ops, "break/txt", nx.text.format( "BreakLevel", cfgs.step_cond[0][1] ) );
|
||
|
|
|
||
|
|
}else{
|
||
|
|
nx.gui.setString( this.ops, "break/txt", nx.text.getKey( "Break" ) );
|
||
|
|
}
|
||
|
|
|
||
|
|
// 消耗刷新
|
||
|
|
nx.gui.setActive( this.nodMax, "", false );
|
||
|
|
let list = nx.gui.setActive( this.needs, "", true );
|
||
|
|
let cfg = gdata( "sprite_data", "data_tree_up_lv", this.elfinData.lev );
|
||
|
|
let expend = cfg ? ( cfg.expend || [] ) : [];
|
||
|
|
for( let k = 0; k < expend.length; ++k ) {
|
||
|
|
|
||
|
|
let ifo = expend[ k ];
|
||
|
|
let node = list.children[ k ];
|
||
|
|
if( nx.dt.arrEmpty( ifo ) ) {
|
||
|
|
node.active = false;
|
||
|
|
continue;
|
||
|
|
}
|
||
|
|
|
||
|
|
node.active = true;
|
||
|
|
let item = gdata( "item_data", "data_unit1", ifo[ 0 ], false );
|
||
|
|
nx.bridge.setIconS( node, "icon", item.icon );
|
||
|
|
let count = ifo[1];//ifo[1];
|
||
|
|
// let have_count = model.getItemNumByBid( ifo[ 0 ] );
|
||
|
|
nx.gui.setString( node, "txt", count );
|
||
|
|
};
|
||
|
|
|
||
|
|
this.freshRed();
|
||
|
|
},
|
||
|
|
|
||
|
|
upLevel : function(){
|
||
|
|
|
||
|
|
let cfg = gdata( "sprite_data", "data_tree_up_lv", this.elfinData.lev );
|
||
|
|
let mat = cfg.expend[0][0];
|
||
|
|
let count = BackpackController.getInstance().getModel().getItemNumByBid( mat );
|
||
|
|
let TC = TipsController.getInstance();
|
||
|
|
if( count < cfg.expend[0][1] ){
|
||
|
|
|
||
|
|
let ifg = gdata( "item_data", "data_unit1", mat );
|
||
|
|
if( TC ) {
|
||
|
|
|
||
|
|
if( ifg ){
|
||
|
|
nx.tbox(nx.text.format( nx.text.getKey( "lab_hero_break_window_tip1" ), ifg.name ));
|
||
|
|
}
|
||
|
|
TC.showItemTips( mat );
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
let Elfin = ElfinController.getInstance();
|
||
|
|
if( Elfin ){
|
||
|
|
Elfin.sender26511();
|
||
|
|
}
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
// 要弹窗
|
||
|
|
breakLevel : function(){
|
||
|
|
|
||
|
|
let role_vo = RoleController.getInstance().getRoleVo();
|
||
|
|
let cfg = gdata( "sprite_data", "data_tree_step", this.elfinData.break_lev );
|
||
|
|
|
||
|
|
if( role_vo.lev < cfg.step_cond[0][1] ){
|
||
|
|
nx.tbox( nx.text.format( nx.text.format( "BreakLevel", cfg.step_cond[0][1] ) ) );
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
let Elfin = ElfinController.getInstance();
|
||
|
|
if( Elfin ){
|
||
|
|
Elfin.openElfinTreeStepWindow( true );
|
||
|
|
}
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
onTouchFormOn : function( _index ){
|
||
|
|
|
||
|
|
this.stages.forEach( _item => {
|
||
|
|
let cmp = _item.getComponent( ItemBase );
|
||
|
|
if( cmp ){
|
||
|
|
cmp.outFocus();
|
||
|
|
}
|
||
|
|
} )
|
||
|
|
|
||
|
|
if( this.role_bid == 0 ){
|
||
|
|
|
||
|
|
// nx.bridge.setIcon( this.role, "", "" );
|
||
|
|
nx.gui.setSpriteFrame( this.role, "", null );
|
||
|
|
nx.gui.getComponent( this.role, "", cc.Sprite ).curKey = "";
|
||
|
|
this.role_bid = 1;
|
||
|
|
}else{
|
||
|
|
let cmp = this.stages[_index].getComponent( ItemBase );
|
||
|
|
if( cmp ){
|
||
|
|
|
||
|
|
if( !cmp.mdata ){
|
||
|
|
nx.tbox( nx.text.format( "FortressLevel_Unlocked", _index ) );
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
if( nx.dt.objGood( cmp.mdata ) ){
|
||
|
|
nx.tbox( nx.text.getKey( "tip_Assemble_first" ) );
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
if( !nx.dt.objGood( cmp.mdata ) ){
|
||
|
|
|
||
|
|
let ifg = gdata( "item_data","data_unit9", cmp.mdata );
|
||
|
|
nx.bridge.setIcon( this.role, "", ifg.imageid );
|
||
|
|
this.role_bid = cmp.mdata;
|
||
|
|
cmp.onFocus();
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
// 刷新默认操作
|
||
|
|
onFreshDefault : function( _schemeDefault ){
|
||
|
|
// 这里存储默认的方案配置信息
|
||
|
|
// console.log( "获取的默认配置信息" + JSON.stringify( _schemeDefault ) );
|
||
|
|
let Elfin = ElfinController.getInstance();
|
||
|
|
Elfin.getModel().freshDefaultScheme( _schemeDefault );
|
||
|
|
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
// 规则说明
|
||
|
|
onTouchTip: function(){
|
||
|
|
|
||
|
|
let TC = TipsController.getInstance();
|
||
|
|
if( TC ) {
|
||
|
|
|
||
|
|
let txt = game.configs.sprite_data.data_const.ancient_desc;
|
||
|
|
TC.showTextPanel( "tip", txt.desc );
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
// 打开装配
|
||
|
|
onTouchAssemble: function(){
|
||
|
|
|
||
|
|
let Elfin = ElfinController.getInstance();
|
||
|
|
if( Elfin ) {
|
||
|
|
// let model = Elfin.getModel();
|
||
|
|
// let schemes = model.getAllPlanData();
|
||
|
|
// if( !schemes || nx.dt.objEmpty( schemes ) ){
|
||
|
|
// Elfin.send26556();
|
||
|
|
// }
|
||
|
|
|
||
|
|
Elfin.openElfinAdjustWindow( true, 100, 1 );
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
// 打开预览
|
||
|
|
openElfinBookWindow: function(){
|
||
|
|
let Elfin = ElfinController.getInstance();
|
||
|
|
if( Elfin ) {
|
||
|
|
Elfin.openElfinBookWindow( true );
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
// 打开科研
|
||
|
|
openWingScientfic: function(){
|
||
|
|
|
||
|
|
let Elfin = ElfinController.getInstance();
|
||
|
|
if( Elfin ) {
|
||
|
|
let model = Elfin.getModel();
|
||
|
|
let lst = model.getElfinHatchList();
|
||
|
|
if( !lst || nx.dt.objEmpty( lst ) ){
|
||
|
|
Elfin.sender26500();
|
||
|
|
}
|
||
|
|
// Elfin.sender26500();
|
||
|
|
Elfin.openWingScientfic( true );
|
||
|
|
}
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
onPlayEffect : function(){
|
||
|
|
|
||
|
|
this.spEffect.load( "resDB/effects/E80023/action", ( _e ) => {
|
||
|
|
if( !_e ) {
|
||
|
|
this.spEffect.action( "action", false );
|
||
|
|
} else {
|
||
|
|
this.spEffect.stop();
|
||
|
|
}
|
||
|
|
} );
|
||
|
|
},
|
||
|
|
|
||
|
|
// 打开采购
|
||
|
|
openElfinProcurement: function(){
|
||
|
|
|
||
|
|
let Elfin = ElfinController.getInstance();
|
||
|
|
if( Elfin ) {
|
||
|
|
let model = Elfin.getModel();
|
||
|
|
let summon = model.getElfinSummonData();
|
||
|
|
if( !summon || nx.dt.arrEmpty( summon ) ){
|
||
|
|
Elfin.send26550();
|
||
|
|
}
|
||
|
|
Elfin.openElfinWishWindow( true );
|
||
|
|
}
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
// 点击显示技能介绍
|
||
|
|
onTouchShowSkill: function(){
|
||
|
|
|
||
|
|
let sfgc = game.configs.sprite_data.data_elfin_data[this.role_bid];
|
||
|
|
if( !this.role_bid || this.role_bid == 0 || !sfgc ){
|
||
|
|
nx.tbox( "NoneWingsInfo" );
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
let sfg = gdata( "sprite_data","data_elfin_data", this.role_bid );
|
||
|
|
|
||
|
|
const TC = TipsController.getInstance();
|
||
|
|
if( TC ) {
|
||
|
|
TC.showSkillTips( sfg.skill );
|
||
|
|
}
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
// 点击技能显示相应的融合升级技能界面
|
||
|
|
onTouchSkill : function( _index ){
|
||
|
|
|
||
|
|
let EC = ElfinController.getInstance();
|
||
|
|
let chd = this.stages[_index];
|
||
|
|
let cmp = chd.getComponent( ItemBase );
|
||
|
|
let scmp = this.skills[_index].getComponent( "cmp.skill.base" );
|
||
|
|
let sid = 0;
|
||
|
|
let item_bid = 0;
|
||
|
|
if( scmp ){
|
||
|
|
if( !scmp.mdata ){
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
if( nx.dt.objGood( scmp.mdata ) ){
|
||
|
|
nx.tbox( nx.text.getKey( "tip_Assemble_first" ) );
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
if( !nx.dt.objGood( scmp.mdata ) ){
|
||
|
|
|
||
|
|
sid = scmp.mdata;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if( cmp ){
|
||
|
|
|
||
|
|
|
||
|
|
if( !nx.dt.objGood( cmp.mdata ) ){
|
||
|
|
|
||
|
|
item_bid = cmp.mdata;
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if( item_bid == 0 || sid == 0 ){
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
if( EC ){
|
||
|
|
let index = parseInt( _index );
|
||
|
|
let pos = index + 1;
|
||
|
|
EC.openElfinCompoundWindow( true, item_bid, sid, pos, wing, 0, (_data)=>{
|
||
|
|
if( EC ){
|
||
|
|
EC.sender26508( _data.item_id, 1, pos );
|
||
|
|
// this.close();
|
||
|
|
}
|
||
|
|
} );
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
} );
|
||
|
|
|