"use strict"; cc._RF.push(module, '75acbO1lNNPsKTTxl+98e03', 'cmp.partner.inset'); // Scripts/mod/partner/cmps/inset/cmp.partner.inset.js "use strict"; /****************************************************************** * * 伙伴信息页 --- 镶嵌 * ******************************************************************/ var BridgeComponent = require("bridge.component"); var MallConst = require("mall_const"); var HeroEvent = require("hero_event"); var HeroControl = require("hero_controller"); var TipsController = require("tips_controller"); cc.Class({ "extends": BridgeComponent, properties: { lstSkill: { "default": null, type: cc.Node }, nodOps: { "default": null, type: cc.Node } }, // 显示 onEnable: function onEnable() { // 视图监听 this.vbind([["ShowPartner", this.onPartnerChanged.bind(this)]]); // 事件监听 this.bindGEvent(HeroEvent.Hero_Forget_Talent_Event, this.onPartnerUpdate.bind(this)); this.bindGEvent(HeroEvent.Hero_Level_Up_Talent_Event, this.onPartnerUpdate.bind(this)); this.bindGEvent(HeroEvent.Hero_Get_Talent_Event, this.onPartnerUpdate.bind(this)); this.bindGEvent(HeroEvent.Hero_Learn_Talent_Event, this.onPartnerUpdate.bind(this)); }, // 隐藏 onDisable: function onDisable() { // 视图监听解除 this.vunbind(); // 事件监听解除 this.unbindGEvents(); }, // 有伙伴数据更新 onPartnerUpdate: function onPartnerUpdate(_vo) { // console.log( "變化數據" ); if (_vo && this.partner && _vo.partner_id == this.partner.partner_id) { this.onPartnerChanged(_vo); nx.bridge.vset("ShowPartner", _vo); } }, // 伙伴更新 onPartnerChanged: function onPartnerChanged(_partner) { this.partner = _partner; // 判空 if (nx.dt.objEmpty(this.partner)) { this.setEmpty(); return; } // 刷新 this.freshSkills(); }, // 置空 setEmpty: function setEmpty() { nx.gui.setActive(this, "mod/list", false); nx.gui.setActive(this, "mod/ops", false); }, // 刷新 freshSkills: function freshSkills() { var self = this; var chds = this.lstSkill.children; var sks = this.partner.talent_skill_list; var cfgs = game.configs.partner_skill_data.data_partner_skill_pos; var slvs = game.configs.partner_skill_data.data_partner_skill_level; // 单刷 var fresh = function fresh(_pos) { var cfg = cfgs[_pos]; var node = chds[_pos - 1]; // 是否未解锁 if (nx.dt.arrNEmpty(cfg.pos_limit) && cfg.pos_limit[0] == "star" && self.partner.star < cfg.pos_limit[1]) { nx.gui.setActive(node, "nor", false); nx.gui.setActive(node, "empty", false); nx.gui.setActive(node, "lock", true); nx.gui.setString(node, "lock/txt", cfg.pos_limit[1] + nx.text.getKey("lab_starOpen")); return; } // 已经解锁 var sk = sks[cfg.pos]; if (sk) { var data = gskilldata('data_get_skill', sk); if (data) { nx.gui.setActive(node, "empty", false); nx.gui.setActive(node, "lock", false); var nor = nx.gui.setActive(node, "nor", true); if (nor) { var cmp = nx.gui.getComponent(nor, "icon", "cmp.skill.base"); if (cmp) { cmp.setData(data); } var max = true; var lcfg = slvs[sk]; if (lcfg && nx.dt.numPositive(lcfg.next_id, false)) { max = false; } nx.gui.setActive(nor, "ops/up", !max); nx.gui.setActive(nor, "level/txt", !max); nx.gui.setActive(nor, "level/max", max); if (!max) { nx.gui.setString(nor, "level/txt", "Lv." + data.level); } } return; } } // 空 nx.gui.setActive(node, "nor", false); nx.gui.setActive(node, "empty", true); nx.gui.setActive(node, "lock", false); }; // 技能刷新 nx.gui.setActive(this, "mod/list", true); for (var pos in cfgs) { fresh(pos); } // 操作刷新 nx.gui.setActive(this, "mod/ops", true); }, // 点击:技能学习 onTouchSKAdd: function onTouchSKAdd(_pos) { var _this = this; console.log("onTouchSKAdd:" + _pos); var pos = parseInt(_pos); if (!nx.dt.numPositive(pos, false)) { nx.error("无效技能位置:", _pos); return; } var HC = HeroControl.getInstance(); HC.openHeroTalentSkillLearnPanel(true, this.partner, function (_id) { var sid = parseInt(_id); if (nx.dt.numPositive(sid, false)) { HC.sender11096(_this.partner.partner_id, pos, sid); } }); }, // 点击:技能升级 onTouchSKUp: function onTouchSKUp(_pos) { var _this2 = this; console.log("onTouchSKUp:" + _pos); var pos = parseInt(_pos); if (!nx.dt.numPositive(pos, false)) { nx.error("无效技能位置:", _pos); return; } var id = this.partner.talent_skill_list[_pos]; if (!nx.dt.numPositive(id, false)) { nx.error("无效技能:", _pos, id); return; } var HC = HeroControl.getInstance(); HC.openHeroTalentSkillLevelUpPanel(true, this.partner, id, function (_ret) { if (_ret) { HC.sender11097(_this2.partner.partner_id, pos); } }); }, // 点击:技能遗忘 onTouchSKDel: function onTouchSKDel(_pos) { console.log("onTouchSKDel:" + _pos); var pos = parseInt(_pos); if (!nx.dt.numPositive(pos, false)) { nx.error("无效技能位置:", _pos); return; } var id = this.partner.talent_skill_list[_pos]; if (!nx.dt.numPositive(id, false)) { nx.error("无效技能:", _pos, id); return; } // 文本组织 var HC = HeroControl.getInstance(); var str = nx.text.getKey("AskForgetTalent"); var cbk = game.configs.partner_skill_data.data_partner_skill_back[id]; if (nx.dt.objNEmpty(cbk) && nx.dt.arrNEmpty(cbk.expend)) { // 需要 var frame_arrays = []; str = nx.text.getKey("lab_hero_talent_skill_level_up_window_tip4"); for (var i = 0; i < cbk.expend.length; ++i) { var v = cbk.expend[i]; var item_config = Utils.getItemConfig(v[0]); if (item_config) { if (i != 0) { str = str + ", "; } var good_res_path = "3"; var text = StringUtil.parseStr(nx.text.getKey("
%s
")).string; var good_path = PathTool.getIconPath("items", "3"); frame_arrays.push(good_path); var str1 = cc.js.formatStr(text, good_res_path, v[1]); str = str + str1; } } // 返还 if (cbk.award1.length > 0) { str = str + nx.text.getKey("lab_hero_talent_skill_level_up_window_tip5"); for (var _i = 0; _i < cbk.award1.length; ++_i) { var _v = cbk.award1[_i]; var _item_config = Utils.getItemConfig(_v[0]); if (_item_config) { if (_i != 0) { str = str + ", "; } var _good_res_path = _item_config.icon; var _text = StringUtil.parseStr(nx.text.getKey("
%s
")).string; var _good_path = PathTool.getIconPath("items", _item_config.icon); frame_arrays.push(_good_path); var _str = cc.js.formatStr(_text, _good_res_path, _v[1]); str = str + _str; } } str = str + ")"; } } var self = this; var pid = this.partner.partner_id; nx.mbox(str, ['cancel', 'confirm'], function (_key, _box) { _box.close(); if (_key == 'confirm') { HC.sender11098(pid, pos); // self.close(); } }); }, // 点击:说明 onTouchHelp: function onTouchHelp() { var data = game.configs.partner_skill_data.data_partner_skill_const.skill_rule; if (nx.dt.objNEmpty(data) && nx.dt.strNEmpty(data.desc)) { var TC = TipsController.getInstance(); TC.showTextPanel("tip", data.desc); } }, // 点击:预览 onTouchPreview: function onTouchPreview() { var HC = HeroControl.getInstance(); HC.openArtifactSkillWindow(true, 2); }, // 点击:商店 onTouchShop: function onTouchShop() { nx.bridge.jumper.jump2Window(2, [MallConst.MallType.SkillShop]); } }); cc._RF.pop();