281 lines
8.0 KiB
JavaScript
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();
|