"use strict"; cc._RF.push(module, 'f5900tjlOFFF4LqlM7IXvC/', 'cmp.main.ui.plot'); // Scripts/mod/mainui/cmp/cmp.main.ui.plot.js "use strict"; /****************************************************************** * Copyright(C) 2019 - 2020 Nx Studio * * 主界面 --- 剧情辅助器 * * ******************************************************************/ var BridgeComponent = require("bridge.component"); var PlotDefine = require("plot.define"); var RoleController = require("role_controller"); var _require = require("define"), SCENE_TAG = _require.SCENE_TAG; var PPT = PlotDefine.PlotType; cc.Class({ "extends": BridgeComponent, properties: {}, // 显示 onEnable: function onEnable() { if (window.nx && nx.bridge.plot) { // 视图监听 nx.bridge.plot.vbind(this, [["id", this.onPlotChanged.bind(this)]]); // console.log( nx.bridge.plot.vget( "id" ) + "当前的引导相关数据enable" + nx.bridge.plot.vget( "step" ) ); // 检查 this.backMainScene(); } }, // 关闭 onDisable: function onDisable() { // 视图解绑 nx.bridge.plot.vunbind(this); }, // 剧情改变 onPlotChanged: function onPlotChanged(_id) { var _this = this; var role = RoleController.getInstance().getRoleVo(); if (!nx.bridge.plot.configs) { nx.mTip.openTip("tipTask.spine", role.lev < 30); return; } // 筛选一次为进行的剧情 this.ids = []; var mains = nx.bridge.plot.configs.base.mains; var done = nx.bridge.plot.records.ids; mains.forEach(function (_t) { if (!nx.dt.arrMember(done, _t)) { _this.ids.push(_t); } }); nx.bridge.closePanel("WndSpecialSettle"); nx.bridge.closePanel("WndPlotGuide"); nx.bridge.closePanel("WndPlotDialogue"); var info = nx.bridge.plot.configs[_id]; if (nx.dt.objEmpty(info)) { nx.mTip.openTip("tipTask.spine", role.lev < 30); return; } var wname = ""; switch (info.type) { case PPT.Dialogue: { wname = "WndPlotDialogue"; } break; case PPT.Guide: { wname = "WndPlotGuide"; } break; default: break; } if (nx.dt.strNEmpty(wname)) { if (nx.bridge.popups) { nx.bridge.popups.clean(); } if (nx.mTip) { nx.mTip.openTip("tipTask.spine", false); } nx.bridge.createPanel(wname); } }, // ==================================================== // 剧情触发 // ==================================================== // 回归主场景 backMainScene: function backMainScene() { if (!nx.gui.find(nx.bridge.ui.getSceneNode(SCENE_TAG.scene), "MainScene")) { return; } nx.debug("$Plot:回归主场景,剧情触发检查..."); var role = RoleController.getInstance().getRoleVo(); // 引导未开启 if (!nx.bridge.plot) { nx.mTip.openTip("tipTask.spine", role.lev < 30); // if( !nx.bridge.plot || !nx.bridge.plot.opened ) { return; } // 老号不引导 var start = nx.bridge.plot.configs.base.start; var done = nx.bridge.plot.records.ids; if (!nx.dt.arrMember(done, start)) { nx.mTip.openTip("tipTask.spine", role.lev < 30); nx.bridge.vset("DailyPop", 1); return; } // 进行中 var cur = nx.bridge.plot.vget("id"); if (nx.dt.strNEmpty(cur)) { nx.mTip.openTip("tipTask.spine", false); return; } var queue = nx.dt.objClone(this.ids); var check = function check() { if (nx.dt.arrEmpty(queue)) { nx.bridge.vset("DailyPop", 1); return; } nx.bridge.plot.fire(queue.shift(), function (_ret, _data) { if (!_ret) { check(); } }); }; check(); }, // 回归战斗剧情主界面 backDramaHook: function backDramaHook() { nx.debug("$Plot:回归战斗剧情主界面,剧情触发检查..."); // 引导未开启 if (!nx.bridge.plot) { // if( !nx.bridge.plot || !nx.bridge.plot.opened ) { return; } // 进行中 var cur = nx.bridge.plot.vget("id"); if (nx.dt.strNEmpty(cur)) { return; } var queue = nx.dt.objClone(nx.bridge.plot.configs.base.drama); var check = function check() { if (nx.dt.arrEmpty(queue)) { return; } nx.bridge.plot.fire(queue.shift(), function (_ret, _data) { if (!_ret) { check(); } }); }; check(); }, // 进入编队界面 backDramaTeamHook: function backDramaTeamHook() { nx.debug("$Plot:进入编队界面,剧情触发检查..."); // 引导未开启 if (!nx.bridge.plot) { // if( !nx.bridge.plot || !nx.bridge.plot.opened ) { return; } // 进行中 var cur = nx.bridge.plot.vget("id"); if (nx.dt.strNEmpty(cur)) { return; } var queue = nx.dt.objClone(nx.bridge.plot.configs.base.drama_team); var check = function check() { if (nx.dt.arrEmpty(queue)) { return; } nx.bridge.plot.fire(queue.shift(), function (_ret, _data) { if (!_ret) { check(); } }); }; check(); } }); cc._RF.pop();