merge dev

This commit is contained in:
Olivier Gagnon
2021-08-31 16:30:01 -04:00
11 changed files with 332 additions and 245248 deletions

77626
dist/engine.bundle.js vendored

File diff suppressed because one or more lines are too long

View File

@ -1,610 +1,2 @@
/******/ (function(modules) { // webpackBootstrap
/******/ // install a JSONP callback for chunk loading
/******/ function webpackJsonpCallback(data) {
/******/ var chunkIds = data[0];
/******/ var moreModules = data[1];
/******/ var executeModules = data[2];
/******/
/******/ // add "moreModules" to the modules object,
/******/ // then flag all "chunkIds" as loaded and fire callback
/******/ var moduleId, chunkId, i = 0, resolves = [];
/******/ for(;i < chunkIds.length; i++) {
/******/ chunkId = chunkIds[i];
/******/ if(installedChunks[chunkId]) {
/******/ resolves.push(installedChunks[chunkId][0]);
/******/ }
/******/ installedChunks[chunkId] = 0;
/******/ }
/******/ for(moduleId in moreModules) {
/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ modules[moduleId] = moreModules[moduleId];
/******/ }
/******/ }
/******/ if(parentJsonpFunction) parentJsonpFunction(data);
/******/
/******/ while(resolves.length) {
/******/ resolves.shift()();
/******/ }
/******/
/******/ // add entry modules from loaded chunk to deferred list
/******/ deferredModules.push.apply(deferredModules, executeModules || []);
/******/
/******/ // run deferred modules when all chunks ready
/******/ return checkDeferredModules();
/******/ };
/******/ function checkDeferredModules() {
/******/ var result;
/******/ for(var i = 0; i < deferredModules.length; i++) {
/******/ var deferredModule = deferredModules[i];
/******/ var fulfilled = true;
/******/ for(var j = 1; j < deferredModule.length; j++) {
/******/ var depId = deferredModule[j];
/******/ if(installedChunks[depId] !== 0) fulfilled = false;
/******/ }
/******/ if(fulfilled) {
/******/ deferredModules.splice(i--, 1);
/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
/******/ }
/******/ }
/******/ return result;
/******/ }
/******/
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // object to store loaded and loading chunks
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ // Promise = chunk loading, 0 = chunk loaded
/******/ var installedChunks = {
/******/ 1: 0
/******/ };
/******/
/******/ var deferredModules = [];
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || [];
/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
/******/ jsonpArray.push = webpackJsonpCallback;
/******/ jsonpArray = jsonpArray.slice();
/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
/******/ var parentJsonpFunction = oldJsonpFunction;
/******/
/******/
/******/ // add entry module to deferred list
/******/ deferredModules.push([861,0]);
/******/ // run deferred modules when ready
/******/ return checkDeferredModules();
/******/ })
/************************************************************************/
/******/ ({
/***/ 798:
/*!*******************************!*\
!*** ./css/infiltration.scss ***!
\*******************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 800:
/*!*****************************!*\
!*** ./css/milestones.scss ***!
\*****************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 802:
/*!*************************!*\
!*** ./css/casino.scss ***!
\*************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 804:
/*!**************************!*\
!*** ./css/dev-menu.css ***!
\**************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 806:
/*!**************************!*\
!*** ./css/grid.min.css ***!
\**************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 808:
/*!************************!*\
!*** ./css/treant.css ***!
\************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 810:
/*!*****************************!*\
!*** ./css/resleeving.scss ***!
\*****************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 812:
/*!**************************!*\
!*** ./css/sleeves.scss ***!
\**************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 814:
/*!***********************!*\
!*** ./css/gang.scss ***!
\***********************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 816:
/*!******************************!*\
!*** ./css/bladeburner.scss ***!
\******************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 818:
/*!************************************!*\
!*** ./css/companymanagement.scss ***!
\************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 820:
/*!***************************!*\
!*** ./css/missions.scss ***!
\***************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 822:
/*!*************************!*\
!*** ./css/loader.scss ***!
\*************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 824:
/*!**************************************!*\
!*** ./css/interactivetutorial.scss ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 826:
/*!******************************!*\
!*** ./css/gameoptions.scss ***!
\******************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 828:
/*!*****************************!*\
!*** ./css/popupboxes.scss ***!
\*****************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 830:
/*!*********************************!*\
!*** ./css/workinprogress.scss ***!
\*********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 832:
/*!******************************!*\
!*** ./css/stockmarket.scss ***!
\******************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 834:
/*!**************************!*\
!*** ./css/redpill.scss ***!
\**************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 836:
/*!********************************!*\
!*** ./css/augmentations.scss ***!
\********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 838:
/*!****************************!*\
!*** ./css/menupages.scss ***!
\****************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 840:
/*!*******************************!*\
!*** ./css/hacknetnodes.scss ***!
\*******************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 842:
/*!********************************!*\
!*** ./css/activescripts.scss ***!
\********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 844:
/*!***************************************!*\
!*** ./css/codemirror-overrides.scss ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 846:
/*!*******************************!*\
!*** ./css/scripteditor.scss ***!
\*******************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 848:
/*!***************************!*\
!*** ./css/terminal.scss ***!
\***************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 850:
/*!************************************!*\
!*** ./css/characteroverview.scss ***!
\************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 852:
/*!***************************!*\
!*** ./css/mainmenu.scss ***!
\***************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 854:
/*!**************************!*\
!*** ./css/buttons.scss ***!
\**************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 856:
/*!***************************!*\
!*** ./css/tooltips.scss ***!
\***************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 858:
/*!*************************!*\
!*** ./css/styles.scss ***!
\*************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ 861:
/*!****************************!*\
!*** ./src/engineStyle.js ***!
\****************************/
/*! no exports provided */
/*! all exports used */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var normalize_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! normalize.css */ 860);
/* harmony import */ var normalize_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(normalize_css__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _css_styles_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../css/styles.scss */ 858);
/* harmony import */ var _css_styles_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_styles_scss__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _css_tooltips_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../css/tooltips.scss */ 856);
/* harmony import */ var _css_tooltips_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_css_tooltips_scss__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _css_buttons_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../css/buttons.scss */ 854);
/* harmony import */ var _css_buttons_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_css_buttons_scss__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _css_mainmenu_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../css/mainmenu.scss */ 852);
/* harmony import */ var _css_mainmenu_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_css_mainmenu_scss__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _css_characteroverview_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../css/characteroverview.scss */ 850);
/* harmony import */ var _css_characteroverview_scss__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_css_characteroverview_scss__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _css_terminal_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../css/terminal.scss */ 848);
/* harmony import */ var _css_terminal_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_css_terminal_scss__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _css_scripteditor_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../css/scripteditor.scss */ 846);
/* harmony import */ var _css_scripteditor_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_css_scripteditor_scss__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _css_codemirror_overrides_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../css/codemirror-overrides.scss */ 844);
/* harmony import */ var _css_codemirror_overrides_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_css_codemirror_overrides_scss__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _css_activescripts_scss__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../css/activescripts.scss */ 842);
/* harmony import */ var _css_activescripts_scss__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_css_activescripts_scss__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var _css_hacknetnodes_scss__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../css/hacknetnodes.scss */ 840);
/* harmony import */ var _css_hacknetnodes_scss__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_css_hacknetnodes_scss__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var _css_menupages_scss__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../css/menupages.scss */ 838);
/* harmony import */ var _css_menupages_scss__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_css_menupages_scss__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _css_augmentations_scss__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../css/augmentations.scss */ 836);
/* harmony import */ var _css_augmentations_scss__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_css_augmentations_scss__WEBPACK_IMPORTED_MODULE_12__);
/* harmony import */ var _css_redpill_scss__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../css/redpill.scss */ 834);
/* harmony import */ var _css_redpill_scss__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_css_redpill_scss__WEBPACK_IMPORTED_MODULE_13__);
/* harmony import */ var _css_stockmarket_scss__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../css/stockmarket.scss */ 832);
/* harmony import */ var _css_stockmarket_scss__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_css_stockmarket_scss__WEBPACK_IMPORTED_MODULE_14__);
/* harmony import */ var _css_workinprogress_scss__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../css/workinprogress.scss */ 830);
/* harmony import */ var _css_workinprogress_scss__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_css_workinprogress_scss__WEBPACK_IMPORTED_MODULE_15__);
/* harmony import */ var _css_popupboxes_scss__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../css/popupboxes.scss */ 828);
/* harmony import */ var _css_popupboxes_scss__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_css_popupboxes_scss__WEBPACK_IMPORTED_MODULE_16__);
/* harmony import */ var _css_gameoptions_scss__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../css/gameoptions.scss */ 826);
/* harmony import */ var _css_gameoptions_scss__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_css_gameoptions_scss__WEBPACK_IMPORTED_MODULE_17__);
/* harmony import */ var _css_interactivetutorial_scss__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../css/interactivetutorial.scss */ 824);
/* harmony import */ var _css_interactivetutorial_scss__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_css_interactivetutorial_scss__WEBPACK_IMPORTED_MODULE_18__);
/* harmony import */ var _css_loader_scss__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../css/loader.scss */ 822);
/* harmony import */ var _css_loader_scss__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_css_loader_scss__WEBPACK_IMPORTED_MODULE_19__);
/* harmony import */ var _css_missions_scss__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../css/missions.scss */ 820);
/* harmony import */ var _css_missions_scss__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_css_missions_scss__WEBPACK_IMPORTED_MODULE_20__);
/* harmony import */ var _css_companymanagement_scss__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../css/companymanagement.scss */ 818);
/* harmony import */ var _css_companymanagement_scss__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_css_companymanagement_scss__WEBPACK_IMPORTED_MODULE_21__);
/* harmony import */ var _css_bladeburner_scss__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../css/bladeburner.scss */ 816);
/* harmony import */ var _css_bladeburner_scss__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_css_bladeburner_scss__WEBPACK_IMPORTED_MODULE_22__);
/* harmony import */ var _css_gang_scss__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../css/gang.scss */ 814);
/* harmony import */ var _css_gang_scss__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_css_gang_scss__WEBPACK_IMPORTED_MODULE_23__);
/* harmony import */ var _css_sleeves_scss__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../css/sleeves.scss */ 812);
/* harmony import */ var _css_sleeves_scss__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_css_sleeves_scss__WEBPACK_IMPORTED_MODULE_24__);
/* harmony import */ var _css_resleeving_scss__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../css/resleeving.scss */ 810);
/* harmony import */ var _css_resleeving_scss__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(_css_resleeving_scss__WEBPACK_IMPORTED_MODULE_25__);
/* harmony import */ var _css_treant_css__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../css/treant.css */ 808);
/* harmony import */ var _css_treant_css__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(_css_treant_css__WEBPACK_IMPORTED_MODULE_26__);
/* harmony import */ var _css_grid_min_css__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../css/grid.min.css */ 806);
/* harmony import */ var _css_grid_min_css__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(_css_grid_min_css__WEBPACK_IMPORTED_MODULE_27__);
/* harmony import */ var _css_dev_menu_css__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../css/dev-menu.css */ 804);
/* harmony import */ var _css_dev_menu_css__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(_css_dev_menu_css__WEBPACK_IMPORTED_MODULE_28__);
/* harmony import */ var _css_casino_scss__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../css/casino.scss */ 802);
/* harmony import */ var _css_casino_scss__WEBPACK_IMPORTED_MODULE_29___default = /*#__PURE__*/__webpack_require__.n(_css_casino_scss__WEBPACK_IMPORTED_MODULE_29__);
/* harmony import */ var _css_milestones_scss__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../css/milestones.scss */ 800);
/* harmony import */ var _css_milestones_scss__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(_css_milestones_scss__WEBPACK_IMPORTED_MODULE_30__);
/* harmony import */ var _css_infiltration_scss__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../css/infiltration.scss */ 798);
/* harmony import */ var _css_infiltration_scss__WEBPACK_IMPORTED_MODULE_31___default = /*#__PURE__*/__webpack_require__.n(_css_infiltration_scss__WEBPACK_IMPORTED_MODULE_31__);
// These should really be imported with the module that is presenting that UI, but because they very much depend on the
// cascade order, we'll pull them all in here.
/***/ })
/******/ });
!function(n){function t(t){for(var e,i,f=t[0],c=t[1],l=t[2],p=0,s=[];p<f.length;p++)i=f[p],u[i]&&s.push(u[i][0]),u[i]=0;for(e in c)Object.prototype.hasOwnProperty.call(c,e)&&(n[e]=c[e]);for(a&&a(t);s.length;)s.shift()();return r.push.apply(r,l||[]),o()}function o(){for(var n,t=0;t<r.length;t++){for(var o=r[t],e=!0,f=1;f<o.length;f++){var c=o[f];0!==u[c]&&(e=!1)}e&&(r.splice(t--,1),n=i(i.s=o[0]))}return n}var e={},u={1:0},r=[];function i(t){if(e[t])return e[t].exports;var o=e[t]={i:t,l:!1,exports:{}};return n[t].call(o.exports,o,o.exports,i),o.l=!0,o.exports}i.m=n,i.c=e,i.d=function(n,t,o){i.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:o})},i.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},i.t=function(n,t){if(1&t&&(n=i(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var e in n)i.d(o,e,function(t){return n[t]}.bind(null,e));return o},i.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return i.d(t,"a",t),t},i.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},i.p="";var f=window.webpackJsonp=window.webpackJsonp||[],c=f.push.bind(f);f.push=t,f=f.slice();for(var l=0;l<f.length;l++)t(f[l]);var a=c;r.push([851,0]),o()}({788:function(n,t,o){},790:function(n,t,o){},792:function(n,t,o){},794:function(n,t,o){},796:function(n,t,o){},798:function(n,t,o){},800:function(n,t,o){},802:function(n,t,o){},804:function(n,t,o){},806:function(n,t,o){},808:function(n,t,o){},810:function(n,t,o){},812:function(n,t,o){},814:function(n,t,o){},816:function(n,t,o){},818:function(n,t,o){},820:function(n,t,o){},822:function(n,t,o){},824:function(n,t,o){},826:function(n,t,o){},828:function(n,t,o){},830:function(n,t,o){},832:function(n,t,o){},834:function(n,t,o){},836:function(n,t,o){},838:function(n,t,o){},840:function(n,t,o){},842:function(n,t,o){},844:function(n,t,o){},846:function(n,t,o){},848:function(n,t,o){},851:function(n,t,o){"use strict";o.r(t);o(850),o(848),o(846),o(844),o(842),o(840),o(838),o(836),o(834),o(832),o(830),o(828),o(826),o(824),o(822),o(820),o(818),o(816),o(814),o(812),o(810),o(808),o(806),o(804),o(802),o(800),o(798),o(796),o(794),o(792),o(790),o(788)}});
//# sourceMappingURL=engineStyle.bundle.js.map

