"use strict"; cc._RF.push(module, '73f4fMpjBZGu5y16J/ynu06', 'cmp.partner.holy.sch'); // Scripts/mod/partner/cmps/artifact/cmp.partner.holy.sch.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"); var HeroController = require("hero_controller"); var HeroConst = require("hero_const"); var BackPackConst = require("backpack_const"); var HEHY = HeroConst.HolyequipmentPosList; /********** * * 僚机方案 单项 */ cc.Class({ "extends": SVCItem, properties: { sname: { "default": null, type: cc.Node, displayName: "方案名" }, nodfocus: { "default": null, type: cc.Node, displayName: "聚焦" }, nodUser: { "default": null, type: cc.Node, displayName: "使用者" }, nodAddnew: { "default": null, type: cc.Node, displayName: "新增" }, nodItem: { "default": null, type: cc.Node, displayName: "方案" }, nodId: { "default": null, type: cc.Node, displayName: "编号" } }, // 数据重置 rebind: function rebind(_idx, _data, _key) { this._super(_idx, _data, _key); this.freshInfo(); }, // 刷新具体信息 freshInfo: function freshInfo() { var HC = HeroController.getInstance(); if (this.mdata) { // console.log( "当前的方案数据信息"+ this.mdata.id + JSON.stringify( this.mdata ) ); // {"id":1,"name":"Scheme1","is_open":1,"open_cost":[]} if (this.nodId) { nx.gui.setString(this.nodId, "", this.mdata.id); } nx.gui.setString(this.sname, "", this.mdata.name); if (this.nodUser) { nx.gui.setString(this.nodUser, "", ""); } if (!nx.dt.arrEmpty(this.mdata.open_cost)) { if (this.nodAddnew) { var anode = nx.gui.find(this.nodAddnew, "add/icon"); var nnode = nx.gui.find(this.nodAddnew, "add/cost/num"); nx.bridge.setIconS(anode, "", this.mdata.open_cost[0][0]); nx.gui.setString(nnode, "", this.mdata.open_cost[0][1]); } } var slots = nx.gui.find(this.nodItem, "slots"); var descs = nx.gui.find(this.nodItem, "desc"); // 如果当前的list配置数据不为空 if (!nx.dt.arrEmpty(this.mdata.list)) { var allEqm = {}; allEqm = this.getAllHolyLst(this.mdata.list); // 套装说明 // let nod_desc = nx.gui.find( descs, "desc" ); var lst = HC.getModel().getHolyEquipSuitDes(allEqm); nx.gui.setActive(descs, "", !nx.dt.arrEmpty(lst)); if (!nx.dt.arrEmpty(lst) && descs) { for (var i = 0; i < lst.length; i++) { var desc = lst[i].name; var nod = descs.children[i]; if (nod) { nx.gui.setString(nod, "txt", desc); var path = cc.path.join("coms/images/eqm_set" + Math.floor(lst[i].id / 100)); nx.gui.setSpriteFrame(nod, "ticon", path); } } } // 取当前列表中伙伴穿戴 holy数据 var partner = HC.getModel().getHeroById(this.mdata.partner_id); var name = partner ? partner.name : "None"; nx.gui.setString(this.nodUser, "", name); var p_num = 0; for (var _i = 0; _i < this.mdata.list.length; _i++) { var item = this.mdata.list[_i]; var idata = {}; if (!nx.dt.objEmpty(allEqm)) { for (var pos in HEHY) { var eqm = allEqm[pos]; var slot = nx.gui.find(slots, "slot" + 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); } } } } } } else { for (var _pos in HEHY) { var _slot = nx.gui.find(slots, "slot" + _pos); nx.gui.setActive(_slot, "empty", true); nx.gui.setActive(_slot, "tip", false); nx.gui.setActive(_slot, "item", false); var _cmp = nx.gui.getComponent(_slot, "item", "cmp.item.base"); if (_cmp) { _cmp.setData(null); } } } nx.gui.setActive(this, "sch_info", this.mdata.is_open != 0); if (this.nodAddnew) { nx.gui.setActive(this.nodAddnew, "", this.mdata.is_open == 0); } if (this.nodItem) { nx.gui.setActive(this.nodItem, "", this.mdata.is_open == 1); } } }, getAllHolyLst: function getAllHolyLst(_list) { if (!_list) { return; } ; if (_list.length == 0) { return {}; } ; var holy_list = {}; //神装数据 for (var k in _list) { var v = _list[k]; if (v.item_id) { var item_vo = {}; if (v.partner_id == 0) { //在装备背包中 item_vo = BackpackController.getInstance().getModel().getBagItemById(BackPackConst.Bag_Code.EQUIPS, v.item_id); } else { //英雄已穿戴 item_vo = HeroController.getInstance().getModel().getHolyEquipById(v.item_id); } if (item_vo && item_vo.config) { holy_list[item_vo.config.type] = item_vo; } } } return holy_list; }, 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 HC = HeroController.getInstance(); var self = this; var modify = function modify(_name) { HC.sender25221(self.mdata.id, self.mdata.partner_id, _name, self.mdata.list); }; 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 HC = HeroController.getInstance(); // let pfg = game.configs.sprite_data.data_elfin_plan[this.index + 1]; var have = BackpackController.getInstance().getModel().getItemNumByBid(this.mdata.open_cost[0][0]); var need = this.mdata.open_cost[0][1]; // 不足弹出提示 if (have < need) { nx.tbox(nx.text.getKey("elfin_hatch_unlock_5")); return; } var mat0 = this.mdata.open_cost[0][0]; // let txt = nx.text.format( "lab_heaven_msg_tips_19n", need, this.index + 1 ); var buy_ori = nx.text.format("lab_heaven_msg_tips_19", String(mat0), need, this.index + 1); var des_str = buy_ori; nx.mbox(des_str, ['cancel', 'confirm'], function (_key, _box) { _box.close(); if (_key == "confirm") { HC.sender25223(); } }); }, onTouchSlot: function onTouchSlot(_partId) { var stype = parseInt(_partId); var slots = nx.gui.find(this.nodItem, "slots"); // 取相关的战斗义肢 // 点击装备槽 var self = this; var eqm = {}; var HC = HeroController.getInstance(); var nod = nx.gui.find(slots, "slot" + stype); var cmp = nx.gui.getComponent(nod, "item", "cmp.item.base"); if (cmp) { eqm = cmp.mdata; } var partner = HC.getModel().getHeroById(this.mdata.partner_id); // 脱下 var takeoff = function takeoff() { HC.sender25221(self.mdata.id, self.mdata.partner_id, self.mdata.name, {}); }; // 洗炼 var refinement = function refinement() { if (self.mdata.partner_id == 0) { nx.tbox("HolyAttachNoUser"); return; } else { HC.openHolyequipmentRefreshAttPanel(true, eqm, partner); } // }; // 更换 var change = function change() { var slt = []; slt = nx.dt.objClone(self.mdata.list); var show = partner ? partner : 0; HC.openHolyChangePanel(true, stype, show, self.mdata.list, function (_id, _panel) { var data = { "partner_id": _id.mdata.partner_id, "item_id": _id.eqm }; var hero_lst = self.getAllHolyLst(slt); // let dataL = self.getAllHolyLst( [data] ); var tch = BackpackController.getInstance().getModel().getBagItemById(BackPackConst.Bag_Code.EQUIPS, _id.eqm); // console.log( "处理所有的holy数据-------->>>>" + JSON.stringify( hero_lst ) ); var sls = []; var allPlan = HC.getModel().getHolyEquipmentPlanData(); for (var i in allPlan) { var plan = allPlan[i]; if (plan.id == _id.mdata.id) { sls = plan.list; } } // 判断是否是同类型替换 for (var _i2 in hero_lst) { var item = hero_lst[_i2]; if (item.config.type == tch.config.type) { item = tch; } if (nx.dt.arrEmpty(sls)) { sls.push({ "partner_id": _id.mdata.partner_id, "item_id": item.id }); } else { for (var _i3 = 0; _i3 < sls.length; _i3++) { if (!(sls[_i3].item_id == item.item_id)) { sls.push(item); break; } } } } if (nx.dt.arrEmpty(sls)) { sls.push(data); } else { for (var _i4 = 0; _i4 < sls.length; _i4++) { if (!(sls[_i4].item_id == data.item_id)) { sls.push(data); break; } } } HC.sender25221(_id.mdata.id, _id.mdata.partner_id, _id.mdata.name, sls); }, function (_id, _panel) { var allPlan = HC.getModel().getHolyEquipmentPlanData(); for (var i in allPlan) { var plan = allPlan[i]; if (plan.id == _id.mdata.id) { slt = plan.list; } } for (var _i5 = 0; _i5 < slt.length; _i5++) { var s = slt[_i5]; if (s.item_id == _id.eqm) { slt.splice(_i5, 1); } } HC.sender25221(_id.mdata.id, _id.mdata.partner_id, _id.mdata.name, slt); }, self.mdata); }; // 当前装备操作 if (!nx.dt.objEmpty(eqm)) { HC.openEquipChangePanel(true, eqm, function (_op, _panel) { _panel.close(); if (_op == "takeoff") { takeoff(); } if (_op == "change") { change(); } if (_op == "refinement") { refinement(); } }); } // 新装备穿戴 else { change(); } }, onTouchSelect: function onTouchSelect() { // 返回 var HC = HeroController.getInstance(); var pid = 0; if (HC) { pid = this.mdata.dif_id ? this.mdata.dif_id : this.mdata.partner_id; var eqms = HC.getModel().getHeroHolyEquipList(pid); var holy_eqm = []; for (var i in eqms) { var holy = eqms[i]; holy_eqm.push({ partner_id: pid, item_id: holy.id }); } HC.sender25221(this.mdata.id, pid, this.mdata.name, holy_eqm); } }, onTouchUse: function onTouchUse() { var HC = HeroController.getInstance(); HC.sender25224(this.mdata.dif_id, this.mdata.id); }, onTouchClean: function onTouchClean() { var HC = HeroController.getInstance(); HC.sender25221(this.mdata.id, this.mdata.partner_id, this.mdata.name, {}); } }); cc._RF.pop();