"use strict"; cc._RF.push(module, 'ad23dg/3qlMx7FkVDcVw3aU', 'cmp.partner.reform.equips'); // Scripts/mod/partner/cmps/reform/cmp/cmp.partner.reform.equips.js "use strict"; /****************************************************************** * * 伙伴改造页: 装备合成 * ******************************************************************/ var FxTogs = require("nx.fx.togs"); var FxSVC = require("nx.fx.sv.expand"); var BridgeComponent = require("bridge.component"); var HeroConst = require("hero_const"); var BackPackConst = require("backpack_const"); var ForgehouseController = require("forgehouse_controller"); var BackpackController = require("backpack_controller"); var RoleController = require("role_controller"); var HeroController = require("hero_controller"); var FID = require("bridge.function.ids"); var BBC = BackPackConst.Bag_Code; var BIT = BackPackConst.item_type; var LabTags = [BIT.WEAPON, // 武器 BIT.SHOE, // 鞋子 BIT.CLOTHES, // 衣服 BIT.HAT // 头盔 ]; var HCT = HeroConst.CampType; cc.Class({ "extends": BridgeComponent, properties: { togTypes: { "default": null, type: FxTogs }, svcList: { "default": null, type: FxSVC }, nodSrc: { "default": null, type: cc.Node }, nodTar: { "default": null, type: cc.Node }, nodCounter: { "default": null, type: cc.Node }, nodCost: { "default": null, type: cc.Node }, nodCompOnce: { "default": null, type: cc.Node } }, // 载入 onLoad: function onLoad() { var _this = this; this._super(); // 事件监听 this.bindGEvent(EventId.COMPOSITE_PREVIEW, this.onCompoundPreview.bind(this)); this.bindGEvent(EventId.COMPOSITE_RESULT, this.onCompoundResult.bind(this)); this.curTag = -1; // Tog监听 this.togTypes.posTog = this.onTogCamp.bind(this); this.togTypes.togTo(0); this.scheduleOnce(function () { _this.onTogCamp(0); }, 0.01); }, onEnable: function onEnable() { HeroController.getInstance().getModel().dealReformEqm(); }, // 重载:关闭前 onPreClosed: function onPreClosed() { this.svcList.rebuild([]); }, // 整体刷新 freshList: function freshList() { var FC = ForgehouseController.getInstance(); var FM = FC.getModel(); var BC = BackpackController.getInstance(); var BM = BC.getModel(); var RC = RoleController.getInstance(); var role = RC.getRoleVo(); var all = FM.getBackEquipsData(this.curTag); nx.gui.setActive(this.svcList, "empty", nx.dt.arrEmpty(all)); this.svcList.rebuild(all); var cfg = game.configs.partner_eqm_data.data_partner_const; //role.lev >= cfg.synthesis_character_lev.val || if (role.vip_lev >= cfg.synthesis_vip_lev.val) { nx.gui.setActive(this.nodCompOnce, "lock", false); } else { nx.gui.setActive(this.nodCompOnce, "lock", false); nx.gui.setString(this.nodCompOnce, "lock/vip", nx.text.format("VIPLockTip", cfg.synthesis_vip_lev.val)); } if (nx.dt.arrEmpty(all)) { return; } this.canComposeid = 0; var self = this; // 可合成判断 var check = function check(_data) { var expend = _data ? _data.expend : null; if (nx.dt.arrEmpty(expend)) { return false; } var can_composite = false; var coin_stauts = false; if (expend && expend.length >= 2 && expend[0].length >= 2) { var need_bid = expend[0][0]; var need_num = expend[0][1]; var max_num = BM.getPackItemNumByBid(BBC.EQUIPS, need_bid); can_composite = max_num >= need_num; var need_coin = expend[1][1]; coin_stauts = need_coin <= role.coin; } if (can_composite) { // self.canComposeid = _data.id ; } return can_composite && coin_stauts; }; var count = 0; // 遍历 var chds = this.svcList.bindSCV.content.children; for (var i = 0; i < chds.length; ++i) { var node = chds[i]; if (node && node.svItem) { var data = all[node.svOrder]; nx.gui.setActive(node.svItem, "tip", check(data)); if (check(data)) { count++; } } } self.canComposeid = chds[chds.length - 1].svItem.mdata.id; // 标的置空 this.onFocusChanged(chds[0].svItem); }, // 设置合成标的 setTarget: function setTarget(_tar) { // 空处理 if (nx.dt.objEmpty(_tar) || !nx.dt.numPositive(_tar.id, false) || nx.dt.arrEmpty(_tar.expend)) { this.target = null; nx.gui.setActive(this.nodSrc, "item/empty", true); nx.gui.setActive(this.nodSrc, "item/icon", false); nx.gui.setActive(this.nodTar, "item/empty", true); nx.gui.setActive(this.nodTar, "item/icon", false); this.setLimit(0, true); this.setCost(0); return; } var BC = BackpackController.getInstance(); var BM = BC.getModel(); // 标的 nx.gui.setActive(this.nodTar, "item/empty", false); nx.gui.setActive(this.nodTar, "item/icon", true); var icon = nx.gui.getComponent(this.nodTar, "item/icon", "cmp.item.base"); if (icon) { icon.setData(_tar.id); } var limit = 0; // 材料 nx.gui.setActive(this.nodSrc, "item/empty", false); nx.gui.setActive(this.nodSrc, "item/icon", true); icon = nx.gui.getComponent(this.nodSrc, "item/icon", "cmp.item.base"); if (icon) { var info = _tar.expend[0]; var have = BM.getPackItemNumByBid(BBC.EQUIPS, info[0]); icon.setData(info[0]); nx.gui.setString(icon, "count", have + '/' + info[1]); limit = Math.floor(have / info[1]); var color = have < info[1] ? cc.Color.RED : cc.Color.GREEN; nx.gui.setColor(icon, "count", color); } // 数量 this.setLimit(limit, true); // 花费 this.setCost(_tar.expend[1], limit >= 1); this.target = _tar; }, // 设置限制 setLimit: function setLimit(_limit, _reset) { if (_reset === void 0) { _reset = false; } // 置空 if (!nx.dt.numPositive(_limit, false)) { this.limit = 0; this.range = [0, 0]; nx.gui.setString(this.nodCounter, "num", 0); nx.gui.setLocked(this.nodCounter, "dec", true); nx.gui.setLocked(this.nodCounter, "inc", true); return; } // 上下限更新 if (_reset) { this.range = [1, _limit]; } // 更新 this.limit = cc.math.clamp(_limit, this.range[0], this.range[1]); nx.gui.setString(this.nodCounter, "num", this.limit); nx.gui.setLocked(this.nodCounter, "dec", this.limit <= this.range[0]); nx.gui.setLocked(this.nodCounter, "inc", this.limit >= this.range[1]); }, // 设置合成花费 setCost: function setCost(_cost, _enough) { if (_enough === void 0) { _enough = true; } // 花费 var valid = nx.dt.arrNEmpty(_cost) && _cost.length == 2; nx.gui.setActive(this.nodCost, "", valid); if (this.nodCost && valid) { nx.gui.setString(this.nodCost, "txt", _cost[1]); nx.bridge.setIconS(this.nodCost, "icon", _cost[0]); } // 操作 nx.gui.setLocked(this, "panel/show/convert", !valid || !_enough); // nx.gui.setLocked( this, "panel/show/convertOnce", !valid || !_enough ); }, // 阵营切换 onTogCamp: function onTogCamp(_index) { var idx = parseInt(_index) || 0; var tag = LabTags[idx]; if (this.curTag == tag) { return; } nx.debug("[Hero]\u9635\u8425\u5207\u6362:" + this.curTag + " -> " + tag); this.curTag = tag; // 整体刷新 this.freshList(); }, // 选中切换 onFocusChanged: function onFocusChanged(_item) { // 空 if (nx.dt.objEmpty(_item) || nx.dt.objEmpty(_item.mdata)) { return; } nx.audio.playSFX("audios/effects/touchitem"); // 聚焦 this.svcList.cleanFocus(); this.svcList.addFocus(_item.index); // 标的设置 this.setTarget(_item.mdata); }, // 点击数量增减 onTouchAddDec: function onTouchAddDec(_flag) { var step = _flag == "1" ? 1 : -1; this.setLimit(this.limit + step); }, // 点击合成 onTouchCompound: function onTouchCompound() { // 无效 if (nx.dt.objEmpty(this.target) || !nx.dt.numPositive(this.limit, false)) { nx.tbox("forge_str10"); return; } // 合成 var FC = ForgehouseController.getInstance(); FC.send11080(this.target.id, this.limit); }, // 点击一键合成 onTouchCompoundOnce: function onTouchCompoundOnce() { var RC = RoleController.getInstance(); var role = RC.getRoleVo(); var cfg = game.configs.partner_eqm_data.data_partner_const; //role.lev >= cfg.synthesis_character_lev.val || if (role.vip_lev < cfg.synthesis_vip_lev.val) { this.onTouchGo(); return; } // 无效 if (nx.dt.objEmpty(this.target)) { nx.tbox("forge_str10"); return; } // 合成预览 var FC = ForgehouseController.getInstance(); var FM = FC.getModel(); FM.setCompSendID(this.canComposeid); FC.send11079(this.canComposeid, this.range[1]); }, // 点击帮助 onTouchHelp: function onTouchHelp() { var TC = TipsController.getInstance(); if (TC) { var txt = game.configs.partner_artifact_data.data_artifact_const.artifact_rule.desc; TC.showTextPanel("tip", nx.text.getKey(txt)); } }, // 点击合成记录 onTouchRecord: function onTouchRecord() { var FC = ForgehouseController.getInstance(); FC.openEquipmentCompRecordWindow(true); }, // 合成预览 onCompoundPreview: function onCompoundPreview(_data) { var _this2 = this; // console.log( _data ); var FC = ForgehouseController.getInstance(); FC.openEquipmentAllSynthesisWindow(true, _data, function (_ret) { FC.send11081(_this2.canComposeid, _this2.range[1]); FC.openEquipmentAllSynthesisWindow(false); }); }, // 合成结果 onCompoundResult: function onCompoundResult(_data) { // console.log( _data ); this.freshList(); HeroController.getInstance().getModel().dealReformEqm(); }, onTouchGo: function onTouchGo() { var cfg = game.configs.partner_eqm_data.data_partner_const; var lev = cfg.synthesis_vip_lev.val; nx.mbox(nx.text.format("VIPBuyTip", lev), ['cancel', 'VIPActive'], function (_key, _box) { _box.close(); if (_key == "VIPActive") { nx.bridge.jumper.jump2Window(FID.ActMySteryGift, { id: 2 }); } }); } }); cc._RF.pop();