167002
dist/vendor.bundle.js vendored

File diff suppressed because one or more lines are too long

View File

@ -3,7 +3,7 @@
Changelog
=========
v0.52.9 - 2021-07-27 Less lag! (hydroflame & community)
v0.52.9 - 2021-08-27 Less lag! (hydroflame & community)
-------------------------------------------
** Active Scripts page **
@ -34,7 +34,7 @@ v0.52.9 - 2021-07-27 Less lag! (hydroflame & community)
* All bladeburner actions are click-to-copy
* nerf noodle bar
v0.52.8 - 2021-07-23 Fixing the previous patch tbh ROUND 2 (hydroflame)
v0.52.8 - 2021-08-23 Fixing the previous patch tbh ROUND 2 (hydroflame)
-------------------------------------------
** Script editor **
@ -54,7 +54,7 @@ v0.52.8 - 2021-07-23 Fixing the previous patch tbh ROUND 2 (hydroflame)
* Removed some debug console.log
* nerf noodle bar
v0.52.7 - 2021-07-21 Fixing the previous patch tbh (hydroflame)
v0.52.7 - 2021-08-21 Fixing the previous patch tbh (hydroflame)
-------------------------------------------
** Netscript **
@ -82,7 +82,7 @@ v0.52.7 - 2021-07-21 Fixing the previous patch tbh (hydroflame)
* Fix netscript write.
* nerf noodle bar
v0.52.6 - 2021-07-21 Logboxes and VS-code (hydroflame)
v0.52.6 - 2021-08-21 Logboxes and VS-code (hydroflame)
-------------------------------------------
** Text Editor **
@ -104,7 +104,7 @@ v0.52.6 - 2021-07-21 Logboxes and VS-code (hydroflame)
* Remove dollar sign in blade contract UI element
* nerf noodle bar
v0.52.5 - 2021-07-19 CPU cores are useful!? (hydroflame)
v0.52.5 - 2021-08-19 CPU cores are useful!? (hydroflame)
-------------------------------------------
** Terminal **
@ -130,7 +130,7 @@ v0.52.5 - 2021-07-19 CPU cores are useful!? (hydroflame)
* Fix weird scrolling in the new Bladeburner React console.
* nerf noodle bar
v0.52.4 - 2021-07-19 Bladeburner in React (hydroflame)
v0.52.4 - 2021-08-19 Bladeburner in React (hydroflame)
-------------------------------------------
** Bladeburner **
@ -152,7 +152,7 @@ v0.52.4 - 2021-07-19 Bladeburner in React (hydroflame)
* Linting (no one cares except the dev)
* nerf noodle bar
v0.52.3 - 2021-07-15 Gangs were OP (hydroflame)
v0.52.3 - 2021-08-15 Gangs were OP (hydroflame)
-------------------------------------------
** Gang **
@ -175,7 +175,7 @@ v0.52.3 - 2021-07-15 Gangs were OP (hydroflame)
* Factions list screen converted to React.
* nerf noodle bar
v0.52.2 - 2021-07-15 Oh yeah, BN11 is a thing (drunk hydroflame tbh)
v0.52.2 - 2021-08-15 Oh yeah, BN11 is a thing (drunk hydroflame tbh)
-------------------------------------------
** Source-Files **
@ -193,7 +193,7 @@ v0.52.2 - 2021-07-15 Oh yeah, BN11 is a thing (drunk hydroflame tbh)
* nerf noodle bar
v0.52.1 - 2021-07-10 bugfixing (hydroflame & community)
v0.52.1 - 2021-08-10 bugfixing (hydroflame & community)
-------------------------------------------
**Misc.**

