"use strict"; cc._RF.push(module, '454feBZaSJINIbY0IysJHCJ', 'backpack_controller'); // Scripts/mod/backpack/backpack_controller.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 背包内出售物品的面板 //
Create: 2018-12-24 16:50:14 // -------------------------------------------------------------------- var BridgeController = require("bridge.controller"); var BackPackConst = require("backpack_const"); var MainuiController = require("mainui_controller"); var MainuiConst = require("mainui_const"); var BackpackEvent = require("backpack_event"); var TipsController = require("tips_controller"); // 桥接替换的界面 var BackpackController = cc.Class({ "extends": BridgeController, ctor: function ctor() {}, // 初始化配置数据 initConfig: function initConfig() { var BackpackModel = require("backpack_model"); this.model = new BackpackModel(); this.model.initConfig(); }, // 返回当前的model getModel: function getModel() { return this.model; }, // 注册监听事件 registerEvents: function registerEvents() {}, // 注册协议接受事件 registerProtocals: function registerProtocals() { this.RegisterProtocal(10500, this.on10500); this.RegisterProtocal(10501, this.on10501); this.RegisterProtocal(10510, this.on10510); //增加物品通知 this.RegisterProtocal(10511, this.on10511); //删除物品通知 this.RegisterProtocal(10512, this.on10512); //刷新物品通知 this.RegisterProtocal(10515, this.handle10515); //使用物品 this.RegisterProtocal(10522, this.handle10522); //出售背包物品 this.RegisterProtocal(10523, this.handle10523); this.RegisterProtocal(11008, this.handle11008); this.RegisterProtocal(11018, this.handle11018.bind(this)); }, // 从服务器初始化数据 reqBaseFromServer: function reqBaseFromServer(_cb) { var _this = this; // 配置加载 var cfgs = ["item_data", // 道具 "package_data", // 背包 "color_data", // 色码表 "gift_data", // 礼包 "attr_data", // 属性表 "sprite_data" // 僚机相关数据显示 ]; this.loadConfigs(cfgs, function (_ret, _data) { _this.sender10500(); _this.sender10501(_cb); }); }, // 初始化道具背包 sender10500: function sender10500(_cb) { this.SendProtocal(10500, {}, _cb); }, // 初始化装备背包 sender10501: function sender10501(_cb) { this.SendProtocal(10501, {}, _cb); }, // 初始化道具背包 on10500: function on10500(data) { data.bag_code = BackPackConst.Bag_Code.BACKPACK; this.model.initItemList(data); }, // 初始化装备背包 on10501: function on10501(data) { data.bag_code = BackPackConst.Bag_Code.EQUIPS; this.model.initItemList(data); }, // 增加一个物品 on10510: function on10510(data) { cc.log("增加一个物品", data); this.model.updateBagItemsNum(data); }, // 删除一个物品 on10511: function on10511(data) { cc.log("删除一个物品", data); this.model.deleteBagItems(data); }, // 刷新一个物品 on10512: function on10512(data) { this.model.updateBagItemsNum(data, true); }, // ============================== // desc:出售物品 // @storage: // @args: // @return // ============================== sender10522: function sender10522(storage, args) { var protocal = {}; protocal.storage = storage; protocal.args = args; this.SendProtocal(10522, protocal); }, handle10522: function handle10522(data) { nx.tbox(data.msg); if (this.batch_use) { this.openBatchUseItemView(false); } if (this.sell_window) { //出售成功之后关闭出售面板 this.openSellWindow(false); } this.closeGiftSelectPanel(); gcore.GlobalEvent.fire(BackpackEvent.Sell_Goods_Success); }, // ============================== // desc:使用物品 // @id: // @quantity: // @args: // @return // ============================== sender10515: function sender10515(id, quantity, args) { var protocal = {}; protocal.id = id; protocal.quantity = quantity; protocal.args = args || {}; this.SendProtocal(10515, protocal); }, handle10515: function handle10515(data) { nx.tbox(data.msg); if (data.flag == 1) { this.openBatchUseItemView(false); this.closeGiftSelectPanel(); } }, sender10523: function sender10523(id, num) { var protocal = {}; protocal.id = id; protocal.num = num; this.SendProtocal(10523, protocal); }, handle10523: function handle10523(data) { nx.tbox(data.msg); if (data.flag == 1) { gcore.GlobalEvent.fire(BackpackEvent.Compose_Goods_Success); TipsController.getInstance().showBackPackCompTips(false); } }, //背包碎片合成 sender11008: function sender11008(bid, num) { var proto = {}; proto.bid = bid; proto.num = num; this.SendProtocal(11008, proto); }, handle11008: function handle11008(data) { gcore.GlobalEvent.fire(BackpackEvent.Compose_BackPack_Success); nx.tbox(data.msg); TipsController.getInstance().showBackPackCompTips(false); TipsController.getInstance().showCompChooseTips(false); if (data.result == 1) { var items = []; for (var i in data.partners) { var v = data.partners[i]; var info = game.configs.partner_data.data_partner_base[v.partner_bid]; items[parseInt(i)] = {}; items[parseInt(i)].bid = v.partner_bid; items[parseInt(i)].star = info.init_star; items[parseInt(i)].camp_type = info.camp_type; // items[ parseInt( i ) ].show_type = MainuiConst.item_exhibition_type.partner_type; } MainuiController.getInstance().openGetItemView(true, items, 0); } }, /** * 打开背包主入口 * @param {*} status * @param {*} params */ openMainWindow: function openMainWindow(status, params) { if (!status) { nx.bridge.closePanel("WndBag"); } else { nx.bridge.createPanel("WndBag", { fromOther: params }); } }, /** * 显示道具提示信息 * @author zhanghuxing 2019-01-21 * @param {[type]} status [description] * @param {[type]} data 可以是bid, 或者配置表条目 * @param {[type]} extend_data [description] * @param {[type]} item_list 需要的物品列表 * @return {[type]} [description] */ openTipsSource: function openTipsSource(status, data, extend_data, item_list) { if (status) { if (typeof data == "number") { data = Utils.getItemConfig(data); } if (data == null) return; if (!this.tips_source) { // 调用统一的物品弹出窗 this.tips_source = TipsController.getInstance().showItemTips(data); } } else { if (this.tips_source) { this.tips_source.close(); this.tips_source = null; } } }, /** * desc:出售物品 */ openItemSellPanel: function openItemSellPanel(status, goods_vo, bag_code) { if (status == false) { nx.bridge.closePanel("WndItemSell"); } else { nx.bridge.createPanel("WndItemSell", [goods_vo, bag_code]); } }, /** * desc:合成 */ openItemMergePanel: function openItemMergePanel(status, goods_vo, bag_code) { if (status == false) { nx.bridge.closePanel("WndItemMerge"); } else { nx.bridge.createPanel("WndItemMerge", [goods_vo, bag_code]); } }, /** * desc:分解 */ openItemDecomposePanel: function openItemDecomposePanel(status, goods_vo, bag_code) { if (status == false) { nx.bridge.closePanel("WndItemDecompose"); } else { nx.bridge.createPanel("WndItemDecompose", [goods_vo, bag_code]); } }, // --==============================-- // --desc:打开批量使用物品窗口 // --@item:必须是物品真是数据 // --@type:出售或者使用 // --@select_vo :自选礼包点击批量使用要传选中的物品id列表过来 // --@return // --==============================-- openBatchUseItemView: function openBatchUseItemView(status, item, type, select_vo) { if (status == false) { nx.bridge.closePanel("WndItemBatchUse"); } else { nx.bridge.createPanel("WndItemBatchUse", [item, type, select_vo]); } }, /** * 打开出售物品界面展示 * author:{author} * @status: * @list: * return */ openSellWindow: function openSellWindow(status, bag_code, list) { if (status == false) { if (this.sell_window != null) { this.sell_window.close(); this.sell_window = null; } } else { bag_code = bag_code || BackPackConst.Bag_Code.BACKPACK; if (list == null || Utils.next(list) == null) return; if (this.sell_window == null) { this.sell_window = Utils.createClass("backpack_sell_window", this); } this.sell_window.open(bag_code, list); } }, openGiftSelectPanel: function openGiftSelectPanel(gift_vo) { // 无效礼包 if (nx.dt.objEmpty(gift_vo) || !nx.dt.numGood(gift_vo.base_id)) { nx.error("无效礼包,无法打开!"); return; } nx.bridge.createPanel("WndGiftChoose", gift_vo); }, openGiftSelectMorePanel: function openGiftSelectMorePanel(gift_vo) { // 无效礼包 if (nx.dt.objEmpty(gift_vo) || !nx.dt.numGood(gift_vo.base_id)) { nx.error("无效礼包,无法打开!"); return; } nx.bridge.createPanel("WndGiftMoreChoose", gift_vo); }, closeGiftSelectPanel: function closeGiftSelectPanel() { if (this.gift_panel != null) { this.gift_panel.close(); this.gift_panel = null; } }, //跳转物品来源的 gotoItemSources: function gotoItemSources(evt_type, extend, bid, need_item_list) { nx.bridge.jumper.jump2WindowByKey(evt_type, { bid: bid, extend: extend }); }, getBackpackRoot: function getBackpackRoot() { if (this.backpack_win) return this.backpack_win.root_wnd; }, // ================ /** * 选物品 * @param {*} _open * @param {*} _args : { * items: 列表, * count: 选择上限, * selects: 已选择, * fixed: 是否固定选择上限数(默认false) * flag: 特殊标记 1: 符文合成 } * @param {*} _cb : 返回 */ openItemSelector: function openItemSelector(_open, _args, _cb) { if (_open) { nx.bridge.createPanel("WndItemSelectPanel", { params: _args, cb: _cb }); } else { nx.bridge.closePanel("WndItemSelectPanel"); } }, // ============================================================ // 皮肤碎片相关 // ============================================================ // 碎片合成 reqSkinCombine: function reqSkinCombine(_id, _cb) { this.SendProtocal(11018, { bid: _id }, _cb); }, handle11018: function handle11018(_data) { if (!this.isGoodData(_data)) { return; } } }); module.exports = BackpackController; cc._RF.pop();