Files

169 lines
5.1 KiB
JavaScript
Raw Permalink Normal View History

2026-05-24 10:21:26 +08:00
"use strict";
cc._RF.push(module, '3c372+kSFpAQbH9URoubRfB', 'cmp.partner.smod');
// Scripts/mod/common/cmp.partner.smod.js
"use strict";
var NxSpine = require("nx.fx.spine");
var 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: function start() {},
setVisable: function setVisable(status) {
if (status) {} else {}
},
onEnable: function onEnable() {},
onDisable: function onDisable() {
// this.spMini.stop();
},
// 置空
setEmpty: function setEmpty() {
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: function checkId(partner) {
//unit_type.skin
var 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
var 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
var partner_cfg = game.configs.partner_data.data_partner_base[partner];
if (partner_cfg) {
this.partner.star = partner_cfg.init_star;
var _key = partner_cfg.bid + "_" + partner_cfg.init_star;
var _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;
}
var base_cfg = game.configs.partner_data.data_partner_base[partner.bid];
if (base_cfg) {
this.partner.star = base_cfg.init_star;
var bkey = base_cfg.bid + "_" + base_cfg.init_star;
var _cfg2 = gdata("partner_data", "data_partner_star", bkey);
this.partner.camp_type = base_cfg.camp_type;
this.partner.res_id = _cfg2.res_id;
return this.partner;
}
//unit_type.unit
var unit_cfg = Utils.getUnitConfig(partner);
if (unit_cfg) {
var bid = Number(unit_cfg.body_id);
var _partner_cfg = gdata("partner_data", "data_partner_base", bid);
this.partner.star = _partner_cfg.init_star;
var _key2 = _partner_cfg.bid + "_" + _partner_cfg.init_star;
var _cfg3 = gdata("partner_data", "data_partner_star", _key2);
this.partner.camp_type = _partner_cfg.camp_type;
this.partner.res_id = _cfg3.res_id;
return this.partner;
}
//直接返回数据
this.partner = partner;
var key = partner.bid + "_" + partner.star;
var cfg = gdata("partner_data", "data_partner_star", key);
this.partner.res_id = cfg.res_id;
return this.partner;
},
setData: function setData(_partner, is_form, show_detail) {
if (show_detail === void 0) {
show_detail = true;
}
var 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) {
var path = cc.path.join("coms/images", "star" + _partner.star);
nx.gui.setSpriteFrame(this.node, "star", path);
}
// 阵营
if (_partner.camp_type) {
var _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) {
// 迷你
var res_path = PathTool.getSpinePath(this.partner.res_id, this.partner.res_id, false);
self.spMini.load(res_path, function (_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) {},
});
cc._RF.pop();