View File

@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>Bitburner - development</title>
<title>Bitburner</title>
<link rel="apple-touch-icon" sizes="180x180" href="dist/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="dist/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="dist/favicon-16x16.png">
@ -120,7 +120,7 @@
<div id="script-editor-filename-wrapper">
<p id="script-editor-filename-tag"> <strong style="background-color:#555;">Script name: </strong></p>
<input id="script-editor-filename" type="text" maxlength="100" tabindex="1" />
<input id="script-editor-filename" type="text" maxlength="100" tabindex="1"/>
</div>
<div id="monaco-editor"></div>
@ -185,7 +185,7 @@
<table id="terminal">
<tr id="terminal-input">
<td id="terminal-input-td" tabindex="2">$
<input type="text" id="terminal-input-text-box" class="terminal-input" tabindex="1" onfocus="this.value = this.value;" autocomplete="off" />
<input type="text" id="terminal-input-text-box" class="terminal-input" tabindex="1" onfocus="this.value = this.value;" autocomplete="off"/>
</td>
</tr>
</table>
@ -202,7 +202,7 @@
provides information about each script's production. The scripts are categorized by the hostname of the servers on which
they are running. </p>
<p id="active-scripts-total-prod">Total online production of
Active scripts: <span class="money-gold"><span id="active-scripts-total-production-active">$0.000</span> / sec</span><br />
Active scripts: <span class="money-gold"><span id="active-scripts-total-production-active">$0.000</span> / sec</span><br/>
Total online production since last Aug installation: <span id="active-scripts-total-prod-aug-total" class="money-gold">$0.000</span>
(<span class="money-gold"><span id="active-scripts-total-prod-aug-avg" class="money-gold">$0.000</span> / sec</span>)</p>
<ul class="active-scripts-list" id="active-scripts-list" style="list-style: none;">
@ -243,38 +243,27 @@
<!-- Tutorial content -->
<div id="tutorial-container" class="generic-menupage-container">
<h1> Tutorial (AKA Links to Documentation) </h1>
<a id="tutorial-getting-started-link" class="a-link-button" target="_blank"
href="https://bitburner.readthedocs.io/en/latest/guidesandtips/gettingstartedguideforbeginnerprogrammers.html" >
<a id="tutorial-getting-started-link" class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/guidesandtips/gettingstartedguideforbeginnerprogrammers.html">
Getting Started</a><br><br>
<a class="a-link-button" target="_blank"
href="https://bitburner.readthedocs.io/en/latest/basicgameplay/servers.html">
<a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/basicgameplay/servers.html">
Servers & Networking</a><br><br>
<a class="a-link-button" target="_blank"
href="https://bitburner.readthedocs.io/en/latest/basicgameplay/hacking.html">
<a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/basicgameplay/hacking.html">
Hacking</a><br><br>
<a class="a-link-button" target="_blank"
href="https://bitburner.readthedocs.io/en/latest/basicgameplay/scripts.html">
<a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/basicgameplay/scripts.html">
Scripts</a><br><br>
<a class="a-link-button" target="_blank"
href="https://bitburner.readthedocs.io/en/latest/netscript.html">
<a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/netscript.html">
Netscript Programming Language</a><br><br>
<a class="a-link-button" target="_blank"
href="https://bitburner.readthedocs.io/en/latest/basicgameplay/world.html">
<a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/basicgameplay/world.html">
Traveling</a><br><br>
<a class="a-link-button" target="_blank"
href="https://bitburner.readthedocs.io/en/latest/basicgameplay/companies.html">
<a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/basicgameplay/companies.html">
Companies</a><br><br>
<a class="a-link-button" target="_blank"
href="https://bitburner.readthedocs.io/en/latest/basicgameplay/infiltration.html">
<a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/basicgameplay/infiltration.html">
Infiltration</a><br><br>
<a class="a-link-button" target="_blank"
href="https://bitburner.readthedocs.io/en/latest/basicgameplay/factions.html">
<a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/basicgameplay/factions.html">
Factions</a><br><br>
<a class="a-link-button" target="_blank"
href="https://bitburner.readthedocs.io/en/latest/basicgameplay/augmentations.html">
<a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/basicgameplay/augmentations.html">
Augmentations</a><br><br>
<a class="a-link-button" target="_blank"
href="https://bitburner.readthedocs.io/en/latest/shortcuts.html">
<a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/shortcuts.html">
Keyboard Shortcuts</a>
</div>
@ -306,7 +295,7 @@
<div id="yes-no-text-input-box-container" class="popup-box-container">
<div id="yes-no-text-input-box-content" class="popup-box-content">
<p id="yes-no-text-input-box-text"> </p>
<input type="text" id="yes-no-text-input-box-input" pattern="[a-zA-Z0-9-_]" maxlength="30" />
<input type="text" id="yes-no-text-input-box-input" pattern="[a-zA-Z0-9-_]" maxlength="30"/>
<button id="yes-no-text-input-box-yes" class="popup-box-button"> Yes </button>
<button id="yes-no-text-input-box-no" class="popup-box-button"> No </button>
</div>
@ -318,7 +307,7 @@
<p id="faction-invitation-box-text"> </p>
<p id="faction-invitation-box-message"> </p>
<p id="faction-invitation-box-warning">
Would you like to join? <br /> <br />
Would you like to join? <br/> <br/>
Warning: Joining this faction may prevent you from joining other factions during this run!
</p>
<button id="faction-invitation-box-yes" class="popup-box-button"> Join! </button>
@ -331,8 +320,8 @@
<div id="infiltration-box-content" class="popup-box-content">
<p id="infiltration-box-text"> </p>
<button id="infiltration-box-sell" class="a-link-button"> Sell on Black Market </button> <br /><br />
<select id="infiltration-faction-select" class="dropdown"> </select> <br />
<button id="infiltration-box-sell" class="a-link-button"> Sell on Black Market </button> <br/><br/>
<select id="infiltration-faction-select" class="dropdown"> </select> <br/>
<button id="infiltration-box-faction" class="a-link-button"> Give to Faction for Reputation </button>
</div>
@ -391,7 +380,7 @@
<div id="game-options-content" class="game-options-box">
<button id="game-options-close-button" aria-label="close options dialog">&times;</button>
<h1> Game Options </h1>
<br />
<br/>
<div id="game-options-left-panel">
<!-- Netscript execution time -->
<fieldset>
@ -403,7 +392,7 @@
</span>
</label>
<input class="optionRange" type="range" max="100" min="10" step="1" name="settingsNSExecTimeRangeVal" id="settingsNSExecTimeRangeVal" value="25" />
<input class="optionRange" type="range" max="100" min="10" step="1" name="settingsNSExecTimeRangeVal" id="settingsNSExecTimeRangeVal" value="25"/>
<em id="settingsNSExecTimeRangeValLabel" style="font-style: normal;"></em>
</fieldset>
@ -417,7 +406,7 @@
</span>
</label>
<input class="optionRange" type="range" max="100" min="20" step="1" name="settingsNSLogRangeVal" id="settingsNSLogRangeVal" value="50" />
<input class="optionRange" type="range" max="100" min="20" step="1" name="settingsNSLogRangeVal" id="settingsNSLogRangeVal" value="50"/>
<em id="settingsNSLogRangeValLabel" style="font-style: normal;"></em>
</fieldset>
@ -431,7 +420,7 @@
</span>
</label>
<input class="optionRange" type="range" max="100" min="20" step="1" name="settingsNSPortRangeVal" id="settingsNSPortRangeVal" value="50" />
<input class="optionRange" type="range" max="100" min="20" step="1" name="settingsNSPortRangeVal" id="settingsNSPortRangeVal" value="50"/>
<em id="settingsNSPortRangeValLabel" style="font-style: normal;"></em>
</fieldset>
@ -443,7 +432,7 @@
</span>
</label>
<input class="optionRange" type="range" max="600" min="0" step="1" name="settingsAutosaveIntervalVal" id="settingsAutosaveIntervalVal" value="60" />
<input class="optionRange" type="range" max="600" min="0" step="1" name="settingsAutosaveIntervalVal" id="settingsAutosaveIntervalVal" value="60"/>
<em id="settingsAutosaveIntervalValLabel" style="font-style: normal;"></em>
</fieldset>
@ -586,7 +575,7 @@
<button id="save-game-link" class="a-link-button"> Save Game </button>
<button id="delete-game-link" class="a-link-button"> Delete Game </button>
<button id="export-game-link" class="a-link-button"> Export Game </button>
<input type="file" id="import-game-file-selector" name="file" />
<input type="file" id="import-game-file-selector" name="file"/>
<button id="import-game-link" class="a-link-button"> Import Game </button>
<button id="copy-save-to-clipboard-link" class="std-button">
Copy Save data to Clipboard

