"use strict"; cc._RF.push(module, 'eabcfQMA2REyZRatc3JbvYT', 'cmp.partner.skills'); // Scripts/mod/partner/cmps/basic/cmp.partner.skills.js "use strict"; /****************************************************************** * * 伙伴信息页 --- 升阶 * ******************************************************************/ var BridgeComponent = require("bridge.component"); var HeroConst = require("hero_const"); var HeroEvent = require("hero_event"); var HeroControl = require("hero_controller"); var HeroCalculate = require("hero_calculate"); var BackPackConst = require("backpack_const"); var BIT = BackPackConst.item_type; var HEQP = HeroConst.EquipPosList; cc.Class({ "extends": BridgeComponent, properties: { lstSkills: { "default": null, type: cc.Node } }, // 显示 onEnable: function onEnable() { // 视图监听 this.vbind([["ShowPartner", this.onPartnerChanged.bind(this)]]); // 事件监听 this.bindGEvent(HeroEvent.Hero_Data_Update, this.onPartnerUpdate.bind(this)); }, // 隐藏 onDisable: function onDisable() { // 视图监听解除 this.vunbind(); // 事件监听解除 this.unbindGEvents(); }, // 置空 setEmpty: function setEmpty() { nx.gui.setActive(this.lstSkills, "", false); }, // 有伙伴数据更新 onPartnerUpdate: function onPartnerUpdate(_vo) { if (_vo && this.partner && _vo.partner_id == this.partner.partner_id) { this.onPartnerChanged(_vo); } }, // 伙伴更新 onPartnerChanged: function onPartnerChanged(_partner) { if (!_partner) { return; } this.partner = _partner; var weapon = {}; // 置空 if (nx.dt.objEmpty(this.partner)) { this.setEmpty(); return; } if (this.partner.eqm_list) { var list = this.partner.eqm_list; for (var i in list) { var eqm = list[i]; if (i == 41) { weapon = eqm; } } } var change = false; // 数据统计 var key = this.partner.bid + "_" + this.partner.star; var wcfg = nx.dt.objNEmpty(weapon) ? game.configs.weapon_data.data_get_skill[weapon.base_id] : {}; if (nx.dt.objNEmpty(wcfg)) { change = this.partner.bid == wcfg.partner_id; } var scfg = gdata("partner_data", "data_partner_star", key); var k1 = this.partner.type + "_" + this.partner.break_id + "_" + this.partner.break_lev; var cbc = game.configs.partner_data.data_partner_brach[k1]; if (nx.dt.objEmpty(scfg) || nx.dt.objEmpty(cbc)) { nx.error("技能刷新失败,当前配置无效!", k1); this.setEmpty(); return; } nx.gui.setActive(this.lstSkills, "", true); var count = cbc.skill_num - 1; var chds = this.lstSkills.children; for (var _i = 0; _i < chds.length; ++_i) { // 技能数组[0]为普攻,直接忽略,最多4个技能 var item = chds[_i]; var sifo = scfg.skills[_i + 1]; // let sifo = scfg.skills[i+1]; if (!sifo) { item.active = false; continue; } item.active = true; var cmp = nx.gui.getComponent(item, "", "cmp.skill.base"); if (cmp) { cmp.setData(_i == chds.length - 2 && change ? wcfg.skill_id : sifo[1], _i + 1 > count); } } } }); cc._RF.pop();