mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-23 01:32:55 +02:00
Compare commits
234 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e4b2a6853d | |||
| 697a8119b0 | |||
| b31b3dc735 | |||
| 5848fa53b7 | |||
| 539b206cb5 | |||
| 0f92890f0c | |||
| 056f0213dd | |||
| 41871de26c | |||
| 5803ddc613 | |||
| 99263309ba | |||
| 8a78ee4cf6 | |||
| af46324c6d | |||
| 42aa6525a6 | |||
| 05b1b55e9a | |||
| febf0835c2 | |||
| 94ea0d253c | |||
| 31cf02e8e4 | |||
| 97fdf7cb7f | |||
| 2c7fbc03cf | |||
| 07cca48a17 | |||
| 43d0fcb9f9 | |||
| 99b8dfa0c1 | |||
| 4cdd65e96c | |||
| 9e345b1375 | |||
| 9466017906 | |||
| 9c24f1325f | |||
| 26401fbb93 | |||
| 69dfbb6673 | |||
| 5863797b03 | |||
| 25f546c691 | |||
| 67e5e413e4 | |||
| 796d91835c | |||
| be8d56ced9 | |||
| 0671c48c86 | |||
| 94388ba6af | |||
| 306fe97ed8 | |||
| c9b47ac3a6 | |||
| 8c9f78394b | |||
| 643d2525c5 | |||
| cb6e7ef5e9 | |||
| f7f9065472 | |||
| 1e3af43ab3 | |||
| e18aa08eeb | |||
| 5a75581b38 | |||
| 0d3bc1ea1f | |||
| 547324a813 | |||
| fa64186120 | |||
| 9b593758c3 | |||
| a55fd5046b | |||
| 0e177841ac | |||
| 0cd17cd3b3 | |||
| 04c0c87242 | |||
| 43b09a2459 | |||
| 8731a02ef0 | |||
| 30abcec74a | |||
| ae15914efa | |||
| 1aa141b87e | |||
| 55d1ebd0e4 | |||
| 06ac63aece | |||
| f706fee3d1 | |||
| f554398a7f | |||
| abe204109e | |||
| 434dd2b58d | |||
| 4c8d0acbd9 | |||
| 96847b5d27 | |||
| 8facdd2b49 | |||
| 8e2b5cfccb | |||
| 2c7a4f4ce6 | |||
| 1ca52e2b77 | |||
| 2248c083c8 | |||
| 37ec5c733f | |||
| 321dca4993 | |||
| 19f51b684b | |||
| 39b4048603 | |||
| 2b1ec7d573 | |||
| 2b13b5329f | |||
| 6661473adc | |||
| d6a7471e0b | |||
| 9996232751 | |||
| cdd376f2ae | |||
| 00a5085cdf | |||
| 4cd17607e6 | |||
| 1b734be895 | |||
| 6a8aa79396 | |||
| 34b3843e18 | |||
| dd75c1b2d2 | |||
| 6d072d766d | |||
| 7875d1ba93 | |||
| 0e458a8142 | |||
| 8ab571d54d | |||
| d9da1a8568 | |||
| b946886295 | |||
| 3bb74ceebe | |||
| e24c5b3cce | |||
| 527455bada | |||
| efdd8482d7 | |||
| 4180ceae17 | |||
| 9e04aef8d2 | |||
| 0fc6f90863 | |||
| 0cb821b50d | |||
| 14af88c3fc | |||
| 61dded637d | |||
| 4623bb3a0b | |||
| 4f7fb1cd62 | |||
| 0b401ba83b | |||
| 40813d5c4f | |||
| 687a2f8852 | |||
| 150a3b03f4 | |||
| 42935a217d | |||
| 2c2548f856 | |||
| 141f2a8331 | |||
| 5b9d2e36c6 | |||
| 80125d1521 | |||
| ed041743c2 | |||
| f9ff45fbed | |||
| fc5e0ea6a0 | |||
| 66ff040e38 | |||
| 49cc25479e | |||
| 4bd1813b45 | |||
| 8259c1a5b9 | |||
| c793a076db | |||
| e320a8339a | |||
| 1427a0f1ae | |||
| 17315733a7 | |||
| 29d7134859 | |||
| 4ac91f5599 | |||
| a3496cdfa9 | |||
| b88990444b | |||
| e9eae40891 | |||
| 0ec05f3fe2 | |||
| 21611ec571 | |||
| e7fde38bf9 | |||
| c47990ef56 | |||
| 23cefed8d4 | |||
| d86fb0262a | |||
| aef0cc815e | |||
| e0436a4314 | |||
| 1ad0fbe2e1 | |||
| db21010fe4 | |||
| 0535a0c49b | |||
| 6314000bd0 | |||
| a05335d6e2 | |||
| 54114dc6d0 | |||
| 1b6058dd0a | |||
| 75227233f3 | |||
| 8d80ecffd4 | |||
| 57ab1d885b | |||
| 34c2c70a2b | |||
| 0ef09a1c73 | |||
| 264e0b2e1a | |||
| 5755db4979 | |||
| 84b49bb5e9 | |||
| fb89b824d9 | |||
| fee661b451 | |||
| a40d0bb6e0 | |||
| f7f22ac7ef | |||
| 8fba3c3fa4 | |||
| a72560bf25 | |||
| 21211e7d08 | |||
| d627890047 | |||
| a1e0d40963 | |||
| ca8fc54400 | |||
| cf67213c36 | |||
| 51b2175c35 | |||
| 531c0ce5c0 | |||
| ad9c01ac50 | |||
| 0f266eaa42 | |||
| 674ce17834 | |||
| e611ab7bc7 | |||
| 60d6d49c43 | |||
| 75b2806c93 | |||
| 04b57f07a9 | |||
| a2d924e1c6 | |||
| f14f65814a | |||
| 04921520d8 | |||
| 9d1e132d11 | |||
| eb84652e19 | |||
| 7fedd1f1f5 | |||
| ba4169268c | |||
| 5bf21c0ab2 | |||
| 670587a07d | |||
| 4dc206bb3e | |||
| a7389f63b8 | |||
| 8ba63f4951 | |||
| b28f607056 | |||
| 218a9dd250 | |||
| 7a1fdd6c28 | |||
| b69a262faf | |||
| 66c87b1f64 | |||
| 9bc1a4a895 | |||
| 7a0d0b3fec | |||
| dd077152f4 | |||
| 2347e0b1fd | |||
| 188dcbad89 | |||
| eb7004feaa | |||
| 062cd2dc38 | |||
| 2f3e5c79e7 | |||
| bd172434d1 | |||
| afc1347d3a | |||
| b9c292f7cf | |||
| 6df824613e | |||
| de113a7b92 | |||
| 4ec14460b6 | |||
| 3f63d91448 | |||
| 2ae9a3d2a7 | |||
| ae04b7357e | |||
| bf141c7eb0 | |||
| 1503d82e35 | |||
| a75efd9c62 | |||
| 299e964e2b | |||
| 69fbfe87c0 | |||
| 60a229030b | |||
| e27b19ffae | |||
| 5e2c40ea23 | |||
| 8411de8e42 | |||
| 525c0ada55 | |||
| 0e06565e27 | |||
| 5e517d1671 | |||
| 1b57c1f7e0 | |||
| 0cb2fd1a87 | |||
| 08b0c7710d | |||
| f8a085af7a | |||
| c95a926154 | |||
| 5af10c8406 | |||
| 0f2b7517b4 | |||
| ac8565d820 | |||
| 2adcf79264 | |||
| 2bd4892fa8 | |||
| 46862d30fd | |||
| fccf2b5cb4 | |||
| f6af61d15b | |||
| b35d8475e3 | |||
| 04e8bc944e | |||
| cfd78e2d36 |
@@ -0,0 +1,14 @@
|
|||||||
|
node_modules/
|
||||||
|
|
||||||
|
.git
|
||||||
|
.gitattributes
|
||||||
|
.gitignore
|
||||||
|
.editorconfig
|
||||||
|
|
||||||
|
.dockerignore
|
||||||
|
Dockerfile
|
||||||
|
docker-compose.yml
|
||||||
|
|
||||||
|
*.md
|
||||||
|
Quotes.txt
|
||||||
|
netscript_tests/
|
||||||
+35
@@ -0,0 +1,35 @@
|
|||||||
|
FROM node:15.14.0 AS base
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Scripts used in the npm preinstall hook
|
||||||
|
COPY scripts/engines-check.js scripts/semver.js scripts/
|
||||||
|
|
||||||
|
# Adding our dependencies and install before adding the rest of the files
|
||||||
|
# This prevents reinstallation of npm packages for every subsequent code modification
|
||||||
|
ENV npm_config_update_notifier=false
|
||||||
|
COPY package.json package-lock.json ./
|
||||||
|
RUN npm ci --loglevel=error --no-audit --no-fund && npm rebuild node-sass
|
||||||
|
|
||||||
|
# Adding all the remaining source files
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# We need more than the default 512MB otherwise webpack will throw 'heap out of memory' exceptions
|
||||||
|
# https://nodejs.org/api/cli.html#cli_max_old_space_size_size_in_megabytes
|
||||||
|
ENV NODE_OPTIONS=--max-old-space-size=1536
|
||||||
|
|
||||||
|
FROM base AS dev
|
||||||
|
# This is the main development build using the file watcher if you mount volumes
|
||||||
|
USER node
|
||||||
|
EXPOSE 8000
|
||||||
|
CMD npm run start:container
|
||||||
|
|
||||||
|
FROM base AS prod-dist
|
||||||
|
# We'll simply build the production dist files here to later reuse in a simple webserver
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
FROM nginx:1.20.0-alpine AS prod
|
||||||
|
WORKDIR /usr/share/nginx/html
|
||||||
|
COPY --from=prod-dist /app/dist ./dist
|
||||||
|
COPY --from=prod-dist /app/index.html /app/favicon.ico /app/license.txt ./
|
||||||
|
EXPOSE 80
|
||||||
+2
-2
@@ -1,13 +1,13 @@
|
|||||||
Collection of Quotes
|
Collection of Quotes
|
||||||
|
|
||||||
The past is relevant only as data
|
The past is relevant only as data.
|
||||||
|
|
||||||
Pull on the new flesh like borrowed gloves and burn your fingers once again.
|
Pull on the new flesh like borrowed gloves and burn your fingers once again.
|
||||||
|
|
||||||
A weapon is a tool. A tool for killing and destroying. And there will be times
|
A weapon is a tool. A tool for killing and destroying. And there will be times
|
||||||
when you must kill and destroy. Then you will choose and equip yourself with the tools
|
when you must kill and destroy. Then you will choose and equip yourself with the tools
|
||||||
that you need. But remember the weakness of weapons. They are an extension --
|
that you need. But remember the weakness of weapons. They are an extension --
|
||||||
You are the killer and destroyer. You are whole, with or without them.
|
you are the killer and destroyer. You are whole, with or without them.
|
||||||
|
|
||||||
For all that we have done, as a civilization, as individuals, the universe is
|
For all that we have done, as a civilization, as individuals, the universe is
|
||||||
not stable, and nor is any single thing within it. Stars consume themselves,
|
not stable, and nor is any single thing within it. Stars consume themselves,
|
||||||
|
|||||||
@@ -27,5 +27,4 @@
|
|||||||
button {
|
button {
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,7 +80,7 @@
|
|||||||
transform: rotate(-45deg);
|
transform: rotate(-45deg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
input[type=checkbox] {
|
input[type="checkbox"] {
|
||||||
margin: 3px;
|
margin: 3px;
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
&:checked + label:after {
|
&:checked + label:after {
|
||||||
|
|||||||
+3
-5
@@ -1,5 +1,6 @@
|
|||||||
@import "mixins";
|
@import "mixins";
|
||||||
@import "theme";
|
@import "theme";
|
||||||
|
@import "styles";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Styling for all buttons
|
* Styling for all buttons
|
||||||
@@ -16,6 +17,7 @@ button {
|
|||||||
|
|
||||||
.a-link-button,
|
.a-link-button,
|
||||||
.std-button {
|
.std-button {
|
||||||
|
@extend .noselect;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
background-color: #555;
|
background-color: #555;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@@ -23,11 +25,6 @@ button {
|
|||||||
margin: 5px;
|
margin: 5px;
|
||||||
border: 1px solid #333;
|
border: 1px solid #333;
|
||||||
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
-khtml-user-select: none;
|
|
||||||
-webkit-user-select: none;
|
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: #666;
|
background-color: #666;
|
||||||
}
|
}
|
||||||
@@ -68,6 +65,7 @@ button {
|
|||||||
|
|
||||||
.a-link-button-bought,
|
.a-link-button-bought,
|
||||||
.std-button-bought {
|
.std-button-bought {
|
||||||
|
@extend .noselect;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
background-color: #0a0;
|
background-color: #0a0;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.casino-card .value {
|
.casino-card .value {
|
||||||
font-size:15pt;
|
font-size: 15pt;
|
||||||
font-family: sans-serif;
|
font-family: sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,17 +47,16 @@
|
|||||||
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-str-wrapper td,
|
||||||
#character-cha-wrapper td {
|
#character-cha-wrapper td {
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.character-divider td {
|
||||||
|
border-top: 1px #aaa solid;
|
||||||
|
padding-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
#character-hp-wrapper { color: $my-stat-hp-color; }
|
#character-hp-wrapper { color: $my-stat-hp-color; }
|
||||||
.character-hp-cell { color: $my-stat-hp-color; }
|
.character-hp-cell { color: $my-stat-hp-color; }
|
||||||
#character-money-wrapper { color: $my-stat-money-color; }
|
#character-money-wrapper { color: $my-stat-money-color; }
|
||||||
@@ -69,6 +68,8 @@
|
|||||||
#character-int-wrapper { color: $my-stat-int-color; }
|
#character-int-wrapper { color: $my-stat-int-color; }
|
||||||
.character-int-cell { color: $my-stat-int-color; }
|
.character-int-cell { color: $my-stat-int-color; }
|
||||||
.character-combat-cell { color: $my-stat-physical; }
|
.character-combat-cell { color: $my-stat-physical; }
|
||||||
|
#character-work-wrapper { color: $my-stat-hack-color; }
|
||||||
|
.character-work-cell { color: $my-stat-hack-color; }
|
||||||
|
|
||||||
.character-overview-btn {
|
.character-overview-btn {
|
||||||
@include borderRadius(12px);
|
@include borderRadius(12px);
|
||||||
|
|||||||
+2
-6
@@ -3,15 +3,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.remove-exp-button {
|
.remove-exp-button {
|
||||||
margin-left:0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.exp-input {
|
.exp-input {
|
||||||
margin-right: 0;
|
margin: 5px 0 5px 0;
|
||||||
margin-left:0;
|
|
||||||
|
|
||||||
margin-top: 5px;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
|
|
||||||
padding: 2px 5px;
|
padding: 2px 5px;
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+1
@@ -1,3 +1,4 @@
|
|||||||
|
/* stylelint-disable */
|
||||||
/*!
|
/*!
|
||||||
* Bootstrap Grid v4.1.2 (https://getbootstrap.com/)
|
* Bootstrap Grid v4.1.2 (https://getbootstrap.com/)
|
||||||
* Copyright 2011-2018 The Bootstrap Authors
|
* Copyright 2011-2018 The Bootstrap Authors
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
@import "theme";
|
||||||
|
|
||||||
|
.blinking-cursor {
|
||||||
|
font-weight: 100;
|
||||||
|
color: #2E3D48;
|
||||||
|
-webkit-animation: 1s cursorblink step-end infinite;
|
||||||
|
-moz-animation: 1s cursorblink step-end infinite;
|
||||||
|
-ms-animation: 1s cursorblink step-end infinite;
|
||||||
|
-o-animation: 1s cursorblink step-end infinite;
|
||||||
|
animation: 1s cursorblink step-end infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes "cursorblink" {
|
||||||
|
from, to {
|
||||||
|
color: transparent;
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
color: $hacker-green;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@-moz-keyframes cursorblink {
|
||||||
|
from, to {
|
||||||
|
color: transparent;
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
color: $hacker-green;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes "cursorblink" {
|
||||||
|
from, to {
|
||||||
|
color: transparent;
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
color: $hacker-green;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@-ms-keyframes "cursorblink" {
|
||||||
|
from, to {
|
||||||
|
color: transparent;
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
color: $hacker-green;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@-o-keyframes "cursorblink" {
|
||||||
|
from, to {
|
||||||
|
color: transparent;
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
color: $hacker-green;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -69,3 +69,22 @@
|
|||||||
float: right;
|
float: right;
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.interactive-tutorial-command {
|
||||||
|
background-color: #000;
|
||||||
|
color: $hacker-green;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.interactive-tutorial-code {
|
||||||
|
background-color: #272822;
|
||||||
|
color: white;
|
||||||
|
padding: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.interactive-tutorial-tab {
|
||||||
|
background-color: #555;
|
||||||
|
color: #e6e6e6;
|
||||||
|
padding: 3px;
|
||||||
|
box-shadow: 0 0 3px #000;
|
||||||
|
}
|
||||||
+2
-34
@@ -150,38 +150,6 @@
|
|||||||
/* Infiltration */
|
/* Infiltration */
|
||||||
#infiltration-container {
|
#infiltration-container {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
padding: 6px;
|
margin: 5px;
|
||||||
|
width: 70%;
|
||||||
span {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#infiltration-left-panel,
|
|
||||||
#infiltration-right-panel {
|
|
||||||
display: inline-block;
|
|
||||||
border: 1px solid #fff;
|
|
||||||
width: 35%;
|
|
||||||
height: 75%;
|
|
||||||
top: 10px;
|
|
||||||
overflow-y: auto;
|
|
||||||
overflow-x: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#infiltration-faction-select {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#infiltration-left-panel p,
|
|
||||||
#infiltration-right-panel p {
|
|
||||||
margin: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#infiltration-buttons {
|
|
||||||
margin-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#infiltration-buttons .a-link-button {
|
|
||||||
display: inline;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@import "mixins";
|
@import "mixins";
|
||||||
@import "theme";
|
@import "theme";
|
||||||
|
@import "styles";
|
||||||
|
|
||||||
/* Pop-up boxes */
|
/* Pop-up boxes */
|
||||||
.popup-box-container {
|
.popup-box-container {
|
||||||
@@ -23,6 +24,7 @@
|
|||||||
width: 70%;
|
width: 70%;
|
||||||
max-height: 80%;
|
max-height: 80%;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
z-index: 11; /* Sit on top of the container */
|
||||||
color: var(--my-font-color);
|
color: var(--my-font-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,6 +89,7 @@
|
|||||||
.dialog-box-close-button {
|
.dialog-box-close-button {
|
||||||
@include borderRadius(12px);
|
@include borderRadius(12px);
|
||||||
@include boxShadow(1px 1px 3px #000);
|
@include boxShadow(1px 1px 3px #000);
|
||||||
|
@extend .noselect;
|
||||||
|
|
||||||
float: right;
|
float: right;
|
||||||
color: #aaa;
|
color: #aaa;
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&.level-2 {
|
&.level-2 {
|
||||||
color: #48d1cc;
|
color: #48d1cc;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.level-3 {
|
&.level-3 {
|
||||||
|
|||||||
+10
-6
@@ -36,6 +36,10 @@ li {
|
|||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
br {
|
||||||
|
@extend .noselect;
|
||||||
|
}
|
||||||
|
|
||||||
#entire-game-container {
|
#entire-game-container {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
@@ -234,9 +238,9 @@ a:visited {
|
|||||||
|
|
||||||
#status-text-container {
|
#status-text-container {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
position:absolute;
|
position: absolute;
|
||||||
top:0;
|
top: 0;
|
||||||
left:50%;
|
left: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
#status-text {
|
#status-text {
|
||||||
@@ -371,14 +375,15 @@ a:visited {
|
|||||||
|
|
||||||
.noscrollbar {
|
.noscrollbar {
|
||||||
-ms-overflow-style: none; /* IE and Edge */
|
-ms-overflow-style: none; /* IE and Edge */
|
||||||
scrollbar-width: none; /* Firefox */
|
/* stylelint-disable-next-line property-no-unknown */
|
||||||
|
scrollbar-width: none; /* Firefox https://developer.mozilla.org/en-US/docs/Web/CSS/scrollbar-width */
|
||||||
}
|
}
|
||||||
|
|
||||||
.noscrollbar::-webkit-scrollbar {
|
.noscrollbar::-webkit-scrollbar {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type=checkbox] {
|
input[type="checkbox"] {
|
||||||
filter: invert(1) sepia(1) hue-rotate(41deg) brightness(100%) saturate(10);
|
filter: invert(1) sepia(1) hue-rotate(41deg) brightness(100%) saturate(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -398,7 +403,6 @@ input[type=checkbox] {
|
|||||||
margin: 3px;
|
margin: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.optionRange::-webkit-slider-thumb {
|
.optionRange::-webkit-slider-thumb {
|
||||||
-webkit-appearance: none;
|
-webkit-appearance: none;
|
||||||
appearance: none;
|
appearance: none;
|
||||||
|
|||||||
+1
-1
@@ -16,7 +16,7 @@
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
border: 2px solid #e8e8e3;
|
border: 2px solid #e8e8e3;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
box-shadow: 1px 1px 1px rgba(0,0,0,0.5);
|
box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
margin: 10px;
|
margin: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#work-in-progress-cancel-button {
|
.work-button {
|
||||||
@include borderRadius(12px);
|
@include borderRadius(12px);
|
||||||
@include boxShadow(1px 1px 3px #000);
|
@include boxShadow(1px 1px 3px #000);
|
||||||
|
|
||||||
@@ -39,8 +39,8 @@
|
|||||||
border: 3px solid #fff;
|
border: 3px solid #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
#work-in-progress-cancel-button:hover,
|
.work-button:hover,
|
||||||
#work-in-progress-cancel-button:focus {
|
.work-button:focus {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|||||||
Vendored
+2
-2
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -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([841,0]),o()}({780:function(n,t,o){},782:function(n,t,o){},784:function(n,t,o){},786:function(n,t,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){},841:function(n,t,o){"use strict";o.r(t);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),o(786),o(784),o(782),o(780)}});
|
!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([858,0]),o()}({795:function(n,t,o){},797:function(n,t,o){},799:function(n,t,o){},801:function(n,t,o){},803:function(n,t,o){},805:function(n,t,o){},807:function(n,t,o){},809:function(n,t,o){},811:function(n,t,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){},858:function(n,t,o){"use strict";o.r(t);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),o(811),o(809),o(807),o(805),o(803),o(801),o(799),o(797),o(795)}});
|
||||||
//# sourceMappingURL=engineStyle.bundle.js.map
|
//# sourceMappingURL=engineStyle.bundle.js.map
|
||||||
Vendored
+911
-49
File diff suppressed because it is too large
Load Diff
Vendored
+47
-47
File diff suppressed because one or more lines are too long
Vendored
+79
-70
@@ -11,7 +11,8 @@
|
|||||||
padding: 4px 0;
|
padding: 4px 0;
|
||||||
/* Vertical padding around content */ }
|
/* Vertical padding around content */ }
|
||||||
|
|
||||||
.CodeMirror pre {
|
.CodeMirror pre.CodeMirror-line,
|
||||||
|
.CodeMirror pre.CodeMirror-line-like {
|
||||||
padding: 0 4px;
|
padding: 0 4px;
|
||||||
/* Horizontal padding of content */ }
|
/* Horizontal padding of content */ }
|
||||||
|
|
||||||
@@ -98,7 +99,7 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
top: -50px;
|
top: -50px;
|
||||||
bottom: -20px;
|
bottom: 0;
|
||||||
overflow: hidden; }
|
overflow: hidden; }
|
||||||
|
|
||||||
.CodeMirror-ruler {
|
.CodeMirror-ruler {
|
||||||
@@ -216,11 +217,11 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
|
|||||||
.CodeMirror-scroll {
|
.CodeMirror-scroll {
|
||||||
overflow: scroll !important;
|
overflow: scroll !important;
|
||||||
/* Things will break if this is overridden */
|
/* Things will break if this is overridden */
|
||||||
/* 30px is the magic margin used to hide the element's real scrollbars */
|
/* 50px is the magic margin used to hide the element's real scrollbars */
|
||||||
/* See overflow: hidden in .CodeMirror */
|
/* See overflow: hidden in .CodeMirror */
|
||||||
margin-bottom: -30px;
|
margin-bottom: -50px;
|
||||||
margin-right: -30px;
|
margin-right: -50px;
|
||||||
padding-bottom: 30px;
|
padding-bottom: 50px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
outline: none;
|
outline: none;
|
||||||
/* Prevent dragging from highlighting the element */
|
/* Prevent dragging from highlighting the element */
|
||||||
@@ -228,7 +229,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
|
|||||||
|
|
||||||
.CodeMirror-sizer {
|
.CodeMirror-sizer {
|
||||||
position: relative;
|
position: relative;
|
||||||
border-right: 30px solid transparent; }
|
border-right: 50px solid transparent; }
|
||||||
|
|
||||||
/* The fake, visible scrollbars. Used to force redraw during scrolling
|
/* The fake, visible scrollbars. Used to force redraw during scrolling
|
||||||
before actual scrolling happens, thus preventing shaking and
|
before actual scrolling happens, thus preventing shaking and
|
||||||
@@ -236,7 +237,8 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
|
|||||||
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 6;
|
z-index: 6;
|
||||||
display: none; }
|
display: none;
|
||||||
|
outline: none; }
|
||||||
|
|
||||||
.CodeMirror-vscrollbar {
|
.CodeMirror-vscrollbar {
|
||||||
right: 0;
|
right: 0;
|
||||||
@@ -270,7 +272,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
margin-bottom: -30px; }
|
margin-bottom: -50px; }
|
||||||
|
|
||||||
.CodeMirror-gutter-wrapper {
|
.CodeMirror-gutter-wrapper {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -300,7 +302,8 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
|
|||||||
min-height: 1px;
|
min-height: 1px;
|
||||||
/* prevents collapsing before first draw */ }
|
/* prevents collapsing before first draw */ }
|
||||||
|
|
||||||
.CodeMirror pre {
|
.CodeMirror pre.CodeMirror-line,
|
||||||
|
.CodeMirror pre.CodeMirror-line-like {
|
||||||
/* Reset some styles that the rest of the page might have set */
|
/* Reset some styles that the rest of the page might have set */
|
||||||
-moz-border-radius: 0;
|
-moz-border-radius: 0;
|
||||||
-webkit-border-radius: 0;
|
-webkit-border-radius: 0;
|
||||||
@@ -321,7 +324,8 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
|
|||||||
-webkit-font-variant-ligatures: contextual;
|
-webkit-font-variant-ligatures: contextual;
|
||||||
font-variant-ligatures: contextual; }
|
font-variant-ligatures: contextual; }
|
||||||
|
|
||||||
.CodeMirror-wrap pre {
|
.CodeMirror-wrap pre.CodeMirror-line,
|
||||||
|
.CodeMirror-wrap pre.CodeMirror-line-like {
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
word-break: normal; }
|
word-break: normal; }
|
||||||
@@ -1479,6 +1483,16 @@ span.CodeMirror-selectedtext {
|
|||||||
.cm-s-darcula span.cm-special {
|
.cm-s-darcula span.cm-special {
|
||||||
color: #FF9E59; }
|
color: #FF9E59; }
|
||||||
|
|
||||||
|
.cm-s-darcula span.cm-matchhighlight {
|
||||||
|
color: #FFFFFF;
|
||||||
|
background-color: rgba(50, 89, 48, 0.7);
|
||||||
|
font-weight: normal; }
|
||||||
|
|
||||||
|
.cm-s-darcula span.cm-searching {
|
||||||
|
color: #FFFFFF;
|
||||||
|
background-color: rgba(61, 115, 59, 0.7);
|
||||||
|
font-weight: normal; }
|
||||||
|
|
||||||
.cm-s-darcula .CodeMirror-cursor {
|
.cm-s-darcula .CodeMirror-cursor {
|
||||||
border-left: 1px solid #A9B7C6; }
|
border-left: 1px solid #A9B7C6; }
|
||||||
|
|
||||||
@@ -2510,7 +2524,7 @@ Ported to CodeMirror by Peter Kroon
|
|||||||
color: #999; }
|
color: #999; }
|
||||||
|
|
||||||
.cm-s-lesser-dark span.cm-link {
|
.cm-s-lesser-dark span.cm-link {
|
||||||
color: #00c; }
|
color: #7070E6; }
|
||||||
|
|
||||||
.cm-s-lesser-dark span.cm-error {
|
.cm-s-lesser-dark span.cm-error {
|
||||||
color: #9d1e15; }
|
color: #9d1e15; }
|
||||||
@@ -2766,103 +2780,105 @@ Ported to CodeMirror by Peter Kroon
|
|||||||
color: white !important; }
|
color: white !important; }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Name: material
|
||||||
Name: material
|
Author: Mattia Astorino (http://github.com/equinusocio)
|
||||||
Author: Michael Kaminsky (http://github.com/mkaminsky11)
|
Website: https://material-theme.site/
|
||||||
|
|
||||||
Original material color scheme by Mattia Astorino (https://github.com/equinusocio/material-theme)
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
.cm-s-material.CodeMirror {
|
.cm-s-material.CodeMirror {
|
||||||
background-color: #263238;
|
background-color: #263238;
|
||||||
color: #e9eded; }
|
color: #EEFFFF; }
|
||||||
|
|
||||||
.cm-s-material .CodeMirror-gutters {
|
.cm-s-material .CodeMirror-gutters {
|
||||||
background: #263238;
|
background: #263238;
|
||||||
color: #537f7e;
|
color: #546E7A;
|
||||||
border: none; }
|
border: none; }
|
||||||
|
|
||||||
.cm-s-material .CodeMirror-guttermarker, .cm-s-material .CodeMirror-guttermarker-subtle, .cm-s-material .CodeMirror-linenumber {
|
.cm-s-material .CodeMirror-guttermarker,
|
||||||
color: #537f7e; }
|
.cm-s-material .CodeMirror-guttermarker-subtle,
|
||||||
|
.cm-s-material .CodeMirror-linenumber {
|
||||||
|
color: #546E7A; }
|
||||||
|
|
||||||
.cm-s-material .CodeMirror-cursor {
|
.cm-s-material .CodeMirror-cursor {
|
||||||
border-left: 1px solid #f8f8f0; }
|
border-left: 1px solid #FFCC00; }
|
||||||
|
|
||||||
.cm-s-material div.CodeMirror-selected {
|
.cm-s-material div.CodeMirror-selected {
|
||||||
background: rgba(255, 255, 255, 0.15); }
|
background: rgba(128, 203, 196, 0.2); }
|
||||||
|
|
||||||
.cm-s-material.CodeMirror-focused div.CodeMirror-selected {
|
.cm-s-material.CodeMirror-focused div.CodeMirror-selected {
|
||||||
background: rgba(255, 255, 255, 0.1); }
|
background: rgba(128, 203, 196, 0.2); }
|
||||||
|
|
||||||
.cm-s-material .CodeMirror-line::selection, .cm-s-material .CodeMirror-line > span::selection, .cm-s-material .CodeMirror-line > span > span::selection {
|
.cm-s-material .CodeMirror-line::selection,
|
||||||
background: rgba(255, 255, 255, 0.1); }
|
.cm-s-material .CodeMirror-line > span::selection,
|
||||||
|
.cm-s-material .CodeMirror-line > span > span::selection {
|
||||||
|
background: rgba(128, 203, 196, 0.2); }
|
||||||
|
|
||||||
.cm-s-material .CodeMirror-line::-moz-selection, .cm-s-material .CodeMirror-line > span::-moz-selection, .cm-s-material .CodeMirror-line > span > span::-moz-selection {
|
.cm-s-material .CodeMirror-line::-moz-selection,
|
||||||
background: rgba(255, 255, 255, 0.1); }
|
.cm-s-material .CodeMirror-line > span::-moz-selection,
|
||||||
|
.cm-s-material .CodeMirror-line > span > span::-moz-selection {
|
||||||
|
background: rgba(128, 203, 196, 0.2); }
|
||||||
|
|
||||||
.cm-s-material .CodeMirror-activeline-background {
|
.cm-s-material .CodeMirror-activeline-background {
|
||||||
background: rgba(0, 0, 0, 0); }
|
background: rgba(0, 0, 0, 0.5); }
|
||||||
|
|
||||||
.cm-s-material .cm-keyword {
|
.cm-s-material .cm-keyword {
|
||||||
color: #c792ea; }
|
color: #C792EA; }
|
||||||
|
|
||||||
.cm-s-material .cm-operator {
|
.cm-s-material .cm-operator {
|
||||||
color: #e9eded; }
|
color: #89DDFF; }
|
||||||
|
|
||||||
.cm-s-material .cm-variable-2 {
|
.cm-s-material .cm-variable-2 {
|
||||||
color: #80CBC4; }
|
color: #EEFFFF; }
|
||||||
|
|
||||||
.cm-s-material .cm-variable-3, .cm-s-material .cm-type {
|
.cm-s-material .cm-variable-3,
|
||||||
color: #82B1FF; }
|
.cm-s-material .cm-type {
|
||||||
|
color: #f07178; }
|
||||||
|
|
||||||
.cm-s-material .cm-builtin {
|
.cm-s-material .cm-builtin {
|
||||||
color: #DECB6B; }
|
color: #FFCB6B; }
|
||||||
|
|
||||||
.cm-s-material .cm-atom {
|
.cm-s-material .cm-atom {
|
||||||
color: #F77669; }
|
color: #F78C6C; }
|
||||||
|
|
||||||
.cm-s-material .cm-number {
|
.cm-s-material .cm-number {
|
||||||
color: #F77669; }
|
color: #FF5370; }
|
||||||
|
|
||||||
.cm-s-material .cm-def {
|
.cm-s-material .cm-def {
|
||||||
color: #e9eded; }
|
color: #82AAFF; }
|
||||||
|
|
||||||
.cm-s-material .cm-string {
|
.cm-s-material .cm-string {
|
||||||
color: #C3E88D; }
|
color: #C3E88D; }
|
||||||
|
|
||||||
.cm-s-material .cm-string-2 {
|
.cm-s-material .cm-string-2 {
|
||||||
color: #80CBC4; }
|
color: #f07178; }
|
||||||
|
|
||||||
.cm-s-material .cm-comment {
|
.cm-s-material .cm-comment {
|
||||||
color: #546E7A; }
|
color: #546E7A; }
|
||||||
|
|
||||||
.cm-s-material .cm-variable {
|
.cm-s-material .cm-variable {
|
||||||
color: #82B1FF; }
|
color: #f07178; }
|
||||||
|
|
||||||
.cm-s-material .cm-tag {
|
.cm-s-material .cm-tag {
|
||||||
color: #80CBC4; }
|
color: #FF5370; }
|
||||||
|
|
||||||
.cm-s-material .cm-meta {
|
.cm-s-material .cm-meta {
|
||||||
color: #80CBC4; }
|
|
||||||
|
|
||||||
.cm-s-material .cm-attribute {
|
|
||||||
color: #FFCB6B; }
|
color: #FFCB6B; }
|
||||||
|
|
||||||
|
.cm-s-material .cm-attribute {
|
||||||
|
color: #C792EA; }
|
||||||
|
|
||||||
.cm-s-material .cm-property {
|
.cm-s-material .cm-property {
|
||||||
color: #80CBAE; }
|
color: #C792EA; }
|
||||||
|
|
||||||
.cm-s-material .cm-qualifier {
|
.cm-s-material .cm-qualifier {
|
||||||
color: #DECB6B; }
|
color: #DECB6B; }
|
||||||
|
|
||||||
.cm-s-material .cm-variable-3, .cm-s-material .cm-type {
|
.cm-s-material .cm-variable-3,
|
||||||
|
.cm-s-material .cm-type {
|
||||||
color: #DECB6B; }
|
color: #DECB6B; }
|
||||||
|
|
||||||
.cm-s-material .cm-tag {
|
|
||||||
color: #ff5370; }
|
|
||||||
|
|
||||||
.cm-s-material .cm-error {
|
.cm-s-material .cm-error {
|
||||||
color: white;
|
color: white;
|
||||||
background-color: #EC5F67; }
|
background-color: #FF5370; }
|
||||||
|
|
||||||
.cm-s-material .CodeMirror-matchingbracket {
|
.cm-s-material .CodeMirror-matchingbracket {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
@@ -3074,13 +3090,6 @@ div.cm-s-mdn-like span.CodeMirror-matchingbracket {
|
|||||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFcAAAAyCAYAAAAp8UeFAAAHvklEQVR42s2b63bcNgyEQZCSHCdt2vd/0tWF7I+Q6XgMXiTtuvU5Pl57ZQKkKHzEAOtF5KeIJBGJ8uvL599FRFREZhFx8DeXv8trn68RuGaC8TRfo3SNp9dlDDHedyLyTUTeRWStXKPZrjtpZxaRw5hPqozRs1N8/enzIiQRWcCgy4MUA0f+XWliDhyL8Lfyvx7ei/Ae3iQFHyw7U/59pQVIMEEPEz0G7XiwdRjzSfC3UTtz9vchIntxvry5iMgfIhJoEflOz2CQr3F5h/HfeFe+GTdLaKcu9L8LTeQb/R/7GgbsfKedyNdoHsN31uRPWrfZ5wsj/NzzRQHuToIdU3ahwnsKPxXCjJITuOsi7XLc7SG/v5GdALs7wf8JjTFiB5+QvTEfRyGOfX3Lrx8wxyQi3sNq46O7QahQiCsRFgqddjBouVEHOKDgXAQHD9gJCr5sMKkEdjwsarG/ww3BMHBU7OBjXnzdyY7SfCxf5/z6ATccrwlKuwC/jhznnPF4CgVzhhVf4xp2EixcBActO75iZ8/fM9zAs2OMzKdslgXWJ9XG8PQoOAMA5fGcsvORgv0doBXyHrCwfLJAOwo71QLNkb8n2Pl6EWiR7OCibtkPaz4Kc/0NNAze2gju3zOwekALDaCFPI5vjPFmgGY5AZqyGEvH1x7QfIb8YtxMnA/b+QQ0aQDAwc6JMFg8CbQZ4qoYEEHbRwNojuK3EHwd7VALSgq+MNDKzfT58T8qdpADrgW0GmgcAS1lhzztJmkAzcPNOQbsWEALBDSlMKUG0Eq4CLAQWvEVQ9WU57gZJwZtgPO3r9oBTQ9WO8TjqXINx8R0EYpiZEUWOF3FxkbJkgU9B2f41YBrIj5ZfsQa0M5kTgiAAqM3ShXLgu8XMqcrQBvJ0CL5pnTsfMB13oB8athpAq2XOQmcGmoACCLydx7nToa23ATaSIY2ichfOdPTGxlasXMLaL0MLZAOwAKIM+y8CmicobGdCcbbK9DzN+yYGVoNNI5iUKTMyYOjPse4A8SM1MmcXgU0toOq1yO/v8FOxlASyc7TgeYaAMBJHcY1CcCwGI/TK4AmDbDyKYBBtFUkRwto8gygiQEaByFgJ00BH2M8JWwQS1nafDXQCidWyOI8AcjDCSjCLk8ngObuAm3JAHAdubAmOaK06V8MNEsKPJOhobSprwQa6gD7DclRQdqcwL4zxqgBrQcabUiBLclRDKAlWp+etPkBaNMA0AKlrHwTdEByZAA4GM+SNluSY6wAzcMNewxmgig5Ks0nkrSpBvSaQHMdKTBAnLojOdYyGpQ254602ZILPdTD1hdlggdIm74jbTp8vDwF5ZYUeLWGJpWsh6XNyXgcYwVoJQTEhhTYkxzZjiU5npU2TaB979TQehlaAVq4kaGpiPwwwLkYUuBbQwocyQTv1tA0+1UFWoJF3iv1oq+qoSk8EQdJmwHkziIF7oOZk14EGitibAdjLYYK78H5vZOhtWpoI0ATGHs0Q8OMb4Ey+2bU2UYztCtA0wFAs7TplGLRVQCcqaFdGSPCeTI1QNIC52iWNzof6Uib7xjEp07mNNoUYmVosVItHrHzRlLgBn9LFyRHaQCtVUMbtTNhoXWiTOO9k/V8BdAc1Oq0ArSQs6/5SU0hckNy9NnXqQY0PGYo5dWJ7nINaN6o958FWin27aBaWRka1r5myvLOAm0j30eBJqCxHLReVclxhxOEN2JfDWjxBtAC7MIH1fVaGdoOp4qJYDgKtKPSFNID2gSnGldrCqkFZ+5UeQXQBIRrSwocbdZYQT/2LwRahBPBXoHrB8nxaGROST62DKUbQOMMzZIC9abkuELfQzQALWTnDNAm8KHWFOJgJ5+SHIvTPcmx1xQyZRhNL5Qci689aXMEaN/uNIWkEwDAvFpOZmgsBaaGnbs1NPa1Jm32gBZAIh1pCtG7TSH4aE0y1uVY4uqoFPisGlpP2rSA5qTecWn5agK6BzSpgAyD+wFaqhnYoSZ1Vwr8CmlTQbrcO3ZaX0NAEyMbYaAlyquFoLKK3SPby9CeVUPThrSJmkCAE0CrKUQadi4DrdSlWhmah0YL9z9vClH59YGbHx1J8VZTyAjQepJjmXwAKTDQI3omc3p1U4gDUf6RfcdYfrUp5ClAi2J3Ba6UOXGo+K+bQrjjssitG2SJzshaLwMtXgRagUNpYYoVkMSBLM+9GGiJZMvduG6DRZ4qc04DMPtQQxOjEtACmhO7K1AbNbQDEggZyJwscFpAGwENhoBeUwh3bWolhe8BTYVKxQEWrSUn/uhcM5KhvUu/+eQu0Lzhi+VrK0PrZZNDQKs9cpYUuFYgMVpD4/NxenJTiMCNqdUEUf1qZWjppLT5qSkkUZbCwkbZMSuVnu80hfSkzRbQeqCZSAh6huR4VtoM2gHAlLf72smuWgE+VV7XpE25Ab2WFDgyhnSuKbs4GuGzCjR+tIoUuMFg3kgcWKLTwRqanJQ2W00hAsenfaApRC42hbCvK1SlE0HtE9BGgneJO+ELamitD1YjjOYnNYVcraGhtKkW0EqVVeDx733I2NH581k1NNxNLG0i0IJ8/NjVaOZ0tYZ2Vtr0Xv7tPV3hkWp9EFkgS/J0vosngTaSoaG06WHi+xObQkaAdlbanP8B2+2l0f90LmUAAAAASUVORK5CYII=); }
|
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFcAAAAyCAYAAAAp8UeFAAAHvklEQVR42s2b63bcNgyEQZCSHCdt2vd/0tWF7I+Q6XgMXiTtuvU5Pl57ZQKkKHzEAOtF5KeIJBGJ8uvL599FRFREZhFx8DeXv8trn68RuGaC8TRfo3SNp9dlDDHedyLyTUTeRWStXKPZrjtpZxaRw5hPqozRs1N8/enzIiQRWcCgy4MUA0f+XWliDhyL8Lfyvx7ei/Ae3iQFHyw7U/59pQVIMEEPEz0G7XiwdRjzSfC3UTtz9vchIntxvry5iMgfIhJoEflOz2CQr3F5h/HfeFe+GTdLaKcu9L8LTeQb/R/7GgbsfKedyNdoHsN31uRPWrfZ5wsj/NzzRQHuToIdU3ahwnsKPxXCjJITuOsi7XLc7SG/v5GdALs7wf8JjTFiB5+QvTEfRyGOfX3Lrx8wxyQi3sNq46O7QahQiCsRFgqddjBouVEHOKDgXAQHD9gJCr5sMKkEdjwsarG/ww3BMHBU7OBjXnzdyY7SfCxf5/z6ATccrwlKuwC/jhznnPF4CgVzhhVf4xp2EixcBActO75iZ8/fM9zAs2OMzKdslgXWJ9XG8PQoOAMA5fGcsvORgv0doBXyHrCwfLJAOwo71QLNkb8n2Pl6EWiR7OCibtkPaz4Kc/0NNAze2gju3zOwekALDaCFPI5vjPFmgGY5AZqyGEvH1x7QfIb8YtxMnA/b+QQ0aQDAwc6JMFg8CbQZ4qoYEEHbRwNojuK3EHwd7VALSgq+MNDKzfT58T8qdpADrgW0GmgcAS1lhzztJmkAzcPNOQbsWEALBDSlMKUG0Eq4CLAQWvEVQ9WU57gZJwZtgPO3r9oBTQ9WO8TjqXINx8R0EYpiZEUWOF3FxkbJkgU9B2f41YBrIj5ZfsQa0M5kTgiAAqM3ShXLgu8XMqcrQBvJ0CL5pnTsfMB13oB8athpAq2XOQmcGmoACCLydx7nToa23ATaSIY2ichfOdPTGxlasXMLaL0MLZAOwAKIM+y8CmicobGdCcbbK9DzN+yYGVoNNI5iUKTMyYOjPse4A8SM1MmcXgU0toOq1yO/v8FOxlASyc7TgeYaAMBJHcY1CcCwGI/TK4AmDbDyKYBBtFUkRwto8gygiQEaByFgJ00BH2M8JWwQS1nafDXQCidWyOI8AcjDCSjCLk8ngObuAm3JAHAdubAmOaK06V8MNEsKPJOhobSprwQa6gD7DclRQdqcwL4zxqgBrQcabUiBLclRDKAlWp+etPkBaNMA0AKlrHwTdEByZAA4GM+SNluSY6wAzcMNewxmgig5Ks0nkrSpBvSaQHMdKTBAnLojOdYyGpQ254602ZILPdTD1hdlggdIm74jbTp8vDwF5ZYUeLWGJpWsh6XNyXgcYwVoJQTEhhTYkxzZjiU5npU2TaB979TQehlaAVq4kaGpiPwwwLkYUuBbQwocyQTv1tA0+1UFWoJF3iv1oq+qoSk8EQdJmwHkziIF7oOZk14EGitibAdjLYYK78H5vZOhtWpoI0ATGHs0Q8OMb4Ey+2bU2UYztCtA0wFAs7TplGLRVQCcqaFdGSPCeTI1QNIC52iWNzof6Uib7xjEp07mNNoUYmVosVItHrHzRlLgBn9LFyRHaQCtVUMbtTNhoXWiTOO9k/V8BdAc1Oq0ArSQs6/5SU0hckNy9NnXqQY0PGYo5dWJ7nINaN6o958FWin27aBaWRka1r5myvLOAm0j30eBJqCxHLReVclxhxOEN2JfDWjxBtAC7MIH1fVaGdoOp4qJYDgKtKPSFNID2gSnGldrCqkFZ+5UeQXQBIRrSwocbdZYQT/2LwRahBPBXoHrB8nxaGROST62DKUbQOMMzZIC9abkuELfQzQALWTnDNAm8KHWFOJgJ5+SHIvTPcmx1xQyZRhNL5Qci689aXMEaN/uNIWkEwDAvFpOZmgsBaaGnbs1NPa1Jm32gBZAIh1pCtG7TSH4aE0y1uVY4uqoFPisGlpP2rSA5qTecWn5agK6BzSpgAyD+wFaqhnYoSZ1Vwr8CmlTQbrcO3ZaX0NAEyMbYaAlyquFoLKK3SPby9CeVUPThrSJmkCAE0CrKUQadi4DrdSlWhmah0YL9z9vClH59YGbHx1J8VZTyAjQepJjmXwAKTDQI3omc3p1U4gDUf6RfcdYfrUp5ClAi2J3Ba6UOXGo+K+bQrjjssitG2SJzshaLwMtXgRagUNpYYoVkMSBLM+9GGiJZMvduG6DRZ4qc04DMPtQQxOjEtACmhO7K1AbNbQDEggZyJwscFpAGwENhoBeUwh3bWolhe8BTYVKxQEWrSUn/uhcM5KhvUu/+eQu0Lzhi+VrK0PrZZNDQKs9cpYUuFYgMVpD4/NxenJTiMCNqdUEUf1qZWjppLT5qSkkUZbCwkbZMSuVnu80hfSkzRbQeqCZSAh6huR4VtoM2gHAlLf72smuWgE+VV7XpE25Ab2WFDgyhnSuKbs4GuGzCjR+tIoUuMFg3kgcWKLTwRqanJQ2W00hAsenfaApRC42hbCvK1SlE0HtE9BGgneJO+ELamitD1YjjOYnNYVcraGhtKkW0EqVVeDx733I2NH581k1NNxNLG0i0IJ8/NjVaOZ0tYZ2Vtr0Xv7tPV3hkWp9EFkgS/J0vosngTaSoaG06WHi+xObQkaAdlbanP8B2+2l0f90LmUAAAAASUVORK5CYII=); }
|
||||||
|
|
||||||
/* Based on the theme at http://bonsaiden.github.com/JavaScript-Garden */
|
/* Based on the theme at http://bonsaiden.github.com/JavaScript-Garden */
|
||||||
/*<!--match-->*/
|
|
||||||
.cm-s-midnight span.CodeMirror-matchhighlight {
|
|
||||||
background: #494949; }
|
|
||||||
|
|
||||||
.cm-s-midnight.CodeMirror-focused span.CodeMirror-matchhighlight {
|
|
||||||
background: #314D67 !important; }
|
|
||||||
|
|
||||||
/*<!--activeline-->*/
|
/*<!--activeline-->*/
|
||||||
.cm-s-midnight .CodeMirror-activeline-background {
|
.cm-s-midnight .CodeMirror-activeline-background {
|
||||||
background: #253540; }
|
background: #253540; }
|
||||||
@@ -3420,7 +3429,7 @@ div.cm-s-mdn-like span.CodeMirror-matchingbracket {
|
|||||||
background: #292A2B;
|
background: #292A2B;
|
||||||
color: #E6E6E6;
|
color: #E6E6E6;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
font-family: 'Operator Mono', 'Source Sans Pro', Menlo, Monaco, Consolas, Courier New, monospace; }
|
font-family: 'Operator Mono', 'Source Code Pro', Menlo, Monaco, Consolas, Courier New, monospace; }
|
||||||
|
|
||||||
.cm-s-panda-syntax .CodeMirror-cursor {
|
.cm-s-panda-syntax .CodeMirror-cursor {
|
||||||
border-color: #ff2c6d; }
|
border-color: #ff2c6d; }
|
||||||
@@ -5000,7 +5009,7 @@ http://ethanschoonover.com/solarized/img/solarized-palette.png
|
|||||||
color: #AEAEAE; }
|
color: #AEAEAE; }
|
||||||
|
|
||||||
.cm-s-vibrant-ink .cm-link {
|
.cm-s-vibrant-ink .cm-link {
|
||||||
color: blue; }
|
color: #5656F3; }
|
||||||
|
|
||||||
.cm-s-vibrant-ink .cm-error {
|
.cm-s-vibrant-ink .cm-error {
|
||||||
border-bottom: 1px solid red; }
|
border-bottom: 1px solid red; }
|
||||||
@@ -5305,7 +5314,7 @@ THE SOFTWARE.
|
|||||||
.cm-s-zenburn .CodeMirror-cursor {
|
.cm-s-zenburn .CodeMirror-cursor {
|
||||||
border-left: 1px solid white; }
|
border-left: 1px solid white; }
|
||||||
|
|
||||||
.cm-s-zenburn {
|
.cm-s-zenburn.CodeMirror {
|
||||||
background-color: #3f3f3f;
|
background-color: #3f3f3f;
|
||||||
color: #dcdccc; }
|
color: #dcdccc; }
|
||||||
|
|
||||||
@@ -5487,17 +5496,17 @@ li.CodeMirror-hint-active {
|
|||||||
-o-transition: opacity .4s;
|
-o-transition: opacity .4s;
|
||||||
-ms-transition: opacity .4s; }
|
-ms-transition: opacity .4s; }
|
||||||
|
|
||||||
.CodeMirror-lint-mark-error, .CodeMirror-lint-mark-warning {
|
.CodeMirror-lint-mark {
|
||||||
background-position: left bottom;
|
background-position: left bottom;
|
||||||
background-repeat: repeat-x; }
|
background-repeat: repeat-x; }
|
||||||
|
|
||||||
.CodeMirror-lint-mark-error {
|
|
||||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg=="); }
|
|
||||||
|
|
||||||
.CodeMirror-lint-mark-warning {
|
.CodeMirror-lint-mark-warning {
|
||||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII="); }
|
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII="); }
|
||||||
|
|
||||||
.CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning {
|
.CodeMirror-lint-mark-error {
|
||||||
|
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg=="); }
|
||||||
|
|
||||||
|
.CodeMirror-lint-marker {
|
||||||
background-position: center center;
|
background-position: center center;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
@@ -5507,17 +5516,17 @@ li.CodeMirror-hint-active {
|
|||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
position: relative; }
|
position: relative; }
|
||||||
|
|
||||||
.CodeMirror-lint-message-error, .CodeMirror-lint-message-warning {
|
.CodeMirror-lint-message {
|
||||||
padding-left: 18px;
|
padding-left: 18px;
|
||||||
background-position: top left;
|
background-position: top left;
|
||||||
background-repeat: no-repeat; }
|
background-repeat: no-repeat; }
|
||||||
|
|
||||||
.CodeMirror-lint-marker-error, .CodeMirror-lint-message-error {
|
|
||||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII="); }
|
|
||||||
|
|
||||||
.CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning {
|
.CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning {
|
||||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII="); }
|
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII="); }
|
||||||
|
|
||||||
|
.CodeMirror-lint-marker-error, .CodeMirror-lint-message-error {
|
||||||
|
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII="); }
|
||||||
|
|
||||||
.CodeMirror-lint-marker-multiple {
|
.CodeMirror-lint-marker-multiple {
|
||||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC");
|
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC");
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ Duplicate Sleeves. It is a numeral value between 1 and 100, and it affects how m
|
|||||||
is earned when the sleeve is performing a task.
|
is earned when the sleeve is performing a task.
|
||||||
|
|
||||||
Let N be the sleeve's synchronization. When the sleeve earns experience by performing
|
Let N be the sleeve's synchronization. When the sleeve earns experience by performing
|
||||||
a task, both the sleeve and the player's original host consciousness of N% of the
|
a task, both the sleeve and the player's original host consciousness gain N% of the
|
||||||
amount of experience normally earned by the task. All of the player's other sleeves
|
amount of experience normally earned by the task. All of the player's other sleeves
|
||||||
earn ((N/100)^2 * 100)% of the experience.
|
earn ((N/100)^2 * 100)% of the experience.
|
||||||
|
|
||||||
|
|||||||
@@ -15,73 +15,53 @@ of level 3.
|
|||||||
List of all Source-Files
|
List of all Source-Files
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-1: Source Genesis | * Lets the player start with 32 GB of RAM on home computer |
|
| BitNode-1: Source Genesis | * Lets the player start with 32 GB of RAM on home computer. |
|
||||||
| | * Increases all of the player's multipliers by 16%/24%/28% |
|
| | * Increases all of the player's multipliers by 16%/24%/28%. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-2: Rise of the Underworld | * Increases the player's crime success rate, crime money, and |
|
| BitNode-2: Rise of the Underworld | * Lets the player create Gangs in other BitNodes (although some |
|
||||||
| | charisma multipliers by 24%/36%/42% |
|
| | BitNodes will disable this mechanic). |
|
||||||
|
| | * Increases the player's crime success rate, crime money, and |
|
||||||
|
| | charisma multipliers by 24%/36%/42%. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-3: Corporatocracy | * Lets the player create Corporations in other BitNodes (although some |
|
| BitNode-3: Corporatocracy | * Lets the player create Corporations in other BitNodes (although some |
|
||||||
| | BitNodes will disable this mechanic) |
|
| | BitNodes will disable this mechanic). |
|
||||||
| | * Increases the player's charisma and company salary multipliers by 8%/12%/14% |
|
| | * Increases the player's charisma and company salary multipliers by 8%/12%/14%. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-4: The Singularity | * Lets the player access and use Netscript Singularity Functions in other BitNodes. |
|
| BitNode-4: The Singularity | * Lets the player access and use Netscript Singularity Functions in other BitNodes. |
|
||||||
| | * Each level of this Source-File opens up more of the Singularity Functions to use |
|
| | * Each level of this Source-File opens up more of the Singularity Functions to use. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-5: Artificial Intelligence | * Unlocks :ref:`gameplay_intelligence` |
|
| BitNode-5: Artificial Intelligence | * Unlocks :ref:`gameplay_intelligence`. |
|
||||||
| | * Unlocks :js:func:`getBitNodeMultipliers` Netscript function |
|
| | * Unlocks :js:func:`getBitNodeMultipliers` and :js:func:`getServer` |
|
||||||
| | * Increases all of the player's hacking-related multipliers by 8%/12%/14% |
|
| | Netscript functions, as well as :ref:`netscriptformulas`. |
|
||||||
|
| | * Increases all of the player's hacking-related multipliers by 8%/12%/14%. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-6: Bladeburners | * Unlocks the Bladeburner feature in other BitNodes |
|
| BitNode-6: Bladeburners | * Unlocks the Bladeburner feature in other BitNodes. |
|
||||||
| | * Increases all of the player's level and experience gain rate multipliers for |
|
| | * Increases all of the player's level and experience gain rate multipliers for |
|
||||||
| | combat stats by 8%/12%/14% |
|
| | combat stats by 8%/12%/14%. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-7: Bladeburners 2079 | * Allows the player to access the :ref:`netscript_bladeburnerapi` in other BitNodes |
|
| BitNode-7: Bladeburners 2079 | * Allows the player to access the :ref:`netscript_bladeburnerapi` in other BitNodes.|
|
||||||
| | * Increases all of the player's Bladeburner multipliers by 8%/12%/14% |
|
| | * Increases all of the player's Bladeburner multipliers by 8%/12%/14%. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-8: Ghost of Wall Street | * Increases the player's hacking growth multiplier by 12%/18%/21% |
|
| BitNode-8: Ghost of Wall Street | * Increases the player's hacking growth multiplier by 12%/18%/21%. |
|
||||||
| | * Level 1 grants permanent access to :ref:`WSE <gameplay_stock_market>` and |
|
| | * Level 1 grants permanent access to :ref:`WSE <gameplay_stock_market>` and |
|
||||||
| | :ref:`TIX API <netscript_tixapi>` |
|
| | :ref:`TIX API <netscript_tixapi>`. |
|
||||||
| | * Level 2 grants permanent access to shorting stocks |
|
| | * Level 2 grants permanent access to shorting stocks. |
|
||||||
| | * Level 3 grants permanent access to use limit/stop orders |
|
| | * Level 3 grants permanent access to use limit/stop orders. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-9: Coming Soon | |
|
| BitNode-9: Hacktocracy | * Level 1 permanently unlocks the Hacknet Server in other BitNodes. |
|
||||||
|
| | * Level 2 lets the player start with 128 GB of RAM on home computer. |
|
||||||
|
| | * Level 3 grants a highly-upgraded Hacknet Server when entering a new BitNode (it |
|
||||||
|
| | will be lost after installing augments). |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-10: Digital Carbon | * Each level of this grants a Duplicate Sleeve. |
|
| BitNode-10: Digital Carbon | * Each level of this grants a Duplicate Sleeve. |
|
||||||
| | * Allows the player to access the :ref:`netscript_sleeveapi` in other BitNodes |
|
| | * Allows the player to access the :ref:`netscript_sleeveapi` in other BitNodes. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-11: The Big Crash | * Company favor increases both the player's salary and reputation gain at that |
|
| BitNode-11: The Big Crash | * Company favor increases both the player's salary and reputation gain at that |
|
||||||
| | company by 1% per favor (rather than just the reputation gain) |
|
| | company by 1% per favor (rather than just the reputation gain). |
|
||||||
| | * Increases the player's company salary and reputation gain multipliers by |
|
| | * Increases the player's company salary and reputation gain multipliers by |
|
||||||
| | 24%/36%/42% |
|
| | 32%/48%/56%. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-12: The Recursion | * There is no maximum level for this Source-File |
|
| BitNode-12: The Recursion | * There is no maximum level for this Source-File. |
|
||||||
| | * Each level of this Source-File increases all of the player's multipliers by 1%. |
|
| | * Lets the player start with Neuroflux Governor equal to the level of this |
|
||||||
| | * This affect is multiplicative with itself. This means that level N of this |
|
| | Source-File. |
|
||||||
| | Source-File will result in a multiplier of 1.01^N (or 0.99^N for multipliers |
|
|
||||||
| | that decrease) |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -124,6 +124,6 @@ Gain experience by:
|
|||||||
|
|
||||||
* Committing certain crimes
|
* Committing certain crimes
|
||||||
* Infiltration
|
* Infiltration
|
||||||
* Working out at a gym
|
* Studying at a university
|
||||||
* Working a relevant job at a company
|
* Working a relevant job at a company
|
||||||
* Doing Field work for a Faction
|
* Doing Field work for a Faction
|
||||||
|
|||||||
+205
-4
@@ -3,8 +3,209 @@
|
|||||||
Changelog
|
Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
v0.52.3 - 2021-07-15 Gangs were OP (hydroflame)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
v0.51.8 - 2021-05-07 It was there all along (hydroflame)
|
** Gang **
|
||||||
|
|
||||||
|
* Significant rework. Ascension is now based on exp gained.
|
||||||
|
* All upgrades give exp bonuses.
|
||||||
|
* Maximum gang members reduced to 12.
|
||||||
|
* Respect required to recruit sharply increased.
|
||||||
|
* Rewritten in React, the UI should be smoother and less laggy now.
|
||||||
|
|
||||||
|
** Infiltration **
|
||||||
|
|
||||||
|
* Now isTrusted protected.
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* Many UI element are now "noselect" protected.
|
||||||
|
* Fixed an issue where you could join the same faction twice via script and
|
||||||
|
UI simultaneously.
|
||||||
|
* Factions list screen converted to React.
|
||||||
|
|
||||||
|
v0.52.2 - 2021-07-15 Oh yeah, BN11 is a thing (drunk hydroflame tbh)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
** Source-Files **
|
||||||
|
|
||||||
|
* Source-File 11 now also provides a small reduction to the price increase
|
||||||
|
multiplier.
|
||||||
|
|
||||||
|
** Augmentations **
|
||||||
|
|
||||||
|
* New Augmentation offered by Aevum, themed around 777 and offers some basic
|
||||||
|
programs.
|
||||||
|
* Augmentation descriptions are now more concise and consistent.
|
||||||
|
|
||||||
|
v0.52.1 - 2021-07-10 bugfixing (hydroflame & community)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Fix game crash/corruption when quitting a job while working for it unfocused.
|
||||||
|
* Fix typo in corporation Market Data.
|
||||||
|
* Fix typo in docs for hackPercent.
|
||||||
|
* The tutorial encourages the players to connect to home before creating `n00dles.script`
|
||||||
|
* The dark web `buy` command now accepts `-1` (one) and `--list` instead of just
|
||||||
|
`-l`. Helps some confused players.
|
||||||
|
* Character overview screen no longer hidden on the corporation screen.
|
||||||
|
* Infiltration difficulty display is now more explicit (It's a big arrow instead
|
||||||
|
of just one word.)
|
||||||
|
* Fix wrong ram value in tutorial. (@MageKing17)
|
||||||
|
* Plenty of augmentation description cleanup (@Kwazygloo)
|
||||||
|
* Plenty of typo/description fixed (@MageKing17)
|
||||||
|
* Cleanup description of singularity function on readthedocs (@PurePandemonium)
|
||||||
|
* Fix bug when autolinking a server while backdooring (@schroederIT)
|
||||||
|
|
||||||
|
v0.52.0 - 2021-06-13 Infiltration 2.0 (hydroflame & community)
|
||||||
|
--------------------------------------------------------------
|
||||||
|
|
||||||
|
**Infiltration**
|
||||||
|
|
||||||
|
* Completely reworked. Not the same mechanic at all.
|
||||||
|
|
||||||
|
**Terminal**
|
||||||
|
|
||||||
|
* tail is smarter. It automatically assume the only possible options in some
|
||||||
|
cases.
|
||||||
|
|
||||||
|
**Intelligence**
|
||||||
|
|
||||||
|
* Now available when starting BN5 instead of after beating it for the first
|
||||||
|
time.
|
||||||
|
* Nerf the effect of intelligence on reputation gain.
|
||||||
|
|
||||||
|
**Augmentation**
|
||||||
|
|
||||||
|
* Added a new augmentation, the 'Unstable Circadian Modulator', whose
|
||||||
|
gimmick is that its stats are randomized every hour.
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'getPlayer' is not a singularity function anymore.
|
||||||
|
* 'hacknetNodes.constants' returns the correct values.
|
||||||
|
* 'createGang' has been added.
|
||||||
|
* 'inGang' has been added.
|
||||||
|
|
||||||
|
**Tutorial**
|
||||||
|
|
||||||
|
* Updated the tutorial. Made it look cleaner, fixed typos, etc.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Fix many typos in literature (@kwazygloo)
|
||||||
|
* Fix being able to unfocus from gym and university.
|
||||||
|
* Fix being able to do hacking missions while unfocused.
|
||||||
|
* Fix many typos in Augmentation descriptions (@kwazygloo)
|
||||||
|
* More numbers handle absurdly large values. (@Tesseract1234567890)
|
||||||
|
* Fix many typos (@Tesseract1234567890)
|
||||||
|
* Fixed an issue that caused a UI desync when sleeves were set to workout
|
||||||
|
stats other than strength at the gym.
|
||||||
|
* Fix weird alignment of donation text box and button. (@Tesseract1234567890)
|
||||||
|
* Fixed an issue where reputation could be transfered to new jobs when unfocused.
|
||||||
|
* Empty stack traces should no longer appear.
|
||||||
|
* Purchasing anything with Infinity money doesn't result in NaN.
|
||||||
|
|
||||||
|
v0.51.10 - 2021-05-31 Focus Mark, Focus! (hydroflame)
|
||||||
|
-----------------------------------------------------
|
||||||
|
|
||||||
|
**Focus**
|
||||||
|
|
||||||
|
* You can now use the terminal and write scripts while working for factions
|
||||||
|
but you will gain reputation at a slower rate.
|
||||||
|
|
||||||
|
**SF -1**
|
||||||
|
|
||||||
|
* Added a new SF -1: Bypass
|
||||||
|
|
||||||
|
**Gang**
|
||||||
|
|
||||||
|
* "Vigilante justice"/"Ethical hacking" now reduces wanted level by a very
|
||||||
|
small percentage as well an absolute value.
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'tFormat' now has a second argument to display with millisecond precision.
|
||||||
|
* 'purchaseSleeveAug' can no longer purchase the same aug over and over for
|
||||||
|
the same sleeve.
|
||||||
|
* fix typo in logging for 'getServerSecurityLevel'
|
||||||
|
* Fixed some weird issue where very rarely you would get 0 exp from 'grow'
|
||||||
|
* 'getActionTime' now returns correct values for Diplomacy and Regeneration.
|
||||||
|
|
||||||
|
**Corporations**
|
||||||
|
|
||||||
|
* Fixed an exploit where you could get nearly infinite corporation funds by
|
||||||
|
entering negative numbers in textboxes.
|
||||||
|
* Fixed an exploit where shares could be sold again by clicking the
|
||||||
|
"sell share" button via scripts.
|
||||||
|
|
||||||
|
**Documentation**
|
||||||
|
|
||||||
|
* typo fix in purchaseTor
|
||||||
|
* typo fix in basicgameplay/stats
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Very large number will no longer appear as "$NaNt"
|
||||||
|
* Hash capacity now displays in the "big number" format.
|
||||||
|
|
||||||
|
v0.51.9 - 2021-05-17 offline progress and exports! (hydroflame & community)
|
||||||
|
---------------------------------------------------------------
|
||||||
|
|
||||||
|
**Alias**
|
||||||
|
|
||||||
|
* several commands can be included in 1 alias. Recursive alias now work to
|
||||||
|
a depth of 10. (@Dawe)
|
||||||
|
|
||||||
|
**Offline**
|
||||||
|
|
||||||
|
* Offline money gain has been reworked (it is more generous)
|
||||||
|
* If you're not working anywhere and go offline the game will work for you
|
||||||
|
at all your factions evenly.
|
||||||
|
|
||||||
|
**Export**
|
||||||
|
|
||||||
|
* Exporting now gives +1 favor to all joined factions every 24h.
|
||||||
|
|
||||||
|
**Corp**
|
||||||
|
|
||||||
|
* Self-fund with an invalid name no longer takes away 150b anyway.
|
||||||
|
* Can no longer export negative amount
|
||||||
|
|
||||||
|
**Bladeburner**
|
||||||
|
|
||||||
|
* No longer waste overflowing time.
|
||||||
|
|
||||||
|
**Text Editors**
|
||||||
|
|
||||||
|
* All settings will now be saved and loaded correctly.
|
||||||
|
|
||||||
|
**Terminal**
|
||||||
|
|
||||||
|
* 'scan' now works for servers that are more than 21 character long.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* ls now correctly lists all files.
|
||||||
|
* importing auto save+reloads (@Dawe)
|
||||||
|
* Fix a bug where .fconf could not be created
|
||||||
|
* Fix formatting inconsistencies for some logs of netscript functions.
|
||||||
|
* Fix a bug where Cashroot starter kit would appear as [object Object] in
|
||||||
|
confirmation dialog.
|
||||||
|
* Fix some ram not displayed as 0.00GB
|
||||||
|
* Fix error message throw undefined variable error
|
||||||
|
* City hall now has some generic text if you can't create a corp yet.
|
||||||
|
* Deleting a file without extension now returns an appropriate error message.
|
||||||
|
* Fixed an issue where bladeburner would miscalculate the cost of hospitalization.
|
||||||
|
* It is now possible to suppress bladeburner "action stopped" popup.
|
||||||
|
* Updated several dependencies (big who cares, I know)
|
||||||
|
* ls no longer prints lingering newline.
|
||||||
|
* Money earned/spent by sleeves is now tracked under Character>Money
|
||||||
|
|
||||||
|
|
||||||
|
v0.51.8 - 2021-05-07 It was there all along (hydroflame & community)
|
||||||
--------------------------------------------------------
|
--------------------------------------------------------
|
||||||
|
|
||||||
**Servers**
|
**Servers**
|
||||||
@@ -60,8 +261,8 @@ v0.51.8 - 2021-05-07 It was there all along (hydroflame)
|
|||||||
* script income transfers to parent on death. This helps keep track of
|
* script income transfers to parent on death. This helps keep track of
|
||||||
income for scripts that spawn short lived scripts.
|
income for scripts that spawn short lived scripts.
|
||||||
|
|
||||||
v0.51.7 - 2021-04-28 n00dles
|
v0.51.7 - 2021-04-28 n00dles (hydroflame & community)
|
||||||
----------------------------
|
-----------------------------------------
|
||||||
|
|
||||||
**Tutorial servers**
|
**Tutorial servers**
|
||||||
|
|
||||||
@@ -118,7 +319,7 @@ v0.51.7 - 2021-04-28 n00dles
|
|||||||
* Faction invite text says "Decide later"/"Join!" instead of "No"/"Yes"
|
* Faction invite text says "Decide later"/"Join!" instead of "No"/"Yes"
|
||||||
|
|
||||||
|
|
||||||
v0.51.6 - 2021-04-28 Backdoor! (Community)
|
v0.51.6 - 2021-04-28 Backdoor! (hydroflame & community)
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
|
|
||||||
**Backdoor**
|
**Backdoor**
|
||||||
|
|||||||
+2
-2
@@ -64,9 +64,9 @@ documentation_title = '{0} Documentation'.format(project)
|
|||||||
# built documents.
|
# built documents.
|
||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = '0.51'
|
version = '0.52'
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = '0.51.8'
|
release = '0.52.3'
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
|
|||||||
@@ -5,13 +5,16 @@ getBitNodeMultipliers() Netscript Function
|
|||||||
|
|
||||||
:RAM cost: 4 GB
|
:RAM cost: 4 GB
|
||||||
|
|
||||||
Returns an object containing the current BitNode multipliers. This function
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
requires Source-File 5 in order to run. The multipliers are returned in
|
run this function.
|
||||||
decimal forms (e.g. 1.5 instead of 150%). The multipliers represent the
|
|
||||||
difference between the current BitNode and the original BitNode (BitNode-1).
|
Returns an object containing the current BitNode multipliers. The
|
||||||
For example, if the *CrimeMoney* multiplier has a value of 0.1, then that
|
multipliers are returned in decimal forms (e.g. 1.5 instead of 150%). The
|
||||||
means that committing crimes in the current BitNode will only give 10% of
|
multipliers represent the difference between the current BitNode and the
|
||||||
the money you would have received in BitNode-1.
|
original BitNode (BitNode-1). For example, if the *CrimeMoney* multiplier
|
||||||
|
has a value of 0.1, then that means that committing crimes in the current
|
||||||
|
BitNode will only give 10% of the money you would have received in
|
||||||
|
BitNode-1.
|
||||||
|
|
||||||
The structure of the returned object is subject to change as BitNode
|
The structure of the returned object is subject to change as BitNode
|
||||||
multipliers get added to the game. Refer to the `source code here
|
multipliers get added to the game. Refer to the `source code here
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ getServer() Netscript Function
|
|||||||
|
|
||||||
.. js:function:: getServer([hostname])
|
.. js:function:: getServer([hostname])
|
||||||
|
|
||||||
:RAM cost: 4 GB
|
:RAM cost: 2 GB
|
||||||
:param string hostname: Hostname of the server, defaults to host server.
|
:param string hostname: Hostname of the server, defaults to host server.
|
||||||
|
|
||||||
If you are not in BitNode-5, then you must have Source-File 5-1 in order to run this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to run this function.
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ brutessh() Netscript Function
|
|||||||
|
|
||||||
:param string hostname: Hostname of the target server.
|
:param string hostname: Hostname of the target server.
|
||||||
|
|
||||||
Runs the BruteSSH.exe program on the target server. BruteSSH.exe must exist
|
Runs the ``BruteSSH.exe`` program on the target server. ``BruteSSH.exe``
|
||||||
on your home computer.
|
must exist on your home computer.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
|
|||||||
@@ -9,9 +9,3 @@ disableLog() Netscript Function
|
|||||||
|
|
||||||
Disables logging for the given function. Logging can be disabled for
|
Disables logging for the given function. Logging can be disabled for
|
||||||
all functions by passing 'ALL' as the argument.
|
all functions by passing 'ALL' as the argument.
|
||||||
|
|
||||||
Note that this does not completely remove all logging functionality.
|
|
||||||
This only stops a function from logging when the function is successful. If
|
|
||||||
the function fails, it will still log the reason for failure.
|
|
||||||
|
|
||||||
Notable functions that cannot have their logs disabled: run, exec, exit
|
|
||||||
|
|||||||
@@ -19,9 +19,8 @@ exec() Netscript Function
|
|||||||
the :doc:`run<run>` function except that it can be used to run a script on any
|
the :doc:`run<run>` function except that it can be used to run a script on any
|
||||||
server, instead of just the current server.
|
server, instead of just the current server.
|
||||||
|
|
||||||
.. warning:: Running this function with a ``numThreads`` argument of 0 will return 0 without
|
.. warning:: Running this function with a ``numThreads`` argument of 0 or
|
||||||
running the script. However, running this function with a negative *numThreads*
|
less will cause a runtime error.
|
||||||
argument will cause a runtime error.
|
|
||||||
|
|
||||||
The simplest way to use the :doc:`exec<exec>` command is to call it with
|
The simplest way to use the :doc:`exec<exec>` command is to call it with
|
||||||
just the script name and the target server. The following example will try
|
just the script name and the target server. The following example will try
|
||||||
|
|||||||
@@ -6,3 +6,12 @@ exit() Netscript Function
|
|||||||
:RAM cost: 0 GB
|
:RAM cost: 0 GB
|
||||||
|
|
||||||
Terminates the current script immediately.
|
Terminates the current script immediately.
|
||||||
|
|
||||||
|
.. warning:: In :ref:`netscriptjs`, execution may continue past a call to
|
||||||
|
this function; while some game-related functions (e.g. those with an
|
||||||
|
``ns.`` prefix) will not function after this function has been called,
|
||||||
|
there might still be unintended behavior if you assume ``exit`` will
|
||||||
|
immediately halt execution, like it does in :ref:`netscript1`. To be
|
||||||
|
safe, you should probably ``return`` from the main function instead
|
||||||
|
of/in addition to calling ``ns.exit()`` when halting a NetscriptJS
|
||||||
|
script.
|
||||||
|
|||||||
@@ -7,17 +7,22 @@ flags() Netscript Function
|
|||||||
:param data array of pairs of strings: Flags definition.
|
:param data array of pairs of strings: Flags definition.
|
||||||
:returns: Object containing all the flags that were parsed or default.
|
:returns: Object containing all the flags that were parsed or default.
|
||||||
|
|
||||||
The flag definition is an array of pairs of values, the first value is the
|
This function allows for a more flexible way of parsing script arguments
|
||||||
name of the flag, the 2nd value is the default value for that flag.
|
than to just pass a fixed list in a fixed order. Options can be given
|
||||||
|
names, and passed in any order, while having defined default values.
|
||||||
|
|
||||||
|
The flag definition is an array of pairs of values: the first value is the
|
||||||
|
name of the flag, and the 2nd value is the default value for that flag.
|
||||||
|
|
||||||
The return object is a map containing flag names to the value. It also
|
The return object is a map containing flag names to the value. It also
|
||||||
contains the special field '_' which contains all arguments that were not flags.
|
contains the special field '_', which contains all arguments that were not
|
||||||
|
flags.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|
||||||
/* example.script
|
// example.script
|
||||||
var data = flags([
|
var data = flags([
|
||||||
['delay', 0], // a default number means this flag is a number
|
['delay', 0], // a default number means this flag is a number
|
||||||
['server', 'foodnstuff'], // a default string means this flag is a string
|
['server', 'foodnstuff'], // a default string means this flag is a string
|
||||||
@@ -25,16 +30,17 @@ flags() Netscript Function
|
|||||||
['help', false], // a default boolean means this flag is a boolean
|
['help', false], // a default boolean means this flag is a boolean
|
||||||
]);
|
]);
|
||||||
tprint(data);
|
tprint(data);
|
||||||
*/
|
/*
|
||||||
[home ~/]> run example.script
|
[home ~/]> run example.script
|
||||||
{"_":[],"delay":0,"server":"foodnstuff"}
|
{"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":false}
|
||||||
[home ~/]> run example.script --delay 3000
|
[home ~/]> run example.script --delay 3000
|
||||||
{"_":[],"server":"foodnstuff","delay":3000}
|
{"_":[],"server":"foodnstuff","exclude":[],"help":false,"delay":3000}
|
||||||
[home ~/]> run example.script --delay 3000 --server harakiri-sushi
|
[home ~/]> run example.script --delay 3000 --server harakiri-sushi
|
||||||
{"_":[],"delay":3000,"server":"harakiri-sushi"}
|
{"_":[],"exclude":[],"help":false,"delay":3000,"server":"harakiri-sushi"}
|
||||||
[home ~/]> run example.script --delay 3000 --server harakiri-sushi hello world
|
[home ~/]> run example.script --delay 3000 --server harakiri-sushi hello world
|
||||||
{"_":["hello","world"],"delay":3000,"server":"harakiri-sushi"}
|
{"_":["hello","world"],"exclude":[],"help":false,"delay":3000,"server":"harakiri-sushi"}
|
||||||
[home ~/]> run example.script --delay 3000 --server harakiri-sushi hello world --exclude a --exclude b
|
[home ~/]> run example.script --delay 3000 --server harakiri-sushi hello world --exclude a --exclude b
|
||||||
{"_":["hello","world"],"delay":3000,"server":"harakiri-sushi","exclude":["a","b"]}
|
{"_":["hello","world"],"help":false,"delay":3000,"server":"harakiri-sushi","exclude":["a","b"]}
|
||||||
[home ~/]> run example.script --help
|
[home ~/]> run example.script --help
|
||||||
{"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":true}
|
{"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":true}
|
||||||
|
*/
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ ftpcrack() Netscript Function
|
|||||||
Runs the ``FTPCrack.exe`` program on the target server. ``FTPCrack.exe``
|
Runs the ``FTPCrack.exe`` program on the target server. ``FTPCrack.exe``
|
||||||
must exist on your home computer.
|
must exist on your home computer.
|
||||||
|
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ getGrowTime() Netscript Function
|
|||||||
The function takes in an optional ``hackLvl`` parameter that can be
|
The function takes in an optional ``hackLvl`` parameter that can be
|
||||||
specified to see what the grow time would be at different hacking levels.
|
specified to see what the grow time would be at different hacking levels.
|
||||||
|
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|||||||
@@ -11,4 +11,3 @@ getHostname() Netscript Function
|
|||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|
||||||
getHostname(); // returns: "foodnstuff"
|
getHostname(); // returns: "foodnstuff"
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,101 @@
|
|||||||
|
getPlayer() Netscript Function
|
||||||
|
==============================
|
||||||
|
|
||||||
|
.. js:function:: getPlayer()
|
||||||
|
|
||||||
|
:RAM cost: 0.5 GB
|
||||||
|
|
||||||
|
The result of this function can be passed to the :doc:`formulas API<../netscriptformulasapi>`.
|
||||||
|
|
||||||
|
Returns an object with the Player's stats. The object has the following properties::
|
||||||
|
|
||||||
|
{
|
||||||
|
hacking_skill: Current Hacking skill level
|
||||||
|
hp: Current health points
|
||||||
|
max_hp: Maximum health points
|
||||||
|
strength: Current Strength skill level
|
||||||
|
defense: Current Defense skill level
|
||||||
|
dexterity: Current Dexterity skill level
|
||||||
|
agility: Current Agility skill level
|
||||||
|
charisma: Current Charisma skill level
|
||||||
|
intelligence: Current Intelligence skill level (from BitNode-5)
|
||||||
|
hacking_chance_mult: Hacking Chance multiplier (from Source-Files and Augments)
|
||||||
|
hacking_speed_mult: Hacking Speed multiplier (from Source-Files and Augments)
|
||||||
|
hacking_money_mult: Hacking Money multiplier (from Source-Files and Augments)
|
||||||
|
hacking_grow_mult: Hacking Growth multiplier (from Source-Files and Augments)
|
||||||
|
hacking_exp: Current Hacking experience points
|
||||||
|
strength_exp: Current Strength experience points
|
||||||
|
defense_exp: Current Defense experience points
|
||||||
|
dexterity_exp: Current Dexterity experience points
|
||||||
|
agility_exp: Current Agility experience points
|
||||||
|
charisma_exp: Current Charisma experience points
|
||||||
|
hacking_mult: Hacking Level multiplier (from Source-Files and Augments)
|
||||||
|
strength_mult: Strength Level multiplier (from Source-Files and Augments)
|
||||||
|
defense_mult: Defense Level multiplier (from Source-Files and Augments)
|
||||||
|
dexterity_mult: Dexterity Level multiplier (from Source-Files and Augments)
|
||||||
|
agility_mult: Agility Level multiplier (from Source-Files and Augments)
|
||||||
|
charisma_mult: Charisma Level multiplier (from Source-Files and Augments)
|
||||||
|
hacking_exp_mult: Hacking Experience multiplier (from Source-Files and Augments)
|
||||||
|
strength_exp_mult: Strength Experience multiplier (from Source-Files and Augments)
|
||||||
|
defense_exp_mult: Defense Experience multiplier (from Source-Files and Augments)
|
||||||
|
dexterity_exp_mult: Dexterity Experience multiplier (from Source-Files and Augments)
|
||||||
|
agility_exp_mult: Agility Experience multiplier (from Source-Files and Augments)
|
||||||
|
charisma_exp_mult: Charisma Experience multiplier (from Source-Files and Augments)
|
||||||
|
company_rep_mult: Company reputation gain multiplier (from Source-Files and Augments)
|
||||||
|
faction_rep_mult: Faction reputation gain multiplier (from Source-Files and Augments)
|
||||||
|
money: Current money
|
||||||
|
city: Name of city you are currently in
|
||||||
|
location: Name of the last location visited
|
||||||
|
crime_money_mult: Crime money multiplier (from Source-Files and Augments)
|
||||||
|
crime_success_mult: Crime success multiplier (from Source-Files and Augments)
|
||||||
|
isWorking: Boolean indicating whether the player is currently performing work
|
||||||
|
workType: Name of the kind of work the player is performing
|
||||||
|
currentWorkFactionName: Name of the faction the player is currently working for
|
||||||
|
currentWorkFactionDescription: Description of the kind of work the player is currently doing
|
||||||
|
workHackExpGainRate: Amount of Hacking experience the player will gain every cycle (fifth of a second)
|
||||||
|
workStrExpGainRate: Amount of Strength experience the player will gain every cycle
|
||||||
|
workDefExpGainRate: Amount of Defense experience the player will gain every cycle
|
||||||
|
workDexExpGainRate: Amount of Dexterity experience the player will gain every cycle
|
||||||
|
workAgiExpGainRate: Amount of Agility experience the player will gain every cycle
|
||||||
|
workChaExpGainRate: Amount of Charisma experience the player will gain every cycle
|
||||||
|
workRepGainRate: Amount of Reputation the player will gain every cycle
|
||||||
|
workMoneyGainRate: Amount of Money the player will gain every cycle
|
||||||
|
workMoneyLossRate: Amount of Money the player will lose every cycle
|
||||||
|
workHackExpGained: Total Hacking experience gained while working thus far
|
||||||
|
workStrExpGained: Total Strength experience gained while working thus far
|
||||||
|
workDefExpGained: Total Defense experience gained while working thus far
|
||||||
|
workDexExpGained: Total Dexterity experience gained while working thus far
|
||||||
|
workAgiExpGained: Total Agility experience gained while working thus far
|
||||||
|
workChaExpGained: Total Charisma experience gained while working thus far
|
||||||
|
workRepGained: Total Reputation gained while working thus far
|
||||||
|
workMoneyGained: Total Money gained while working thus far
|
||||||
|
createProgramName: Name of the program the player is currently creating
|
||||||
|
createProgramReqLvl: Hacking skill required to make that program
|
||||||
|
className: Name of the class the player is currently studying
|
||||||
|
crimeType: Name of the crime the player last started
|
||||||
|
work_money_mult: Salary multiplier (from Source-Files and Augments)
|
||||||
|
hacknet_node_money_mult: Hacknet Node production multiplier (from Source-Files and Augments)
|
||||||
|
hacknet_node_purchase_cost_mult: Hacknet Node purchase cost multiplier (from Source-Files and Augments)
|
||||||
|
hacknet_node_ram_cost_mult: Hacknet Node RAM upgrade cost multiplier (from Source-Files and Augments)
|
||||||
|
hacknet_node_core_cost_mult: Hacknet Node Core purchase cost multiplier (from Source-Files and Augments)
|
||||||
|
hacknet_node_level_cost_mult: Hacknet Node level upgrade cost multiplier (from Source-Files and Augments)
|
||||||
|
hasWseAccount: Boolean indicating whether the player has a WSE Account
|
||||||
|
hasTixApiAccess: Boolean indicating whether the player has TIX API Access
|
||||||
|
has4SData: Boolean indicating whether the player has 4S Market Data Access
|
||||||
|
has4SDataTixApi: Boolean indicating whether the player has 4S Market Data TIX API Access
|
||||||
|
bladeburner_max_stamina_mult: Bladeburner Max Stamina multiplier (from Source-Files and Augments)
|
||||||
|
bladeburner_stamina_gain_mult: Bladeburner Stamina Gain multiplier (from Source-Files and Augments)
|
||||||
|
bladeburner_success_chance_mult: Bladeburner Success Chance multiplier (from Source-Files and Augments)
|
||||||
|
bitNodeN: Current BitNode number
|
||||||
|
totalPlaytime: Total amount of time the game has been running, in milliseconds
|
||||||
|
playtimeSinceLastAug: Milliseconds since the last time Augmentations were installed
|
||||||
|
playtimeSinceLastBitnode: Milliseconds since this BitNode was started
|
||||||
|
jobs: A mapping of companies the player works for to the title of the player's job at that company
|
||||||
|
factions: An array of factions the player is currently a member of
|
||||||
|
tor: Boolean indicating whether or not you have a tor router
|
||||||
|
}
|
||||||
|
|
||||||
|
Example::
|
||||||
|
|
||||||
|
player = getPlayer();
|
||||||
|
print('My charisma level is: ' + player.charisma);
|
||||||
@@ -4,7 +4,7 @@ getRunningScript() Netscript Function
|
|||||||
.. js:function:: getRunningScript()
|
.. js:function:: getRunningScript()
|
||||||
|
|
||||||
:RAM cost: 0.3 GB
|
:RAM cost: 0.3 GB
|
||||||
:returns: Script object or null if not found
|
:returns: Script object or null if not found.
|
||||||
|
|
||||||
The object has the following properties:
|
The object has the following properties:
|
||||||
|
|
||||||
@@ -64,8 +64,8 @@ getRunningScript() Netscript Function
|
|||||||
.. js:function:: getRunningScript(pid)
|
.. js:function:: getRunningScript(pid)
|
||||||
|
|
||||||
:RAM cost: 0.3 GB
|
:RAM cost: 0.3 GB
|
||||||
:param number pid: PID of the script
|
:param number pid: PID of the script.
|
||||||
:returns: Script object or null if not found
|
:returns: Script object or null if not found.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
@@ -73,13 +73,13 @@ getRunningScript() Netscript Function
|
|||||||
|
|
||||||
getRunningScript(42); // get the script with pid 42.
|
getRunningScript(42); // get the script with pid 42.
|
||||||
|
|
||||||
.. js:function:: getRunningScript(fn, hostname[, args])
|
.. js:function:: getRunningScript(fn, hostname[, args...])
|
||||||
|
|
||||||
:RAM cost: 0.3 GB
|
:RAM cost: 0.3 GB
|
||||||
:param number fn: filename of the target script
|
:param number fn: Filename of the target script.
|
||||||
:param number hostname: hostname of the server running the script
|
:param number hostname: Hostname of the server running the script.
|
||||||
:param number args: arguments to the script.
|
:param number args...: Arguments that the script is running with.
|
||||||
:returns: Script object or null if not found
|
:returns: Script object or null if not found.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
|
|||||||
@@ -15,4 +15,3 @@ getScriptExpGain() Netscript Function
|
|||||||
|
|
||||||
.. note:: A script is uniquely identified by both its name and its
|
.. note:: A script is uniquely identified by both its name and its
|
||||||
arguments.
|
arguments.
|
||||||
|
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ getScriptLogs() Netscript Function
|
|||||||
:param args...: Arguments to identify which scripts to get logs for
|
:param args...: Arguments to identify which scripts to get logs for
|
||||||
:returns: Array of string, each line being a logged line. Chronological.
|
:returns: Array of string, each line being a logged line. Chronological.
|
||||||
|
|
||||||
.. note:: There is a maximum number of lines that a script stores in its logs.
|
.. note:: There is a maximum number of lines that a script stores in its logs.
|
||||||
This is configurable in the game's options.
|
This is configurable in the game's options.
|
||||||
|
|
||||||
If the function is called with no arguments, it will return the current
|
If the function is called with no arguments, it will return the current
|
||||||
script's logs.
|
script's logs.
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ getServerGrowth() Netscript Function
|
|||||||
:param string hostname: Hostname of target server.
|
:param string hostname: Hostname of target server.
|
||||||
:returns: Server growth parameter.
|
:returns: Server growth parameter.
|
||||||
|
|
||||||
The growth parameter is a number between 1 and 100 affects the percentage by
|
The growth parameter is a number, typically between 1 and 100, that affects
|
||||||
which the server's money is increased when using the :doc:`grow<grow>`
|
the percentage by which the server's money is increased when using the
|
||||||
function. A higher growth parameter will result in a higher percentage
|
:doc:`grow<grow>` function. A higher growth parameter will result in a
|
||||||
increase.
|
higher percentage increase.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ getServerMaxMoney() Netscript Function
|
|||||||
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
:param string hostname: Hostname of target server.
|
:param string hostname: Hostname of target server.
|
||||||
:returns: Maximum amount of money that can be available on a server.
|
:returns: Maximum amount of money that can be available on a server.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|
||||||
getServerMaxMoney('foodnstuff'); // returns: 4000000
|
getServerMaxMoney('foodnstuff'); // returns: 50000000
|
||||||
|
|||||||
@@ -3,12 +3,14 @@ getServerRam() Netscript Function
|
|||||||
|
|
||||||
.. js:function:: getServerRam(hostname)
|
.. js:function:: getServerRam(hostname)
|
||||||
|
|
||||||
.. warning:: This function is deprecated.
|
.. warning:: This function is deprecated. It still functions, but new
|
||||||
|
scripts should prefer :doc:`getServerMaxRam<getServerMaxRam>`
|
||||||
|
and :doc:`getServerUsedRam<getServerUsedRam>` instead.
|
||||||
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
:param string hostname: Hostname of target server.
|
:param string hostname: Hostname of target server.
|
||||||
:returns: An array of 2 number, first number is the total RAM, second the
|
:returns: An array of 2 numbers; the first number is the total RAM, and the
|
||||||
used RAM.
|
second is the used RAM.
|
||||||
|
|
||||||
Returns an array with two elements that gives information about a server's memory (RAM). The first
|
Returns an array with two elements that gives information about a server's memory (RAM). The first
|
||||||
element in the array is the amount of RAM that the server has total (in GB). The second element in
|
element in the array is the amount of RAM that the server has total (in GB). The second element in
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ httpworm() Netscript Function
|
|||||||
:RAM cost: 0.05 GB
|
:RAM cost: 0.05 GB
|
||||||
:param string hostname: Hostname of the target server.
|
:param string hostname: Hostname of the target server.
|
||||||
|
|
||||||
Runs the HTTPWorm.exe program on the target server. HTTPWorm.exe must exist
|
Runs the ``HTTPWorm.exe`` program on the target server. ``HTTPWorm.exe``
|
||||||
on your home computer.
|
must exist on your home computer.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ nuke() Netscript Function
|
|||||||
:RAM cost: 0.05 GB
|
:RAM cost: 0.05 GB
|
||||||
:param string hostname: Hostname of the target server.
|
:param string hostname: Hostname of the target server.
|
||||||
|
|
||||||
Runs the NUKE.exe program on the target server. NUKE.exe must exist on your home computer.
|
Runs the ``NUKE.exe`` program on the target server. ``NUKE.exe`` must exist
|
||||||
|
on your home computer.
|
||||||
|
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|||||||
@@ -6,9 +6,8 @@ relaysmtp() Netscript Function
|
|||||||
:RAM cost: 0.05 GB
|
:RAM cost: 0.05 GB
|
||||||
:param string hostname: Hostname of the target server.
|
:param string hostname: Hostname of the target server.
|
||||||
|
|
||||||
|
Runs the ``relaySMTP.exe`` program on the target server. ``relaySMTP.exe``
|
||||||
Runs the relaySMTP.exe program on the target server. relaySMTP.exe must
|
must exist on your home computer.
|
||||||
exist on your home computer.
|
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
|
|||||||
@@ -17,9 +17,8 @@ run() Netscript Function
|
|||||||
scripts located on the current server (the server running the script that
|
scripts located on the current server (the server running the script that
|
||||||
calls this function).
|
calls this function).
|
||||||
|
|
||||||
.. warning:: Running this function with a ``numThreads`` argument of 0 will
|
.. warning:: Running this function with a ``numThreads`` argument of 0 or
|
||||||
return 0 without running the script. However, running this function with
|
less will cause a runtime error.
|
||||||
a negative ``numThreads`` argument will cause a runtime error.
|
|
||||||
|
|
||||||
The simplest way to use the :doc:`run<run>` command is to call it with just
|
The simplest way to use the :doc:`run<run>` command is to call it with just
|
||||||
the script name. The following example will run ``foo.script``
|
the script name. The following example will run ``foo.script``
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ scp() Netscript Function
|
|||||||
Hostname of the source server, which is the server from which the file will be copied.
|
Hostname of the source server, which is the server from which the file will be copied.
|
||||||
This argument is optional and if it's omitted the source will be the current server.
|
This argument is optional and if it's omitted the source will be the current server.
|
||||||
:param string destination: Hostname of the destination server, which is the server to which the file will be copied.
|
:param string destination: Hostname of the destination server, which is the server to which the file will be copied.
|
||||||
:returns: ``true`` is the copy was a success.
|
:returns: ``true`` if the copy was a success.
|
||||||
|
|
||||||
Copies a script or literature (.lit) file(s) to another server. The
|
Copies a script or literature (.lit) file(s) to another server. The
|
||||||
``files`` argument can be either a string specifying a single file to copy,
|
``files`` argument can be either a string specifying a single file to copy,
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ sleep() Netscript Function
|
|||||||
|
|
||||||
Suspends the script for n milliseconds.
|
Suspends the script for n milliseconds.
|
||||||
|
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ spawn() Netscript Function
|
|||||||
current one. This function can only be used to run scripts on the local
|
current one. This function can only be used to run scripts on the local
|
||||||
server.
|
server.
|
||||||
|
|
||||||
|
.. warning:: Running this function with a ``numThreads`` argument of 0 or
|
||||||
|
less will cause a runtime error.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ sqlinject() Netscript Function
|
|||||||
:RAM cost: 0.05 GB
|
:RAM cost: 0.05 GB
|
||||||
:param string hostname: Hostname of the target server.
|
:param string hostname: Hostname of the target server.
|
||||||
|
|
||||||
Runs the SQLInject.exe program on the target server. SQLInject.exe must
|
Runs the ``SQLInject.exe`` program on the target server. ``SQLInject.exe``
|
||||||
exist on your home computer.
|
must exist on your home computer.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,17 @@
|
|||||||
tFormat() Netscript Function
|
tFormat() Netscript Function
|
||||||
============================
|
============================
|
||||||
|
|
||||||
.. js:function:: tFormat(milliseconds)
|
.. js:function:: tFormat(milliseconds[, milliPrecision=false])
|
||||||
|
|
||||||
:RAM cost: 0 GB
|
:RAM cost: 0 GB
|
||||||
:param number milliseconds: Amount of milliseconds to format.
|
:param number milliseconds: Amount of milliseconds to format.
|
||||||
|
:param number milliPrecision: Display time with millisecond precision.
|
||||||
:returns: milliseconds in the "D M H S" format
|
:returns: milliseconds in the "D M H S" format
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|
||||||
tFormat(3000); // returns: "3 seconds"
|
tFormat(3000); // returns: "3 seconds"
|
||||||
tFormat(10000000); // returns: "2 hours 46 minutes 40 seconds"
|
tFormat(10000000); // returns: "2 hours 46 minutes 40 seconds"
|
||||||
|
tFormat(10000023, true); // returns: "2 hours 46 minutes 40.023 seconds"
|
||||||
|
|||||||
@@ -44,9 +44,6 @@ tail() Netscript Function
|
|||||||
// Open logs from process with id 42
|
// Open logs from process with id 42
|
||||||
tail(42);
|
tail(42);
|
||||||
|
|
||||||
// Open logs from process with id 42 on the foodnstuff server
|
|
||||||
tail(42, "foodnstuff");
|
|
||||||
|
|
||||||
.. js:function:: tail()
|
.. js:function:: tail()
|
||||||
|
|
||||||
:RAM cost: 0 GB
|
:RAM cost: 0 GB
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ write() Netscript Function
|
|||||||
:param string data: Data to write
|
:param string data: Data to write
|
||||||
:param string mode: Defines the write mode. Only valid when writing to text files or scripts.
|
:param string mode: Defines the write mode. Only valid when writing to text files or scripts.
|
||||||
|
|
||||||
|
|
||||||
This function can be used to either write data to a port, a text file
|
This function can be used to either write data to a port, a text file
|
||||||
(.txt), or a script (.script, .js, .ns)
|
(.txt), or a script (.script, .js, .ns)
|
||||||
|
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ getData() Netscript Function
|
|||||||
contract type.
|
contract type.
|
||||||
|
|
||||||
Get the data associated with the specific Coding Contract. Note that this is
|
Get the data associated with the specific Coding Contract. Note that this is
|
||||||
not the same as the contract's description. This is just the data that
|
not the same as the contract's description; this is just the data that
|
||||||
the contract wants you to act on in order to solve
|
the contract wants you to act on in order to solve.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
|
|||||||
@@ -8,15 +8,18 @@ calculateExp() Netscript Function
|
|||||||
:param number mult: Assume a specific skill multipler (not exp multiplier).
|
:param number mult: Assume a specific skill multipler (not exp multiplier).
|
||||||
:returns: number of exp required to reach given ``skillLevel`` with that multiplier.
|
:returns: number of exp required to reach given ``skillLevel`` with that multiplier.
|
||||||
|
|
||||||
You must have Source-File 5-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function.
|
||||||
|
|
||||||
This function calculates the amount of experience needed to reach level the given ``skillLevel``.
|
This function calculates the amount of experience needed to reach the given
|
||||||
|
``skillLevel``.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|
||||||
nextHacking = getStats().hacking+1;
|
var player = getPlayer();
|
||||||
nextExp = formulas.basic.calculateExp(nextHacking);
|
var nextHacking = player.hacking_skill+1;
|
||||||
missingExp = nextExp - getCharacterInformation().hackingExp;
|
var nextExp = formulas.basic.calculateExp(nextHacking);
|
||||||
|
var missingExp = nextExp - player.hacking_exp;
|
||||||
tprint("Missing " + missingExp + " to reach next hacking level");
|
tprint("Missing " + missingExp + " to reach next hacking level");
|
||||||
|
|||||||
@@ -8,7 +8,8 @@ calculateSkill() Netscript Function
|
|||||||
:param number mult: Assume a specific skill multipler (not exp multiplier).
|
:param number mult: Assume a specific skill multipler (not exp multiplier).
|
||||||
:returns: skillLevel that ``exp`` would reach with that multiplier.
|
:returns: skillLevel that ``exp`` would reach with that multiplier.
|
||||||
|
|
||||||
You must have Source-File 5-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function.
|
||||||
|
|
||||||
This function calculates the skillLevel that the given amount of ``exp`` would reach.
|
This function calculates the skillLevel that the given amount of ``exp`` would reach.
|
||||||
|
|
||||||
|
|||||||
@@ -7,14 +7,18 @@ growPercent() Netscript Function
|
|||||||
:param server server: The server that receives the growth.
|
:param server server: The server that receives the growth.
|
||||||
:param number threads: The number of thread that would be used.
|
:param number threads: The number of thread that would be used.
|
||||||
:param player player: The player.
|
:param player player: The player.
|
||||||
:returns: The percentage growth this server would receive with these parameters.
|
:returns: The amount the server's money would be multiplied by with these
|
||||||
|
parameters.
|
||||||
|
|
||||||
You must have Source-File 5-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function.
|
||||||
|
|
||||||
Server can be acquired with the :doc:`getServer<../../advancedfunctions/getServer>` function.
|
Server can be acquired with the :doc:`getServer<../../advancedfunctions/getServer>` function.
|
||||||
Player can be acquired with the :doc:`getPlayer<../../singularityfunctions/getPlayer>` function.
|
Player can be acquired with the :doc:`getPlayer<../../basicfunctions/getPlayer>` function.
|
||||||
|
|
||||||
This function calculates percentage of growth a server would receive with these parameters.
|
This function calculates the amount of growth, as a multiplier, a server
|
||||||
|
would receive with these parameters. Despite its name, it does not return
|
||||||
|
a percentage.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
|
|||||||
@@ -8,10 +8,11 @@ growTime() Netscript Function
|
|||||||
:param player player: The player.
|
:param player player: The player.
|
||||||
:returns: The time it takes to grow this server. In seconds.
|
:returns: The time it takes to grow this server. In seconds.
|
||||||
|
|
||||||
You must have Source-File 5-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function.
|
||||||
|
|
||||||
Server can be acquired with the :doc:`getServer<../../advancedfunctions/getServer>` function.
|
Server can be acquired with the :doc:`getServer<../../advancedfunctions/getServer>` function.
|
||||||
Player can be acquired with the :doc:`getPlayer<../../singularityfunctions/getPlayer>` function.
|
Player can be acquired with the :doc:`getPlayer<../../basicfunctions/getPlayer>` function.
|
||||||
|
|
||||||
This function calculates the amount of time it takes to grow a server.
|
This function calculates the amount of time it takes to grow a server.
|
||||||
|
|
||||||
|
|||||||
@@ -6,19 +6,20 @@ hackChance() Netscript Function
|
|||||||
:RAM cost: 0 GB
|
:RAM cost: 0 GB
|
||||||
:param server server: The server to hack.
|
:param server server: The server to hack.
|
||||||
:param player player: The player.
|
:param player player: The player.
|
||||||
:returns: The change to hack that server. between 0 and 1.
|
:returns: The chance to hack that server, between 0 and 1.
|
||||||
|
|
||||||
You must have Source-File 5-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function.
|
||||||
|
|
||||||
Server can be acquired with the :doc:`getServer<../../advancedfunctions/getServer>` function.
|
Server can be acquired with the :doc:`getServer<../../advancedfunctions/getServer>` function.
|
||||||
Player can be acquired with the :doc:`getPlayer<../../singularityfunctions/getPlayer>` function.
|
Player can be acquired with the :doc:`getPlayer<../../basicfunctions/getPlayer>` function.
|
||||||
|
|
||||||
This function calculates percentage chance to hack a server.
|
This function calculates the probability to successfully hack a server.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|
||||||
server = getServer();
|
var server = getServer();
|
||||||
server.hackDifficulty = server.minDifficulty;
|
server.hackDifficulty = server.minDifficulty;
|
||||||
tprint(formulas.basic.hackChance(server, getPlayer()));
|
tprint(formulas.basic.hackChance(server, getPlayer()));
|
||||||
@@ -8,10 +8,11 @@ hackExp() Netscript Function
|
|||||||
:param player player: The player.
|
:param player player: The player.
|
||||||
:returns: The amount of exp that would be acquired if this server were to be hacked.
|
:returns: The amount of exp that would be acquired if this server were to be hacked.
|
||||||
|
|
||||||
You must have Source-File 5-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function.
|
||||||
|
|
||||||
Server can be acquired with the :doc:`getServer<../../advancedfunctions/getServer>` function.
|
Server can be acquired with the :doc:`getServer<../../advancedfunctions/getServer>` function.
|
||||||
Player can be acquired with the :doc:`getPlayer<../../singularityfunctions/getPlayer>` function.
|
Player can be acquired with the :doc:`getPlayer<../../basicfunctions/getPlayer>` function.
|
||||||
|
|
||||||
This function calculates the amount of exp obtained by hacking a server.
|
This function calculates the amount of exp obtained by hacking a server.
|
||||||
|
|
||||||
@@ -19,6 +20,4 @@ hackExp() Netscript Function
|
|||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|
||||||
server = getServer();
|
tprint(formulas.basic.hackExp(getServer(), getPlayer()));
|
||||||
server.hackDifficulty = 99.9;
|
|
||||||
tprint(formulas.basic.hackExp(server, getPlayer()));
|
|
||||||
|
|||||||
@@ -6,15 +6,16 @@ hackPercent() Netscript Function
|
|||||||
:RAM cost: 0 GB
|
:RAM cost: 0 GB
|
||||||
:param server server: The server to hack.
|
:param server server: The server to hack.
|
||||||
:param player player: The player.
|
:param player player: The player.
|
||||||
:returns: The percentage of money hacked from a servers maximum money.
|
:returns: The percentage of money hacked from the server's money.
|
||||||
|
|
||||||
You must have Source-File 5-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function.
|
||||||
|
|
||||||
Server can be acquired with the :doc:`getServer<../../advancedfunctions/getServer>` function.
|
Server can be acquired with the :doc:`getServer<../../advancedfunctions/getServer>` function.
|
||||||
Player can be acquired with the :doc:`getPlayer<../../singularityfunctions/getPlayer>` function.
|
Player can be acquired with the :doc:`getPlayer<../../basicfunctions/getPlayer>` function.
|
||||||
|
|
||||||
This function calculates the percentage of maximum money hacked from a server.
|
This function calculates the percentage of money hacked from a server.
|
||||||
Multiply this by thread count to know calculate the percentage for more than 1 thread.
|
Multiply this by thread count to calculate the percentage for more than 1 thread.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
|
|||||||
@@ -8,10 +8,11 @@ hackTime() Netscript Function
|
|||||||
:param player player: The player.
|
:param player player: The player.
|
||||||
:returns: The time it takes to hack this server. In seconds.
|
:returns: The time it takes to hack this server. In seconds.
|
||||||
|
|
||||||
You must have Source-File 5-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function.
|
||||||
|
|
||||||
Server can be acquired with the :doc:`getServer<../../advancedfunctions/getServer>` function.
|
Server can be acquired with the :doc:`getServer<../../advancedfunctions/getServer>` function.
|
||||||
Player can be acquired with the :doc:`getPlayer<../../singularityfunctions/getPlayer>` function.
|
Player can be acquired with the :doc:`getPlayer<../../basicfunctions/getPlayer>` function.
|
||||||
|
|
||||||
This function calculates the amount of time it takes to hack a server.
|
This function calculates the amount of time it takes to hack a server.
|
||||||
|
|
||||||
|
|||||||
@@ -8,10 +8,11 @@ weakenTime() Netscript Function
|
|||||||
:param player player: The player.
|
:param player player: The player.
|
||||||
:returns: The time it takes to weaken this server. In seconds.
|
:returns: The time it takes to weaken this server. In seconds.
|
||||||
|
|
||||||
You must have Source-File 5-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function.
|
||||||
|
|
||||||
Server can be acquired with the :doc:`getServer<../../advancedfunctions/getServer>` function.
|
Server can be acquired with the :doc:`getServer<../../advancedfunctions/getServer>` function.
|
||||||
Player can be acquired with the :doc:`getPlayer<../../singularityfunctions/getPlayer>` function.
|
Player can be acquired with the :doc:`getPlayer<../../basicfunctions/getPlayer>` function.
|
||||||
|
|
||||||
This function calculates the amount of time it takes to weaken a server.
|
This function calculates the amount of time it takes to weaken a server.
|
||||||
|
|
||||||
|
|||||||
@@ -6,21 +6,28 @@ constants() Netscript Function
|
|||||||
:RAM cost: 0 GB
|
:RAM cost: 0 GB
|
||||||
:returns: A structure with various constants related to hacknet nodes.
|
:returns: A structure with various constants related to hacknet nodes.
|
||||||
|
|
||||||
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function.
|
||||||
|
|
||||||
|
Returns an object with the following properties::
|
||||||
|
|
||||||
|
{
|
||||||
|
MoneyGainPerLevel: Multiplied by the node's level to get the node's base income
|
||||||
|
BaseCost: A multiplier used when buying new nodes or upgrading levels
|
||||||
|
LevelBaseCost: A multiplier used when upgrading levels
|
||||||
|
RamBaseCost: A multiplier used when upgrading RAM
|
||||||
|
CoreBaseCost: A multiplier used when buying additional cores
|
||||||
|
PurchaseNextMult: The root of an exponent used when buying new nodes
|
||||||
|
UpgradeLevelMult: The root of an exponent used when upgrading levels
|
||||||
|
UpgradeRamMult: The root of an exponent used when upgrading RAM
|
||||||
|
UpgradeCoreMult: The root of an exponent used when buying additional cores
|
||||||
|
MaxLevel: Maximum level a node can have
|
||||||
|
MaxRam: Maximum RAM a node can have
|
||||||
|
MaxCores: Maximum number of cores a node can have
|
||||||
|
}
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|
||||||
{
|
tprint("Maximum RAM a hacknet node can have: "+formulas.hacknetNodes.constants().MaxRam+" GB.");
|
||||||
MoneyGainPerLevel
|
|
||||||
BaseCost
|
|
||||||
LevelBaseCost
|
|
||||||
RamBaseCost
|
|
||||||
CoreBaseCost
|
|
||||||
PurchaseNextMult
|
|
||||||
UpgradeLevelMult
|
|
||||||
UpgradeRamMult
|
|
||||||
UpgradeCoreMult
|
|
||||||
MaxLevel
|
|
||||||
MaxRam
|
|
||||||
MaxCores
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -9,7 +9,8 @@ coreUpgradeCost() Netscript Function
|
|||||||
:param number costMult: Aug multiplier that reduces cost. Defaults to ``1``.
|
:param number costMult: Aug multiplier that reduces cost. Defaults to ``1``.
|
||||||
:returns: Money required to go from ``startingCores`` to ``startingCores+extraCores``.
|
:returns: Money required to go from ``startingCores`` to ``startingCores+extraCores``.
|
||||||
|
|
||||||
You must have Source-File 5-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function.
|
||||||
|
|
||||||
This function calculates the cost of upgrading cores from any level to any level.
|
This function calculates the cost of upgrading cores from any level to any level.
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,8 @@ hacknetNodeCost() Netscript Function
|
|||||||
:param number costMult: Aug multiplier that reduces cost. Defaults to ``1``.
|
:param number costMult: Aug multiplier that reduces cost. Defaults to ``1``.
|
||||||
:returns: Money required to buy your ``nodeN`` th node.
|
:returns: Money required to buy your ``nodeN`` th node.
|
||||||
|
|
||||||
You must have Source-File 5-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function.
|
||||||
|
|
||||||
This function calculates the cost purchasing a hacknet node.
|
This function calculates the cost purchasing a hacknet node.
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,8 @@ levelUpgradeCost() Netscript Function
|
|||||||
:param number costMult: Aug multiplier that reduces cost. Defaults to ``1``.
|
:param number costMult: Aug multiplier that reduces cost. Defaults to ``1``.
|
||||||
:returns: Money required to go from ``startingLevel`` to ``startingLevel+extraLevels``.
|
:returns: Money required to go from ``startingLevel`` to ``startingLevel+extraLevels``.
|
||||||
|
|
||||||
You must have Source-File 5-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function.
|
||||||
|
|
||||||
This function calculates the cost of upgrading levels from any level to any level.
|
This function calculates the cost of upgrading levels from any level to any level.
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,8 @@ moneyGainRate() Netscript Function
|
|||||||
:param number core: cores of the node.
|
:param number core: cores of the node.
|
||||||
:returns: Money per second that a node with those stats would gain per second.
|
:returns: Money per second that a node with those stats would gain per second.
|
||||||
|
|
||||||
You must have Source-File 5-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function.
|
||||||
|
|
||||||
This function calculates the money rate of a node with the given stats.
|
This function calculates the money rate of a node with the given stats.
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,8 @@ ramUpgradeCost() Netscript Function
|
|||||||
|
|
||||||
..note:: ``startingRam`` is the actual amount of ram, not the amount of levels of ram.
|
..note:: ``startingRam`` is the actual amount of ram, not the amount of levels of ram.
|
||||||
|
|
||||||
You must have Source-File 5-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function.
|
||||||
|
|
||||||
This function calculates the cost of upgrading levels from any level to any level.
|
This function calculates the cost of upgrading levels from any level to any level.
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,9 @@ cacheUpgradeCost() Netscript Function
|
|||||||
:param number costMult: Aug multiplier that reduces cost. Defaults to ``1``.
|
:param number costMult: Aug multiplier that reduces cost. Defaults to ``1``.
|
||||||
:returns: Money required to go from ``startingLevel`` to ``startingLevel+extraLevels``.
|
:returns: Money required to go from ``startingLevel`` to ``startingLevel+extraLevels``.
|
||||||
|
|
||||||
You must have Source-File 5-1 and Source-File 9-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function. In addition, if you are not in BitNode-9, then you must
|
||||||
|
have Source-File 9-1 in order to use this function.
|
||||||
|
|
||||||
This function calculates the cost of upgrading cache from any level to any level.
|
This function calculates the cost of upgrading cache from any level to any level.
|
||||||
|
|
||||||
|
|||||||
@@ -6,24 +6,32 @@ constants() Netscript Function
|
|||||||
:RAM cost: 0 GB
|
:RAM cost: 0 GB
|
||||||
:returns: A structure with various constants related to hacknet servers.
|
:returns: A structure with various constants related to hacknet servers.
|
||||||
|
|
||||||
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function. In addition, if you are not in BitNode-9, then you must
|
||||||
|
have Source-File 9-1 in order to use this function.
|
||||||
|
|
||||||
|
Returns an object with the following properties::
|
||||||
|
|
||||||
|
{
|
||||||
|
HashesPerLevel: Multiplied by the server's level to get the server's base income
|
||||||
|
BaseCost: A multiplier used when buying new nodes or upgrading levels
|
||||||
|
RamBaseCost: A multiplier used when upgrading RAM
|
||||||
|
CoreBaseCost: A multiplier used when buying additional cores
|
||||||
|
CacheBaseCost: A multiplier used when upgrading cache
|
||||||
|
PurchaseMult: The root of an exponent used when buying new servers
|
||||||
|
UpgradeLevelMult: The root of an exponent used when upgrading levels
|
||||||
|
UpgradeRamMult: The root of an exponent used when upgrading RAM
|
||||||
|
UpgradeCoreMult: The root of an exponent used when buying additional cores
|
||||||
|
UpgradeCacheMult: The root of an exponent used when upgrading cache
|
||||||
|
MaxServers: Maximum number of hacknet servers you can own
|
||||||
|
MaxLevel: Maximum level a server can have
|
||||||
|
MaxRam: Maximum RAM a server can have
|
||||||
|
MaxCores: Maximum number of cores a server can have
|
||||||
|
MaxCache: Maximum cache a server can have
|
||||||
|
}
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|
||||||
{
|
tprint("Maximum RAM a hacknet server can have: "+formulas.hacknetServers.constants().MaxRam+" GB");
|
||||||
HashesPerLevel
|
|
||||||
BaseCost
|
|
||||||
RamBaseCost
|
|
||||||
CoreBaseCost
|
|
||||||
CacheBaseCost
|
|
||||||
PurchaseMult
|
|
||||||
UpgradeLevelMult
|
|
||||||
UpgradeRamMult
|
|
||||||
UpgradeCoreMult
|
|
||||||
UpgradeCacheMult
|
|
||||||
MaxServers
|
|
||||||
MaxLevel
|
|
||||||
MaxRam
|
|
||||||
MaxCores
|
|
||||||
MaxCache
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -9,7 +9,9 @@ coreUpgradeCost() Netscript Function
|
|||||||
:param number costMult: Aug multiplier that reduces cost. Defaults to ``1``.
|
:param number costMult: Aug multiplier that reduces cost. Defaults to ``1``.
|
||||||
:returns: Money required to go from ``startingCores`` to ``startingCores+extraCores``.
|
:returns: Money required to go from ``startingCores`` to ``startingCores+extraCores``.
|
||||||
|
|
||||||
You must have Source-File 5-1 and Source-File 9-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function. In addition, if you are not in BitNode-9, then you must
|
||||||
|
have Source-File 9-1 in order to use this function.
|
||||||
|
|
||||||
This function calculates the cost of upgrading cores from any level to any level.
|
This function calculates the cost of upgrading cores from any level to any level.
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,9 @@ hacknetServerCost() Netscript Function
|
|||||||
:param number costMult: Aug multiplier that reduces cost. Defaults to ``1``.
|
:param number costMult: Aug multiplier that reduces cost. Defaults to ``1``.
|
||||||
:returns: Money required to buy your ``serverN`` th node.
|
:returns: Money required to buy your ``serverN`` th node.
|
||||||
|
|
||||||
You must have Source-File 5-1 and Source-File 9-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function. In addition, if you are not in BitNode-9, then you must
|
||||||
|
have Source-File 9-1 in order to use this function.
|
||||||
|
|
||||||
This function calculates the cost purchasing a hacknet node.
|
This function calculates the cost purchasing a hacknet node.
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,9 @@ hashGainRate() Netscript Function
|
|||||||
:param number core: cores of the server.
|
:param number core: cores of the server.
|
||||||
:returns: Money per second that a server with those stats would gain per second.
|
:returns: Money per second that a server with those stats would gain per second.
|
||||||
|
|
||||||
You must have Source-File 5-1 and Source-File 9-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function. In addition, if you are not in BitNode-9, then you must
|
||||||
|
have Source-File 9-1 in order to use this function.
|
||||||
|
|
||||||
This function calculates the hash rate of a server with the given stats.
|
This function calculates the hash rate of a server with the given stats.
|
||||||
|
|
||||||
@@ -19,7 +21,7 @@ hashGainRate() Netscript Function
|
|||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|
||||||
server = hacknet.getNodeStats(1);
|
server = hacknet.getNodeStats(1);
|
||||||
currentRate = formulas.hacknetNodes.hashGainRate(server.level, 0, server.ram, server.cores);
|
currentRate = formulas.hacknetServers.hashGainRate(server.level, 0, server.ram, server.cores);
|
||||||
levelRate = formulas.hacknetNodes.hashGainRate(server.level+1, 0, server.ram, server.cores);
|
levelRate = formulas.hacknetServers.hashGainRate(server.level+1, 0, server.ram, server.cores);
|
||||||
ramRate = formulas.hacknetNodes.hashGainRate(server.level, 0, server.ram*2, server.cores);
|
ramRate = formulas.hacknetServers.hashGainRate(server.level, 0, server.ram*2, server.cores);
|
||||||
coresRate = formulas.hacknetNodes.hashGainRate(server.level, 0, server.ram, server.cores+1);
|
coresRate = formulas.hacknetServers.hashGainRate(server.level, 0, server.ram, server.cores+1);
|
||||||
|
|||||||
@@ -8,7 +8,9 @@ hashUpgradeCost() Netscript Function
|
|||||||
:param number level: Level of the upgrade.
|
:param number level: Level of the upgrade.
|
||||||
:returns: Amount of Hash.
|
:returns: Amount of Hash.
|
||||||
|
|
||||||
You must have Source-File 5-1 and Source-File 9-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function. In addition, if you are not in BitNode-9, then you must
|
||||||
|
have Source-File 9-1 in order to use this function.
|
||||||
|
|
||||||
This function calculates amount of Hash require to buy level ``level`` of upgrade ``upgName``.
|
This function calculates amount of Hash require to buy level ``level`` of upgrade ``upgName``.
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,9 @@ levelUpgradeCost() Netscript Function
|
|||||||
:param number costMult: Aug multiplier that reduces cost. Defaults to ``1``.
|
:param number costMult: Aug multiplier that reduces cost. Defaults to ``1``.
|
||||||
:returns: Money required to go from ``startingLevel`` to ``startingLevel+extraLevels``.
|
:returns: Money required to go from ``startingLevel`` to ``startingLevel+extraLevels``.
|
||||||
|
|
||||||
You must have Source-File 5-1 and Source-File 9-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function. In addition, if you are not in BitNode-9, then you must
|
||||||
|
have Source-File 9-1 in order to use this function.
|
||||||
|
|
||||||
This function calculates the cost of upgrading levels from any level to any level.
|
This function calculates the cost of upgrading levels from any level to any level.
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,9 @@ ramUpgradeCost() Netscript Function
|
|||||||
|
|
||||||
..note:: ``startingRam`` is the actual amount of ram, not the amount of levels of ram.
|
..note:: ``startingRam`` is the actual amount of ram, not the amount of levels of ram.
|
||||||
|
|
||||||
You must have Source-File 5-1 and Source-File 9-1 in order to use this function.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
|
use this function. In addition, if you are not in BitNode-9, then you must
|
||||||
|
have Source-File 9-1 in order to use this function.
|
||||||
|
|
||||||
This function calculates the cost of upgrading levels from any level to any level.
|
This function calculates the cost of upgrading levels from any level to any level.
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
createGang() Netscript Function
|
||||||
|
======================================
|
||||||
|
|
||||||
|
.. js:function:: createGang(faction)
|
||||||
|
|
||||||
|
:RAM cost: 1 GB
|
||||||
|
:param string faction: Name of faction
|
||||||
|
:returns: ``true`` if a Gang was created with that faction.
|
||||||
|
|
||||||
|
Creates a Gang with that faction. You need to have access to Gangs, the
|
||||||
|
faction must be one of the approved gang factions, and you must be a member
|
||||||
|
of that faction for the creation to be successful.
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
inGang() Netscript Function
|
||||||
|
======================================
|
||||||
|
|
||||||
|
.. js:function:: inGang()
|
||||||
|
|
||||||
|
:RAM cost: 1 GB
|
||||||
|
:returns: ``true`` if the player is already in a gang.
|
||||||
@@ -92,7 +92,7 @@ its type and name. The following are valid values when specifying the action's t
|
|||||||
* blackop
|
* blackop
|
||||||
* blackops
|
* blackops
|
||||||
|
|
||||||
**General Actions (Training, Field Analysis, Recruitment)**
|
**General Actions (Training, Field Analysis, etc)**
|
||||||
* general
|
* general
|
||||||
* general action
|
* general action
|
||||||
* gen
|
* gen
|
||||||
|
|||||||
@@ -8,15 +8,19 @@ Netscript Formulas Functions
|
|||||||
The formulas API allow you to gain insight into the inner workings of the game.
|
The formulas API allow you to gain insight into the inner workings of the game.
|
||||||
These functions will allow you to make more informed decision.
|
These functions will allow you to make more informed decision.
|
||||||
|
|
||||||
All of these function cost 0 GB of ram to use. All these function require
|
The formulas API is unlocked in BitNode-5. If you are in BitNode-5, you will
|
||||||
Source-File 5-1 but some additionally need another source file level 1 to use.
|
automatically gain access to this API. Otherwise, you must have Source-File 5-1
|
||||||
|
in order to use this API in other BitNodes. Additionally, some functions need
|
||||||
|
another source file level 1 to use.
|
||||||
|
|
||||||
|
All of these function cost 0 GB of ram to use.
|
||||||
|
|
||||||
|
|
||||||
basic formulas
|
basic formulas
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
These functions are under the ``formulas.basic.`` name space and available as
|
These functions are under the ``formulas.basic.`` name space and available as
|
||||||
soon as you acquire Source-File 5-1
|
soon as you enter BitNode-5 or acquire Source-File 5-1.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
calculateSkill() <formulasapi/basic/calculateSkill>
|
calculateSkill() <formulasapi/basic/calculateSkill>
|
||||||
@@ -34,7 +38,7 @@ hacknetNodes formulas
|
|||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
These functions are under the ``formulas.hacknetNodes.`` namespace and available as
|
These functions are under the ``formulas.hacknetNodes.`` namespace and available as
|
||||||
soon as you acquire Source-File 5-1.
|
soon as you enter BitNode-5 or acquire Source-File 5-1.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
hacknetNodeCost() <formulasapi/hacknetNodes/hacknetNodeCost>
|
hacknetNodeCost() <formulasapi/hacknetNodes/hacknetNodeCost>
|
||||||
@@ -48,7 +52,8 @@ hacknetServers formulas
|
|||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
These functions are under the ``formulas.hacknetServers.`` namespace.
|
These functions are under the ``formulas.hacknetServers.`` namespace.
|
||||||
These functions require Source-File 5-1 and Source-File 9-1 to be invoked.
|
These functions require either being in BitNode-5 or having Source-File 5-1, and
|
||||||
|
also require either being in BitNode-9 or having Source-File 9-1 to be invoked.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
hacknetServerCost() <formulasapi/hacknetServers/hacknetServerCost>
|
hacknetServerCost() <formulasapi/hacknetServers/hacknetServerCost>
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ This includes information such as function signatures, what they do, and their r
|
|||||||
getHackingLevel() <basicfunctions/getHackingLevel>
|
getHackingLevel() <basicfunctions/getHackingLevel>
|
||||||
getHackingMultipliers() <basicfunctions/getHackingMultipliers>
|
getHackingMultipliers() <basicfunctions/getHackingMultipliers>
|
||||||
getHacknetMultipliers() <basicfunctions/getHacknetMultipliers>
|
getHacknetMultipliers() <basicfunctions/getHacknetMultipliers>
|
||||||
|
getPlayer() <basicfunctions/getPlayer>
|
||||||
getServerMoneyAvailable() <basicfunctions/getServerMoneyAvailable>
|
getServerMoneyAvailable() <basicfunctions/getServerMoneyAvailable>
|
||||||
getServerMaxMoney() <basicfunctions/getServerMaxMoney>
|
getServerMaxMoney() <basicfunctions/getServerMaxMoney>
|
||||||
getServerGrowth() <basicfunctions/getServerGrowth>
|
getServerGrowth() <basicfunctions/getServerGrowth>
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ In :ref:`netscriptjs`::
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:caption: API Functions:
|
:caption: API Functions:
|
||||||
|
|
||||||
|
createGang() <gangapi/createGang>
|
||||||
|
inGang() <gangapi/inGang>
|
||||||
getMemberNames() <gangapi/getMemberNames>
|
getMemberNames() <gangapi/getMemberNames>
|
||||||
getGangInformation() <gangapi/getGangInformation>
|
getGangInformation() <gangapi/getGangInformation>
|
||||||
getOtherGangInformation() <gangapi/getOtherGangInformation>
|
getOtherGangInformation() <gangapi/getOtherGangInformation>
|
||||||
|
|||||||
@@ -159,18 +159,21 @@ importing other NetscriptJS scripts::
|
|||||||
this.args = params.args ? params.args : [];
|
this.args = params.args ? params.args : [];
|
||||||
}
|
}
|
||||||
|
|
||||||
ScriptJob.prototype.run = async function(ns) {
|
ScriptJob.prototype.run = function(ns) {
|
||||||
let runArgs = [this.fn, this.threads].concat(this.args);
|
let runArgs = [this.fn, this.threads].concat(this.args);
|
||||||
await ns.run.apply(this, runArgs);
|
if (!ns.run.apply(this, runArgs)) {
|
||||||
|
throw new Error("Unable to run " + this.fn + " on " +ns.getHostname());
|
||||||
|
}
|
||||||
tprintColored("Running " + this.fn + " on " + ns.getHostname(), "blue");
|
tprintColored("Running " + this.fn + " on " + ns.getHostname(), "blue");
|
||||||
}
|
}
|
||||||
|
|
||||||
ScriptJob.prototype.exec = async function(ns, target) {
|
ScriptJob.prototype.exec = function(ns, target) {
|
||||||
ns.scp(this.fn, target);
|
ns.scp(this.fn, target);
|
||||||
|
|
||||||
let execArgs = [this.fn, target, this.threads].concat(this.args);
|
let execArgs = [this.fn, target, this.threads].concat(this.args);
|
||||||
await ns.exec.apply(this, execArgs);
|
if (!ns.exec.apply(this, execArgs)) {
|
||||||
|
throw new Error("Unable to execute " + this.fn + " on " + target);
|
||||||
|
}
|
||||||
tprintColored("Executing " + this.fn + " on " + target, "blue");
|
tprintColored("Executing " + this.fn + " on " + target, "blue");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -182,8 +185,8 @@ importing other NetscriptJS scripts::
|
|||||||
threads: 1,
|
threads: 1,
|
||||||
args: ["foodnstuff"]
|
args: ["foodnstuff"]
|
||||||
});
|
});
|
||||||
await job.run(ns);
|
job.run(ns);
|
||||||
await job.exec(ns, "foodnstuff");
|
job.exec(ns, "foodnstuff");
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
ns.tprint("Exception thrown in scriptScheduler.ns: " + e);
|
ns.tprint("Exception thrown in scriptScheduler.ns: " + e);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,21 +3,16 @@
|
|||||||
Netscript Singularity Functions
|
Netscript Singularity Functions
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
The Singularity Functions are a special set of Netscript functions. These functions allow you to control
|
.. warning:: This page contains spoilers for the game.
|
||||||
many additional aspects of the game through scripts, such as working for factions/companies, purchasing/installing Augmentations,
|
|
||||||
and creating programs.
|
The Singularity Functions are a special set of Netscript functions that allow the player to control additional aspects of the game such as working for factions/companies, purchasing/installing Augmentations, and creating programs.
|
||||||
|
|
||||||
The Singularity Functions are **not** immediately available to the player and must be unlocked later in the game.
|
The Singularity Functions are **not** immediately available to the player and must be unlocked later in the game.
|
||||||
|
|
||||||
.. warning:: This page contains spoilers for the game
|
The player has access to all of these functions while in BitNode-4. Completing BitNode-4 and gaining its source-file unlocks certain Singularity Functions for use in other BitNodes, with all functions accessible at level 3.
|
||||||
|
|
||||||
The Singularity Functions are unlocked in BitNode-4. If you are in BitNode-4, then you will automatically have access to all of these functions.
|
|
||||||
You can use the Singularity Functions in other BitNodes if and only if you have the Source-File for BitNode-4 (aka Source-File 4). Each level of
|
|
||||||
Source-File 4 will open up additional Singularity Functions that you can use in other BitNodes. If your Source-File 4 is upgraded all the way to
|
|
||||||
level 3, then you will be able to access all of the Singularity Functions.
|
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:caption: Functions:
|
:caption: Level 1 Functions
|
||||||
|
|
||||||
universityCourse() <singularityfunctions/universityCourse>
|
universityCourse() <singularityfunctions/universityCourse>
|
||||||
gymWorkout() <singularityfunctions/gymWorkout>
|
gymWorkout() <singularityfunctions/gymWorkout>
|
||||||
@@ -28,9 +23,12 @@ level 3, then you will be able to access all of the Singularity Functions.
|
|||||||
connect() <singularityfunctions/connect>
|
connect() <singularityfunctions/connect>
|
||||||
manualHack() <singularityfunctions/manualHack>
|
manualHack() <singularityfunctions/manualHack>
|
||||||
installBackdoor() <singularityfunctions/installBackdoor>
|
installBackdoor() <singularityfunctions/installBackdoor>
|
||||||
getPlayer() <singularityfunctions/getPlayer>
|
|
||||||
hospitalize() <singularityfunctions/hospitalize>
|
hospitalize() <singularityfunctions/hospitalize>
|
||||||
isBusy() <singularityfunctions/isBusy>
|
isBusy() <singularityfunctions/isBusy>
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:caption: Level 2 Functions
|
||||||
|
|
||||||
stopAction() <singularityfunctions/stopAction>
|
stopAction() <singularityfunctions/stopAction>
|
||||||
upgradeHomeRam() <singularityfunctions/upgradeHomeRam>
|
upgradeHomeRam() <singularityfunctions/upgradeHomeRam>
|
||||||
getUpgradeHomeRamCost() <singularityfunctions/getUpgradeHomeRamCost>
|
getUpgradeHomeRamCost() <singularityfunctions/getUpgradeHomeRamCost>
|
||||||
@@ -45,6 +43,10 @@ level 3, then you will be able to access all of the Singularity Functions.
|
|||||||
getFactionRep() <singularityfunctions/getFactionRep>
|
getFactionRep() <singularityfunctions/getFactionRep>
|
||||||
getFactionFavor() <singularityfunctions/getFactionFavor>
|
getFactionFavor() <singularityfunctions/getFactionFavor>
|
||||||
getFactionFavorGain() <singularityfunctions/getFactionFavorGain>
|
getFactionFavorGain() <singularityfunctions/getFactionFavorGain>
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:caption: Level 3 Functions
|
||||||
|
|
||||||
donateToFaction() <singularityfunctions/donateToFaction>
|
donateToFaction() <singularityfunctions/donateToFaction>
|
||||||
createProgram() <singularityfunctions/createProgram>
|
createProgram() <singularityfunctions/createProgram>
|
||||||
commitCrime() <singularityfunctions/commitCrime>
|
commitCrime() <singularityfunctions/commitCrime>
|
||||||
|
|||||||
@@ -1,103 +0,0 @@
|
|||||||
getPlayer() Netscript Function
|
|
||||||
==============================
|
|
||||||
|
|
||||||
.. js:function:: getPlayer()
|
|
||||||
|
|
||||||
:RAM cost: 0.5 GB
|
|
||||||
|
|
||||||
If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to run this function.
|
|
||||||
|
|
||||||
The result of this function can be passed to the :doc:`formulas API<../netscriptformulasapi>`.
|
|
||||||
|
|
||||||
Returns an object with the Player's stats. The object has the following properties::
|
|
||||||
|
|
||||||
{
|
|
||||||
hacking_skill
|
|
||||||
hp
|
|
||||||
max_hp
|
|
||||||
strength
|
|
||||||
defense
|
|
||||||
dexterity
|
|
||||||
agility
|
|
||||||
charisma
|
|
||||||
intelligence
|
|
||||||
hacking_chance_mult
|
|
||||||
hacking_speed_mult
|
|
||||||
hacking_money_mult
|
|
||||||
hacking_grow_mult
|
|
||||||
hacking_exp
|
|
||||||
strength_exp
|
|
||||||
defense_exp
|
|
||||||
dexterity_exp
|
|
||||||
agility_exp
|
|
||||||
charisma_exp
|
|
||||||
hacking_mult
|
|
||||||
strength_mult
|
|
||||||
defense_mult
|
|
||||||
dexterity_mult
|
|
||||||
agility_mult
|
|
||||||
charisma_mult
|
|
||||||
hacking_exp_mult
|
|
||||||
strength_exp_mult
|
|
||||||
defense_exp_mult
|
|
||||||
dexterity_exp_mult
|
|
||||||
agility_exp_mult
|
|
||||||
charisma_exp_mult
|
|
||||||
company_rep_mult
|
|
||||||
faction_rep_mult
|
|
||||||
money
|
|
||||||
city
|
|
||||||
location
|
|
||||||
crime_money_mult
|
|
||||||
crime_success_mult
|
|
||||||
isWorking
|
|
||||||
workType
|
|
||||||
currentWorkFactionName
|
|
||||||
currentWorkFactionDescription
|
|
||||||
workHackExpGainRate
|
|
||||||
workStrExpGainRate
|
|
||||||
workDefExpGainRate
|
|
||||||
workDexExpGainRate
|
|
||||||
workAgiExpGainRate
|
|
||||||
workChaExpGainRate
|
|
||||||
workRepGainRate
|
|
||||||
workMoneyGainRate
|
|
||||||
workMoneyLossRate
|
|
||||||
workHackExpGained
|
|
||||||
workStrExpGained
|
|
||||||
workDefExpGained
|
|
||||||
workDexExpGained
|
|
||||||
workAgiExpGained
|
|
||||||
workChaExpGained
|
|
||||||
workRepGained
|
|
||||||
workMoneyGained
|
|
||||||
createProgramName
|
|
||||||
createProgramReqLvl
|
|
||||||
className
|
|
||||||
crimeType
|
|
||||||
work_money_mult
|
|
||||||
hacknet_node_money_mult
|
|
||||||
hacknet_node_purchase_cost_mult
|
|
||||||
hacknet_node_ram_cost_mult
|
|
||||||
hacknet_node_core_cost_mult
|
|
||||||
hacknet_node_level_cost_mult
|
|
||||||
hasWseAccount
|
|
||||||
hasTixApiAccess
|
|
||||||
has4SData
|
|
||||||
has4SDataTixApi
|
|
||||||
bladeburner_max_stamina_mult
|
|
||||||
bladeburner_stamina_gain_mult
|
|
||||||
bladeburner_success_chance_mult
|
|
||||||
bitNodeN
|
|
||||||
totalPlaytime
|
|
||||||
playtimeSinceLastAug
|
|
||||||
playtimeSinceLastBitnode
|
|
||||||
jobs
|
|
||||||
factions
|
|
||||||
tor
|
|
||||||
}
|
|
||||||
|
|
||||||
Example::
|
|
||||||
|
|
||||||
player = getPlayer();
|
|
||||||
print('My charisma level is: ' + player.charisma);
|
|
||||||
@@ -10,6 +10,6 @@ purchaseTor() Netscript Function
|
|||||||
This function allows you to automatically purchase a TOR router. The cost for purchasing a TOR router using this
|
This function allows you to automatically purchase a TOR router. The cost for purchasing a TOR router using this
|
||||||
function is the same as if you were to manually purchase one.
|
function is the same as if you were to manually purchase one.
|
||||||
|
|
||||||
This function will return true if it successfully purchase a TOR router and false otherwise.
|
This function will return true if it successfully purchased a TOR router and false otherwise.
|
||||||
|
|
||||||
:RAM cost: 2 GB
|
:RAM cost: 2 GB
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
version: "3.4"
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
image: bitburner:dev
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
target: dev
|
||||||
|
ports:
|
||||||
|
- "8000:8000"
|
||||||
|
volumes:
|
||||||
|
- ./src:/app/src
|
||||||
|
- ./css:/app/css
|
||||||
|
- ./utils:/app/utils
|
||||||
|
- ./test:/app/test
|
||||||
+43
-46
@@ -33,83 +33,83 @@
|
|||||||
<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 id="hacking-menu-header" class="mainmenu-accordion-header"> Hacking </button>
|
<button id="hacking-menu-header" class="mainmenu-accordion-header noselect"> Hacking </button>
|
||||||
</li>
|
</li>
|
||||||
<li id="terminal-tab" class="mainmenu-accordion-panel">
|
<li id="terminal-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="terminal-menu-link"> Terminal </button>
|
<button id="terminal-menu-link"> Terminal </button>
|
||||||
</li>
|
</li>
|
||||||
<li id="create-script-tab" class="mainmenu-accordion-panel">
|
<li id="create-script-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="create-script-menu-link"> Create Script </button>
|
<button id="create-script-menu-link"> Create Script </button>
|
||||||
</li>
|
</li>
|
||||||
<li id="active-scripts-tab" class="mainmenu-accordion-panel">
|
<li id="active-scripts-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="active-scripts-menu-link"> Active Scripts </button>
|
<button id="active-scripts-menu-link"> Active Scripts </button>
|
||||||
</li>
|
</li>
|
||||||
<li id="create-program-tab" class="mainmenu-accordion-panel">
|
<li id="create-program-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="create-program-menu-link"> Create Program </button>
|
<button id="create-program-menu-link"> Create Program </button>
|
||||||
<span id="create-program-notification" class="notification-off"> </span>
|
<span id="create-program-notification" class="notification-off"> </span>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<!-- Character dropdown -->
|
<!-- Character dropdown -->
|
||||||
<li id="character-menu-header-li">
|
<li id="character-menu-header-li">
|
||||||
<button id="character-menu-header" class="mainmenu-accordion-header"> Character </button>
|
<button id="character-menu-header" class="mainmenu-accordion-header noselect"> Character </button>
|
||||||
</li>
|
</li>
|
||||||
<li id="stats-tab" class="mainmenu-accordion-panel">
|
<li id="stats-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="stats-menu-link"> Stats </button>
|
<button id="stats-menu-link"> Stats </button>
|
||||||
</li>
|
</li>
|
||||||
<li id="factions-tab" class="mainmenu-accordion-panel">
|
<li id="factions-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="factions-menu-link"> Factions </button>
|
<button id="factions-menu-link"> Factions </button>
|
||||||
<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">
|
<li id="augmentations-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="augmentations-menu-link" style="overflow: hidden; text-overflow: ellipsis; white-space: nowrap;"> Augmentations </button>
|
<button id="augmentations-menu-link" style="overflow: hidden; text-overflow: ellipsis; white-space: nowrap;"> Augmentations </button>
|
||||||
<span id="augmentations-notification" class="notification-off"> </span>
|
<span id="augmentations-notification" class="notification-off"> </span>
|
||||||
</li>
|
</li>
|
||||||
<li id="hacknet-nodes-tab" class="mainmenu-accordion-panel">
|
<li id="hacknet-nodes-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="hacknet-nodes-menu-link"> Hacknet Nodes </button>
|
<button id="hacknet-nodes-menu-link"> Hacknet </button>
|
||||||
</li>
|
</li>
|
||||||
<li id="sleeves-tab" class="mainmenu-accordion-panel">
|
<li id="sleeves-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="sleeves-menu-link"> Sleeves </button>
|
<button id="sleeves-menu-link"> Sleeves </button>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<!-- World dropdown -->
|
<!-- World dropdown -->
|
||||||
<li id="world-menu-header-li">
|
<li id="world-menu-header-li">
|
||||||
<button id="world-menu-header" class="mainmenu-accordion-header">World</button>
|
<button id="world-menu-header" class="mainmenu-accordion-header noselect">World</button>
|
||||||
</li>
|
</li>
|
||||||
<li id="city-tab" class="mainmenu-accordion-panel">
|
<li id="city-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="city-menu-link"> City </button>
|
<button id="city-menu-link"> City </button>
|
||||||
</li>
|
</li>
|
||||||
<li id="travel-tab" class="mainmenu-accordion-panel">
|
<li id="travel-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="travel-menu-link"> Travel </button>
|
<button id="travel-menu-link"> Travel </button>
|
||||||
</li>
|
</li>
|
||||||
<li id="job-tab" class="mainmenu-accordion-panel">
|
<li id="job-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="job-menu-link"> Job </button>
|
<button id="job-menu-link"> Job </button>
|
||||||
</li>
|
</li>
|
||||||
<li id="stock-market-tab" class="mainmenu-accordion-panel">
|
<li id="stock-market-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="stock-market-menu-link"> Stock Market </button>
|
<button id="stock-market-menu-link"> Stock Market </button>
|
||||||
</li>
|
</li>
|
||||||
<li id="bladeburner-tab" class="mainmenu-accordion-panel">
|
<li id="bladeburner-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="bladeburner-menu-link"> Bladeburner </button>
|
<button id="bladeburner-menu-link"> Bladeburner </button>
|
||||||
</li>
|
</li>
|
||||||
<li id="corporation-tab" class="mainmenu-accordion-panel">
|
<li id="corporation-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="corporation-menu-link"> Corp </button>
|
<button id="corporation-menu-link"> Corp </button>
|
||||||
</li>
|
</li>
|
||||||
<li id="gang-tab" class="mainmenu-accordion-panel">
|
<li id="gang-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="gang-menu-link"> Gang </button>
|
<button id="gang-menu-link"> Gang </button>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li id="help-menu-header-li">
|
<li id="help-menu-header-li">
|
||||||
<button id="help-menu-header" class="mainmenu-accordion-header"> Help </button>
|
<button id="help-menu-header" class="mainmenu-accordion-header noselect"> Help </button>
|
||||||
</li>
|
</li>
|
||||||
<li id="milestones-tab" class="mainmenu-accordion-panel">
|
<li id="milestones-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="milestones-menu-link"> Milestones </button>
|
<button id="milestones-menu-link"> Milestones </button>
|
||||||
</li>
|
</li>
|
||||||
<li id="tutorial-tab" class="mainmenu-accordion-panel">
|
<li id="tutorial-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="tutorial-menu-link"> Tutorial </button>
|
<button id="tutorial-menu-link"> Tutorial </button>
|
||||||
</li>
|
</li>
|
||||||
<li id="options-tab" class="mainmenu-accordion-panel">
|
<li id="options-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="options-menu-link"> Options </button>
|
<button id="options-menu-link"> Options </button>
|
||||||
</li>
|
</li>
|
||||||
<li id="dev-tab" class="mainmenu-accordion-panel">
|
<li id="dev-tab" class="mainmenu-accordion-panel noselect">
|
||||||
<button id="dev-menu-link"> Dev </button>
|
<button id="dev-menu-link"> Dev </button>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -264,31 +264,17 @@
|
|||||||
<div id="location-container" class="generic-menupage-container">
|
<div id="location-container" class="generic-menupage-container">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="infiltration-container" class="generic-menupage-container">
|
<div id="infiltration-container" class="generic-fullscreen-container">
|
||||||
<div id="infiltration-left-panel">
|
|
||||||
<p id="infiltration-level-text"> </p>
|
|
||||||
<div id="infiltration-buttons">
|
|
||||||
<button class="a-link-button tooltip" id="infiltration-kill"> </button>
|
|
||||||
<button class="a-link-button tooltip" id="infiltration-knockout"> </button>
|
|
||||||
<button class="a-link-button tooltip" id="infiltration-stealthknockout"> </button>
|
|
||||||
<button class="a-link-button tooltip" id="infiltration-assassinate"> </button>
|
|
||||||
<button class="a-link-button tooltip" id="infiltration-hacksecurity"> </button>
|
|
||||||
<button class="a-link-button tooltip" id="infiltration-destroysecurity"> </button>
|
|
||||||
<button class="a-link-button tooltip" id="infiltration-sneak"> </button>
|
|
||||||
<button class="a-link-button tooltip" id="infiltration-pickdoor"> </button>
|
|
||||||
<button class="a-link-button tooltip" id="infiltration-bribe"> </button>
|
|
||||||
<button class="a-link-button tooltip" id="infiltration-escape"> </button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="infiltration-right-panel">
|
|
||||||
<p id="infiltration-status-text"></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="stock-market-container" class="generic-menupage-container">
|
<div id="stock-market-container" class="generic-menupage-container">
|
||||||
<!-- React Component -->
|
<!-- React Component -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="gang-container" class="generic-menupage-container">
|
||||||
|
<!-- React Component -->
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- Log Box -->
|
<!-- Log Box -->
|
||||||
<div id="log-box-container">
|
<div id="log-box-container">
|
||||||
<div id="log-box-content">
|
<div id="log-box-content">
|
||||||
@@ -352,7 +338,8 @@
|
|||||||
<div id="work-in-progress-container" class="generic-fullscreen-container">
|
<div id="work-in-progress-container" class="generic-fullscreen-container">
|
||||||
<p id="work-in-progress-text"> </p>
|
<p id="work-in-progress-text"> </p>
|
||||||
|
|
||||||
<button id="work-in-progress-cancel-button"> Cancel Work </button>
|
<button id="work-in-progress-cancel-button" class="work-button"> Cancel Work </button>
|
||||||
|
<button id="work-in-progress-something-else-button" class="work-button"> Do something else simultaneously </button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Red Pill Container -->
|
<!-- Red Pill Container -->
|
||||||
@@ -379,7 +366,7 @@
|
|||||||
<div id="character-overview-text">
|
<div id="character-overview-text">
|
||||||
<!-- ReactJS Component -->
|
<!-- ReactJS Component -->
|
||||||
</div>
|
</div>
|
||||||
<div class="character-quick-options">
|
<div class="character-quick-options noselect">
|
||||||
<button id="character-overview-save-button" class="character-overview-btn">Save Game</button>
|
<button id="character-overview-save-button" class="character-overview-btn">Save Game</button>
|
||||||
<button id="character-overview-options-button" class="character-overview-btn">Options</button>
|
<button id="character-overview-options-button" class="character-overview-btn">Options</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -506,6 +493,16 @@
|
|||||||
<input class="optionCheckbox" type="checkbox" name="settingsSuppressHospitalizationPopup" id="settingsSuppressHospitalizationPopup">
|
<input class="optionCheckbox" type="checkbox" name="settingsSuppressHospitalizationPopup" id="settingsSuppressHospitalizationPopup">
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
|
<!-- Suppress Bladeburner popups -->
|
||||||
|
<fieldset>
|
||||||
|
<label for="settingsSuppressBladeburnerPopup" class="tooltip">Suppress Bladeburner Popup:
|
||||||
|
<span class="tooltiptext">
|
||||||
|
If this is set, then having your Bladeburner actions interrupted by being busy with something else will not display a popup message.
|
||||||
|
</span>
|
||||||
|
</label>
|
||||||
|
<input class="optionCheckbox" type="checkbox" name="settingsSuppressBladeburnerPopup" id="settingsSuppressBladeburnerPopup">
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
<!-- Disable Terminal and Navigation Shortcuts -->
|
<!-- Disable Terminal and Navigation Shortcuts -->
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<label for="settingsDisableHotkeys" class="tooltip">Disable Hotkeys:
|
<label for="settingsDisableHotkeys" class="tooltip">Disable Hotkeys:
|
||||||
|
|||||||
Generated
+782
-1206
File diff suppressed because it is too large
Load Diff
+7
-5
@@ -10,7 +10,7 @@
|
|||||||
"@types/numeral": "0.0.25",
|
"@types/numeral": "0.0.25",
|
||||||
"@types/react": "^16.8.6",
|
"@types/react": "^16.8.6",
|
||||||
"@types/react-dom": "^16.8.2",
|
"@types/react-dom": "^16.8.2",
|
||||||
"acorn": "^6.2.0",
|
"acorn": "^6.4.1",
|
||||||
"acorn-walk": "^6.2.0",
|
"acorn-walk": "^6.2.0",
|
||||||
"ajv": "^5.1.5",
|
"ajv": "^5.1.5",
|
||||||
"ajv-keywords": "^2.0.0",
|
"ajv-keywords": "^2.0.0",
|
||||||
@@ -18,14 +18,14 @@
|
|||||||
"async": "^2.6.1",
|
"async": "^2.6.1",
|
||||||
"autosize": "^4.0.2",
|
"autosize": "^4.0.2",
|
||||||
"brace": "^0.11.1",
|
"brace": "^0.11.1",
|
||||||
"codemirror": "^5.43.0",
|
"codemirror": "^5.58.2",
|
||||||
"decimal.js": "7.2.3",
|
"decimal.js": "7.2.3",
|
||||||
"enhanced-resolve": "^4.0.0",
|
"enhanced-resolve": "^4.0.0",
|
||||||
"escodegen": "^1.11.0",
|
"escodegen": "^1.11.0",
|
||||||
"escope": "^3.6.0",
|
"escope": "^3.6.0",
|
||||||
"file-saver": "^1.3.8",
|
"file-saver": "^1.3.8",
|
||||||
"interpret": "^1.0.0",
|
"interpret": "^1.0.0",
|
||||||
"jquery": "^3.3.1",
|
"jquery": "^3.5.0",
|
||||||
"jshint": "^2.10.2",
|
"jshint": "^2.10.2",
|
||||||
"json-loader": "^0.5.4",
|
"json-loader": "^0.5.4",
|
||||||
"jsplumb": "^2.6.8",
|
"jsplumb": "^2.6.8",
|
||||||
@@ -33,6 +33,7 @@
|
|||||||
"loader-runner": "^2.3.0",
|
"loader-runner": "^2.3.0",
|
||||||
"loader-utils": "^1.1.0",
|
"loader-utils": "^1.1.0",
|
||||||
"memory-fs": "~0.4.1",
|
"memory-fs": "~0.4.1",
|
||||||
|
"node-sass": "^6.0.1",
|
||||||
"normalize.css": "^8.0.0",
|
"normalize.css": "^8.0.0",
|
||||||
"numeral": "2.0.6",
|
"numeral": "2.0.6",
|
||||||
"react": "^16.8.3",
|
"react": "^16.8.3",
|
||||||
@@ -76,7 +77,6 @@
|
|||||||
"mkdirp": "^0.5.1",
|
"mkdirp": "^0.5.1",
|
||||||
"mocha": "^6.1.4",
|
"mocha": "^6.1.4",
|
||||||
"mochapack": "^1.1.1",
|
"mochapack": "^1.1.1",
|
||||||
"node-sass": "^5.0.0",
|
|
||||||
"null-loader": "^1.0.0",
|
"null-loader": "^1.0.0",
|
||||||
"raw-loader": "~0.5.0",
|
"raw-loader": "~0.5.0",
|
||||||
"sass-loader": "^7.0.3",
|
"sass-loader": "^7.0.3",
|
||||||
@@ -113,6 +113,7 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start:dev": "webpack-dev-server --progress --env.devServer --mode development",
|
"start:dev": "webpack-dev-server --progress --env.devServer --mode development",
|
||||||
|
"start:container": "webpack-dev-server --progress --env.devServer --mode development --env.runInContainer",
|
||||||
"build": "webpack --mode production",
|
"build": "webpack --mode production",
|
||||||
"build:dev": "webpack --mode development",
|
"build:dev": "webpack --mode development",
|
||||||
"build:test": "webpack --config webpack.config-test.js",
|
"build:test": "webpack --config webpack.config-test.js",
|
||||||
@@ -121,8 +122,9 @@
|
|||||||
"lint:style": "stylelint --fix ./css/*",
|
"lint:style": "stylelint --fix ./css/*",
|
||||||
"preinstall": "node ./scripts/engines-check.js",
|
"preinstall": "node ./scripts/engines-check.js",
|
||||||
"test": "mochapack --webpack-config webpack.config-test.js -r jsdom-global/register ./test/index.js",
|
"test": "mochapack --webpack-config webpack.config-test.js -r jsdom-global/register ./test/index.js",
|
||||||
|
"test:container": "mochapack --webpack-config webpack.config-test.js --slow 2000 --timeout 10000 -r jsdom-global/register ./test/index.js",
|
||||||
"watch": "webpack --watch --mode production",
|
"watch": "webpack --watch --mode production",
|
||||||
"watch:dev": "webpack --watch --mode development"
|
"watch:dev": "webpack --watch --mode development"
|
||||||
},
|
},
|
||||||
"version": "0.51.8"
|
"version": "0.52.3"
|
||||||
}
|
}
|
||||||
|
|||||||
+22
-15
@@ -51,14 +51,14 @@ function addAlias(name: string, value: string): void {
|
|||||||
if (name in GlobalAliases) {
|
if (name in GlobalAliases) {
|
||||||
delete GlobalAliases[name];
|
delete GlobalAliases[name];
|
||||||
}
|
}
|
||||||
Aliases[name] = value;
|
Aliases[name] = value.trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
function addGlobalAlias(name: string, value: string): void {
|
function addGlobalAlias(name: string, value: string): void {
|
||||||
if (name in Aliases){
|
if (name in Aliases){
|
||||||
delete Aliases[name];
|
delete Aliases[name];
|
||||||
}
|
}
|
||||||
GlobalAliases[name] = value;
|
GlobalAliases[name] = value.trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAlias(name: string): string | null {
|
function getAlias(name: string): string | null {
|
||||||
@@ -97,22 +97,29 @@ export function removeAlias(name: string): boolean {
|
|||||||
export function substituteAliases(origCommand: string): string {
|
export function substituteAliases(origCommand: string): string {
|
||||||
const commandArray = origCommand.split(" ");
|
const commandArray = origCommand.split(" ");
|
||||||
if (commandArray.length > 0){
|
if (commandArray.length > 0){
|
||||||
// For the unalias command, dont substite
|
// For the alias and unalias commands, dont substite
|
||||||
if (commandArray[0] === "unalias") { return commandArray.join(" "); }
|
if (commandArray[0] === "unalias" || commandArray[0] === "alias") { return commandArray.join(" "); }
|
||||||
|
|
||||||
const alias = getAlias(commandArray[0]);
|
let somethingSubstituted = true;
|
||||||
if (alias != null) {
|
let depth = 0;
|
||||||
commandArray[0] = alias;
|
|
||||||
} else {
|
while(somethingSubstituted && depth < 10){
|
||||||
const alias = getGlobalAlias(commandArray[0]);
|
depth++;
|
||||||
|
somethingSubstituted = false
|
||||||
|
const alias = getAlias(commandArray[0])?.split(" ");
|
||||||
if (alias != null) {
|
if (alias != null) {
|
||||||
commandArray[0] = alias;
|
somethingSubstituted = true
|
||||||
|
commandArray.splice(0, 1, ...alias);
|
||||||
|
//commandArray[0] = alias;
|
||||||
}
|
}
|
||||||
}
|
for (let i = 0; i < commandArray.length; ++i) {
|
||||||
for (let i = 0; i < commandArray.length; ++i) {
|
const alias = getGlobalAlias(commandArray[i])?.split(" ");
|
||||||
const alias = getGlobalAlias(commandArray[i]);
|
if (alias != null) {
|
||||||
if (alias != null) {
|
somethingSubstituted = true
|
||||||
commandArray[i] = alias;
|
commandArray.splice(i, 1, ...alias);
|
||||||
|
i += alias.length - 1;
|
||||||
|
//commandArray[i] = alias;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,18 @@
|
|||||||
// Class definition for a single Augmentation object
|
// Class definition for a single Augmentation object
|
||||||
import { CONSTANTS } from "../Constants";
|
import * as React from "react";
|
||||||
import { IMap } from "../types";
|
import { IMap } from "../types";
|
||||||
|
|
||||||
import { BitNodeMultipliers } from "../BitNode/BitNodeMultipliers";
|
import { BitNodeMultipliers } from "../BitNode/BitNodeMultipliers";
|
||||||
import { Faction } from "../Faction/Faction";
|
import { Faction } from "../Faction/Faction";
|
||||||
import { Factions } from "../Faction/Factions";
|
import { Factions } from "../Faction/Factions";
|
||||||
|
import { numeralWrapper } from "../ui/numeralFormat";
|
||||||
|
import { Money } from "../ui/React/Money";
|
||||||
|
|
||||||
import { Generic_fromJSON, Generic_toJSON, Reviver } from "../../utils/JSONReviver";
|
import { Generic_fromJSON, Generic_toJSON, Reviver } from "../../utils/JSONReviver";
|
||||||
|
|
||||||
interface IConstructorParams {
|
interface IConstructorParams {
|
||||||
info: string | JSX.Element;
|
info: string | JSX.Element;
|
||||||
|
stats?: JSX.Element;
|
||||||
isSpecial?: boolean;
|
isSpecial?: boolean;
|
||||||
moneyCost: number;
|
moneyCost: number;
|
||||||
name: string;
|
name: string;
|
||||||
@@ -46,6 +49,129 @@ interface IConstructorParams {
|
|||||||
bladeburner_stamina_gain_mult?: number;
|
bladeburner_stamina_gain_mult?: number;
|
||||||
bladeburner_analysis_mult?: number;
|
bladeburner_analysis_mult?: number;
|
||||||
bladeburner_success_chance_mult?: number;
|
bladeburner_success_chance_mult?: number;
|
||||||
|
|
||||||
|
startingMoney?: number;
|
||||||
|
programs?: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
function generateStatsDescription(mults: IMap<number>, programs?: string[], startingMoney?: number): JSX.Element {
|
||||||
|
const f = (x: number, decimals: number = 0) => {
|
||||||
|
// look, I don't know how to make a "smart decimals"
|
||||||
|
// todo, make it smarter
|
||||||
|
if(x === 1.0777-1) return "7.77%";
|
||||||
|
if(x === 1.777-1) return "77.7%";
|
||||||
|
return numeralWrapper.formatPercentage(x, decimals);
|
||||||
|
};
|
||||||
|
let desc = <>Effects:</>;
|
||||||
|
|
||||||
|
if(mults.hacking_mult &&
|
||||||
|
mults.hacking_mult == mults.strength_mult &&
|
||||||
|
mults.hacking_mult == mults.defense_mult &&
|
||||||
|
mults.hacking_mult == mults.dexterity_mult &&
|
||||||
|
mults.hacking_mult == mults.agility_mult &&
|
||||||
|
mults.hacking_mult == mults.charisma_mult){
|
||||||
|
desc = <>{desc}<br />+{f(mults.hacking_mult-1)} all skills</>
|
||||||
|
} else {
|
||||||
|
if(mults.hacking_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.hacking_mult-1)} hacking skill</>
|
||||||
|
|
||||||
|
if(mults.strength_mult &&
|
||||||
|
mults.strength_mult == mults.defense_mult &&
|
||||||
|
mults.strength_mult == mults.dexterity_mult &&
|
||||||
|
mults.strength_mult == mults.agility_mult) {
|
||||||
|
desc = <>{desc}<br />+{f(mults.strength_mult-1)} combat skills</>
|
||||||
|
} else {
|
||||||
|
if(mults.strength_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.strength_mult-1)} strength skill</>
|
||||||
|
if(mults.defense_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.defense_mult-1)} defense skill</>
|
||||||
|
if(mults.dexterity_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.dexterity_mult-1)} dexterity skill</>
|
||||||
|
if(mults.agility_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.agility_mult-1)} agility skill</>
|
||||||
|
}
|
||||||
|
if(mults.charisma_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.charisma_mult-1)} Charisma skill</>
|
||||||
|
}
|
||||||
|
|
||||||
|
if(mults.hacking_exp_mult &&
|
||||||
|
mults.hacking_exp_mult === mults.strength_exp_mult &&
|
||||||
|
mults.hacking_exp_mult === mults.defense_exp_mult &&
|
||||||
|
mults.hacking_exp_mult === mults.dexterity_exp_mult &&
|
||||||
|
mults.hacking_exp_mult === mults.agility_exp_mult &&
|
||||||
|
mults.hacking_exp_mult === mults.charisma_exp_mult) {
|
||||||
|
desc = <>{desc}<br />+{f(mults.hacking_exp_mult-1)} exp for all skills</>
|
||||||
|
} else {
|
||||||
|
if(mults.hacking_exp_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.hacking_exp_mult-1)} hacking exp</>
|
||||||
|
|
||||||
|
if(mults.strength_exp_mult &&
|
||||||
|
mults.strength_exp_mult === mults.defense_exp_mult &&
|
||||||
|
mults.strength_exp_mult === mults.dexterity_exp_mult &&
|
||||||
|
mults.strength_exp_mult === mults.agility_exp_mult) {
|
||||||
|
desc = <>{desc}<br />+{f(mults.strength_exp_mult-1)} combat exp</>
|
||||||
|
} else {
|
||||||
|
if(mults.strength_exp_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.strength_exp_mult-1)} strength exp</>
|
||||||
|
if(mults.defense_exp_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.defense_exp_mult-1)} defense exp</>
|
||||||
|
if(mults.dexterity_exp_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.dexterity_exp_mult-1)} dexterity exp</>
|
||||||
|
if(mults.agility_exp_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.agility_exp_mult-1)} agility exp</>
|
||||||
|
}
|
||||||
|
if(mults.charisma_exp_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.charisma_exp_mult-1)} charisma exp</>
|
||||||
|
}
|
||||||
|
|
||||||
|
if(mults.hacking_speed_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.hacking_speed_mult-1)} faster hacking</>
|
||||||
|
if(mults.hacking_chance_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.hacking_chance_mult-1)} hack() success chance</>
|
||||||
|
if(mults.hacking_money_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.hacking_money_mult-1)} hack() power</>
|
||||||
|
if(mults.hacking_grow_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.hacking_grow_mult-1)} grow() power</>
|
||||||
|
|
||||||
|
if(mults.faction_rep_mult &&
|
||||||
|
mults.faction_rep_mult === mults.company_rep_mult) {
|
||||||
|
desc = <>{desc}<br />+{f(mults.faction_rep_mult-1)} reputation from factions and companies</>
|
||||||
|
} else {
|
||||||
|
if(mults.faction_rep_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.faction_rep_mult-1)} reputation from factions</>
|
||||||
|
if(mults.company_rep_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.company_rep_mult-1)} reputation from companies</>
|
||||||
|
}
|
||||||
|
|
||||||
|
if(mults.crime_money_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.crime_money_mult-1)} crime money</>
|
||||||
|
if(mults.crime_success_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.crime_success_mult-1)} crime success rate</>
|
||||||
|
if(mults.work_money_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.work_money_mult-1)} work money</>
|
||||||
|
|
||||||
|
if(mults.hacknet_node_money_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.hacknet_node_money_mult-1)} hacknet production</>
|
||||||
|
if(mults.hacknet_node_purchase_cost_mult)
|
||||||
|
desc = <>{desc}<br />-{f(-(mults.hacknet_node_purchase_cost_mult-1))} hacknet nodes cost</>
|
||||||
|
if(mults.hacknet_node_level_cost_mult)
|
||||||
|
desc = <>{desc}<br />-{f(-(mults.hacknet_node_level_cost_mult-1))} hacknet nodes upgrade cost</>
|
||||||
|
|
||||||
|
if(mults.bladeburner_max_stamina_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.bladeburner_max_stamina_mult-1)} Bladeburner Max Stamina</>
|
||||||
|
if(mults.bladeburner_stamina_gain_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.bladeburner_stamina_gain_mult-1)} Bladeburner Stamina gain</>
|
||||||
|
if(mults.bladeburner_analysis_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.bladeburner_analysis_mult-1)} Bladeburner Field Analysis effectiveness</>
|
||||||
|
if(mults.bladeburner_success_chance_mult)
|
||||||
|
desc = <>{desc}<br />+{f(mults.bladeburner_success_chance_mult-1)} Bladeburner Contracts and Operations success chance</>
|
||||||
|
|
||||||
|
if(startingMoney)
|
||||||
|
desc = <>{desc}<br />Start with {Money(startingMoney)} after installing Augmentations.</>
|
||||||
|
|
||||||
|
if(programs)
|
||||||
|
desc = <>{desc}<br />Start with {programs.join(' and ')} after installing Augmentations.</>
|
||||||
|
return desc;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Augmentation {
|
export class Augmentation {
|
||||||
@@ -59,6 +185,9 @@ export class Augmentation {
|
|||||||
// Description of what this Aug is and what it does
|
// Description of what this Aug is and what it does
|
||||||
info: string | JSX.Element;
|
info: string | JSX.Element;
|
||||||
|
|
||||||
|
// Description of the stats, often autogenerated, sometimes manually written.
|
||||||
|
stats: JSX.Element;
|
||||||
|
|
||||||
// Any Augmentation not immediately available in BitNode-1 is special (e.g. Bladeburner augs)
|
// Any Augmentation not immediately available in BitNode-1 is special (e.g. Bladeburner augs)
|
||||||
isSpecial = false;
|
isSpecial = false;
|
||||||
|
|
||||||
@@ -86,8 +215,8 @@ export class Augmentation {
|
|||||||
this.info = params.info;
|
this.info = params.info;
|
||||||
this.prereqs = params.prereqs ? params.prereqs : [];
|
this.prereqs = params.prereqs ? params.prereqs : [];
|
||||||
|
|
||||||
this.baseRepRequirement = params.repCost * CONSTANTS.AugmentationRepMultiplier * BitNodeMultipliers.AugmentationRepCost;
|
this.baseRepRequirement = params.repCost * BitNodeMultipliers.AugmentationRepCost;
|
||||||
this.baseCost = params.moneyCost * CONSTANTS.AugmentationCostMultiplier * BitNodeMultipliers.AugmentationMoneyCost;
|
this.baseCost = params.moneyCost * BitNodeMultipliers.AugmentationMoneyCost;
|
||||||
this.startingCost = this.baseCost;
|
this.startingCost = this.baseCost;
|
||||||
|
|
||||||
if (params.isSpecial) {
|
if (params.isSpecial) {
|
||||||
@@ -127,6 +256,11 @@ export class Augmentation {
|
|||||||
if (params.bladeburner_stamina_gain_mult) { this.mults.bladeburner_stamina_gain_mult = params.bladeburner_stamina_gain_mult; }
|
if (params.bladeburner_stamina_gain_mult) { this.mults.bladeburner_stamina_gain_mult = params.bladeburner_stamina_gain_mult; }
|
||||||
if (params.bladeburner_analysis_mult) { this.mults.bladeburner_analysis_mult = params.bladeburner_analysis_mult; }
|
if (params.bladeburner_analysis_mult) { this.mults.bladeburner_analysis_mult = params.bladeburner_analysis_mult; }
|
||||||
if (params.bladeburner_success_chance_mult) { this.mults.bladeburner_success_chance_mult = params.bladeburner_success_chance_mult; }
|
if (params.bladeburner_success_chance_mult) { this.mults.bladeburner_success_chance_mult = params.bladeburner_success_chance_mult; }
|
||||||
|
|
||||||
|
if(params.stats)
|
||||||
|
this.stats = params.stats;
|
||||||
|
else
|
||||||
|
this.stats = generateStatsDescription(this.mults, params.programs, params.startingMoney);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adds this Augmentation to the specified Factions
|
// Adds this Augmentation to the specified Factions
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -47,6 +47,7 @@ export const AugmentationNames: IMap<string> = {
|
|||||||
PCDNI: "PC Direct-Neural Interface",
|
PCDNI: "PC Direct-Neural Interface",
|
||||||
PCDNIOptimizer: "PC Direct-Neural Interface Optimization Submodule",
|
PCDNIOptimizer: "PC Direct-Neural Interface Optimization Submodule",
|
||||||
PCDNINeuralNetwork: "PC Direct-Neural Interface NeuroNet Injector",
|
PCDNINeuralNetwork: "PC Direct-Neural Interface NeuroNet Injector",
|
||||||
|
PCMatrix: "PCMatrix",
|
||||||
ADRPheromone1: "ADR-V1 Pheromone Gene",
|
ADRPheromone1: "ADR-V1 Pheromone Gene",
|
||||||
ADRPheromone2: "ADR-V2 Pheromone Gene",
|
ADRPheromone2: "ADR-V2 Pheromone Gene",
|
||||||
ShadowsSimulacrum: "The Shadow's Simulacrum",
|
ShadowsSimulacrum: "The Shadow's Simulacrum",
|
||||||
@@ -78,6 +79,7 @@ export const AugmentationNames: IMap<string> = {
|
|||||||
PhotosyntheticCells: "Photosynthetic Cells",
|
PhotosyntheticCells: "Photosynthetic Cells",
|
||||||
Neurolink: "BitRunners Neurolink",
|
Neurolink: "BitRunners Neurolink",
|
||||||
TheBlackHand: "The Black Hand",
|
TheBlackHand: "The Black Hand",
|
||||||
|
UnstableCircadianModulator: "Unstable Circadian Modulator",
|
||||||
CRTX42AA: "CRTX42-AA Gene Modification",
|
CRTX42AA: "CRTX42-AA Gene Modification",
|
||||||
Neuregen: "Neuregen Gene Modification",
|
Neuregen: "Neuregen Gene Modification",
|
||||||
CashRoot: "CashRoot Starter Kit",
|
CashRoot: "CashRoot Starter Kit",
|
||||||
|
|||||||
@@ -48,10 +48,10 @@ export function PlayerMultipliers(): React.ReactElement {
|
|||||||
if(!Player.canAccessBladeburner()) return (<></>);
|
if(!Player.canAccessBladeburner()) return (<></>);
|
||||||
return (<>
|
return (<>
|
||||||
{MultiplierTable([
|
{MultiplierTable([
|
||||||
['Bladeburner Success Chance', Player.bladeburner_max_stamina_mult, Player.bladeburner_max_stamina_mult*mults.bladeburner_max_stamina_mult],
|
['Bladeburner Success Chance', Player.bladeburner_success_chance_mult, Player.bladeburner_success_chance_mult*mults.bladeburner_success_chance_mult],
|
||||||
['Bladeburner Max Stamina', Player.bladeburner_max_stamina_mult, Player.bladeburner_max_stamina_mult*mults.bladeburner_max_stamina_mult],
|
['Bladeburner Max Stamina', Player.bladeburner_max_stamina_mult, Player.bladeburner_max_stamina_mult*mults.bladeburner_max_stamina_mult],
|
||||||
['Bladeburner Stamina Gain', Player.bladeburner_max_stamina_mult, Player.bladeburner_max_stamina_mult*mults.bladeburner_max_stamina_mult],
|
['Bladeburner Stamina Gain', Player.bladeburner_stamina_gain_mult, Player.bladeburner_stamina_gain_mult*mults.bladeburner_stamina_gain_mult],
|
||||||
['Bladeburner Field Analysis', Player.bladeburner_max_stamina_mult, Player.bladeburner_max_stamina_mult*mults.bladeburner_max_stamina_mult],
|
['Bladeburner Field Analysis', Player.bladeburner_analysis_mult, Player.bladeburner_analysis_mult*mults.bladeburner_analysis_mult],
|
||||||
])}<br />
|
])}<br />
|
||||||
</>);
|
</>);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,17 @@ import { AugmentationAccordion } from "../../ui/React/AugmentationAccordion";
|
|||||||
|
|
||||||
export function PurchasedAugmentations(): React.ReactElement {
|
export function PurchasedAugmentations(): React.ReactElement {
|
||||||
const augs: React.ReactElement[] = [];
|
const augs: React.ReactElement[] = [];
|
||||||
for (const ownedAug of Player.queuedAugmentations) {
|
// Only render the last NeuroFlux (there are no findLastIndex btw)
|
||||||
|
let nfgIndex = -1;
|
||||||
|
for(let i = Player.queuedAugmentations.length-1; i >= 0; i--) {
|
||||||
|
if(Player.queuedAugmentations[i].name === AugmentationNames.NeuroFluxGovernor) {
|
||||||
|
nfgIndex = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (let i = 0; i < Player.queuedAugmentations.length; i++) {
|
||||||
|
const ownedAug = Player.queuedAugmentations[i];
|
||||||
|
if(ownedAug.name === AugmentationNames.NeuroFluxGovernor && i !== nfgIndex) continue;
|
||||||
const aug = Augmentations[ownedAug.name];
|
const aug = Augmentations[ownedAug.name];
|
||||||
let level = null;
|
let level = null;
|
||||||
if (ownedAug.name === AugmentationNames.NeuroFluxGovernor) {
|
if (ownedAug.name === AugmentationNames.NeuroFluxGovernor) {
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user