Updated changelog and version. Added build distribution files

This commit is contained in:
danielyxie 2018-09-12 11:34:18 -05:00
parent a18a2e8e70
commit f016736603
5 changed files with 385 additions and 273 deletions

File diff suppressed because one or more lines are too long

480
dist/engine.css vendored

@ -1,3 +1,7 @@
/* COLORS */
/* Attributes */
/* COLORS */
/* Attributes */
* { * {
font-size: 16px; font-size: 16px;
font-family: "Lucida Console", "Lucida Sans Unicode", "Fira Mono", "Consolas", "Courier New", Courier, monospace, "Times New Roman"; } font-family: "Lucida Console", "Lucida Sans Unicode", "Fira Mono", "Consolas", "Courier New", Courier, monospace, "Times New Roman"; }
@ -13,7 +17,8 @@
:root { :root {
--my-font-color: #6f3; --my-font-color: #6f3;
--my-background-color: #000; --my-background-color: #000;
--my-highlight-color: #fff; } --my-highlight-color: #fff;
--my-prompt-color: #f92672; }
body { body {
background-color: var(--my-background-color); } background-color: var(--my-background-color); }
@ -81,7 +86,7 @@ tr:focus {
display: block; display: block;
color: #e6e6e6; color: #e6e6e6;
background-color: #555; background-color: #555;
padding: 16px; padding: 12px 8px;
text-decoration: none; } text-decoration: none; }
/* Hovering makes them lighter */ /* Hovering makes them lighter */
@ -99,19 +104,31 @@ tr:focus {
.mainmenu > li a.active:hover { .mainmenu > li a.active:hover {
background-color: #aaa; } background-color: #aaa; }
#hacking-menu-header-li,
#character-menu-header-li,
#world-menu-header-li,
#help-menu-header-li {
position: relative; }
/* Accordion Outline */
.mainmenu-accordion-header {
outline: 2px solid #fff; }
/* Plus and minus signs */ /* Plus and minus signs */
.mainmenu-accordion-header:after { .mainmenu-accordion-header:after {
content: '\2795'; content: '\2795';
font-size: 13px;
color: #fff;
float: right; float: right;
margin-left: 5px; } font-size: 13px;
position: absolute;
.mainmenu-accordion-header.opened:after { bottom: 25%;
content: "\2796"; } right: 3px;
color: transparent;
text-shadow: 0 0 0 #fff; }
.mainmenu-accordion-header.opened { .mainmenu-accordion-header.opened {
background-color: #222; } background-color: #222; }
.mainmenu-accordion-header.opened:after {
content: "\2796"; }
/* Slide down transition */ /* Slide down transition */
.mainmenu-accordion-panel { .mainmenu-accordion-panel {
@ -119,10 +136,6 @@ tr:focus {
opacity: 1; opacity: 1;
transition: max-height 0.2s ease-out; } transition: max-height 0.2s ease-out; }
/* Borders */
.mainmenu-accordion-header {
border: 2px solid #fff; }
/* Make html links ("a" elements) nice looking buttons with this class */ /* Make html links ("a" elements) nice looking buttons with this class */
a:link, a:link,
a:visited { a:visited {
@ -132,57 +145,51 @@ a:visited {
text-decoration: none; text-decoration: none;
background-color: #555; background-color: #555;
color: #fff; color: #fff;
padding: 5px; padding: 3px 5px;
margin: 5px; margin: 5px;
border: 1px solid #333; border: 1px solid #333;
-moz-user-select: none; -moz-user-select: none;
-ms-user-select: none; -ms-user-select: none;
-khtml-user-select: none; -khtml-user-select: none;
-webkit-user-select: none; } -webkit-user-select: none; }
.a-link-button:hover {
.a-link-button:hover { background-color: #666; }
background-color: #666; } .a-link-button:active {
-webkit-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.6);
.a-link-button:active { -moz-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.6);
-webkit-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.6); box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.6); }
-moz-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.6);
box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.6); }
/* Make anchor tags ("a" elements) inactive (not clickable) */ /* Make anchor tags ("a" elements) inactive (not clickable) */
.a-link-button-inactive { .a-link-button-inactive {
text-decoration: none; text-decoration: none;
background-color: #333; background-color: #333;
color: #fff; color: #fff;
padding: 5px; padding: 3px 5px;
margin: 5px; margin: 5px;
border: 1px solid #333; border: 1px solid #333;
cursor: default; } cursor: default; }
.a-link-button-inactive:hover .tooltiptext,
.a-link-button-inactive:hover .tooltiptext, .a-link-button-inactive:hover .tooltiptexthigh,
.a-link-button-inactive:hover .tooltiptexthigh, .a-link-button-inactive:hover .tooltiptextleft {
.a-link-button-inactive:hover .tooltiptextleft { visibility: visible; }
visibility: visible; } .a-link-button-inactive:active {
pointer-events: none; }
.a-link-button-inactive:active {
pointer-events: none; }
/* Make anchor tags ("a" elements) for activated actions */ /* Make anchor tags ("a" elements) for activated actions */
.a-link-button-bought { .a-link-button-bought {
text-decoration: none; text-decoration: none;
background-color: #0a0; background-color: #0a0;
color: #fff; color: #fff;
padding: 5px; padding: 3px 5px;
margin: 5px; margin: 5px;
border: 1px solid #0a0; border: 1px solid #0a0;
cursor: default; } cursor: default; }
.a-link-button-bought:hover .tooltiptext,
.a-link-button-bought:hover .tooltiptext, .a-link-button-bought:hover .tooltiptexthigh,
.a-link-button-bought:hover .tooltiptexthigh, .a-link-button-bought:hover .tooltiptextleft {
.a-link-button-bought:hover .tooltiptextleft { visibility: visible; }
visibility: visible; } .a-link-button-bought:active {
pointer-events: none; }
.a-link-button-bought:active {
pointer-events: none; }
.dropdown { .dropdown {
color: #fff; color: #fff;
@ -217,20 +224,20 @@ a:visited {
/* Tool tips (when hovering over an element */ /* Tool tips (when hovering over an element */
.tooltip { .tooltip {
position: relative; display: inline-block;
display: inline-block; } position: relative; }
.tooltip .tooltiptext {
.tooltip .tooltiptext { visibility: hidden;
visibility: hidden; width: 300px;
width: 300px; background-color: var(--my-background-color);
background-color: var(--my-background-color); border: 2px solid var(--my-highlight-color);
border: 2px solid var(--my-highlight-color); color: #fff;
color: #fff; text-align: center;
text-align: center; padding: 4px;
padding: 4px; left: 101%;
left: 101%; pointer-events: none;
position: absolute; position: absolute;
z-index: 99; } z-index: 99; }
/* Same thing as a normal tooltip except its a bit higher */ /* Same thing as a normal tooltip except its a bit higher */
.tooltip .tooltiptexthigh { .tooltip .tooltiptexthigh {
@ -246,7 +253,7 @@ a:visited {
position: absolute; position: absolute;
z-index: 99; } z-index: 99; }
/* Similar to a normal tooltip except its positioned on the left of the elemnt /* Similar to a normal tooltip except its positioned on the left of the element
rather than the right to avoid exceeding the elements normal width */ rather than the right to avoid exceeding the elements normal width */
.tooltip .tooltiptextleft { .tooltip .tooltiptextleft {
visibility: hidden; visibility: hidden;
@ -436,18 +443,24 @@ a:visited {
top: 0; top: 0;
height: auto; height: auto;
/* Full height */ /* Full height */
padding: 8px; padding: 10px 2px;
border: 2px solid var(--my-highlight-color); border: 2px solid var(--my-highlight-color);
width: 19%; width: auto;
max-width: 280px;
overflow: auto; overflow: auto;
/* Enable scroll if needed */ /* Enable scroll if needed */
background-color: #444; background-color: rgba(57, 54, 54, 0.9);
/* Fallback color */ /* Fallback color */
z-index: 1; } z-index: 1; }
#character-overview-text { #character-overview-text {
color: #fff; color: #faffdf; }
background-color: #444; } #character-overview-text table {
border-collapse: collapse;
margin: auto; }
#character-overview-text td {
padding: 2px;
vertical-align: middle; }
.character-stat-text { .character-stat-text {
color: #fff; color: #fff;
@ -456,6 +469,30 @@ a:visited {
.character-stat-cell { .character-stat-cell {
text-align: right; } text-align: right; }
#character-hack-wrapper td,
#character-agi-wrapper td {
border-bottom: 1px #aaa solid;
padding-bottom: 10px; }
#character-str-wrapper td,
#character-cha-wrapper td {
padding-top: 10px; }
#character-hp-wrapper {
color: #dd3434; }
#character-money-wrapper {
color: #ffd700; }
#character-hack-wrapper {
color: #adff2f; }
#character-cha-wrapper {
color: #a671d1; }
#character-int-wrapper {
color: #6495ed; }
#character-overview-save-button, #character-overview-save-button,
#character-overview-options-button { #character-overview-options-button {
-webkit-border-radius: 12px; -webkit-border-radius: 12px;
@ -464,14 +501,17 @@ a:visited {
-webkit-box-shadow: 1px 1px 3px #000; -webkit-box-shadow: 1px 1px 3px #000;
-moz-box-shadow: 1px 1px 3px #000; -moz-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000; box-shadow: 1px 1px 3px #000;
color: #aaa; color: #cecece;
display: inline-block;
font-size: 14px; font-size: 14px;
font-weight: bold; font-weight: bold;
height: 22px; height: 25px;
background-color: #000; } background-color: #000;
padding: 5px 8px; }
.character-quick-options { .character-quick-options {
padding-top: 5px; } margin-top: 10px;
text-align: center; }
#character-overview-save-button:hover, #character-overview-save-button:hover,
#character-overview-save-button:focus, #character-overview-save-button:focus,
@ -481,17 +521,13 @@ a:visited {
text-decoration: none; text-decoration: none;
cursor: pointer; } cursor: pointer; }
#character-overview-options-button {
display: inline; }
/* Scan analyze links from AutoLink */ /* Scan analyze links from AutoLink */
.scan-analyze-link { .scan-analyze-link {
cursor: pointer; cursor: pointer;
color: #fff; color: #fff;
text-decoration: underline; } text-decoration: underline; }
.scan-analyze-link:hover {
.scan-analyze-link:hover { text-decoration: none; }
text-decoration: none; }
/* Accordion menus (Header with collapsible panel) */ /* Accordion menus (Header with collapsible panel) */
.accordion-header { .accordion-header {
@ -499,35 +535,30 @@ a:visited {
font-size: 20px; font-size: 20px;
color: #fff; color: #fff;
margin: 6px 6px 0 6px; margin: 6px 6px 0 6px;
padding: 6px; padding: 4px 6px;
cursor: pointer; cursor: pointer;
width: 80%; width: 80%;
text-align: left; text-align: left;
border: none; border: none;
outline: none; } outline: none;
position: relative; }
.accordion-header.active, .accordion-header.active, .accordion-header:hover {
.accordion-header:hover { background-color: #555; }
background-color: #555; } .accordion-header.active:hover {
background-color: #666; }
.accordion-header.active:hover { .accordion-header:after {
background-color: #666; } content: '\2795';
/* "plus" sign (+) */
.accordion-header:after { font-size: 13px;
content: '\2795'; float: right;
/* "plus" sign (+) */ color: transparent;
font-size: 13px; text-shadow: 0 0 0 #fff;
color: #fff; position: absolute;
float: right; bottom: 5px;
margin-left: 5px; } right: 6px; }
.accordion-header.active:after {
.accordion-header.active:after { content: "\2796";
content: "\2796"; /* "minus" sign (-) */ }
/* "minus" sign (-) */
font-size: 13px;
color: #fff;
float: right;
margin-left: 5px; }
.accordion-panel { .accordion-panel {
margin: 0 6px 6px 6px; margin: 0 6px 6px 6px;
@ -538,12 +569,8 @@ a:visited {
background-color: #555; background-color: #555;
overflow-y: auto; overflow-y: auto;
overflow-x: none; } overflow-x: none; }
.accordion-panel div, .accordion-panel ul, .accordion-panel p, .accordion-panel ul > li {
.accordion-panel div, background-color: #555; }
.accordion-panel ul,
.accordion-panel p,
.accordion-panel ul > li {
background-color: #555; }
/* override the global <span> styling */ /* override the global <span> styling */
#active-scripts-total-production-active, #active-scripts-total-production-active,
@ -552,6 +579,32 @@ a:visited {
margin: 0; margin: 0;
padding: 0; } padding: 0; }
/* Helper Classes */
.hacker-green {
color: #adff2f; }
.money-gold {
color: #ffd700; }
.light-yellow {
color: #faffdf; }
.failure {
color: #ff2929;
text-shadow: 0 0 0 #ff2929; }
.success {
color: #3adb76;
text-shadow: 0 0 0 #3adb76; }
.physical-yellow {
color: #faffdf; }
.charisma-purple {
color: #a671d1; }
/* COLORS */
/* Attributes */
#terminal-container { #terminal-container {
position: fixed; position: fixed;
margin-left: 10%; margin-left: 10%;
@ -570,6 +623,10 @@ a:visited {
overflow-y: scroll; overflow-y: scroll;
background-color: var(--my-background-color); background-color: var(--my-background-color);
table-layout: fixed; } table-layout: fixed; }
#terminal .prompt {
color: var(--my-prompt-color);
margin: 0;
padding: 0; }
#terminal-input { #terminal-input {
background-color: var(--my-background-color); background-color: var(--my-background-color);
@ -596,12 +653,19 @@ a:visited {
#terminal-input-td { #terminal-input-td {
display: flex; } display: flex; }
#terminal-input-td textarea {
overflow: hidden;
resize: none;
height: auto; }
#terminal-input-header { #terminal-input-header {
white-space: pre; } white-space: pre; }
#terminal-input-text-box { #terminal-input-text-box {
flex: 1 1 auto; } flex: 1 1 auto; }
/* COLORS */
/* Attributes */
/* CSS for different main menu pages, such as character info, script editor, etc (but excluding /* CSS for different main menu pages, such as character info, script editor, etc (but excluding
terminal which has its own page) */ terminal which has its own page) */
.generic-menupage-container { .generic-menupage-container {
@ -776,36 +840,30 @@ a:visited {
.active-scripts-script-header { .active-scripts-script-header {
background-color: #555; background-color: #555;
color: var(--my-font-color); color: var(--my-font-color);
padding: 4px; padding: 4px 25px 4px 10px;
padding-left: 10px;
cursor: pointer; cursor: pointer;
width: auto; width: auto;
text-align: left; text-align: left;
border: none; border: none;
outline: none; } outline: none;
position: relative; }
.active-scripts-script-header:hover, .active-scripts-script-header:after {
.active-scripts-script-header.active:hover { content: '\2795';
background-color: #666; } /* "plus" sign (+) */
font-size: 13px;
.active-scripts-script-header.active { float: right;
background-color: #555; } margin-left: 5px;
color: transparent;
.active-scripts-script-header:after { text-shadow: 0 0 0 var(--my-font-color);
content: '\2795'; position: absolute;
/* "plus" sign (+) */ bottom: 4px; }
font-size: 13px; .active-scripts-script-header.active:after {
color: var(--my-font-color); content: "\2796";
float: right; /* "minus" sign (-) */ }
margin-left: 5px; } .active-scripts-script-header:hover, .active-scripts-script-header.active:hover {
background-color: #666; }
.active-scripts-script-header.active:after { .active-scripts-script-header.active {
content: "\2796"; background-color: #555; }
/* "minus" sign (-) */
font-size: 13px;
color: var(--my-font-color);
float: right;
margin-left: 5px; }
.active-scripts-script-panel { .active-scripts-script-panel {
padding: 0 18px; padding: 0 18px;
@ -813,15 +871,11 @@ a:visited {
width: auto; width: auto;
display: none; display: none;
margin-bottom: 6px; } margin-bottom: 6px; }
.active-scripts-script-panel p, .active-scripts-script-panel h2, .active-scripts-script-panel ul, .active-scripts-script-panel li {
.active-scripts-script-panel p, background-color: #555;
.active-scripts-script-panel h2, width: auto;
.active-scripts-script-panel ul, color: #fff;
.active-scripts-script-panel li { margin-left: 5%; }
background-color: #555;
width: auto;
color: #fff;
margin-left: 5%; }
.active-scripts-button { .active-scripts-button {
-webkit-border-radius: 12px; -webkit-border-radius: 12px;
@ -836,12 +890,10 @@ a:visited {
margin: 4px; margin: 4px;
padding: 4px; padding: 4px;
background-color: #000; } background-color: #000; }
.active-scripts-button:hover, .active-scripts-button:focus {
.active-scripts-button:hover, color: #fff;
.active-scripts-button:focus { text-decoration: none;
color: #fff; cursor: pointer; }
text-decoration: none;
cursor: pointer; }
/* Hacknet Nodes */ /* Hacknet Nodes */
#hacknet-nodes-container { #hacknet-nodes-container {
@ -857,6 +909,14 @@ a:visited {
float: left; float: left;
overflow: hidden; overflow: hidden;
white-space: nowrap; } white-space: nowrap; }
#hacknet-nodes-container li.hacknet-node {
-webkit-box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
-moz-box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
margin: 6px;
padding: 7px;
width: 35vw;
border: 2px solid var(--my-highlight-color); }
#hacknet-nodes-list { #hacknet-nodes-list {
list-style: none; list-style: none;
@ -876,31 +936,19 @@ a:visited {
#hacknet-nodes-purchase-button { #hacknet-nodes-purchase-button {
display: inline-block; } display: inline-block; }
.hacknet-node {
-webkit-box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
-moz-box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
margin: 6px;
padding: 6px;
width: 34vw;
border: 2px solid var(--my-highlight-color); }
.hacknet-node-container { .hacknet-node-container {
display: inline-table; } display: inline-table; }
.hacknet-node-container .row {
.hacknet-node-container .row { display: table-row;
display: table-row; height: 30px; }
height: 30px; } .hacknet-node-container .row p {
display: table-cell; }
.hacknet-node-container .row p { .hacknet-node-container .upgradable-info {
display: table-cell; } display: inline-block;
margin: 0 4px;
.hacknet-node-container .upgradable-info { /* Don't want the vertical margin/padding, just left & right */
display: inline-block; padding: 0 4px;
margin: 0 4px; width: 64px; }
/* Don't want the vertical margin/padding, just left & right */
padding: 0 4px;
width: 64px; }
.menu-page-text { .menu-page-text {
width: 70vw; } width: 70vw; }
@ -957,8 +1005,8 @@ a:visited {
#faction-container p, #faction-container p,
#faction-container pre { #faction-container pre {
padding: 6px; padding: 4px 6px;
margin: 6px; } margin: 4px 6px; }
#faction-container pre { #faction-container pre {
width: 70%; width: 70%;
@ -977,13 +1025,9 @@ a:visited {
#faction-augmentations-container { #faction-augmentations-container {
position: fixed; position: fixed;
padding-top: 10px; } padding-top: 10px; }
#faction-augmentations-container p, #faction-augmentations-container a, #faction-augmentations-container ul, #faction-augmentations-container h1 {
#faction-augmentations-container p, margin: 8px;
#faction-augmentations-container a, padding: 4px; }
#faction-augmentations-container ul,
#faction-augmentations-container h1 {
margin: 8px;
padding: 4px; }
/* World */ /* World */
#world-container li { #world-container li {
@ -998,9 +1042,14 @@ a:visited {
.augmentations-list button, .augmentations-list button,
.augmentations-list div { .augmentations-list div {
color: var(--my-font-color); color: var(--my-font-color);
padding: 8px;
text-decoration: none; } text-decoration: none; }
.augmentations-list button {
padding: 2px 5px; }
.augmentations-list div {
padding: 6px; }
/* Tutorial */ /* Tutorial */
#tutorial-container { #tutorial-container {
position: fixed; position: fixed;
@ -1043,16 +1092,20 @@ a:visited {
margin: 10px; margin: 10px;
padding: 6px; } padding: 6px; }
#location-container * { #location-container > * {
margin: 10px 5px 10px 5px; } margin: 10px 5px 10px 5px; }
#location-job-reputation, #location-company-favor { #location-job-reputation,
#location-company-favor {
display: inline; } display: inline; }
/* Infiltration */ /* Infiltration */
#infiltration-container { #infiltration-container {
position: fixed; position: fixed;
padding: 6px; } padding: 6px; }
#infiltration-container span {
margin: 0;
padding: 0; }
#infiltration-left-panel, #infiltration-left-panel,
#infiltration-right-panel { #infiltration-right-panel {
@ -1071,6 +1124,9 @@ a:visited {
#infiltration-right-panel p { #infiltration-right-panel p {
margin: 4px; } margin: 4px; }
#infiltration-buttons {
margin-top: 20px; }
#infiltration-buttons .a-link-button { #infiltration-buttons .a-link-button {
display: inline; display: inline;
width: 25%; } width: 25%; }
@ -1139,6 +1195,8 @@ a:visited {
float: left; float: left;
background-color: #555; } background-color: #555; }
/* COLORS */
/* Attributes */
/* Both Work in progress and BitNode stuff */ /* Both Work in progress and BitNode stuff */
.generic-fullscreen-container { .generic-fullscreen-container {
color: var(--my-font-color); color: var(--my-font-color);
@ -1195,6 +1253,8 @@ a:visited {
.bitnode-destroyed:hover { .bitnode-destroyed:hover {
color: #fff; } color: #fff; }
/* COLORS */
/* Attributes */
/* Pop-up boxes */ /* Pop-up boxes */
.popup-box-container { .popup-box-container {
display: none; display: none;
@ -1277,6 +1337,10 @@ a:visited {
z-index: 2; z-index: 2;
background-color: var(--my-background-color); background-color: var(--my-background-color);
padding: 10px; } padding: 10px; }
.dialog-box-content p span,
#log-box-content p span {
padding: 0;
margin: 0; }
.dialog-box-close-button { .dialog-box-close-button {
-webkit-border-radius: 12px; -webkit-border-radius: 12px;
@ -1323,6 +1387,10 @@ a:visited {
padding: 8px; padding: 8px;
margin: 8px; } margin: 8px; }
#infiltration-box-content span {
padding: 0;
margin: 0; }
#infiltration-faction-select { #infiltration-faction-select {
background-color: #000; } background-color: #000; }
@ -1375,6 +1443,8 @@ a:visited {
#import-game-file-selector { #import-game-file-selector {
display: none; } display: none; }
/* COLORS */
/* Attributes */
/* interactivetutorial.css */ /* interactivetutorial.css */
#interactive-tutorial-wrapper { #interactive-tutorial-wrapper {
position: relative; } position: relative; }
@ -1385,13 +1455,11 @@ a:visited {
/* Stay in place */ /* Stay in place */
right: 0; right: 0;
top: 0; top: 0;
height: 400px; height: 450px;
/* Full height */
padding: 10px; padding: 10px;
border: 5px solid #fff; border: 5px solid #fff;
width: 20%; width: 23%;
overflow: auto; overflow: hidden;
/* Enable scroll if needed */
background-color: #444; background-color: #444;
/* Fallback color */ /* Fallback color */
color: #fff; } color: #fff; }
@ -1402,7 +1470,10 @@ a:visited {
padding: 4px; padding: 4px;
margin: 4px; margin: 4px;
color: #fff; color: #fff;
background-color: #444; } background-color: #444;
font-size: 14px;
max-height: 350px;
overflow-y: auto; }
#interactive-tutorial-exit, #interactive-tutorial-exit,
#interactive-tutorial-next, #interactive-tutorial-next,
@ -1414,7 +1485,7 @@ a:visited {
-moz-box-shadow: 1px 1px 3px #000; -moz-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000; box-shadow: 1px 1px 3px #000;
color: #aaa; color: #aaa;
font-size: 20px; font-size: 18px;
font-weight: bold; font-weight: bold;
background-color: #000; } background-color: #000; }
#interactive-tutorial-exit:hover, #interactive-tutorial-exit:focus, #interactive-tutorial-exit:hover, #interactive-tutorial-exit:focus,
@ -1426,16 +1497,29 @@ a:visited {
text-decoration: none; text-decoration: none;
cursor: pointer; } cursor: pointer; }
/*
#interactive-tutorial-exit { #interactive-tutorial-exit {
float: left; } float: left;
}
#interactive-tutorial-back { #interactive-tutorial-back {
margin-right: 20%; margin-right: 20%;
float: right; } float: right;
}
*/
#interactive-tutorial-exit {
position: absolute;
bottom: 0;
left: 0; }
#interactive-tutorial-back {
float: left; }
#interactive-tutorial-next { #interactive-tutorial-next {
float: right; } float: right; }
/* COLORS */
/* Attributes */
* { * {
font-size: 16px; font-size: 16px;
font-family: "Lucida Console", "Lucida Sans Unicode", "Fira Mono", "Consolas", "Courier New", Courier, monospace, "Times New Roman"; } font-family: "Lucida Console", "Lucida Sans Unicode", "Fira Mono", "Consolas", "Courier New", Courier, monospace, "Times New Roman"; }
@ -1448,6 +1532,8 @@ a:visited {
box-sizing: border-box; box-sizing: border-box;
vertical-align: top; } vertical-align: top; }
/* COLORS */
/* Attributes */
@-webkit-keyframes LOADERSPINNER { @-webkit-keyframes LOADERSPINNER {
0% { 0% {
-webkit-transform: translate(-50%, -50%) rotate(0deg); } -webkit-transform: translate(-50%, -50%) rotate(0deg); }
@ -1604,6 +1690,24 @@ a:visited {
top: 50%; top: 50%;
left: 50%; } left: 50%; }
.killAllMessage {
position: absolute;
top: 95%;
left: 50%;
-webkit-transform: translateX(-50%);
-moz-transform: translateX(-50%);
-ms-transform: translateX(-50%);
-o-transform: translateX(-50%);
transform: translateX(-50%); }
.killAllMessageWrapperHidden {
display: none; }
.killAllMessageWrapperShow {
display: block; }
/* COLORS */
/* Attributes */
/* css for Missions */ /* css for Missions */
/* Hacking missions */ /* Hacking missions */
#mission-container { #mission-container {
@ -1720,6 +1824,8 @@ a:visited {
.hack-mission-action-buttons-container { .hack-mission-action-buttons-container {
border: 2px solid #fff; } border: 2px solid #fff; }
/* COLORS */
/* Attributes */
#cmpy-mgmt-container p, #cmpy-mgmt-container p,
#cmpy-mgmt-container a, #cmpy-mgmt-container a,
#cmpy-mgmt-container div { #cmpy-mgmt-container div {
@ -1830,6 +1936,8 @@ a:visited {
.cmpy-mgmt-advertising-info { .cmpy-mgmt-advertising-info {
font-size: 12px; } font-size: 12px; }
/* COLORS */
/* Attributes */
#bladeburner-container a, #bladeburner-container a,
#bladeburner-container div, #bladeburner-container div,
#bladeburner-container p, #bladeburner-container p,

119
dist/vendor.bundle.js vendored

File diff suppressed because one or more lines are too long

@ -2,7 +2,7 @@
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <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="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="32x32" href="dist/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="dist/favicon-16x16.png"> <link rel="icon" type="image/png" sizes="16x16" href="dist/favicon-16x16.png">
@ -109,7 +109,7 @@
<div id="script-editor-filename-wrapper"> <div id="script-editor-filename-wrapper">
<p id="script-editor-filename-tag"> <strong style="background-color:#555;">Script name: </strong></p> <p id="script-editor-filename-tag"> <strong style="background-color:#555;">Script name: </strong></p>
<input id="script-editor-filename" type="text" maxlength="30" tabindex="1" /> <input id="script-editor-filename" type="text" maxlength="30" tabindex="1"/>
</div> </div>
<div id="javascript-editor"></div> <div id="javascript-editor"></div>
@ -159,7 +159,7 @@
<fieldset> <fieldset>
<label for="script-editor-option-maxerr" class="tooltip">Max Error Count</label> <label for="script-editor-option-maxerr" class="tooltip">Max Error Count</label>
<input type="range" max="1000" min="50" value="200" step="1" name="script-editor-option-maxerr" id="script-editor-option-maxerr" /> <input type="range" max="1000" min="50" value="200" step="1" name="script-editor-option-maxerr" id="script-editor-option-maxerr"/>
<em id="script-editor-option-maxerror-value-label" style="font-style: normal;"></em> <em id="script-editor-option-maxerror-value-label" style="font-style: normal;"></em>
</fieldset> </fieldset>
</div> <!-- End script editor options panel --> </div> <!-- End script editor options panel -->
@ -170,7 +170,7 @@
<table id="terminal"> <table id="terminal">
<tr id="terminal-input"> <tr id="terminal-input">
<td id="terminal-input-td" tabindex="2">$ <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;" /> <input type="text" id="terminal-input-text-box" class="terminal-input" tabindex="1" onfocus="this.value = this.value;"/>
</td> </td>
</tr> </tr>
</table> </table>
@ -187,7 +187,7 @@
provides information about each script's production. The scripts are categorized by the hostname of the servers on which provides information about each script's production. The scripts are categorized by the hostname of the servers on which
they are running. </p> they are running. </p>
<p id="active-scripts-total-prod">Total online production of <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> 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> (<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;"> <ul class="active-scripts-list" id="active-scripts-list" style="list-style: none;">
@ -201,19 +201,19 @@
The Hacknet is a global, decentralized network of machines. It is used by hackers all around The Hacknet is a global, decentralized network of machines. It is used by hackers all around
the world to anonymously share computing power and perform distributed cyberattacks without the the world to anonymously share computing power and perform distributed cyberattacks without the
fear of being traced. fear of being traced.
<br /><br /> <br/><br/>
Here, you can purchase a Hacknet Node, a specialized machine that can connect and contribute its Here, you can purchase a Hacknet Node, a specialized machine that can connect and contribute its
resources to the Hacknet network. This allows you to take a small percentage of profits resources to the Hacknet network. This allows you to take a small percentage of profits
from hacks performed on the network. Essentially, you are renting out your Node's computing power. from hacks performed on the network. Essentially, you are renting out your Node's computing power.
<br /><br /> <br/><br/>
Each Hacknet Node you purchase will passively earn you money. Each Hacknet Node can be upgraded Each Hacknet Node you purchase will passively earn you money. Each Hacknet Node can be upgraded
in order to increase its computing power and thereby increase the profit you earn from it. in order to increase its computing power and thereby increase the profit you earn from it.
</p> </p>
<a id="hacknet-nodes-purchase-button" class="a-link-button"> Purchase Hacknet Node </a> <a id="hacknet-nodes-purchase-button" class="a-link-button"> Purchase Hacknet Node </a>
<br /> <br/>
<div id="hacknet-nodes-money-multipliers-div"> <div id="hacknet-nodes-money-multipliers-div">
<p id="hacknet-nodes-money"> <p id="hacknet-nodes-money">
<span>Money:</span><span id="hacknet-nodes-player-money" class="money-gold"></span><br /> <span>Money:</span><span id="hacknet-nodes-player-money" class="money-gold"></span><br/>
<span>Total Hacknet Node Production:</span><span id="hacknet-nodes-total-production" class="money-gold"></span> <span>Total Hacknet Node Production:</span><span id="hacknet-nodes-total-production" class="money-gold"></span>
</p> </p>
<span id="hacknet-nodes-multipliers"> <span id="hacknet-nodes-multipliers">
@ -471,8 +471,7 @@
<!-- Tutorial content --> <!-- Tutorial content -->
<div id="tutorial-container" class="generic-menupage-container"> <div id="tutorial-container" class="generic-menupage-container">
<a id="tutorial-getting-started-link" class="a-link-button" <a id="tutorial-getting-started-link" class="a-link-button" href="http://bitburner.wikia.com/wiki/Chapt3rs_Guide_to_Getting_Started_with_Bitburner" target="_blank"> Getting Started </a>
href="http://bitburner.wikia.com/wiki/Chapt3rs_Guide_to_Getting_Started_with_Bitburner" target="_blank"> Getting Started </a>
<a id="tutorial-networking-link" class="a-link-button"> Servers & Networking </a> <a id="tutorial-networking-link" class="a-link-button"> Servers & Networking </a>
<a id="tutorial-hacking-link" class="a-link-button"> Hacking </a> <a id="tutorial-hacking-link" class="a-link-button"> Hacking </a>
<a id="tutorial-scripts-link" class="a-link-button"> Scripts </a> <a id="tutorial-scripts-link" class="a-link-button"> Scripts </a>
@ -481,8 +480,7 @@
<a id="tutorial-jobs-link" class="a-link-button"> Companies and Infiltration </a> <a id="tutorial-jobs-link" class="a-link-button"> Companies and Infiltration </a>
<a id="tutorial-factions-link" class="a-link-button"> Factions </a> <a id="tutorial-factions-link" class="a-link-button"> Factions </a>
<a id="tutorial-augmentations-link" class="a-link-button"> Augmentations </a> <a id="tutorial-augmentations-link" class="a-link-button"> Augmentations </a>
<a id="tutorial-shortcuts-link" class="a-link-button" <a id="tutorial-shortcuts-link" class="a-link-button" href="https://bitburner.wikia.com/wiki/Shortcuts" target="_blank"> Keyboard Shortcuts </a>
href="https://bitburner.wikia.com/wiki/Shortcuts" target="_blank"> Keyboard Shortcuts </a>
<a id="tutorial-back-button" class="a-link-button"> Back </a> <a id="tutorial-back-button" class="a-link-button"> Back </a>
<p id="tutorial-text"> </p> <p id="tutorial-text"> </p>
@ -625,7 +623,7 @@
<p id="location-slums-description"> <p id="location-slums-description">
You have entered the Slums, a poverty-ridden district filled with gangs, criminals, and You have entered the Slums, a poverty-ridden district filled with gangs, criminals, and
other shadowy entities. The city's government and police have neglected this area for years... other shadowy entities. The city's government and police have neglected this area for years...
<br /><br /><br /> <br/><br/><br/>
In the Slums, you can commit crimes to earn money and experience. Crime attempts are not always In the Slums, you can commit crimes to earn money and experience. Crime attempts are not always
successful. Your chance at successfully committing a crime is determined by your stats. successful. Your chance at successfully committing a crime is determined by your stats.
</p> </p>
@ -672,7 +670,7 @@
<div id="stock-market-container" class="generic-menupage-container"> <div id="stock-market-container" class="generic-menupage-container">
<p> <p>
Welcome to the World Stock Exchange (WSE)! <br /><br /> Welcome to the World Stock Exchange (WSE)! <br/><br/>
To begin trading, you must first purchase an account. WSE accounts will persist To begin trading, you must first purchase an account. WSE accounts will persist
after you 'reset' by installing Augmentations. after you 'reset' by installing Augmentations.
@ -685,7 +683,7 @@
TIX, short for Trade Information eXchange, is the communications protocol supported by the WSE. TIX, short for Trade Information eXchange, is the communications protocol supported by the WSE.
Purchasing access to the TIX API lets you write code to create your own algorithmic/automated Purchasing access to the TIX API lets you write code to create your own algorithmic/automated
trading strategies. trading strategies.
<br /><br /> <br/><br/>
If you purchase access to the TIX API, you will retain that access even after If you purchase access to the TIX API, you will retain that access even after
you 'reset' by installing Augmentations. you 'reset' by installing Augmentations.
</p> </p>
@ -695,7 +693,7 @@
<p> <p>
Four Sigma's (4S) Market Data Feed provides information about stocks Four Sigma's (4S) Market Data Feed provides information about stocks
that will help your trading strategies. that will help your trading strategies.
<br /><br /> <br/><br/>
If you purchase access to 4S Market Data and/or the 4S TIX API, you will If you purchase access to 4S Market Data and/or the 4S TIX API, you will
retain that access even after you 'reset' by installing Augmentations. retain that access even after you 'reset' by installing Augmentations.
</p> </p>
@ -713,7 +711,7 @@
<a id="stock-market-mode" class="a-link-button tooltip"></a> <a id="stock-market-mode" class="a-link-button tooltip"></a>
<a id="stock-market-expand-tickers" class="a-link-button tooltip">Expand tickers</a> <a id="stock-market-expand-tickers" class="a-link-button tooltip">Expand tickers</a>
<a id="stock-market-collapse-tickers" class="a-link-button tooltip">Collapse tickers</a> <a id="stock-market-collapse-tickers" class="a-link-button tooltip">Collapse tickers</a>
<br /><br /> <br/><br/>
<input id="stock-market-watchlist-filter" type="text" placeholder="Filter Stocks by symbol (comma-separated list)"/> <input id="stock-market-watchlist-filter" type="text" placeholder="Filter Stocks by symbol (comma-separated list)"/>
<a id="stock-market-watchlist-filter-update" class="a-link-button"> Update Watchlist </a> <a id="stock-market-watchlist-filter-update" class="a-link-button"> Update Watchlist </a>
<ul id="stock-market-list" style="list-style:none;"> <ul id="stock-market-list" style="list-style:none;">
@ -743,7 +741,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 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"/>
<span id="yes-no-text-input-box-yes" class="popup-box-button"> Yes </span> <span id="yes-no-text-input-box-yes" class="popup-box-button"> Yes </span>
<span id="yes-no-text-input-box-no" class="popup-box-button"> No </span> <span id="yes-no-text-input-box-no" class="popup-box-button"> No </span>
</div> </div>
@ -755,7 +753,7 @@
<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 /> <br /> Would you like to join? <br/> <br/>
Warning: Joining this faction may prevent you from joining other factions during this run! Warning: Joining this faction may prevent you from joining other factions during this run!
</p> </p>
<span id="faction-invitation-box-yes" class="popup-box-button"> Yes </span> <span id="faction-invitation-box-yes" class="popup-box-button"> Yes </span>
@ -768,8 +766,8 @@
<div id="infiltration-box-content" class="popup-box-content"> <div id="infiltration-box-content" class="popup-box-content">
<p id="infiltration-box-text"> </p> <p id="infiltration-box-text"> </p>
<span id="infiltration-box-sell" class="a-link-button"> Sell on Black Market </span> <br /><br /> <span id="infiltration-box-sell" class="a-link-button"> Sell on Black Market </span> <br/><br/>
<select id="infiltration-faction-select"> </select> <br /> <select id="infiltration-faction-select"> </select> <br/>
<span id="infiltration-box-faction" class="a-link-button"> Give to Faction for Reputation </span> <span id="infiltration-box-faction" class="a-link-button"> Give to Faction for Reputation </span>
</div> </div>
@ -855,7 +853,7 @@
<div id="game-options-content" class="game-options-box"> <div id="game-options-content" class="game-options-box">
<span id="game-options-close-button">&times;</span> <span id="game-options-close-button">&times;</span>
<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>
@ -867,7 +865,7 @@
</span> </span>
</label> </label>
<input type ="range" max="100" min="10" step="1" name="settingsNSExecTimeRangeVal" id="settingsNSExecTimeRangeVal" value="25" /> <input type="range" max="100" min="10" step="1" name="settingsNSExecTimeRangeVal" id="settingsNSExecTimeRangeVal" value="25"/>
<em id="settingsNSExecTimeRangeValLabel" style="font-style: normal;"></em> <em id="settingsNSExecTimeRangeValLabel" style="font-style: normal;"></em>
</fieldset> </fieldset>
@ -881,7 +879,7 @@
</span> </span>
</label> </label>
<input type="range" max="100" min="20" step="1" name="settingsNSLogRangeVal" id="settingsNSLogRangeVal" value="50" /> <input type="range" max="100" min="20" step="1" name="settingsNSLogRangeVal" id="settingsNSLogRangeVal" value="50"/>
<em id="settingsNSLogRangeValLabel" style="font-style: normal;"></em> <em id="settingsNSLogRangeValLabel" style="font-style: normal;"></em>
</fieldset> </fieldset>
@ -895,7 +893,7 @@
</span> </span>
</label> </label>
<input type="range" max="100" min="20" step="1" name="settingsNSPortRangeVal" id="settingsNSPortRangeVal" value="50" /> <input type="range" max="100" min="20" step="1" name="settingsNSPortRangeVal" id="settingsNSPortRangeVal" value="50"/>
<em id="settingsNSPortRangeValLabel" style="font-style: normal;"></em> <em id="settingsNSPortRangeValLabel" style="font-style: normal;"></em>
</fieldset> </fieldset>
@ -907,7 +905,7 @@
</span> </span>
</label> </label>
<input type="range" max="600" min="0" step="1" name="settingsAutosaveIntervalVal" id="settingsAutosaveIntervalVal" value="60" /> <input type="range" max="600" min="0" step="1" name="settingsAutosaveIntervalVal" id="settingsAutosaveIntervalVal" value="60"/>
<em id="settingsAutosaveIntervalValLabel" style="font-style: normal;"></em> <em id="settingsAutosaveIntervalValLabel" style="font-style: normal;"></em>
</fieldset> </fieldset>
@ -1019,7 +1017,7 @@
<a id="save-game-link" class="a-link-button" style="display:inline-block;width:46%;"> Save Game </a> <a id="save-game-link" class="a-link-button" style="display:inline-block;width:46%;"> Save Game </a>
<a id="delete-game-link" class="a-link-button" style="display:inline-block;width:46%;"> Delete Game </a> <a id="delete-game-link" class="a-link-button" style="display:inline-block;width:46%;"> Delete Game </a>
<a id="export-game-link" class="a-link-button" style="display:inline-block;width:46%;"> Export Game </a> <a id="export-game-link" class="a-link-button" style="display:inline-block;width:46%;"> Export Game </a>
<input type="file" id="import-game-file-selector" name="file" /> <input type="file" id="import-game-file-selector" name="file"/>
<a id="import-game-link" class="a-link-button" style="display:inline-block;width:46%;"> Import Game </a> <a id="import-game-link" class="a-link-button" style="display:inline-block;width:46%;"> Import Game </a>
<a id="debug-delete-scripts-link" class="a-link-button tooltip" style="display:block;width:46%;"> <a id="debug-delete-scripts-link" class="a-link-button tooltip" style="display:block;width:46%;">
(DEBUG) Delete Active Scripts (DEBUG) Delete Active Scripts

@ -1,5 +1,5 @@
let CONSTANTS = { let CONSTANTS = {
Version: "0.40.2", Version: "0.40.3",
//Max level for any skill, assuming no multipliers. Determined by max numerical value in javascript for experience //Max level for any skill, assuming no multipliers. Determined by max numerical value in javascript for experience
//and the skill level formula in Player.js. Note that all this means it that when experience hits MAX_INT, then //and the skill level formula in Player.js. Note that all this means it that when experience hits MAX_INT, then
@ -517,6 +517,7 @@ let CONSTANTS = {
* Added tryWrite() Netscript function<br> * Added tryWrite() Netscript function<br>
* When working (for a company/faction), experience is gained immediately/continuously rather than all at once when the work is finished<br> * When working (for a company/faction), experience is gained immediately/continuously rather than all at once when the work is finished<br>
* Added a setting in .fconf for enabling line-wrap in the Terminal input<br> * Added a setting in .fconf for enabling line-wrap in the Terminal input<br>
* Adding a game option for changing the locale that most numbers are displayed in (this mostly applies for whenever money is displayed)<br>
* The randomized parameters of many high-level servers can now take on a higher range of values<br> * The randomized parameters of many high-level servers can now take on a higher range of values<br>
* Many 'foreign' servers (hackable servers that you don't own) now have a randomized amount of RAM<br> * Many 'foreign' servers (hackable servers that you don't own) now have a randomized amount of RAM<br>
* Added 'wget' Terminal command<br> * Added 'wget' Terminal command<br>