226 lines
7.6 KiB
JavaScript
226 lines
7.6 KiB
JavaScript
"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(); |