"use strict"; cc._RF.push(module, 'cb995A9ShlA74yKU695nta2', 'cmp.wing.scheme'); // Scripts/mod/partner/wings/cmp/cmp.wing.scheme.js "use strict"; var SVCItem = require("nx.fx.sv.expand.item"); var TipController = require("tips_controller"); var ElfinController = require("elfin_controller"); var ItemBase = require("cmp.item.base"); var BackpackController = require("backpack_controller"); /********** * * 僚机方案 单项 */ cc.Class({ "extends": SVCItem, properties: { sname: { "default": null, type: cc.Node, displayName: "方案名" }, sinfo: { "default": [], type: cc.Node, displayName: "僚机装配方案组" }, nodfocus: { "default": null, type: cc.Node, displayName: "聚焦" } }, // 数据重置 rebind: function rebind(_idx, _data, _key) { this._super(_idx, _data, _key); this.freshInfo(); }, // 刷新具体信息 freshInfo: function freshInfo() { if (!this.mdata) { this.setEmpty(); nx.bridge.vset("ShowWingPos", null); return; } var maxCount = game.configs.sprite_data.data_elfin_plan_length; nx.gui.setString(this.sname, "", nx.text.getKey(this.mdata.name)); var sprites = this.mdata.plan_sprites; sprites.sort(Utils.tableLowerSorter(["pos"])); var chd = this.sinfo; var count = 0; for (var i = 0; i < sprites.length; i++) { var cmp = chd[i].getComponent(ItemBase); if (cmp) { cmp.setLocked(false); cmp.setData(sprites[i].item_bid); if (sprites[i].item_bid != 0) { count++; } } } nx.gui.setActive(this, "ico_do", count != 0); nx.gui.setActive(this, "ico", count == 0); nx.gui.setActive(this, "item", this.mdata.id <= maxCount); nx.gui.setActive(this, "add", this.mdata.id > maxCount); //{"id":9,"name":"新增","plan_sprites":[{"pos":5,"item_bid":0}]} /***{"id":1,"name":"464646", * "plan_sprites":[{"pos":1,"item_bid":113408},{"pos":2,"item_bid":113407},{"pos":3,"item_bid":0},{"pos":4,"item_bid":0}]} */ }, setEmpty: function setEmpty() { var chd = this.sinfo; for (var i = 0; i < chd.length; i++) { var cmp = chd[i].getComponent(ItemBase); if (cmp) { cmp.setLocked(true); this.focus = false; cmp.setData(0); } } }, onTouchRename: function onTouchRename() { var TC = TipController.getInstance(); var EC = ElfinController.getInstance(); var id = this.index + 1; var modify = function modify(_name) { EC.send26558(id, _name); }; TC.showInputString({ tip: "", limit: [1, 12], cb: function cb(_box, _str) { _box.close(); modify(_str); } }); }, // 聚焦获得 onFocus: function onFocus() { this.focus = true; if (this.nodfocus) { nx.gui.setActive(this.nodfocus, "", true); nx.gui.setActive(this, "item/tip", false); } // this.onTouchPos( 0 ); }, // 聚焦获得 outFocus: function outFocus() { // this.onTouchPos( -1 ); this.focus = false; if (this.nodfocus) { nx.gui.setActive(this.nodfocus, "", false); nx.gui.setActive(this, "item/tip", true); } }, onTouchAdd: function onTouchAdd() { var _this = this; var EC = ElfinController.getInstance(); var pfg = game.configs.sprite_data.data_elfin_plan[this.index + 1]; var have = BackpackController.getInstance().getModel().getItemNumByBid(pfg.expend[0][0]); var need = pfg.expend[0][1]; // 不足弹出提示 if (have < need) { nx.tbox(nx.text.getKey("elfin_hatch_unlock_5")); return; } var mat0 = pfg.expend[0][0]; var txt = nx.text.format("lab_heaven_msg_tips_19n", need, this.index + 1); EC.openElfUseTipsWindow(true, txt, [mat0], [need], function (_deal) { EC.send26562(_this.index + 1); EC.openElfUseTipsWindow(false); }); }, onTouchPos: function onTouchPos(_index) { return; var nodParent = this.node.parent.parent; // console.log( "节点" + nodParent.name ); for (var i = 0; i < nodParent.children.length; i++) { var item = nodParent.children[i]; // console.log( "节点s" + Object.keys( item.svItem ) ); if (item.svItem) { var chd = item.svItem.sinfo; // let smp = item.getComponent( SVCItem ); if (chd) { for (var j = 0; j < chd.length; j++) { // console.log("取消选择状态"); var sch = chd[j]; var cmp = sch.getComponent(ItemBase); if (cmp) { cmp.outFocus(); } } } } } // console.log( "当前的方案" + this.index + "当前点击" + _index + "状态" + this.focus ); for (var _i = 0; _i < this.sinfo.length; _i++) { var selectNode = this.sinfo[_i]; var _cmp = selectNode.getComponent(ItemBase); if (_cmp) { if (_index == _i) { _cmp.onFocus(); // console.log( "当前的方案" ); if (!nx.dt.objGood(_cmp.mdata)) { var data = {}; data.index = this.select_wing; data.mdata = nx.dt.objClone(_cmp.mdata); nx.bridge.vset("ShowWingPos", data); break; } nx.bridge.vset("ShowWingPos", _i); } else { _cmp.outFocus(); } } } }, onTouchSave: function onTouchSave(_type, _team) { var EC = ElfinController.getInstance(); var choice = []; for (var i = 0; i < this.sinfo.length; i++) { var selectNode = this.sinfo[i]; var cmp = selectNode.getComponent(ItemBase); if (cmp) { if (!nx.dt.objGood(cmp.mdata)) { var data = {}; data.pos = i + 1; data.item_bid = nx.dt.objClone(cmp.mdata || -1); choice.push(data); } else { var _data2 = {}; _data2.pos = i + 1; _data2.item_bid = 0; // console.log( "当前的pos2" + JSON.stringify( data ) ); choice.push(_data2); } } } for (var _i2 = 0; _i2 < choice.length; _i2++) { if (choice[_i2].item_bid < 0) { choice.splice(_i2, 1); // 将使后面的元素依次前移,数组长度减1 _i2--; // 如果不减,将漏掉一个元素 } } var id = this.index + 1; EC.send26557(id, choice, _type, _team); }, //使用预设方案 UsePreSet: function UsePreSet() { // 获取当前的默认方案配置 var ElfinCtl = ElfinController.getInstance(); var model = ElfinCtl.getModel(); var defaultSchemeInfo = model.getDedefaultElfinInfo(); var schemes = model.getAllPlanData(); var schemesid = []; // let num = 0; for (var i = 0; i < defaultSchemeInfo.length; i++) { var item = defaultSchemeInfo[i]; if (item.item_bid >= 0) { schemesid.push(item.item_bid); } // if( item.item_bid == 0 ){ // num++; // } } // if( num >= 4 ){ // nx.tbox( nx.text.getKey( "tips_assemble_none" ) ); // return; // } // console.log( JSON.stringify( schemes ) + "当前的默认方案配置" + JSON.stringify( defaultSchemeInfo ) ); if (schemes[this.index]) { schemes[this.index].plan_sprites = defaultSchemeInfo; this.rebind(this.index, schemes[this.index]); } var data = { lst: schemesid, index: this.index }; nx.bridge.vset("ShowWingPos", data); }, onTouchSaveBtn: function onTouchSaveBtn() { var EC = ElfinController.getInstance(); var choice = []; for (var i = 0; i < this.sinfo.length; i++) { var selectNode = this.sinfo[i]; var cmp = selectNode.getComponent(ItemBase); if (cmp) { if (!nx.dt.objGood(cmp.mdata)) { var data = {}; data.pos = i + 1; data.item_bid = nx.dt.objClone(cmp.mdata || -1); choice.push(data); } else { var _data3 = {}; _data3.pos = i + 1; _data3.item_bid = 0; // console.log( "当前的pos2" + JSON.stringify( data ) ); choice.push(_data3); } } } for (var _i3 = 0; _i3 < choice.length; _i3++) { if (choice[_i3].item_bid < 0) { choice.splice(_i3, 1); // 将使后面的元素依次前移,数组长度减1 _i3--; // 如果不减,将漏掉一个元素 } } EC.sender26514(choice); } }); cc._RF.pop();