Files

226 lines
7.6 KiB
JavaScript
Raw Permalink Normal View History

2026-05-24 10:21:26 +08:00
"use strict";
cc._RF.push(module, '03b760NHk1PUqs6/oX/2YAS', 'cmp.kernel.item.base');
// Scripts/mod/home/base_kernel/cmp.kernel.item.base.js
"use strict";
var KernelController = require("halidom_controller");
var SVCItem = require("nx.fx.sv.expand.item");
var kernel = "kernel";
var KCStyle = [{
Bg: "bg_core_blue",
UplevBg: "btn_blue",
Prog: "bg_progress_blue"
}, {
Bg: "bg_core_red",
UplevBg: "btn_red",
Prog: "bg_progress_red"
}, {
Bg: "bg_core_green",
UplevBg: "btn_green",
Prog: "bg_progress_green"
}, {
Bg: "bg_core_yellow",
UplevBg: "btn_yellow",
Prog: "bg_progress_yellow"
}, {
Bg: "bg_core_puple",
UplevBg: "btn_puple",
Prog: "bg_progress_purple"
}];
cc.Class({
"extends": SVCItem,
properties: {
nodBg: {
"default": null,
type: cc.Node
},
nodCamp: {
"default": null,
type: cc.Node
},
nodName: {
"default": null,
type: cc.Node
},
nodLocked: {
"default": null,
type: cc.Node
},
nodLockedDesc: {
"default": null,
type: cc.Node
},
nodUnLocked: {
"default": null,
type: cc.Node
},
nodOp: {
"default": null,
type: cc.Node
}
},
// 数据重置
rebind: function rebind(_idx, _data, _key) {
this._super(_idx, _data, _key);
// 刷新
this.setData(_data);
},
// 设置相关的显示数据
setData: function setData(_data) {
this.locked = true;
if (!_data) {
return;
}
this.nodInfo = _data;
this.freshName();
this.freshDesc();
this.setLocked();
},
freshName: function freshName() {
nx.gui.setString(this.nodName, "", this.nodInfo.name);
var bg = KCStyle[this.nodInfo.camp - 1].Bg;
var uplBg = KCStyle[this.nodInfo.camp - 1].UplevBg;
var progBg = KCStyle[this.nodInfo.camp - 1].Prog;
var path = "prefab/home/base_kernel/ui/" + bg;
var up_path = "prefab/home/base_kernel/ui/" + uplBg;
var prog_path = "prefab/home/ui/" + progBg;
var camp_path = "prefab/home/ui/png_logo_" + this.nodInfo.camp;
nx.gui.setSpriteFrame(this, "uplevel/icon", up_path);
nx.gui.setSpriteFrame(this.nodBg, "", path);
nx.gui.setSpriteFrame(this.nodCamp, "", camp_path);
nx.gui.setSpriteFrame(this.nodUnLocked, "camp/prog_top", prog_path);
},
setLocked: function setLocked() {
var _this = this;
var stxt = this.nodInfo.level == 0 ? nx.text.getKey("Unlock") : this.nodInfo.level == 100 ? nx.text.getKey("tip_heroMaxed") : nx.text.getKey("UpLevel");
var cfg = game.configs.halidom_data.data_lvup[this.nodInfo.camp][this.nodInfo.level];
var KC = KernelController.getInstance();
nx.gui.setString(this.nodOp, "txt", stxt);
this.cb = this.nodInfo.level == 0 ? function () {
if (KC) {
KC.openKernelUnlocked(true, _this.nodInfo.camp);
}
} : this.nodInfo.level == 100 ? function () {
nx.tbox(nx.text.getKey("tip_heroMaxed"));
return;
} : function () {
if (KC) {
KC.openKernelUpLvWnd(true, _this.nodInfo.level, _this.nodInfo.camp);
}
};
nx.gui.setActive(this.nodLocked, "", this.nodInfo.level == 0);
this.freshUnlocked();
nx.gui.setActive(this.nodUnLocked, "", this.nodInfo.level != 0);
},
freshDesc: function freshDesc() {
var desc = this.nodInfo.level == 0 ? this.nodInfo.lock_desc : "";
nx.gui.setStringRich(this.nodLockedDesc, "", desc);
},
freshUnlocked: function freshUnlocked() {
// 获取对应的解锁后的属性配置 按照 阵营 等级查找
var cfg = game.configs.halidom_data.data_lvup[this.nodInfo.camp][this.nodInfo.level];
var gfg = game.configs.halidom_data.data_step[this.nodInfo.camp][this.nodInfo.step];
var sfg = game.configs.halidom_data.data_skill;
// 显示阵营相关属性
if (cfg) {
var attrs = cfg.attr;
var pnode = nx.gui.find(this.nodUnLocked, "camp");
nx.gui.setString(pnode, "level/txt", this.nodInfo.level);
var prop_node = nx.gui.find(pnode, "props/prop/p").children;
var exp = nx.gui.find(pnode, "prog_top");
var fp = exp.getComponent(cc.Sprite);
fp.fillRange = this.nodInfo.exp / cfg.total_exp;
// 属性id-name
for (var i = 0; i < prop_node.length; i++) {
var attr = attrs[i];
var path = "coms/images/ico_w" + attr[0];
nx.gui.setSpriteFrame(prop_node[i], "icon", path);
nx.gui.setString(prop_node[i], "txt", attr[1]);
}
}
if (gfg) {
var snode = nx.gui.find(this.nodUnLocked, "skill");
var self = this;
nx.gui.setString(snode, "advance_lev/txt", nx.text.format("LvNumber", gfg.step));
var nodeLev = nx.gui.find(snode, "prog/prog_node");
nx.gui.gocChildren(nodeLev, "", gfg.step);
var skill = sfg[gfg.skill_icon];
this.skill = sfg[gfg.skill_icon] || 0;
if (skill) {
var _path = cc.path.join("resDB/icons/skills/" + skill.res_id);
nx.gui.find(snode, "skill_info/sinfo/skill_icon").datass = this.nodInfo.camp;
// 先前顯示等級等
nx.gui.setActive(snode, "skill_info/sinfo/skill_icon/empty", false);
// nx.gui.setSpriteFrame( icon, "", path );
// let path = PathTool.querySmallIconPath( skill.res_id );
nx.gui.setSpriteFrame(snode, "skill_info/sinfo/skill_icon/icon", _path, function (_err, _sprite) {
if (!_err) {
nx.gui.setActive(snode, "skill_info/sinfo/skill_icon/empty", true);
}
});
nx.gui.setString(snode, "skill_info/sinfo/sname", skill.name);
nx.gui.setString(snode, "skill_info/sinfo/slev", nx.text.format("LvNumber", skill.lev));
nx.gui.setString(snode, "skill_info/sprop/txt", nx.dt.arrEmpty(gfg.fixed_attr) ? "" : gfg.fixed_attr[0][1]);
nx.gui.setActive(snode, "skill_info/sprop", !nx.dt.arrEmpty(gfg.fixed_attr));
nx.gui.setActive(snode, "skill_info/stitle", !nx.dt.arrEmpty(gfg.fixed_attr));
}
var _attrs = nx.gui.find(snode, "skill_info/attr/attrs");
for (var _i = 0; _i < _attrs.children.length; _i++) {
var item = _attrs.children[_i];
if (!nx.dt.arrEmpty(gfg.dynamic_attr)) {
nx.bridge.attrs.setAttribute(item, [gfg.dynamic_attr[_i][0], gfg.dynamic_attr[_i][1], _i + 1]);
}
}
nx.gui.setActive(snode, "skill_info/attr", false);
nx.gui.setActive(snode, "skill_info", skill);
nx.gui.setActive(snode, "empty", !skill);
}
},
// 点击
onTouchFun: function onTouchFun() {
nx.dt.fnInvoke(this.cb);
},
// 点击 陣營icon預覽相關
onTouchCampLogo: function onTouchCampLogo() {
// nx.bridge.createPanel( "WndKernelPreview", {
// camp: this.nodInfo.camp,
// level: this.nodInfo.level,
// } );
},
onTouchUpgrade: function onTouchUpgrade() {
var _this2 = this;
var KC = KernelController.getInstance();
var gfg = game.configs.halidom_data.data_step[this.nodInfo.camp][this.nodInfo.step + 1];
var need = 0;
// if( !gfg ){
// nx.tbox( nx.text.getKey( "lab_haliMax" ) );
// return;
// }
KC.openHalidomUpgrade(true, this.nodInfo.step, this.skill.id, 0, kernel, this.nodInfo.camp, function (_data) {
if (KC) {
if (gfg) {
if (_this2.nodInfo.level < gfg.conds[0][1]) {
nx.tbox(nx.text.format("lab_haliHeroStep", _this2.nodInfo.name, gfg.conds[0][1]));
return;
}
need = gfg.loss_rand[0][2];
} else {
nx.tbox(nx.text.getKey("lab_haliMax"));
return;
}
if (nx.dt.arrEmpty(_data.list2) || _data.list2.length < need) {
nx.tbox(nx.text.getKey("tip_noEnoughMaterial"));
return;
}
KC.sender22204(_data.id, _data.list1, _data.list2);
}
});
}
});
cc._RF.pop();