"use strict"; cc._RF.push(module, 'b3193LxB1FEsL2GDs2wluUs', 'cmp.partner.artifact'); // Scripts/mod/partner/cmps/artifact/cmp.partner.artifact.js "use strict"; /****************************************************************** * * 伙伴信息页 --- 战斗义肢相关 * ******************************************************************/ var BridgeComponent = require("bridge.component"); var HeroConst = require("hero_const"); var HeroEvent = require("hero_event"); var HeroControl = require("hero_controller"); var TipsController = require("tips_controller"); var HEHY = HeroConst.HolyequipmentPosList; var BattleController = require("battle_controller"); var BattleConst = require("battle_const"); var PrayMod = require("pray.mod"); var NxSpine = require("nx.fx.spine"); cc.Class({ "extends": BridgeComponent, properties: { nodSlots: { "default": null, type: cc.Node }, nodEnergy: { "default": null, type: cc.Node }, nodSuit: { "default": null, type: NxSpine } }, // 显示 onEnable: function onEnable() { // 视图监听 this.vbind([["ShowPartner", this.onPartnerChanged.bind(this)]]); // // 事件监听 刷新当前的战斗义肢相关 this.bindGEvent(HeroEvent.Holy_Equipment_Update_Event, this.onPartnerUpdate.bind(this)); }, // 隐藏 onDisable: function onDisable() { // 视图监听解除 this.vunbind(); // 事件监听解除 this.unbindGEvents(); }, // 有伙伴数据更新 onPartnerUpdate: function onPartnerUpdate(_vo) { if (_vo && this.partner && _vo.partner_id == this.partner.partner_id) { this.onPartnerChanged(_vo); } }, // 伙伴更新 onPartnerChanged: function onPartnerChanged(_partner) { this.partner = _partner; // 判空 if (nx.dt.objEmpty(this.partner)) { this.setEmpty(); return; } // 刷新 this.freshUIBySlots(); }, // 置空 setEmpty: function setEmpty() { nx.gui.setActive(this, "mod/list", false); nx.gui.setActive(this, "mod/ops", false); }, freshUIBySlots: function freshUIBySlots(_data) { var _this = this; // 空处理 var slots = this.nodSlots; var self = this; var enode = this.nodEnergy; var holy_eqm_list = HeroControl.getInstance().getModel().getHeroHolyEquipList(this.partner.partner_id) || {}; var empty = function empty(_sc) { if (_sc === void 0) { _sc = false; } // 卡槽置空 slots.children.forEach(function (_c) { nx.gui.setActive(_c, "item", false); nx.gui.setActive(_c, "tip", false); nx.gui.setActive(_c, "empty", true); }); nx.gui.hideAllChildren(enode); }; // empty( true ); // 判空 if (nx.dt.objEmpty(this.partner) || nx.dt.objEmpty(holy_eqm_list)) { empty(true); return; } for (var pos in HEHY) { var eqm = holy_eqm_list[pos]; // 当前装备 var emt = nx.dt.objEmpty(eqm); var slot = nx.gui.find(slots, "slot" + pos); nx.gui.setActive(slot, "item", !emt); nx.gui.setActive(slot, "empty", emt); nx.gui.setActive(slot, "tip", false); if (!emt) { var posid = parseInt(pos); var uiPos = 0; switch (posid) { case 23: { uiPos = 1; } ; break; case 24: { uiPos = 3; } ; break; case 25: { uiPos = 2; } ; break; case 26: { uiPos = 4; } ; break; } var path = cc.path.join("prefab/partner/holy/ui/" + parseInt(eqm.config.eqm_set / 100) + "-" + uiPos); nx.gui.setSpriteFrame(enode, "e" + pos, path); } nx.gui.setActive(enode, "e" + pos, !emt); if (!emt) { var cmp = nx.gui.getComponent(slot, "item", "cmp.item.base"); if (cmp) { cmp.setData(eqm); } } } var suitPath = ""; var suitType = 0; var holyeqms = HeroControl.getInstance().getModel().getHeroHolyEquipList(this.partner.partner_id); ; var lst = HeroControl.getInstance().getModel().getHolyEquipSuitDes(holyeqms); if (nx.dt.arrNEmpty(lst)) { for (var l = 0; l < lst.length; l++) { var suit = lst[l]; if (suit.num == 4) { suitType = parseInt(suit.id % 100); break; } } } switch (suitType) { case 1: { suitPath = "resDB/effects/E99992/action"; } ; break; case 2: { suitPath = "resDB/effects/E99993/action"; } ; break; case 3: { suitPath = "resDB/effects/E99994/action"; } ; break; case 4: { suitPath = "resDB/effects/E99995/action"; } ; break; case 5: { suitPath = "resDB/effects/E99996/action"; } ; break; } if (nx.dt.strNEmpty(suitPath)) { this.nodSuit.load(suitPath, function (_e) { if (!_e) { _this.nodSuit.action("action", true); } else { _this.nodSuit.stop(); } }); nx.gui.setActive(this.nodSuit.node, "", true); } else { nx.gui.setActive(this.nodSuit.node, "", false); } }, onTouchSlot: function onTouchSlot(_partId) { var stype = parseInt(_partId); // 取相关的战斗义肢 // 点击装备槽 var self = this; var HC = HeroControl.getInstance(); var eqms = HeroControl.getInstance().getModel().getHeroHolyEquipList(this.partner.partner_id); var eqm = eqms[_partId]; // 脱下 var takeoff = function takeoff() { HC.sender11093(self.partner.partner_id, eqm.id, 0); }; // 洗炼 var refinement = function refinement() { HC.openHolyequipmentRefreshAttPanel(true, eqm, self.partner); }; var partner = HC.getModel().getHeroById(self.partner.partner_id); // 更换 var change = function change() { /********* * "list":[{"partner_id":17,"item_id":4},{"partner_id":17,"item_id":2},{"partner_id":17,"item_id":3},{"partner_id":17,"item_id":1}] */ var holyLst = []; var eqms = HeroControl.getInstance().getModel().getHeroHolyEquipList(self.partner.partner_id); for (var i in eqms) { var _eqm = eqms[i]; holyLst.push({ partner_id: self.partner.partner_id, item_id: _eqm.id }); } // console.log( "当前的伙伴战斗义肢携带信息" + JSON.stringify( holyLst ) ); HC.openHolyChangePanel(true, stype, partner, holyLst, function (_id, _panel) { // _panel.close(); HC.sender11093(self.partner.partner_id, _id, 1); }, function (_data) { HC.sender11093(_data.partner.partner_id, _data.eqm, 0); }); }; // 当前装备操作 if (eqm) { HC.openEquipChangePanel(true, eqm, function (_op, _panel) { _panel.close(); if (_op == "takeoff") { takeoff(); } if (_op == "change") { change(); } if (_op == "refinement") { refinement(); } }); } // 新装备穿戴 else { change(); } }, // 点击:说明 onTouchHelp: function onTouchHelp() { var data = game.configs.partner_holy_eqm_data.data_const.game_rule_1; if (nx.dt.objNEmpty(data) && nx.dt.strNEmpty(data.desc)) { var TC = TipsController.getInstance(); TC.showTextPanel("tip", data.desc); } }, // 点击:预览 onTouchPreview: function onTouchPreview() { var titles = []; var top_titles = game.configs.partner_holy_eqm_data.data_suit_res_prefix; for (var i in top_titles) { var title = top_titles[i]; titles.push(title); } // game.configs.partner_holy_eqm_data.data_const.handbook_unlock_condition; var HC = HeroControl.getInstance(); HC.openHeroClothesLustratWindow(true, titles); // HC.openArtifactSkillWindow( true, 2 ); }, // 点击:商店 onTouchShop: function onTouchShop() { var pray = PrayMod.getInstance(); var score = pray.getScore(); nx.bridge.createPanel("WndHolyPrayShop", { score: score }); }, // 点击:祈禱 onTouchPray: function onTouchPray() { nx.bridge.createPanel("WndHolyPray"); }, onTouchAssemble: function onTouchAssemble() { var HC = HeroControl.getInstance(); var model = HC.getModel(); var plans = model.getHolyEquipmentPlanDatad(); var partner = model.getHeroById(this.partner.partner_id); HC.openHolyequipmentPlanPanel(true, plans, partner); }, // 点击:属性加成 onTouchBonus: function onTouchBonus() { var HC = HeroControl.getInstance(); HC.sender11086(this.partner.partner_id); }, onTouchDun: function onTouchDun() { BattleController.getInstance().requestOpenBattleRelevanceWindow(BattleConst.Fight_Type.HeavenWar); } }); cc._RF.pop();