184 lines
5.7 KiB
JavaScript
184 lines
5.7 KiB
JavaScript
const NxSpine = require( "nx.fx.spine" );
|
|
const ItemBase = require( "nx.fx.sv.expand.item" )
|
|
var PathTool = require( "pathtool" )
|
|
|
|
cc.Class( {
|
|
extends: ItemBase,
|
|
|
|
properties: {
|
|
is_in_form: {
|
|
default: false,
|
|
displayName: "是否在布阵"
|
|
},
|
|
spMini: {
|
|
default: null,
|
|
type: NxSpine
|
|
}
|
|
},
|
|
|
|
// LIFE-CYCLE CALLBACKS:
|
|
|
|
// onLoad () {},
|
|
|
|
start() {
|
|
|
|
},
|
|
|
|
setVisable( status ) {
|
|
if( status ) {
|
|
|
|
} else {
|
|
|
|
}
|
|
},
|
|
|
|
onEnable(){
|
|
},
|
|
|
|
onDisable(){
|
|
// this.spMini.stop();
|
|
},
|
|
|
|
// 置空
|
|
setEmpty: function() {
|
|
this.spMini.stop();
|
|
nx.gui.setActive( this.node, "lev", true );
|
|
nx.gui.setActive( this.node, "star", true );
|
|
nx.gui.setActive( this.node, "camp", true );
|
|
nx.gui.setActive( this.node, "bg", true );
|
|
// 等级
|
|
nx.gui.setString( this.node, "lev", "" );
|
|
},
|
|
|
|
//根据不同的id处理数据
|
|
checkId( partner ) {
|
|
//unit_type.skin
|
|
let skin_cfg = game.configs.partner_skin_data.data_skin_info[ partner.use_skin ];
|
|
if( skin_cfg ) {
|
|
this.partner.res_id = skin_cfg.res_id;
|
|
return this.partner;
|
|
}
|
|
|
|
//unit_type.role
|
|
let look_cfg = game.configs.looks_data.data_data[ partner ];
|
|
if( look_cfg ) {
|
|
this.partner.lev = look_cfg.lev;
|
|
this.partner.star = look_cfg.star;
|
|
this.partner.res_id = look_cfg.model;
|
|
return this.partner;
|
|
}
|
|
|
|
//unit_type.partner
|
|
//只有id
|
|
let partner_cfg = game.configs.partner_data.data_partner_base[ partner ];
|
|
if( partner_cfg ) {
|
|
this.partner.star = partner_cfg.init_star;
|
|
let key = partner_cfg.bid + "_" + partner_cfg.init_star;
|
|
let cfg = gdata( "partner_data", "data_partner_star", key );
|
|
this.partner.camp_type = partner_cfg.camp_type;
|
|
this.partner.res_id = cfg.res_id;
|
|
return this.partner;
|
|
}
|
|
|
|
let base_cfg = game.configs.partner_data.data_partner_base[ partner.bid ];
|
|
if(base_cfg){
|
|
this.partner.star = base_cfg.init_star;
|
|
let bkey = base_cfg.bid + "_" + base_cfg.init_star;
|
|
let cfg = gdata( "partner_data", "data_partner_star", bkey );
|
|
this.partner.camp_type = base_cfg.camp_type;
|
|
this.partner.res_id = cfg.res_id;
|
|
return this.partner;
|
|
}
|
|
|
|
//unit_type.unit
|
|
let unit_cfg = Utils.getUnitConfig( partner );
|
|
if( unit_cfg ) {
|
|
let bid = Number( unit_cfg.body_id );
|
|
let partner_cfg = gdata( "partner_data", "data_partner_base", bid );
|
|
this.partner.star = partner_cfg.init_star;
|
|
let key = partner_cfg.bid + "_" + partner_cfg.init_star;
|
|
let cfg = gdata( "partner_data", "data_partner_star", key );
|
|
this.partner.camp_type = partner_cfg.camp_type;
|
|
this.partner.res_id = cfg.res_id;
|
|
return this.partner;
|
|
}
|
|
|
|
//直接返回数据
|
|
this.partner = partner;
|
|
let key = partner.bid + "_" + partner.star;
|
|
let cfg = gdata( "partner_data", "data_partner_star", key );
|
|
this.partner.res_id = cfg.res_id;
|
|
return this.partner;
|
|
},
|
|
|
|
setData( _partner, is_form, show_detail = true ) {
|
|
let self = this;
|
|
this.partner = {};
|
|
this.checkId( _partner );
|
|
if( nx.dt.objEmpty( this.partner ) ) {
|
|
return;
|
|
}
|
|
|
|
|
|
nx.gui.setActive( this.node, "", true );
|
|
if( is_form != null ) {
|
|
this.is_in_form = is_form;
|
|
}
|
|
|
|
if( this.is_in_form ) {
|
|
if( show_detail ) {
|
|
this.setEmpty();
|
|
// 等级
|
|
if( _partner.lev ) {
|
|
nx.gui.setString( this.node, "lev", "Lv." + _partner.lev || 1 );
|
|
}
|
|
|
|
// 星级
|
|
if( _partner.star ) {
|
|
let path = cc.path.join( "coms/images", "star" + _partner.star );
|
|
nx.gui.setSpriteFrame( this.node, "star", path );
|
|
}
|
|
|
|
// 阵营
|
|
if( _partner.camp_type ) {
|
|
let path = cc.path.join( "prefab/battle/ui/camps" + _partner.camp_type );
|
|
nx.gui.setSpriteFrame( this.node, "camp", path );
|
|
}
|
|
} else {
|
|
nx.gui.setActive( this.node, "lev", false );
|
|
nx.gui.setActive( this.node, "star", false );
|
|
nx.gui.setActive( this.node, "camp", false );
|
|
nx.gui.setActive( this.node, "bg", false );
|
|
}
|
|
|
|
// 动画
|
|
if( this.partner.res_id ) {
|
|
// 迷你
|
|
let res_path = PathTool.getSpinePath( this.partner.res_id, this.partner.res_id, false );
|
|
self.spMini.load( res_path, ( _e ) => {
|
|
if( !self || !self.spMini ) {
|
|
return;
|
|
}
|
|
if( !_e ) {
|
|
self.spMini.action( "stand2", true );
|
|
} else {
|
|
self.spMini.stop(true);
|
|
}
|
|
} );
|
|
}
|
|
else {
|
|
this.spMini.stop();
|
|
nx.error( "立绘配置缺失:", key );
|
|
}
|
|
} else {
|
|
nx.gui.setActive( this.node, "", false );
|
|
nx.gui.setActive( this.node, "lev", false );
|
|
nx.gui.setActive( this.node, "star", false );
|
|
nx.gui.setActive( this.node, "camp", false );
|
|
nx.gui.setActive( this.node, "bg", false );
|
|
}
|
|
},
|
|
|
|
// update (dt) {},
|
|
} );
|