169 lines
5.1 KiB
JavaScript
169 lines
5.1 KiB
JavaScript
"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(); |