"use strict"; cc._RF.push(module, 'cf3bcaW4ANHWoWbLmMWmKmL', 'cmp.partner.holy.assemble'); // Scripts/mod/partner/cmps/artifact/cmp.partner.holy.assemble.js "use strict"; /****************************************************************** * * 战斗义肢 装配 * ******************************************************************/ var BridgeWindow = require("bridge.window"); var FxSVC = require("nx.fx.sv.expand"); var BackPackConst = require("backpack_const"); var HeroConst = require("hero_const"); var HeroEvent = require("hero_event"); var HeroControl = require("hero_controller"); var HEHY = HeroConst.HolyequipmentPosList; var BBC = BackPackConst.Bag_Code; var BIT = BackPackConst.item_type; var BITT = BackPackConst.item_sub_type; cc.Class({ "extends": BridgeWindow, properties: { svcList: { "default": null, type: FxSVC }, nodPartner: { "default": null, type: cc.Node }, nodHolySlots: { "default": null, type: cc.Node }, nodSlectPlans: { "default": null, type: FxSVC }, nodSuitDes: { "default": null, type: cc.Node } }, onLoad: function onLoad() { this.bindGEvent(HeroEvent.Hero_Open_Holy_Equipment_Cell_Event, this.freshHolyEqm.bind(this)); this.bindGEvent(HeroEvent.Hero_Get_Holy_Equipment_Plan_Event, this.freshHolyEqm.bind(this)); this.schlst = []; }, // 重载:参数打开 onOpenConfigs: function onOpenConfigs(_params) { var HC = HeroControl.getInstance(); var plans = _params.plans; this.partner = _params.partner; // console.log( JSON.stringify( this.partner ) + "方案数据 holy装配 伙伴数据" + JSON.stringify( plans ) ); if (!nx.dt.objEmpty(plans)) { this.freshHolyEqm(plans); } else { HC.sender25220(); //申请神装套装信息 } nx.gui.setActive(this.nodSlectPlans.node, "", false); }, onHolyPlanChanged: function onHolyPlanChanged() {}, freshHolyEqm: function freshHolyEqm(_plans) { var HC = HeroControl.getInstance(); var lst = []; _plans = !_plans.holy_eqm_set_cell ? HC.getModel().getHolyEquipmentPlanDatad() : _plans; var count = HC.getModel().getHolyPlanCount(); var num = _plans.num || count; var datas = _plans.holy_eqm_set_cell; var counts = game.configs.partner_holy_eqm_data.data_holy_suit_manage_length; var cfg = game.configs.partner_holy_eqm_data.data_holy_suit_manage; // console.log( JSON.stringify( this.partner ) + "当前的方案信息数据改变---" + JSON.stringify( datas ) ); for (var i in cfg) { if (i <= num) { var sch = nx.dt.objClone(cfg[i]); sch.partner_id = this.partner.partner_id; sch.list = []; if (datas) { for (var j = 0; j < datas.length; j++) { var msgHoly = datas[j]; if (msgHoly && sch.id == msgHoly.id) { sch.name = msgHoly.name; sch.partner_id = msgHoly.partner_id; sch.dif_id = this.partner.partner_id; sch.list = msgHoly.list; } } } sch.is_open = 1; lst.push(sch); } } this.freshSelectNod(lst); // console.log( "当前的方案信息" + JSON.stringify( lst ) ); if (counts > lst.length) { var new_data = nx.dt.objClone(cfg[num + 1]); lst.push(new_data); } this.schlst = lst; this.svcList.rebuild(lst); this.freshPartnerHolyInfo(); }, freshSelectNod: function freshSelectNod(_info) { // console.log( "当前的方案信息刷新sss" + JSON.stringify( _info ) ); this.nodSlectPlans.rebuild(_info); }, freshPartnerHolyInfo: function freshPartnerHolyInfo() { var partner_icon = nx.gui.getComponent(this.nodPartner, "", "cmp.item.base"); if (partner_icon) { partner_icon.setData(this.partner); } var holyeqms = HeroControl.getInstance().getModel().getHeroHolyEquipList(this.partner.partner_id); ; var slots = this.nodHolySlots; var lst = HeroControl.getInstance().getModel().getHolyEquipSuitDes(holyeqms); // console.log( "当前的伙伴holy数据更新" + JSON.stringify( lst ) ); for (var pos in HEHY) { var slot = nx.gui.find(slots, "slot" + pos); var eqm = holyeqms[pos]; var emt = nx.dt.objEmpty(eqm); nx.gui.setActive(slot, "empty", emt); nx.gui.setActive(slot, "tip", false); nx.gui.setActive(slot, "item", !emt); var cmp = nx.gui.getComponent(slot, "item", "cmp.item.base"); if (cmp) { if (!emt) { cmp.setData(eqm); } else { cmp.setData(null); } } } nx.gui.setActive(this.nodSuitDes, "", !nx.dt.arrEmpty(lst)); if (!nx.dt.arrEmpty(lst)) { var nod = nx.gui.find(this.nodSuitDes, "desc"); for (var i = 0; i < nod.children.length; i++) { var des = lst[i]; // console.log( "当前的套装相关属性" + JSON.stringify( des ) ); if (des) { nx.gui.setString(nod.children[i], "txt", des.name); var path = cc.path.join("coms/images/eqm_set" + Math.floor(des.id / 100)); nx.gui.setSpriteFrame(nod.children[i], "ticon", path); } else { nx.gui.setString(nod.children[i], "txt", ""); nx.gui.setSpriteFrame(nod.children[i], "ticon", ""); } } } }, onTouchSlot: function onTouchSlot(_partId) { var stype = parseInt(_partId); // 取相关的战斗义肢 // 点击装备槽 var self = this; var HC = HeroControl.getInstance(); 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 }); } 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 change = function change() { HC.openHolyChangePanel(true, stype, self.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(); } }, getSelectHoly: function getSelectHoly(_index) { var data = []; var nodes = nx.gui.find(this.svcList, "srv/view/content"); var cmp = nodes.children[_index].getComponent("cmp.partner.holy.sch"); if (cmp) { data = cmp.mdata.list; } return data; }, onTouchTakeOff: function onTouchTakeOff() { var HC = HeroControl.getInstance(); HC.sender11093(this.partner.partner_id, 0, 0); }, onTouchSave: function onTouchSave() { nx.gui.setActive(this.nodSlectPlans.node, "", !this.nodSlectPlans.node.active); } }); cc._RF.pop();