fix formatting of Spiralize Matrix contract

This commit is contained in:
Olivier Gagnon 2021-09-04 19:54:08 -04:00
parent 05bab22807
commit 05a6f2a20e
7 changed files with 835 additions and 808 deletions

File diff suppressed because one or more lines are too long

@ -1,2 +1,2 @@
!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([926,0]),o()}({863:function(n,t,o){},865:function(n,t,o){},867:function(n,t,o){},869:function(n,t,o){},871:function(n,t,o){},873:function(n,t,o){},875:function(n,t,o){},877:function(n,t,o){},879:function(n,t,o){},881:function(n,t,o){},883:function(n,t,o){},885:function(n,t,o){},887:function(n,t,o){},889:function(n,t,o){},891:function(n,t,o){},893:function(n,t,o){},895:function(n,t,o){},897:function(n,t,o){},899:function(n,t,o){},901:function(n,t,o){},903:function(n,t,o){},905:function(n,t,o){},907:function(n,t,o){},909:function(n,t,o){},911:function(n,t,o){},913:function(n,t,o){},915:function(n,t,o){},917:function(n,t,o){},919:function(n,t,o){},921:function(n,t,o){},923:function(n,t,o){},926:function(n,t,o){"use strict";o.r(t);o(925),o(923),o(921),o(919),o(917),o(915),o(913),o(911),o(909),o(907),o(905),o(903),o(901),o(899),o(897),o(895),o(893),o(891),o(889),o(887),o(885),o(883),o(881),o(879),o(877),o(875),o(873),o(871),o(869),o(867),o(865),o(863)}}); !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([876,0]),o()}({813:function(n,t,o){},815:function(n,t,o){},817:function(n,t,o){},819:function(n,t,o){},821:function(n,t,o){},823:function(n,t,o){},825:function(n,t,o){},827:function(n,t,o){},829:function(n,t,o){},831:function(n,t,o){},833:function(n,t,o){},835:function(n,t,o){},837:function(n,t,o){},839:function(n,t,o){},841:function(n,t,o){},843:function(n,t,o){},845:function(n,t,o){},847:function(n,t,o){},849:function(n,t,o){},851:function(n,t,o){},853:function(n,t,o){},855:function(n,t,o){},857:function(n,t,o){},859:function(n,t,o){},861:function(n,t,o){},863:function(n,t,o){},865:function(n,t,o){},867:function(n,t,o){},869:function(n,t,o){},871:function(n,t,o){},873:function(n,t,o){},876:function(n,t,o){"use strict";o.r(t);o(875),o(873),o(871),o(869),o(867),o(865),o(863),o(861),o(859),o(857),o(855),o(853),o(851),o(849),o(847),o(845),o(843),o(841),o(839),o(837),o(835),o(833),o(831),o(829),o(827),o(825),o(823),o(821),o(819),o(817),o(815),o(813)}});
//# sourceMappingURL=engineStyle.bundle.js.map //# sourceMappingURL=engineStyle.bundle.js.map

974
dist/engineStyle.css vendored

File diff suppressed because it is too large Load Diff

44
dist/vendor.bundle.js vendored

File diff suppressed because one or more lines are too long

