Files
fc/dev/project/library/imports/50/508307cd-eaa6-4a6a-beb4-05778a292284.js
2026-05-24 10:21:26 +08:00

281 lines
8.0 KiB
JavaScript

"use strict";
cc._RF.push(module, '50830fN6qZKar60BXeKKSKE', 'cmp.library.partner.wnd');
// Scripts/mod/home/library/cmps/cmp.library.partner.wnd.js
"use strict";
/******************************************************************
*
* 图鉴详情
*
******************************************************************/
var NxSpine = require("nx.fx.spine");
var BridgeWindow = require("bridge.window");
var ModLibrary = require("library.mod");
var HeroController = require("hero_controller");
var HeroConst = require("hero_const");
var TipsController = require("tips_controller");
cc.Class({
"extends": BridgeWindow,
properties: {
spRole: {
"default": null,
type: NxSpine
},
spMini: {
"default": null,
type: NxSpine
},
nodQA: {
"default": null,
type: cc.Node
},
nodDoc: {
"default": null,
type: cc.Node
},
nodSkills: {
"default": null,
type: cc.Node
},
nodReward: {
"default": null,
type: cc.Node
},
nodEmpty: {
"default": null,
type: cc.Node
}
},
// 重载:参数打开
onOpenConfigs: function onOpenConfigs(_params) {
this.bid = _params ? _params.bid : 0;
this.auto = _params ? _params.auto : false;
// 无效
if (!nx.dt.numPositive(this.bid, false)) {
this.delayClose();
return;
}
// 伙伴查询
this.library = ModLibrary.getInstance();
this.config = this.library.queryPartner(this.bid);
if (!this.config) {
this.delayClose();
return;
}
// 更新
this.updateBase();
this.updateModels();
this.updateSkills();
this.updateDocument();
this.updateReward();
},
// 基础更新
updateBase: function updateBase() {
var data = game.configs.partner_data.data_partner_base[this.config.id];
if (!data) {
return;
}
console.log("当前的数据相关" + JSON.stringify(this.config));
// 品質
var path = cc.path.join("coms/images", "mk_partner_qa" + this.config.quality);
var spshow = this.config.quality == 5 || this.config.quality == 6;
nx.gui.setSpriteFrame(this.nodQA, "qa", spshow ? null : path);
var spppath = "";
if (this.config.quality == 5) {
spppath = "resDB/effects/E81054/action";
} else if (this.config.quality == 6) {
spppath = "resDB/effects/E81058/action";
}
var sp = nx.gui.getComponent(this.nodQA, "qa/spine", "nx.fx.spine");
if (sp && nx.dt.strNEmpty(spppath)) {
sp.load(spppath, function (_e) {
if (!_e) {
sp.action("action", true);
} else {
sp.stop();
}
});
}
nx.gui.setActive(this.nodQA, "qa/spine", spshow);
// 阵营
path = cc.path.join("prefab/partner/ui/camp" + data.camp_type);
nx.gui.setSpriteFrame(this.nodQA, "camp", path);
// 描述
var desc = data.introduce_str || data.hero_pos || "";
nx.gui.setString(this.nodQA, "desc/txt", desc);
// 职业
var career = data.type || 4;
var icon = cc.path.join("coms/images", "career" + career);
var name = nx.text.getKey(HeroConst.CareerName[career]) || nx.text.getKey("lab_none");
nx.gui.setSpriteFrame(this.nodQA, "career/ico", icon);
nx.gui.setString(this.nodQA, "career/txt", nx.text.getKey(name));
// 星级
var snode = nx.gui.find(this.nodQA, "stars");
for (var i = 0; i < snode.children.length; ++i) {
var mk = i < data.init_star;
nx.gui.setColor(snode.children[i], "", mk ? cc.Color.WHITE : cc.Color.GRAY);
}
},
// 模型更新
updateModels: function updateModels() {
var _this = this;
// 未知隐藏
var hide = false;
if (this.auto && this.config.statu == 0) {
hide = true;
}
this.spMini.stop();
this.spRole.stop();
nx.gui.setActive(this.nodEmpty, "", hide);
nx.gui.setActive(this.spMini, "", !hide);
nx.gui.setActive(this.spRole, "", !hide);
// 隐藏
if (hide) {
return;
}
// 迷你
var path = PathTool.getSpinePath(this.config.resid, this.config.resid, false);
this.spMini.load(path, function (_e) {
if (!_e) {
_this.spMini.action("stand2", true);
}
});
// 大模型
path = PathTool.getSpinePath(this.config.resid, "show", false);
this.spRole.load(path, function (_e) {
if (!_e) {
_this.spRole.action("action1", true);
}
});
},
// 技能更新
updateSkills: function updateSkills() {
var skills = this.config.skills;
var chds = this.nodSkills.children;
for (var i = 0; i < chds.length; ++i) {
var sid = skills[i];
var node = chds[i];
node.active = nx.dt.numPositive(sid, false);
if (!node.active) {
continue;
}
var cmp = node.getComponent("cmp.skill.base");
if (cmp) {
cmp.setData(sid);
}
}
},
// 档案更新
updateDocument: function updateDocument() {
var key = "story" + this.config.id;
var text = nx.text.getKey(key);
var arr = text.split("#");
nx.gui.setString(this.nodDoc, "name/txt", arr[0]);
nx.gui.setString(this.nodDoc, "camp/txt", arr[1]);
var detail = nx.gui.find(this.nodDoc, "detail/view/content");
nx.gui.setString(detail, "survey/desc", arr[2]);
nx.gui.setString(detail, "experience/desc", arr[3]);
// 推荐阵容
this.updateTeams();
var layout = nx.gui.getComponent(detail, "", cc.Layout);
if (layout) {
layout.updateLayout();
}
var scv = nx.gui.getComponent(this.nodDoc, "detail", cc.ScrollView);
if (scv) {
scv.scrollToTop(0);
}
},
// 推荐阵容
updateTeams: function updateTeams() {
// 阵容检索
var list = this.library.queryRecommondForms(this.bid);
if (nx.dt.arrNEmpty(list)) {
list.sort(function (_a, _b) {
return _b.pr - _a.pr;
});
}
// 阵容设置
var hero = HeroController.getInstance().getModel();
var node = nx.gui.find(this.nodDoc, "detail/view/content/forms/list");
var team = function team(_form, _desc, _info) {
// 空展示
if (nx.dt.objEmpty(_info)) {
nx.gui.setString(node, _desc, "");
nx.gui.setActive(node, _form + "/list", false);
nx.gui.setActive(node, _form + "/empty", true);
return;
}
// 阵容刷新
nx.gui.setActive(node, _form + "/empty", false);
nx.gui.setActive(node, _form + "/list", true);
nx.gui.setString(node, _desc, _info.desc);
var list = nx.gui.find(node, _form + "/list");
for (var i = 0; i < list.children.length; ++i) {
var item = list.children[i];
var bid = _info.camp[i];
var have = hero.getHadHeroStarBybid(bid);
var cmp = item.getComponent("cmp.item.base");
if (cmp) {
cmp.setData(bid);
!have ? cmp.onFocus() : cmp.outFocus();
}
}
};
team("form1", "desc1", list[0]);
team("form2", "desc2", list[1]);
},
// 点击阵容成员
onTouchMember: function onTouchMember(_btn) {
var nod = _btn.parent.getComponent("cmp.item.base");
if (!nod) {
return;
}
var key = nod.info.bid + "_" + nod.info.stars;
this.propsData = gdata("partner_data", "data_partner_show", key);
this.propsData.star = nod.info.stars;
this.propsData.break_lev = 0;
TipsController.getInstance().showPartnerTips(this.propsData);
// console.log(JSON.stringify( nod.info ) + "数据" + JSON.stringify( nod.mdata ) );
},
// 奖励更新
updateReward: function updateReward() {
if (nx.dt.objEmpty(this.config) || this.config.statu != 1) {
nx.gui.setActive(this.nodReward, "", false);
return;
}
nx.gui.setActive(this.nodReward, "", true);
var reward = this.config.reward[0];
nx.bridge.setIcon(this.nodReward, "num/icon", reward[0]);
nx.gui.setString(this.nodReward, "num/txt", reward[1] > 1 ? reward[1] : "");
},
// 領取獎勵
onTouchReward: function onTouchReward() {
var _this2 = this;
this.library.reqPartnerReward(this.bid, function (_ret, _data) {
if (!_ret) {
nx.tbox(_data);
return;
}
nx.gui.setActive(_this2.nodReward, "", false);
});
}
});
cc._RF.pop();