Files
fc/dev/project/assets/Scripts/zbridge/utils/bridge.partner.js
T

79 lines
2.4 KiB
JavaScript
Raw Normal View History

2026-05-23 22:10:14 +08:00
// ================================================================
//
// 桥接 伙伴快捷接口
//
// ================================================================
// 导出
module.exports = {
// 是不是有效伙伴
isPartner: function( _partner ) {
return _partner && nx.dt.fnGood( _partner.updateHeroVo );
},
// 获取伙伴展示数据
getShowInfo: function( _partner ) {
// 无效伙伴
if( !this.isPartner( _partner ) ) {
nx.warn( "无效的伙伴,获取展示数据失败!" );
return null;
}
return this.parseShowInfo( _partner.bid, _partner.star, _partner.use_skin );
},
// 获取伙伴展示数据
parseShowInfo: function( _bid, _star, _skinId ) {
// 伙伴配置
let key = _bid + "_" + _star;
let pdata = gdata( "partner_data", "data_partner_star", key );
if( nx.dt.objEmpty( pdata ) ) {
nx.warn( "无效的伙伴,获取伙伴配置失败!", key );
return null;
}
// 基础数据
let data = {
icon: pdata.head_id,
resid: pdata.res_id,
};
// 皮肤转移
let sid = parseInt( _skinId );
if( nx.dt.numPositive( sid, false ) ) {
let SKIN = game.configs.partner_skin_data.data_skin_info[ sid ];
if( nx.dt.objEmpty( SKIN ) ) {
nx.error( "无效的伙伴,获取皮肤配置失败!", sid );
} else {
data.icon = SKIN.head_id;
data.resid = SKIN.res_id;
}
}
// 数据补全
data.sp_show = PathTool.getSpinePath( data.resid, "show", false );
data.sp_model = PathTool.getSpinePath( data.resid, data.resid, false );
data.img_half_big = cc.path.join( "resDB/models", data.resid, "half_show" );
data.img_half_nor = cc.path.join( "resDB/models", data.resid, "half_show2" );
data.img_half_small = cc.path.join( "resDB/models", data.resid, "half_show3" );
// 语音 SR&&SSR
let cfg = game.configs.partner_data.data_partner_base[ _bid ];
if( nx.dt.objNEmpty( cfg ) && nx.dt.strNEmpty( cfg.voice ) ) {
data.voice = cc.path.join( "resDB/models", data.resid, "voice" );
}
if( nx.dt.objNEmpty( cfg ) ){
data.phonetic_text = cfg.phonetic_text;
}
// 返回
return data;
},
}