@ -1,32 +1,18 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8"/>
<title>Bitburner</title> <title>Bitburner</title>
<link <link rel="apple-touch-icon" sizes="180x180" href="dist/apple-touch-icon.png"/>
rel="apple-touch-icon" <link rel="icon" type="image/png" sizes="32x32" href="dist/favicon-32x32.png"/>
sizes="180x180" <link rel="icon" type="image/png" sizes="16x16" href="dist/favicon-16x16.png"/>
href="dist/apple-touch-icon.png" <link rel="manifest" href="dist/site.webmanifest"/>
/> <link rel="mask-icon" href="dist/safari-pinned-tab.svg" color="#000000"/>
<link <meta name="apple-mobile-web-app-title" content="Bitburner"/>
rel="icon" <meta name="application-name" content="Bitburner"/>
type="image/png" <meta name="msapplication-TileColor" content="#000000"/>
sizes="32x32" <meta name="msapplication-config" content="dist/browserconfig.xml"/>
href="dist/favicon-32x32.png" <meta name="theme-color" content="#ffffff"/>
/>
<link
rel="icon"
type="image/png"
sizes="16x16"
href="dist/favicon-16x16.png"
/>
<link rel="manifest" href="dist/site.webmanifest" />
<link rel="mask-icon" href="dist/safari-pinned-tab.svg" color="#000000" />
<meta name="apple-mobile-web-app-title" content="Bitburner" />
<meta name="application-name" content="Bitburner" />
<meta name="msapplication-TileColor" content="#000000" />
<meta name="msapplication-config" content="dist/browserconfig.xml" />
<meta name="theme-color" content="#ffffff" />
<!-- Google Analytics --> <!-- Google Analytics -->
<script> <script>
@ -50,14 +36,17 @@
"ga", "ga",
); );
</script> </script>
<script> <script>
ga("create", "UA-100157497-1", "auto"); ga(
"create",
"UA-100157497-1",
"auto",
);
ga("send", "pageview"); ga("send", "pageview");
</script> </script>
<link rel="shortcut icon" href="favicon.ico" />
<link href="dist/vendor.css" rel="stylesheet" /> <link rel="shortcut icon" href="favicon.ico"><link href="dist/vendor.css" rel="stylesheet"><link href="dist/engineStyle.css" rel="stylesheet"></head>
<link href="dist/engineStyle.css" rel="stylesheet" />
</head>
<body> <body>
<div id="entire-game-container" style="visibility: hidden"> <div id="entire-game-container" style="visibility: hidden">
<div id="mainmenu-container"> <div id="mainmenu-container">
@ -65,10 +54,7 @@
<ul id="mainmenu" class="mainmenu noscrollbar"> <ul id="mainmenu" class="mainmenu noscrollbar">
<!-- Hacking dropdown --> <!-- Hacking dropdown -->
<li id="hacking-menu-header-li"> <li id="hacking-menu-header-li">
<button <button id="hacking-menu-header" class="mainmenu-accordion-header noselect">
id="hacking-menu-header"
class="mainmenu-accordion-header noselect"
>
Hacking Hacking
</button> </button>
</li> </li>
@ -89,10 +75,7 @@
<!-- Character dropdown --> <!-- Character dropdown -->
<li id="character-menu-header-li"> <li id="character-menu-header-li">
<button <button id="character-menu-header" class="mainmenu-accordion-header noselect">
id="character-menu-header"
class="mainmenu-accordion-header noselect"
>
Character Character
</button> </button>
</li> </li>
@ -104,14 +87,9 @@
<span id="factions-notification" class="notification-off"> </span> <span id="factions-notification" class="notification-off"> </span>
</li> </li>
<li id="augmentations-tab" class="mainmenu-accordion-panel noselect"> <li id="augmentations-tab" class="mainmenu-accordion-panel noselect">
<button <button id="augmentations-menu-link" style="overflow: hidden;
id="augmentations-menu-link"
style="
overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;">
"
>
Augmentations Augmentations
</button> </button>
<span id="augmentations-notification" class="notification-off"> <span id="augmentations-notification" class="notification-off">
@ -126,10 +104,7 @@
<!-- World dropdown --> <!-- World dropdown -->
<li id="world-menu-header-li"> <li id="world-menu-header-li">
<button <button id="world-menu-header" class="mainmenu-accordion-header noselect">
id="world-menu-header"
class="mainmenu-accordion-header noselect"
>
World World
</button> </button>
</li> </li>
@ -156,10 +131,7 @@
</li> </li>
<li id="help-menu-header-li"> <li id="help-menu-header-li">
<button <button id="help-menu-header" class="mainmenu-accordion-header noselect">
id="help-menu-header"
class="mainmenu-accordion-header noselect"
>
Help Help
</button> </button>
</li> </li>
@ -184,12 +156,7 @@
<p id="script-editor-filename-tag"> <p id="script-editor-filename-tag">
<strong style="background-color: #555">Script name: </strong> <strong style="background-color: #555">Script name: </strong>
</p> </p>
<input <input id="script-editor-filename" type="text" maxlength="100" tabindex="1"/>
id="script-editor-filename"
type="text"
maxlength="100"
tabindex="1"
/>
</div> </div>
<div id="monaco-editor"></div> <div id="monaco-editor"></div>
@ -216,46 +183,22 @@
<fieldset> <fieldset>
<label for="script-editor-option-keybinding">Key Binding</label> <label for="script-editor-option-keybinding">Key Binding</label>
<select <select id="script-editor-option-keybinding" class="dropdown"></select>
id="script-editor-option-keybinding"
class="dropdown"
></select>
</fieldset> </fieldset>
<fieldset> <fieldset>
<label for="script-editor-option-highlightactiveline" <label for="script-editor-option-highlightactiveline">Highlight Active Line</label>
>Highlight Active Line</label <input type="checkbox" class="optionCheckbox" name="script-editor-option-highlightactiveline" id="script-editor-option-highlightactiveline" checked/>
>
<input
type="checkbox"
class="optionCheckbox"
name="script-editor-option-highlightactiveline"
id="script-editor-option-highlightactiveline"
checked
/>
</fieldset> </fieldset>
<fieldset> <fieldset>
<label for="script-editor-option-showinvisibles" <label for="script-editor-option-showinvisibles">Show Invisibles</label>
>Show Invisibles</label <input type="checkbox" class="optionCheckbox" name="script-editor-option-showinvisibles" id="script-editor-option-showinvisibles"/>
>
<input
type="checkbox"
class="optionCheckbox"
name="script-editor-option-showinvisibles"
id="script-editor-option-showinvisibles"
/>
</fieldset> </fieldset>
<fieldset> <fieldset>
<label for="script-editor-option-usesofttab">Use Soft Tab</label> <label for="script-editor-option-usesofttab">Use Soft Tab</label>
<input <input type="checkbox" class="optionCheckbox" name="script-editor-option-usesofttab" id="script-editor-option-usesofttab" checked/>
type="checkbox"
class="optionCheckbox"
name="script-editor-option-usesofttab"
id="script-editor-option-usesofttab"
checked
/>
</fieldset> </fieldset>
<fieldset id="script-editor-option-flex1-fieldset"></fieldset> <fieldset id="script-editor-option-flex1-fieldset"></fieldset>
@ -281,14 +224,7 @@
<tr id="terminal-input"> <tr id="terminal-input">
<td id="terminal-input-td" tabindex="2"> <td id="terminal-input-td" tabindex="2">
$ $
<input <input type="text" id="terminal-input-text-box" class="terminal-input" tabindex="1" onfocus="this.value = this.value;" autocomplete="off"/>
type="text"
id="terminal-input-text-box"
class="terminal-input"
tabindex="1"
onfocus="this.value = this.value;"
autocomplete="off"
/>
</td> </td>
</tr> </tr>
</table> </table>
@ -309,26 +245,14 @@
</p> </p>
<p id="active-scripts-total-prod"> <p id="active-scripts-total-prod">
Total online production of Active scripts: Total online production of Active scripts:
<span class="money-gold" <span class="money-gold"><span id="active-scripts-total-production-active">$0.000</span> /
><span id="active-scripts-total-production-active">$0.000</span> / sec</span><br/>
sec</span
><br />
Total online production since last Aug installation: Total online production since last Aug installation:
<span id="active-scripts-total-prod-aug-total" class="money-gold" <span id="active-scripts-total-prod-aug-total" class="money-gold">$0.000</span>
>$0.000</span (<span class="money-gold"><span id="active-scripts-total-prod-aug-avg" class="money-gold">$0.000</span>
> / sec</span>)
(<span class="money-gold"
><span id="active-scripts-total-prod-aug-avg" class="money-gold"
>$0.000</span
>
/ sec</span
>)
</p> </p>
<ul <ul class="active-scripts-list" id="active-scripts-list" style="list-style: none"></ul>
class="active-scripts-list"
id="active-scripts-list"
style="list-style: none"
></ul>
</div> </div>
<!-- Hacknet Nodes --> <!-- Hacknet Nodes -->
@ -356,10 +280,7 @@
<div id="faction-container" class="generic-menupage-container"></div> <div id="faction-container" class="generic-menupage-container"></div>
<!-- Augmentations --> <!-- Augmentations -->
<div <div id="augmentations-container" class="generic-menupage-container"></div>
id="augmentations-container"
class="generic-menupage-container"
></div>
<!-- Milestones content --> <!-- Milestones content -->
<div id="milestones-container" class="generic-menupage-container"></div> <div id="milestones-container" class="generic-menupage-container"></div>
@ -370,93 +291,34 @@
<!-- Tutorial content --> <!-- Tutorial content -->
<div id="tutorial-container" class="generic-menupage-container"> <div id="tutorial-container" class="generic-menupage-container">
<h1>Tutorial (AKA Links to Documentation)</h1> <h1>Tutorial (AKA Links to Documentation)</h1>
<a <a id="tutorial-getting-started-link" class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/guidesandtips/gettingstartedguideforbeginnerprogrammers.html">
id="tutorial-getting-started-link" Getting Started</a><br/><br/>
class="a-link-button" <a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/basicgameplay/servers.html">
target="_blank" Servers & Networking</a><br/><br/>
href="https://bitburner.readthedocs.io/en/latest/guidesandtips/gettingstartedguideforbeginnerprogrammers.html" <a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/basicgameplay/hacking.html">
> Hacking</a><br/><br/>
Getting Started</a <a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/basicgameplay/scripts.html">
><br /><br /> Scripts</a><br/><br/>
<a <a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/netscript.html">
class="a-link-button" Netscript Programming Language</a><br/><br/>
target="_blank" <a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/basicgameplay/world.html">
href="https://bitburner.readthedocs.io/en/latest/basicgameplay/servers.html" Traveling</a><br/><br/>
> <a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/basicgameplay/companies.html">
Servers & Networking</a Companies</a><br/><br/>
><br /><br /> <a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/basicgameplay/infiltration.html">
<a Infiltration</a><br/><br/>
class="a-link-button" <a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/basicgameplay/factions.html">
target="_blank" Factions</a><br/><br/>
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/augmentations.html">
> Augmentations</a><br/><br/>
Hacking</a <a class="a-link-button" target="_blank" href="https://bitburner.readthedocs.io/en/latest/shortcuts.html">
><br /><br /> Keyboard Shortcuts</a>
<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"
>
Netscript Programming Language</a
><br /><br />
<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"
>
Companies</a
><br /><br />
<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"
>
Factions</a
><br /><br />
<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"
>
Keyboard Shortcuts</a
>
</div> </div>
<!-- Location (visiting a location in World) --> <!-- Location (visiting a location in World) -->
<div id="location-container" class="generic-menupage-container"></div> <div id="location-container" class="generic-menupage-container"></div>
<div <div id="infiltration-container" class="generic-fullscreen-container"></div>
id="infiltration-container"
class="generic-fullscreen-container"
></div>
<div id="stock-market-container" class="generic-menupage-container"> <div id="stock-market-container" class="generic-menupage-container">
<!-- React Component --> <!-- React Component -->
@ -479,12 +341,7 @@
<div id="yes-no-text-input-box-container" class="popup-box-container"> <div id="yes-no-text-input-box-container" class="popup-box-container">
<div id="yes-no-text-input-box-content" class="popup-box-content"> <div id="yes-no-text-input-box-content" class="popup-box-content">
<p id="yes-no-text-input-box-text"></p> <p id="yes-no-text-input-box-text"></p>
<input <input type="text" id="yes-no-text-input-box-input" pattern="[a-zA-Z0-9-_]" maxlength="30"/>
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"> <button id="yes-no-text-input-box-yes" class="popup-box-button">
Yes Yes
</button> </button>
@ -500,8 +357,8 @@
<p id="faction-invitation-box-text"></p> <p id="faction-invitation-box-text"></p>
<p id="faction-invitation-box-message"></p> <p id="faction-invitation-box-message"></p>
<p id="faction-invitation-box-warning"> <p id="faction-invitation-box-warning">
Would you like to join? <br /> Would you like to join? <br/>
<br /> <br/>
Warning: Joining this faction may prevent you from joining other Warning: Joining this faction may prevent you from joining other
factions during this run! factions during this run!
</p> </p>
@ -522,9 +379,9 @@
<button id="infiltration-box-sell" class="a-link-button"> <button id="infiltration-box-sell" class="a-link-button">
Sell on Black Market Sell on Black Market
</button> </button>
<br /><br /> <br/><br/>
<select id="infiltration-faction-select" class="dropdown"></select> <select id="infiltration-faction-select" class="dropdown"></select>
<br /> <br/>
<button id="infiltration-box-faction" class="a-link-button"> <button id="infiltration-box-faction" class="a-link-button">
Give to Faction for Reputation Give to Faction for Reputation
</button> </button>
@ -548,17 +405,11 @@
<!-- Red Pill Container --> <!-- Red Pill Container -->
<div id="red-pill-container" class="generic-fullscreen-container"> <div id="red-pill-container" class="generic-fullscreen-container">
<div <div id="red-pill-content" class="generic-fullscreen-container-scroll"></div>
id="red-pill-content"
class="generic-fullscreen-container-scroll"
></div>
</div> </div>
<!-- Cinematic Text Container --> <!-- Cinematic Text Container -->
<div <div id="cinematic-text-container" class="generic-fullscreen-container"></div>
id="cinematic-text-container"
class="generic-fullscreen-container"
></div>
<!-- Interactive Tutorial Text Screen --> <!-- Interactive Tutorial Text Screen -->
<div id="interactive-tutorial-wrapper"> <div id="interactive-tutorial-wrapper">
@ -577,16 +428,10 @@
<!-- ReactJS Component --> <!-- ReactJS Component -->
</div> </div>
<div class="character-quick-options noselect"> <div class="character-quick-options noselect">
<button <button id="character-overview-save-button" class="character-overview-btn">
id="character-overview-save-button"
class="character-overview-btn"
>
Save Game Save Game
</button> </button>
<button <button id="character-overview-options-button" class="character-overview-btn">
id="character-overview-options-button"
class="character-overview-btn"
>
Options Options
</button> </button>
</div> </div>
@ -601,19 +446,15 @@
<!-- Game Options --> <!-- Game Options -->
<div id="game-options-container" class="popup-box-container"> <div id="game-options-container" class="popup-box-container">
<div id="game-options-content" class="game-options-box"> <div id="game-options-content" class="game-options-box">
<button <button id="game-options-close-button" aria-label="close options dialog">
id="game-options-close-button"
aria-label="close options dialog"
>
&times; &times;
</button> </button>
<h1>Game Options</h1> <h1>Game Options</h1>
<br /> <br/>
<div id="game-options-left-panel"> <div id="game-options-left-panel">
<!-- Netscript execution time --> <!-- Netscript execution time -->
<fieldset> <fieldset>
<label for="settingsNSExecTimeRangeVal" class="tooltip" <label for="settingsNSExecTimeRangeVal" class="tooltip">Netscript exec time:&nbsp;
>Netscript exec time:&nbsp;
<span class="tooltiptext"> <span class="tooltiptext">
The minimum number of milliseconds it takes to execute an The minimum number of milliseconds it takes to execute an
operation in Netscript. Setting this too low can result in operation in Netscript. Setting this too low can result in
@ -622,26 +463,13 @@
</span> </span>
</label> </label>
<input <input class="optionRange" type="range" max="100" min="10" step="1" name="settingsNSExecTimeRangeVal" id="settingsNSExecTimeRangeVal" value="25"/>
class="optionRange" <em id="settingsNSExecTimeRangeValLabel" style="font-style: normal"></em>
type="range"
max="100"
min="10"
step="1"
name="settingsNSExecTimeRangeVal"
id="settingsNSExecTimeRangeVal"
value="25"
/>
<em
id="settingsNSExecTimeRangeValLabel"
style="font-style: normal"
></em>
</fieldset> </fieldset>
<!-- Log capacity --> <!-- Log capacity -->
<fieldset> <fieldset>
<label for="settingsNSLogRangeVal" class="tooltip" <label for="settingsNSLogRangeVal" class="tooltip">Netscript log size:&nbsp;&nbsp;
>Netscript log size:&nbsp;&nbsp;
<span class="tooltiptext"> <span class="tooltiptext">
The maximum number of lines a script's logs can hold. Setting The maximum number of lines a script's logs can hold. Setting
this too high can cause the game to use a lot of memory if you this too high can cause the game to use a lot of memory if you
@ -649,26 +477,13 @@
</span> </span>
</label> </label>
<input <input class="optionRange" type="range" max="100" min="20" step="1" name="settingsNSLogRangeVal" id="settingsNSLogRangeVal" value="50"/>
class="optionRange" <em id="settingsNSLogRangeValLabel" style="font-style: normal"></em>
type="range"
max="100"
min="20"
step="1"
name="settingsNSLogRangeVal"
id="settingsNSLogRangeVal"
value="50"
/>
<em
id="settingsNSLogRangeValLabel"
style="font-style: normal"
></em>
</fieldset> </fieldset>
<!-- Port capacity --> <!-- Port capacity -->
<fieldset> <fieldset>
<label for="settingsNSPortRangeVal" class="tooltip" <label for="settingsNSPortRangeVal" class="tooltip">Netscript port size:&nbsp;
>Netscript port size:&nbsp;
<span class="tooltiptext"> <span class="tooltiptext">
The maximum number of entries that can be written to a port The maximum number of entries that can be written to a port
using Netscript's write() function. Setting this too high can using Netscript's write() function. Setting this too high can
@ -677,52 +492,26 @@
</span> </span>
</label> </label>
<input <input class="optionRange" type="range" max="100" min="20" step="1" name="settingsNSPortRangeVal" id="settingsNSPortRangeVal" value="50"/>
class="optionRange" <em id="settingsNSPortRangeValLabel" style="font-style: normal"></em>
type="range"
max="100"
min="20"
step="1"
name="settingsNSPortRangeVal"
id="settingsNSPortRangeVal"
value="50"
/>
<em
id="settingsNSPortRangeValLabel"
style="font-style: normal"
></em>
</fieldset> </fieldset>
<!-- Autosave Interval --> <!-- Autosave Interval -->
<fieldset> <fieldset>
<label for="settingsAutosaveIntervalVal" class="tooltip" <label for="settingsAutosaveIntervalVal" class="tooltip">Autosave Interval:&nbsp;&nbsp;&nbsp;
>Autosave Interval:&nbsp;&nbsp;&nbsp;
<span class="tooltiptext"> <span class="tooltiptext">
The time (in seconds) between each autosave. Set to 0 to The time (in seconds) between each autosave. Set to 0 to
disable autosave. disable autosave.
</span> </span>
</label> </label>
<input <input class="optionRange" type="range" max="600" min="0" step="1" name="settingsAutosaveIntervalVal" id="settingsAutosaveIntervalVal" value="60"/>
class="optionRange" <em id="settingsAutosaveIntervalValLabel" style="font-style: normal"></em>
type="range"
max="600"
min="0"
step="1"
name="settingsAutosaveIntervalVal"
id="settingsAutosaveIntervalVal"
value="60"
/>
<em
id="settingsAutosaveIntervalValLabel"
style="font-style: normal"
></em>
</fieldset> </fieldset>
<!-- Suppress messages --> <!-- Suppress messages -->
<fieldset> <fieldset>
<label for="settingsSuppressMessages" class="tooltip" <label for="settingsSuppressMessages" class="tooltip">Suppress Messages:
>Suppress Messages:
<span class="tooltiptext"> <span class="tooltiptext">
If this is set, then any messages you receive will not appear If this is set, then any messages you receive will not appear
as popups on the screen. They will still get sent to your home as popups on the screen. They will still get sent to your home
@ -730,108 +519,70 @@
Terminal command. Terminal command.
</span> </span>
</label> </label>
<input <input class="optionCheckbox" type="checkbox" name="settingsSuppressMessages" id="settingsSuppressMessages"/>
class="optionCheckbox"
type="checkbox"
name="settingsSuppressMessages"
id="settingsSuppressMessages"
/>
</fieldset> </fieldset>
<!-- Suppress faction invites --> <!-- Suppress faction invites -->
<fieldset> <fieldset>
<label for="settingsSuppressFactionInvites" class="tooltip" <label for="settingsSuppressFactionInvites" class="tooltip">Suppress Faction Invites:
>Suppress Faction Invites:
<span class="tooltiptexthigh"> <span class="tooltiptexthigh">
If this is set, then any faction invites you receive will not If this is set, then any faction invites you receive will not
appear as popups on the screen. Your outstanding faction appear as popups on the screen. Your outstanding faction
invites can be viewed in the 'Factions' page. invites can be viewed in the 'Factions' page.
</span> </span>
</label> </label>
<input <input class="optionCheckbox" type="checkbox" name="settingsSuppressFactionInvites" id="settingsSuppressFactionInvites"/>
class="optionCheckbox"
type="checkbox"
name="settingsSuppressFactionInvites"
id="settingsSuppressFactionInvites"
/>
</fieldset> </fieldset>
<!-- Suppress travel confirmation --> <!-- Suppress travel confirmation -->
<fieldset> <fieldset>
<label for="settingsSuppressTravelConfirmation" class="tooltip" <label for="settingsSuppressTravelConfirmation" class="tooltip">Suppress Travel Confirmation:
>Suppress Travel Confirmation:
<span class="tooltiptexthigh"> <span class="tooltiptexthigh">
If this is set, the confirmation message before traveling will If this is set, the confirmation message before traveling will
not show up. You will automatically be deducted the travel not show up. You will automatically be deducted the travel
cost as soon as you click. cost as soon as you click.
</span> </span>
</label> </label>
<input <input class="optionCheckbox" type="checkbox" name="settingsSuppressTravelConfirmation" id="settingsSuppressTravelConfirmation"/>
class="optionCheckbox"
type="checkbox"
name="settingsSuppressTravelConfirmation"
id="settingsSuppressTravelConfirmation"
/>
</fieldset> </fieldset>
<!-- Suppress buy aug confirmation --> <!-- Suppress buy aug confirmation -->
<fieldset> <fieldset>
<label <label for="settingsSuppressBuyAugmentationConfirmation" class="tooltip">Suppress buy augmentation confirmation:
for="settingsSuppressBuyAugmentationConfirmation"
class="tooltip"
>Suppress buy augmentation confirmation:
<span class="tooltiptexthigh"> <span class="tooltiptexthigh">
If this is set, the confirmation message before buying If this is set, the confirmation message before buying
augmentation will not show up. augmentation will not show up.
</span> </span>
</label> </label>
<input <input class="optionCheckbox" type="checkbox" name="settingsSuppressBuyAugmentationConfirmation" id="settingsSuppressBuyAugmentationConfirmation"/>
class="optionCheckbox"
type="checkbox"
name="settingsSuppressBuyAugmentationConfirmation"
id="settingsSuppressBuyAugmentationConfirmation"
/>
</fieldset> </fieldset>
<!-- Hospitalization Popup --> <!-- Hospitalization Popup -->
<fieldset> <fieldset>
<label for="settingsSuppressHospitalizationPopup" class="tooltip" <label for="settingsSuppressHospitalizationPopup" class="tooltip">Suppress Hospitalization popup:
>Suppress Hospitalization popup:
<span class="tooltiptexthigh"> <span class="tooltiptexthigh">
If this is set, a popup message will no longer be shown when If this is set, a popup message will no longer be shown when
you are hospitalized after taking too much damage. you are hospitalized after taking too much damage.
</span> </span>
</label> </label>
<input <input class="optionCheckbox" type="checkbox" name="settingsSuppressHospitalizationPopup" id="settingsSuppressHospitalizationPopup"/>
class="optionCheckbox"
type="checkbox"
name="settingsSuppressHospitalizationPopup"
id="settingsSuppressHospitalizationPopup"
/>
</fieldset> </fieldset>
<!-- Suppress Bladeburner popups --> <!-- Suppress Bladeburner popups -->
<fieldset> <fieldset>
<label for="settingsSuppressBladeburnerPopup" class="tooltip" <label for="settingsSuppressBladeburnerPopup" class="tooltip">Suppress Bladeburner Popup:
>Suppress Bladeburner Popup:
<span class="tooltiptext"> <span class="tooltiptext">
If this is set, then having your Bladeburner actions If this is set, then having your Bladeburner actions
interrupted by being busy with something else will not display interrupted by being busy with something else will not display
a popup message. a popup message.
</span> </span>
</label> </label>
<input <input class="optionCheckbox" type="checkbox" name="settingsSuppressBladeburnerPopup" id="settingsSuppressBladeburnerPopup"/>
class="optionCheckbox"
type="checkbox"
name="settingsSuppressBladeburnerPopup"
id="settingsSuppressBladeburnerPopup"
/>
</fieldset> </fieldset>
<!-- Disable Terminal and Navigation Shortcuts --> <!-- Disable Terminal and Navigation Shortcuts -->
<fieldset> <fieldset>
<label for="settingsDisableHotkeys" class="tooltip" <label for="settingsDisableHotkeys" class="tooltip">Disable Hotkeys:
>Disable Hotkeys:
<span class="tooltiptexthigh"> <span class="tooltiptexthigh">
If this is set, then most hotkeys (keyboard shortcuts) in the If this is set, then most hotkeys (keyboard shortcuts) in the
game are disabled. This includes Terminal commands, hotkeys to game are disabled. This includes Terminal commands, hotkeys to
@ -839,60 +590,38 @@
and Close (Ctrl + b)" hotkey in the Text Editor. and Close (Ctrl + b)" hotkey in the Text Editor.
</span> </span>
</label> </label>
<input <input class="optionCheckbox" type="checkbox" name="settingsDisableHotkeys" id="settingsDisableHotkeys"/>
class="optionCheckbox"
type="checkbox"
name="settingsDisableHotkeys"
id="settingsDisableHotkeys"
/>
</fieldset> </fieldset>
<!-- View city as list of buttons instead of ASCII art. --> <!-- View city as list of buttons instead of ASCII art. -->
<fieldset> <fieldset>
<label for="settingsDisableASCIIArt" class="tooltip" <label for="settingsDisableASCIIArt" class="tooltip">Disable ASCII art:
>Disable ASCII art:
<span class="tooltiptexthigh"> <span class="tooltiptexthigh">
If this is set all ASCII art will be disabled. If this is set all ASCII art will be disabled.
</span> </span>
</label> </label>
<input <input class="optionCheckbox" type="checkbox" name="settingsDisableASCIIArt" id="settingsDisableASCIIArt"/>
class="optionCheckbox"
type="checkbox"
name="settingsDisableASCIIArt"
id="settingsDisableASCIIArt"
/>
</fieldset> </fieldset>
<!-- Disable text effects such as corruption. --> <!-- Disable text effects such as corruption. -->
<fieldset> <fieldset>
<label for="settingsDisableTextEffects" class="tooltip" <label for="settingsDisableTextEffects" class="tooltip">Disable Text Effects:
>Disable Text Effects:
<span class="tooltiptexthigh"> <span class="tooltiptexthigh">
If this is set, text effects will not be displayed. This can If this is set, text effects will not be displayed. This can
help if text is difficult to read in certain areas. help if text is difficult to read in certain areas.
</span> </span>
</label> </label>
<input <input class="optionCheckbox" type="checkbox" name="settingsDisableTextEffects" id="settingsDisableTextEffects"/>
class="optionCheckbox"
type="checkbox"
name="settingsDisableTextEffects"
id="settingsDisableTextEffects"
/>
</fieldset> </fieldset>
<!-- Locale for displaying numbers --> <!-- Locale for displaying numbers -->
<fieldset> <fieldset>
<label for="settingsLocale" class="tooltip" <label for="settingsLocale" class="tooltip">Locale:
>Locale:
<span class="tooltiptexthigh"> <span class="tooltiptexthigh">
Sets the locale for displaying numbers. Defaults to 'en' Sets the locale for displaying numbers. Defaults to 'en'
</span> </span>
</label> </label>
<select <select name="settingsLocale" id="settingsLocale" class="dropdown">
name="settingsLocale"
id="settingsLocale"
class="dropdown"
>
<option value="en">en</option> <option value="en">en</option>
<option value="bg">bg</option> <option value="bg">bg</option>
<option value="cs">cs</option> <option value="cs">cs</option>
@ -912,60 +641,21 @@
</fieldset> </fieldset>
<!-- Donate button --> <!-- Donate button -->
<form <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
action="https://www.paypal.com/cgi-bin/webscr" <input type="hidden" name="cmd" value="_s-xclick"/>
method="post" <input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
target="_blank" "/>
> <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"/>
<input type="hidden" name="cmd" value="_s-xclick" /> <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1"/>
<input
type="hidden"
name="encrypted"
value="-----BEGIN PKCS7-----MIIHRwYJKoZIhvcNAQcEoIIHODCCBzQCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYA2Y2VGE75oWct89z//G2YEJKmzx0uDTXNrpje9ThxmUnBLFZCY+I11Pors7lGRvFqo5okwnu41CfYMPHDxpAgyYyQndMX9pWUX0gLfBMm2BaHwsNBCwt34WmpQqj7TGsQ+aw9NbmkxiJltGnOa+6/gy10mPZAA3HxiieLeCKkGgDELMAkGBSsOAwIaBQAwgcQGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQI72F1YSzHUd2AgaDMekHU3AKT93Ey9wkB3486bV+ngFSD6VOHrPweH9QATsp+PMe9QM9vmq+s2bGtTbZaYrFqM3M97SnQ0l7IQ5yuOzdZhRdfysu5uJ8dnuHUzq4gLSzqMnZ6/3c+PoHB8AS1nYHUVL4U0+ogZsO1s97IAQyfck9SaoFlxVtqQhkb8752MkQJJvGu3ZQSQGcVC4hFDPk8prXqyq4BU/k/EliwoIIDhzCCA4MwggLsoAMCAQICAQAwDQYJKoZIhvcNAQEFBQAwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMB4XDTA0MDIxMzEwMTMxNVoXDTM1MDIxMzEwMTMxNVowgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBR07d/ETMS1ycjtkpkvjXZe9k+6CieLuLsPumsJ7QC1odNz3sJiCbs2wC0nLE0uLGaEtXynIgRqIddYCHx88pb5HTXv4SZeuv0Rqq4+axW9PLAAATU8w04qqjaSXgbGLP3NmohqM6bV9kZZwZLR/klDaQGo1u9uDb9lr4Yn+rBQIDAQABo4HuMIHrMB0GA1UdDgQWBBSWn3y7xm8XvVk/UtcKG+wQ1mSUazCBuwYDVR0jBIGzMIGwgBSWn3y7xm8XvVk/UtcKG+wQ1mSUa6GBlKSBkTCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQCBXzpWmoBa5e9fo6ujionW1hUhPkOBakTr3YCDjbYfvJEiv/2P+IobhOGJr85+XHhN0v4gUkEDI8r2/rNk1m0GA8HKddvTjyGw/XqXa+LSTlDYkqI8OwR8GEYj4efEtcRpRYBxV8KxAW93YDWzFGvruKnnLbDAF6VR5w/cCMn5hzGCAZowggGWAgEBMIGUMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbQIBADAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTcwNzI1MDExODE2WjAjBgkqhkiG9w0BCQQxFgQUNo8efiZ7sk7nwKM/6B6Z7sU8hIIwDQYJKoZIhvcNAQEBBQAEgYB+JB4vZ/r48815/1HF/xK3+rOx7bPz3kAXmbhW/mkoF4OUbzqMeljvDIA9q/BDdlCLtxFOw9XlftTzv0eZCW/uCIiwu5wTzPIfPY1SI8WHe4cJbP2f2EYxIVs8D7OSirbW4yVa0+gACaLLj0rzIzNN8P/5PxgB03D+jwkcJABqng==-----END PKCS7-----
"
/>
<input
type="image"
src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif"
border="0"
name="submit"
alt="PayPal - The safer, easier way to pay online!"
/>
<img
alt=""
border="0"
src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif"
width="1"
height="1"
/>
</form> </form>
</div> </div>
<div id="game-options-right-panel"> <div id="game-options-right-panel">
<a <a class="a-link-button" href="https://bitburner.readthedocs.io/en/latest/changelog.html" target="_blank">
class="a-link-button"
href="https://bitburner.readthedocs.io/en/latest/changelog.html"
target="_blank"
>
Changelog Changelog
</a> </a>
<a <a class="a-link-button" href="https://bitburner.readthedocs.io/en/latest/index.html" target="_blank">Documentation</a>
class="a-link-button" <a class="a-link-button" href="https://discord.gg/TFc3hKD" target="_blank">Discord</a>
href="https://bitburner.readthedocs.io/en/latest/index.html" <a class="a-link-button" href="https://www.reddit.com/r/bitburner" target="_blank">Subreddit</a>
target="_blank"
>Documentation</a
>
<a
class="a-link-button"
href="https://discord.gg/TFc3hKD"
target="_blank"
>Discord</a
>
<a
class="a-link-button"
href="https://www.reddit.com/r/bitburner"
target="_blank"
>Subreddit</a
>
<button id="save-game-link" class="a-link-button">Save Game</button> <button id="save-game-link" class="a-link-button">Save Game</button>
<button id="delete-game-link" class="a-link-button"> <button id="delete-game-link" class="a-link-button">
Delete Game Delete Game
@ -973,17 +663,14 @@
<button id="export-game-link" class="a-link-button"> <button id="export-game-link" class="a-link-button">
Export Game Export Game
</button> </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"> <button id="import-game-link" class="a-link-button">
Import Game Import Game
</button> </button>
<button id="copy-save-to-clipboard-link" class="std-button"> <button id="copy-save-to-clipboard-link" class="std-button">
Copy Save data to Clipboard Copy Save data to Clipboard
</button> </button>
<button <button id="debug-delete-scripts-link" class="a-link-button tooltip">
id="debug-delete-scripts-link"
class="a-link-button tooltip"
>
Force kill all active scripts Force kill all active scripts
<span class="tooltiptextleft"> <span class="tooltiptextleft">
Forcefully kill all active running scripts, in case there is a Forcefully kill all active running scripts, in case there is a
@ -1020,10 +707,7 @@
<div id="loader" class="loaderoverlay"> <div id="loader" class="loaderoverlay">
<div class="loaderspinner"></div> <div class="loaderspinner"></div>
<div class="loaderlabel">Loading Bitburner...</div> <div class="loaderlabel">Loading Bitburner...</div>
<div <div id="killAllMessageWrapper" class="killAllMessage killAllMessageWrapperHidden">
id="killAllMessageWrapper"
class="killAllMessage killAllMessageWrapperHidden"
>
<script> <script>
setTimeout(function () { setTimeout(function () {
var w = document.getElementById("killAllMessageWrapper"); var w = document.getElementById("killAllMessageWrapper");
@ -1044,10 +728,7 @@
<div id="unclickable" style="display: none"> <div id="unclickable" style="display: none">
Click on this to upgrade your Source-File -1! Click on this to upgrade your Source-File -1!
</div> </div>
<script type="text/javascript" src="dist/vendor.bundle.js"></script> <script type="text/javascript" src="dist/vendor.bundle.js"></script><script type="text/javascript" src="dist/engine.bundle.js"></script><script type="text/javascript" src="dist/engineStyle.bundle.js"></script></body>
<script type="text/javascript" src="dist/engine.bundle.js"></script>
<script type="text/javascript" src="dist/engineStyle.bundle.js"></script>
</body>
<!-- Misc Scripts --> <!-- Misc Scripts -->
<script src="src/ThirdParty/raphael.min.js"></script> <script src="src/ThirdParty/raphael.min.js"></script>

@ -120,12 +120,7 @@ $(document).keydown(function (event) {
// Terminal // Terminal
if (routing.isOn(Page.Terminal)) { if (routing.isOn(Page.Terminal)) {
var terminalInput = document.getElementById("terminal-input-text-box"); var terminalInput = document.getElementById("terminal-input-text-box");
if ( if (terminalInput != null && !event.ctrlKey && !event.shiftKey) {
terminalInput != null &&
!event.ctrlKey &&
!event.shiftKey &&
!Terminal.contractOpen
) {
terminalInput.focus(); terminalInput.focus();
} }
@ -354,11 +349,7 @@ $(document).keydown(function (e) {
terminalCtrlPressed = true; terminalCtrlPressed = true;
} else if (e.shiftKey) { } else if (e.shiftKey) {
shiftKeyPressed = true; shiftKeyPressed = true;
} else if ( } else if (terminalCtrlPressed || shiftKeyPressed) {
terminalCtrlPressed ||
shiftKeyPressed ||
Terminal.contractOpen
) {
// Don't focus // Don't focus
} else { } else {
var inputTextBox = document.getElementById("terminal-input-text-box"); var inputTextBox = document.getElementById("terminal-input-text-box");
@ -394,9 +385,6 @@ let Terminal = {
commandHistory: [], commandHistory: [],
commandHistoryIndex: 0, commandHistoryIndex: 0,
// True if a Coding Contract prompt is opened
contractOpen: false,
// Full Path of current directory // Full Path of current directory
// Excludes the trailing forward slash // Excludes the trailing forward slash
currDir: "/", currDir: "/",
@ -2895,18 +2883,12 @@ let Terminal = {
}, },
runContract: async function (contractName) { runContract: async function (contractName) {
// There's already an opened contract
if (Terminal.contractOpen) {
return post("ERROR: There's already a Coding Contract in Progress");
}
const serv = Player.getCurrentServer(); const serv = Player.getCurrentServer();
const contract = serv.getContract(contractName); const contract = serv.getContract(contractName);
if (contract == null) { if (contract == null) {
return post("ERROR: No such contract"); return post("ERROR: No such contract");
} }
Terminal.contractOpen = true;
const res = await contract.prompt(); const res = await contract.prompt();
switch (res) { switch (res) {
@ -2938,7 +2920,6 @@ let Terminal = {
post("Contract cancelled"); post("Contract cancelled");
break; break;
} }
Terminal.contractOpen = false;
}, },
}; };

@ -152,23 +152,34 @@ export const codingContractTypesMetadata: ICodingContractTypeMetadata[] = [
"Given the following array of array of numbers representing a 2D matrix,", "Given the following array of array of numbers representing a 2D matrix,",
"return the elements of the matrix as an array in spiral order:\n\n", "return the elements of the matrix as an array in spiral order:\n\n",
].join(" "); ].join(" ");
for (const line of n) { // for (const line of n) {
d += `${line.toString()},\n`; // d += `${line.toString()},\n`;
} // }
d += "&nbsp;&nbsp;&nbsp;&nbsp;[\n";
d += n
.map(
(line: number[]) =>
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[" +
line.map((x: number) => `${x}`.padStart(2, " ")).join(",") +
"]",
)
.join("\n");
d += "\n&nbsp;&nbsp;&nbsp;&nbsp;]\n";
d += [ d += [
"\nHere is an example of what spiral order should be:", "\nHere is an example of what spiral order should be:\n\n",
"\nExample:",
"&nbsp;&nbsp;&nbsp;&nbsp;[\n", "&nbsp;&nbsp;&nbsp;&nbsp;[\n",
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[1, 2, 3],\n", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[1, 2, 3]\n",
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[4, 5, 6],\n", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[4, 5, 6]\n",
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[7, 8, 9]\n", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[7, 8, 9]\n",
"&nbsp;&nbsp;&nbsp;&nbsp;] should result in [1, 2, 3, 6, 9, 8 ,7, 4, 5]\n\n", "&nbsp;&nbsp;&nbsp;&nbsp;]\n\n",
"Note that the matrix will not always be square:\n", "Answer: [1, 2, 3, 6, 9, 8 ,7, 4, 5]\n\n",
"Note that the matrix will not always be square:\n\n",
"&nbsp;&nbsp;&nbsp;&nbsp;[\n", "&nbsp;&nbsp;&nbsp;&nbsp;[\n",
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[1, 2, 3, 4]\n", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[1,&nbsp;&nbsp;2,&nbsp;&nbsp;3,&nbsp;&nbsp;4]\n",
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[5, 6, 7, 8]\n", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[5,&nbsp;&nbsp;6,&nbsp;&nbsp;7,&nbsp;&nbsp;8]\n",
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[9, 10, 11, 12]\n", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[9,&nbsp;10,&nbsp;11,&nbsp;12]\n",
"&nbsp;&nbsp;&nbsp;&nbsp;] should result in [1, 2, 3, 4, 8, 12, 11, 10, 9, 5, 6, 7", "&nbsp;&nbsp;&nbsp;&nbsp;]\n\n",
"Answer: [1, 2, 3, 4, 8, 12, 11, 10, 9, 5, 6, 7]",
].join(" "); ].join(" ");
return d; return d;