"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();