248 lines
6.9 KiB
JavaScript
248 lines
6.9 KiB
JavaScript
"use strict";
|
|
cc._RF.push(module, 'fe5684HAfBGhI1nlMa905OF', 'bridge.utils.item');
|
|
// Scripts/zbridge/utils/bridge.utils.item.js
|
|
|
|
"use strict";
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* 老版本桥接过渡 --- 封装一些道具相关的整合方法
|
|
*
|
|
*
|
|
******************************************************************************/
|
|
|
|
// 转换图标必要数据
|
|
// 1: 伙伴对象
|
|
// 2: 伙伴bid/配置
|
|
// 3: 背包物品对象
|
|
// 4: 物品id/配置
|
|
var data2Icon = function data2Icon(_data) {
|
|
// 判空
|
|
if (!_data) {
|
|
return null;
|
|
}
|
|
|
|
// 无需转换
|
|
if (nx.dt.strGood(_data._flag)) {
|
|
return _data;
|
|
}
|
|
|
|
// 必要数据
|
|
var info = {
|
|
_flag: "",
|
|
// 数据来源
|
|
id: 0,
|
|
// 伙伴序列
|
|
bid: 0,
|
|
// 伙伴编号
|
|
item_id: 0,
|
|
// 物品编号
|
|
quality: 0,
|
|
// 品质
|
|
icon: 0,
|
|
// 图标
|
|
count: 0,
|
|
// 数量
|
|
level: 0,
|
|
// 等级
|
|
name: "",
|
|
// 名字
|
|
desc: "",
|
|
// 描述
|
|
stars: 0,
|
|
// 星级
|
|
camp_type: 0,
|
|
// 阵营
|
|
type: 0,
|
|
// 物品类型
|
|
sub_type: 0,
|
|
// 物品子类型
|
|
eqm_set: 0,
|
|
// 神装等级
|
|
eqm_jie: 0,
|
|
// 神装评价
|
|
wing_lv: 0,
|
|
// 僚机等级
|
|
in_team: 0 // 是否出战
|
|
};
|
|
|
|
// 参数为ID先进行配置查询
|
|
var params = _data;
|
|
if (nx.dt.numGood(_data)) {
|
|
// 作为伙伴bid/物品id来进行配置查找
|
|
params = game.configs.partner_data.data_partner_base[_data];
|
|
if (!params) {
|
|
params = Utils.getItemConfig(_data);
|
|
}
|
|
|
|
// 未找到
|
|
if (!params) {
|
|
nx.error("[ItemInfo]无效物品编号:", _data);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
// [id,num]结构
|
|
if (nx.dt.arrGood(_data) && _data.length == 2) {
|
|
var id = _data[0];
|
|
|
|
// 作为伙伴bid/物品id来进行配置查找
|
|
params = game.configs.partner_data.data_partner_base[id];
|
|
if (!params) {
|
|
params = Utils.getItemConfig(id);
|
|
}
|
|
|
|
// 未找到
|
|
if (!params) {
|
|
nx.error("[ItemInfo]无效物品编号:", id);
|
|
return null;
|
|
}
|
|
info.count = _data[1] || 0;
|
|
}
|
|
|
|
// { bid, num }结构
|
|
if (nx.dt.objLen(_data) <= 4 && nx.dt.numPositive(_data.bid, false) && nx.dt.numPositive(_data.num, true)) {
|
|
var _id = _data.bid;
|
|
|
|
// 作为伙伴bid/物品id来进行配置查找
|
|
params = game.configs.partner_data.data_partner_base[_id];
|
|
if (!params) {
|
|
params = Utils.getItemConfig(_id);
|
|
}
|
|
|
|
// 未找到
|
|
if (!params) {
|
|
nx.error("[ItemInfo]无效物品编号:", _id);
|
|
return null;
|
|
}
|
|
info.count = _data.num || 0;
|
|
}
|
|
|
|
// 非对象错误
|
|
if (nx.dt.objEmpty(params)) {
|
|
// nx.error( "[ItemInfo]无效配置" );
|
|
return null;
|
|
}
|
|
var item_cfg = null;
|
|
|
|
// 伙伴对象
|
|
if (nx.dt.fnGood(params.updateHeroVo)) {
|
|
info._flag = 'hero';
|
|
info.id = params.id;
|
|
info.bid = params.bid;
|
|
info.item_id = params.item_id || game.configs.partner_data.data_partner_base[params.bid].item_id;
|
|
info.level = params.lev;
|
|
info.camp_type = params.camp_type;
|
|
info.stars = params.star;
|
|
info.name = params.name;
|
|
|
|
// 使用皮肤
|
|
if (nx.dt.numPositive(params.use_skin, false)) {
|
|
var SKIN = game.configs.partner_skin_data.data_skin_info[params.use_skin];
|
|
if (SKIN) {
|
|
info.icon = SKIN.head_id;
|
|
}
|
|
}
|
|
|
|
//key:5代表拥有皮肤数据,value:0代表原始皮肤
|
|
var ext_data = params.ext_data;
|
|
if (!nx.dt.arrEmpty(ext_data) && (ext_data[0].key == 5 || ext_data[0].id == 5) && (ext_data[0].value > 0 || ext_data[0].val > 0)) {
|
|
var skin_id = ext_data[0].value || ext_data[0].val;
|
|
var _SKIN = game.configs.partner_skin_data.data_skin_info[skin_id];
|
|
if (_SKIN) {
|
|
info.icon = _SKIN.head_id;
|
|
}
|
|
} else {
|
|
params.ext_data = [];
|
|
}
|
|
}
|
|
|
|
//位面战争特殊伙伴对象,具有血量特殊属性
|
|
else if (nx.dt.numGood(params.hp_per)) {
|
|
info._flag = 'hero';
|
|
var partner_cfg = game.configs.partner_data.data_partner_base[params.bid];
|
|
info.id = params.partner_id;
|
|
info.bid = params.bid;
|
|
info.item_id = params.item_id || partner_cfg.item_id;
|
|
info.level = params.lev;
|
|
info.camp_type = partner_cfg.camp_type;
|
|
info.stars = params.star;
|
|
info.name = partner_cfg.name;
|
|
info.flag = params.flag;
|
|
info.hp_per = params.hp_per;
|
|
info.power = params.power;
|
|
info.ext_data = params.ext_data;
|
|
}
|
|
|
|
// 背包道具
|
|
else if (nx.dt.fnGood(params.setBaseId)) {
|
|
info._flag = 'bag';
|
|
info.id = params.id;
|
|
info.item_id = params.base_id;
|
|
info.level = params.lev;
|
|
info.quality = params.quality;
|
|
info.count = params.quantity;
|
|
info.type = params.type;
|
|
info.sub_type = params.sub_type;
|
|
item_cfg = params.config;
|
|
}
|
|
|
|
// 伙伴配置
|
|
else if (nx.dt.numGood(params.bid)) {
|
|
info._flag = 'partner';
|
|
info.bid = params.bid;
|
|
info.item_id = params.item_id;
|
|
info.name = params.name;
|
|
info.stars = params.init_star;
|
|
info.camp_type = params.camp_type;
|
|
info.quality = params.quality;
|
|
}
|
|
|
|
// 物品配置
|
|
else if (nx.dt.numGood(params.id)) {
|
|
info._flag = 'item';
|
|
info.item_id = params.id;
|
|
info.count = info.count || params.num || params.count || 0;
|
|
item_cfg = params;
|
|
}
|
|
|
|
// 物品配置补全
|
|
if (!item_cfg || nx.dt.strEmpty(item_cfg.name)) {
|
|
item_cfg = Utils.getItemConfig(info.item_id);
|
|
if (!item_cfg) {
|
|
nx.error("[ItemInfo]无效物品编号:", info.item_id);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
// 补全
|
|
info.quality = info.quality || item_cfg.quality;
|
|
info.icon = info.icon || item_cfg.icon;
|
|
info.level = info.level || item_cfg.lev;
|
|
info.name = info.name || item_cfg.name;
|
|
info.desc = info.desc || item_cfg.desc;
|
|
info.camp_type = info.camp_type || item_cfg.camp_type;
|
|
info.eqm_set = info.eqm_set || item_cfg.eqm_set;
|
|
info.eqm_jie = info.eqm_jie || item_cfg.eqm_jie || 0;
|
|
info.stars = info.stars || item_cfg.eqm_star || 0;
|
|
info.wing_lv = info.wing_lv || item_cfg.lev;
|
|
info.type = info.type || item_cfg.type;
|
|
info.sub_type = info.sub_type || item_cfg.sub_type;
|
|
info.mark = item_cfg.mark || 0; //稀有特效,部分道具拥有该参数
|
|
info.desc_client = nx.dt.arrNEmpty(item_cfg.client_effect) ? item_cfg.client_effect[0] : ""; //稀有特效,部分道具拥有该参数
|
|
|
|
// 追加头像
|
|
if (nx.dt.numGood(_data.face) || nx.dt.numGood(_data.face_id) || nx.dt.numGood(_data.tar_face) || nx.dt.numGood(_data.a_face) || nx.dt.numGood(_data.b_face) || nx.dt.numGood(_data.head_icon) || nx.dt.numGood(_data.def_face) || nx.dt.numGood(_data.atk_face) || nx.dt.numGood(_data._faceid)) {
|
|
info.face = _data.face || _data.face_id || _data.tar_face || _data.a_face || _data.b_face || _data.head_icon || _data.def_face || _data.atk_face || _data._faceid;
|
|
info.data = _data;
|
|
info.avatar = _data.avatar_id || _data.avatar_base_id || _data.avatar_bid || _data.avatar;
|
|
}
|
|
return info;
|
|
};
|
|
|
|
// 导出
|
|
module.exports = {
|
|
data2Icon: data2Icon
|
|
};
|
|
|
|
cc._RF.pop(); |