Files
fc/dev/project/library/imports/d6/d64ebe5a-eb8c-4807-b595-9afaa959c36a.js
T

150 lines
3.7 KiB
JavaScript
Raw Normal View History

2026-05-24 10:21:26 +08:00
"use strict";
cc._RF.push(module, 'd64eb5a64xIB7WVmvqpWcNq', 'cmp.summon.rule.wnd');
// Scripts/mod/summon/com/cmp.summon.rule.wnd.js
"use strict";
/******************************************************************
*
* 召唤规则说明
*
******************************************************************/
var BridgeWindow = require("bridge.window");
var FxSVC = require("nx.fx.sv.expand");
var HEADER_ID = 1;
var LIST_IDS = [2, 5];
cc.Class({
"extends": BridgeWindow,
properties: {
nodHead: {
"default": null,
type: cc.Node
},
nodList: {
"default": null,
type: cc.Node
},
nodRates: {
"default": null,
type: cc.Node
},
svcList: {
"default": null,
type: FxSVC
}
},
// 重载:参数打开
onOpenConfigs: function onOpenConfigs(_params) {
if (_params === void 0) {
_params = {};
}
var key = _params.key || 'recruit_data';
this.cfgs = game.configs[key];
if (nx.dt.objEmpty(this.cfgs)) {
return;
}
// 重建列表
this.rebuild();
this.nodRates.active = false;
},
// 重建列表
rebuild: function rebuild() {
// 表头
var data = this.cfgs ? this.cfgs.data_explain : null;
if (nx.dt.objEmpty(data)) {
return;
}
var head = data ? data[HEADER_ID] : null;
this.nodHead.active = nx.dt.objNEmpty(head);
if (this.nodHead.active) {
nx.gui.setString(this.nodHead, "title/txt", nx.text.getKey(head.title));
nx.gui.setString(this.nodHead, "txt", nx.text.getKey(head.desc));
}
// 召唤明细
var build = function build(_node, _data) {
_node.active = nx.dt.objNEmpty(_data);
if (!_node.active) {
return;
}
nx.gui.setString(_node, "title/txt", nx.text.getKey(_data.title));
var btn = nx.gui.find(_node, "title/detail");
btn.sumInfos = _data;
var arr = _data.desc.split("$");
var cnt = Math.floor(arr.length / 2);
var root = nx.gui.find(_node, "rates");
nx.gui.gocChildren(root, "", cnt, root.children[0]);
for (var i = 0; i < cnt; ++i) {
var idx = i * 2;
var item = root.children[i];
nx.gui.setString(item, "name", nx.text.getKey(arr[idx]));
nx.gui.setString(item, "rate", arr[idx + 1]);
}
};
// 循环创建
var chds = this.nodList.children;
var count = LIST_IDS[1] - LIST_IDS[0] + 1;
nx.gui.gocChildren(this.nodList, "", count, chds[0]);
for (var i = 0; i < count; ++i) {
build(chds[i], data ? data[i + LIST_IDS[0]] : null);
}
;
},
// 具体掉落率
onTouchRate: function onTouchRate(_btn) {
if (!_btn || nx.dt.objEmpty(_btn.sumInfos)) {
return;
}
var gid = 100;
switch (_btn.sumInfos.id) {
case 2:
gid = 100;
break;
case 3:
gid = 200;
break;
case 4:
gid = 300;
break;
case 5:
gid = 400;
break;
default:
break;
}
var data = this.cfgs ? this.cfgs.data_summon_data : null;
var list = data ? data[gid] : null;
if (nx.dt.objEmpty(data)) {
return;
}
var arr = [];
for (var i in list) {
var t = list[i];
var rate = parseFloat(t.summon_desc) || 0;
rate = Math.floor(rate * 1000) / 1000;
if (rate > 0) {
arr.push({
id: t.id,
base_id: t.base_id,
rate: rate
});
}
}
// 按几率排序
arr.sort(function (_a, _b) {
return _b.rate - _a.rate;
});
this.svcList.rebuild(arr);
this.nodRates.active = true;
},
// 掉落界面关闭
onCloseRates: function onCloseRates() {
this.nodRates.active = false;
}
});
cc._RF.pop();