"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();