View File

@ -1809,6 +1809,8 @@ export class Bladeburner implements IBladeburner {
case ActionTypes["Training"]:
case ActionTypes["Field Analysis"]:
case ActionTypes["FieldAnalysis"]:
case ActionTypes["Diplomacy"]:
case ActionTypes["Hyperbolic Regeneration Chamber"]:
return [1, 1];
case ActionTypes["Recruitment"]:
const recChance = this.getRecruitmentSuccessChance(player);
@ -1845,8 +1847,11 @@ export class Bladeburner implements IBladeburner {
return 1;
}
case ActionTypes["Training"]:
case ActionTypes["Recruitment"]:
case ActionTypes["Field Analysis"]:
case ActionTypes["FieldAnalysis"]:
case ActionTypes["Diplomacy"]:
case ActionTypes["Hyperbolic Regeneration Chamber"]:
return Infinity;
default:
workerScript.log("bladeburner.getActionCountRemaining", errorLogText);
@ -2001,4 +2006,4 @@ export class Bladeburner implements IBladeburner {
}
}
Reviver.constructors.Bladeburner = Bladeburner;
Reviver.constructors.Bladeburner = Bladeburner;

View File

@ -228,7 +228,7 @@ export const CONSTANTS: IMap<any> = {
TotalNumBitNodes: 24,
LatestUpdate: `
v0.52.9 - 2021-07-27 Less lag! (hydroflame & community)
v0.52.9 - 2021-08-27 Less lag! (hydroflame & community)
-------------------------------------------
** Active Scripts page **

View File

@ -187,7 +187,7 @@ export class WorkerScript {
}
shouldLog(fn: string): boolean {
return (this.disableLogs.ALL == null && this.disableLogs[fn] == null);
return (this.disableLogs[fn] == null);
}
log(func: string, txt: string): void {

View File

@ -943,11 +943,17 @@ function NetscriptFunctions(workerScript) {
workerScript.scriptRef.clearLog();
},
disableLog: function(fn) {
if (possibleLogs[fn]===undefined) {
if (fn = "ALL") {
for (fn in possibleLogs) {
workerScript.disableLogs[fn] = true;
}
workerScript.log("disableLog", `Disabled logging for all functions`);
} else if (possibleLogs[fn] === undefined) {
throw makeRuntimeErrorMsg("disableLog", `Invalid argument: ${fn}.`);
} else {
workerScript.disableLogs[fn] = true;
workerScript.log("disableLog", `Disabled logging for ${fn}`);
}
workerScript.disableLogs[fn] = true;
workerScript.log("disableLog", `Disabled logging for ${fn}`);
},
enableLog: function(fn) {
if (possibleLogs[fn]===undefined) {
@ -4545,7 +4551,7 @@ function NetscriptFunctions(workerScript) {
return functionNames;
}
const possibleLogs = Object.fromEntries(["ALL", ...getFunctionNames(functions)].map(a => [a, true]))
const possibleLogs = Object.fromEntries([...getFunctionNames(functions)].map(a => [a, true]))
return functions;
} // End NetscriptFunction()

View File

@ -43,6 +43,7 @@ export interface IPlayer {
homeComputer: string;
hp: number;
jobs: IMap<string>;
init: () => void;
isWorking: boolean;
karma: number;
location: LocationName;

View File

@ -0,0 +1,237 @@
import { Player } from "../../src/Player";
import { determineAllPossibilitiesForTabCompletion } from "../../src/Terminal/determineAllPossibilitiesForTabCompletion";
import { Server } from "../../src/Server/Server";
import {
AddToAllServers,
prestigeAllServers,
} from "../../src/Server/AllServers";
import { LocationName } from "../../src/Locations/data/LocationNames";
import { Message } from "../../src/Message/Message";
import { CodingContract } from "../../src/CodingContracts";
describe("determineAllPossibilitiesForTabCompletion", function () {
let closeServer: Server;
let farServer: Server;
beforeEach(() => {
prestigeAllServers();
Player.init();
closeServer = new Server({
ip: "8.8.8.8",
hostname: "near",
hackDifficulty: 1,
moneyAvailable: 70000,
numOpenPortsRequired: 0,
organizationName: LocationName.NewTokyoNoodleBar,
requiredHackingSkill: 1,
serverGrowth: 3000,
});
farServer = new Server({
ip: "4.4.4.4",
hostname: "far",
hackDifficulty: 1,
moneyAvailable: 70000,
numOpenPortsRequired: 0,
organizationName: LocationName.Aevum,
requiredHackingSkill: 1,
serverGrowth: 3000,
});
Player.getHomeComputer().serversOnNetwork.push(closeServer.ip);
closeServer.serversOnNetwork.push(Player.getHomeComputer().ip);
closeServer.serversOnNetwork.push(farServer.ip);
farServer.serversOnNetwork.push(closeServer.ip);
AddToAllServers(closeServer);
AddToAllServers(farServer);
});
it("completes the connect command", () => {
const options = determineAllPossibilitiesForTabCompletion(
Player,
"connect ",
0,
);
expect(options).toEqual(["8.8.8.8", "near"]);
});
it("completes the buy command", () => {
const options = determineAllPossibilitiesForTabCompletion(
Player,
"buy ",
0,
);
expect(options).toEqual([
"BruteSSH.exe",
"FTPCrack.exe",
"relaySMTP.exe",
"HTTPWorm.exe",
"SQLInject.exe",
"DeepscanV1.exe",
"DeepscanV2.exe",
"AutoLink.exe",
"ServerProfiler.exe",
]);
});
it("completes the scp command", () => {
Player.getHomeComputer().writeToTextFile("note.txt", "oh hai mark");
Player.getHomeComputer().messages.push("af.lit");
Player.getHomeComputer().writeToScriptFile(
"/www/script.js",
"oh hai mark",
);
const options1 = determineAllPossibilitiesForTabCompletion(
Player,
"scp ",
0,
);
expect(options1).toEqual([
"/www/script.js",
"af.lit",
"note.txt",
"www/",
]);
const options2 = determineAllPossibilitiesForTabCompletion(
Player,
"scp note.txt ",
1,
);
expect(options2).toEqual([
Player.getHomeComputer().ip,
"home",
"8.8.8.8",
"near",
"4.4.4.4",
"far",
]);
});
it("completes the kill, tail, mem, and check commands", () => {
Player.getHomeComputer().writeToScriptFile(
"/www/script.js",
"oh hai mark",
);
for (const command of ["kill", "tail", "mem", "check"]) {
expect(
determineAllPossibilitiesForTabCompletion(
Player,
`${command} `,
0,
),
).toEqual(["/www/script.js", "www/"]);
}
});
it("completes the nano commands", () => {
Player.getHomeComputer().writeToScriptFile(
"/www/script.js",
"oh hai mark",
);
Player.getHomeComputer().writeToTextFile("note.txt", "oh hai mark");
expect(
determineAllPossibilitiesForTabCompletion(Player, "nano ", 0),
).toEqual(["/www/script.js", "note.txt", ".fconf", "www/"]);
});
it("completes the rm command", () => {
Player.getHomeComputer().writeToTextFile("note.txt", "oh hai mark");
Player.getHomeComputer().writeToScriptFile(
"/www/script.js",
"oh hai mark",
);
Player.getHomeComputer().contracts.push(
new CodingContract("linklist.cct"),
);
Player.getHomeComputer().messages.push(new Message("asl.msg"));
Player.getHomeComputer().messages.push("af.lit");
expect(
determineAllPossibilitiesForTabCompletion(Player, "rm ", 0),
).toEqual([
"/www/script.js",
"NUKE.exe",
"af.lit",
"note.txt",
"linklist.cct",
"www/",
]);
});
it("completes the run command", () => {
Player.getHomeComputer().writeToScriptFile(
"/www/script.js",
"oh hai mark",
);
Player.getHomeComputer().contracts.push(
new CodingContract("linklist.cct"),
);
expect(
determineAllPossibilitiesForTabCompletion(Player, "run ", 0),
).toEqual(["/www/script.js", "NUKE.exe", "linklist.cct", "www/"]);
});
it("completes the cat command", () => {
Player.getHomeComputer().writeToTextFile(
"/www/note.txt",
"oh hai mark",
);
Player.getHomeComputer().messages.push(new Message("asl.msg"));
Player.getHomeComputer().messages.push("af.lit");
expect(
determineAllPossibilitiesForTabCompletion(Player, "cat ", 0),
).toEqual(["asl.msg", "af.lit", "/www/note.txt", "www/"]);
});
it("completes the download and mv commands", () => {
Player.getHomeComputer().writeToScriptFile(
"/www/script.js",
"oh hai mark",
);
Player.getHomeComputer().writeToTextFile("note.txt", "oh hai mark");
for (const command of ["download", "mv"]) {
expect(
determineAllPossibilitiesForTabCompletion(
Player,
`${command} `,
0,
),
).toEqual(["/www/script.js", "note.txt", "www/"]);
}
});
it("completes the cd command", () => {
Player.getHomeComputer().writeToScriptFile(
"/www/script.js",
"oh hai mark",
);
expect(
determineAllPossibilitiesForTabCompletion(Player, "cd ", 0),
).toEqual(["www/"]);
});
it("completes the ls and cd commands", () => {
Player.getHomeComputer().writeToScriptFile(
"/www/script.js",
"oh hai mark",
);
for (const command of ["ls", "cd"]) {
expect(
determineAllPossibilitiesForTabCompletion(
Player,
`${command} `,
0,
),
).toEqual(["www/"]);
}
});
it("completes commands starting with ./", () => {
Player.getHomeComputer().writeToScriptFile(
"/www/script.js",
"oh hai mark",
);
expect(
determineAllPossibilitiesForTabCompletion(Player, "run ./", 0),
).toEqual([".//www/script.js", "NUKE.exe", "./www/"]);
});
});