mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-16 06:18:42 +02:00
Compare commits
630 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a564957092 | ||
|
|
4b8e63f342 | ||
|
|
4de20f8cce | ||
|
|
4b38d296a8 | ||
|
|
6561413137 | ||
|
|
b67c03ff8a | ||
|
|
ee5a70901b | ||
|
|
63b2c77907 | ||
|
|
474befa091 | ||
|
|
cd1c1ce145 | ||
|
|
5aa24f22c4 | ||
|
|
f02c6443cc | ||
|
|
4497143785 | ||
|
|
0b3c48827b | ||
|
|
86de11e794 | ||
|
|
fb87385704 | ||
|
|
b1caea796a | ||
|
|
2dfd19c9e0 | ||
|
|
0e24020796 | ||
|
|
ed62a3ebc2 | ||
|
|
258716388e | ||
|
|
73ec97db87 | ||
|
|
567c5dc230 | ||
|
|
980665b77c | ||
|
|
dcddc0c2d5 | ||
|
|
6e1100750e | ||
|
|
df457a0c6e | ||
|
|
ee3530d9b9 | ||
|
|
1a1a43c1ce | ||
|
|
d6b349b6ff | ||
|
|
5c92360310 | ||
|
|
1fbb971d6f | ||
|
|
fa78b3f421 | ||
|
|
9af9bf58b6 | ||
|
|
99afb156fa | ||
|
|
8d550157bc | ||
|
|
4865563f26 | ||
|
|
cc8de58cff | ||
|
|
58ada6d128 | ||
|
|
ae6f95b59a | ||
|
|
99d4f17cdb | ||
|
|
33f0efd49c | ||
|
|
988ca37764 | ||
|
|
0e9d7450c9 | ||
|
|
78cd319c21 | ||
|
|
7367167019 | ||
|
|
392f164f8e | ||
|
|
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 | ||
|
|
d96ad9fa6e | ||
|
|
5dd32ef4e4 | ||
|
|
6dde89f3c4 | ||
|
|
9a9d2e1f81 | ||
|
|
d347bf568e | ||
|
|
62e2f0582a | ||
|
|
68eb68a89e | ||
|
|
13206a8c3e | ||
|
|
cfd78e2d36 | ||
|
|
8b7f140115 | ||
|
|
16c8c78b54 | ||
|
|
cbb47772db | ||
|
|
0642491402 | ||
|
|
c7e34d4a56 | ||
|
|
8be63be17b | ||
|
|
08207ac79b | ||
|
|
6747a509ff | ||
|
|
c7c86240db | ||
|
|
ce0c3d71f4 | ||
|
|
5bb6a72c90 | ||
|
|
5a06c60c27 | ||
|
|
764c2533b4 | ||
|
|
a9cee6f907 | ||
|
|
a10100bf60 | ||
|
|
cedac23dfa | ||
|
|
f7c1d64033 | ||
|
|
7d6d0eac32 | ||
|
|
34768591b7 | ||
|
|
827c79f70c | ||
|
|
0415c7aa7c | ||
|
|
0c744d98b9 | ||
|
|
11cbda6974 | ||
|
|
e284f49747 | ||
|
|
7777c400a5 | ||
|
|
dae0448744 | ||
|
|
02a4e85353 | ||
|
|
3cbf225c98 | ||
|
|
8006e976a5 | ||
|
|
5613d371c9 | ||
|
|
7c9d6669f7 | ||
|
|
c6f0551709 | ||
|
|
f57eed4de1 | ||
|
|
b99711788f | ||
|
|
08aac8e35d | ||
|
|
e3579b7229 | ||
|
|
662d0dd5fb | ||
|
|
77c40b5d67 | ||
|
|
ee759a8dd6 | ||
|
|
ad9c7ec696 | ||
|
|
c9b5aaa2f7 | ||
|
|
b554328a77 | ||
|
|
c421c57e56 | ||
|
|
fb42d5cd79 | ||
|
|
6203d8d6f4 | ||
|
|
d422028737 | ||
|
|
136d769d55 | ||
|
|
daaab1d6f1 | ||
|
|
4f7befb639 | ||
|
|
9976ed136c | ||
|
|
8c2e661e08 | ||
|
|
e6e598eeb4 | ||
|
|
4d9439a007 | ||
|
|
9951c8b18f | ||
|
|
800c673839 | ||
|
|
065544909b | ||
|
|
4eaf68c940 | ||
|
|
a14a694df3 | ||
|
|
3ab61cbaf3 | ||
|
|
f49aff05d7 | ||
|
|
e2371a0ef6 | ||
|
|
6a2b3ee52e | ||
|
|
5a45e3584d | ||
|
|
56ce83cce5 | ||
|
|
d126b6d8c5 | ||
|
|
7172ef6dae | ||
|
|
a8d0b6e13d | ||
|
|
d2d6453a78 | ||
|
|
89cdecb05f | ||
|
|
81fdff9068 | ||
|
|
34a20802c9 | ||
|
|
6d53ff109b | ||
|
|
8eab9f3b59 | ||
|
|
f40faadcc4 | ||
|
|
fb129198a6 | ||
|
|
3eecff1de6 | ||
|
|
d745150c45 | ||
|
|
abe0330dc3 | ||
|
|
3fad505096 | ||
|
|
b2ac383b69 | ||
|
|
77cb63e36a | ||
|
|
7df4aac8e6 | ||
|
|
50b490ba8d | ||
|
|
15bd8a6233 | ||
|
|
20c593b236 | ||
|
|
52a80ad236 | ||
|
|
b2aafea656 | ||
|
|
135df8703c | ||
|
|
4743801e86 | ||
|
|
4e5ebcfe6f | ||
|
|
80b703639e | ||
|
|
0afdba8f38 | ||
|
|
925e96345d | ||
|
|
db2bf79e3b | ||
|
|
6f330efc44 | ||
|
|
708c73fa0f | ||
|
|
c7febd5551 | ||
|
|
ddbdf66d00 | ||
|
|
e572c6dad8 | ||
|
|
ff097db1e2 | ||
|
|
ad12f0e551 | ||
|
|
93f8785ec6 | ||
|
|
69124e7146 | ||
|
|
8a42f6e49c | ||
|
|
2ac4cd41bb | ||
|
|
28584c8461 | ||
|
|
1eddddd14f | ||
|
|
42e9a368b4 | ||
|
|
40713a4112 | ||
|
|
8e79658e67 | ||
|
|
6efc3ec75e | ||
|
|
9840e1f4eb | ||
|
|
7cdca5e813 | ||
|
|
d170693da4 | ||
|
|
31a9c041b4 | ||
|
|
ce7c2c309c | ||
|
|
29abffd464 | ||
|
|
ae4b8228f7 | ||
|
|
04bc2bebdd | ||
|
|
8f30e60d08 | ||
|
|
e8aa1851c5 | ||
|
|
7232a786ed | ||
|
|
2507899762 | ||
|
|
26149d5a01 | ||
|
|
670394ca2f | ||
|
|
e0745d7757 | ||
|
|
dc79f7a940 | ||
|
|
bf4d841f88 | ||
|
|
4c30f107e3 | ||
|
|
c9fe8d9b65 | ||
|
|
29ea1281e0 | ||
|
|
3ec54bcdd8 | ||
|
|
4892f0bd79 | ||
|
|
62c571ef3a | ||
|
|
6c57d548ec | ||
|
|
6c0b5b3ed9 | ||
|
|
f288d982db | ||
|
|
101834fcaf | ||
|
|
642c7a107a | ||
|
|
63da8d709a | ||
|
|
31e9f65f06 | ||
|
|
4ce7981cc0 | ||
|
|
d6016f490c | ||
|
|
9ccdd7f4e5 | ||
|
|
def3846b72 | ||
|
|
c76110b575 | ||
|
|
3db440fd95 | ||
|
|
1df0af0fa4 | ||
|
|
f8d65b9240 | ||
|
|
a4fe6d80d6 | ||
|
|
3a31ebdce3 | ||
|
|
8b812b92cc | ||
|
|
753a1f1193 | ||
|
|
2ce6ff2041 | ||
|
|
726c36f276 | ||
|
|
a00c253dcb | ||
|
|
640795dbe9 | ||
|
|
123628ec0b | ||
|
|
cae28e2d25 | ||
|
|
486d025572 | ||
|
|
d4816ad0c4 | ||
|
|
e7dbc08e18 | ||
|
|
0483c809ff | ||
|
|
cd972dabe3 | ||
|
|
e2a353fc8a | ||
|
|
1b8214b6fa | ||
|
|
af584e8c87 | ||
|
|
250841df66 | ||
|
|
d9aef91ea3 | ||
|
|
c285d494b9 | ||
|
|
316a1aa475 | ||
|
|
56a3660d38 | ||
|
|
e1aec379c1 | ||
|
|
381ea915f7 | ||
|
|
619db14622 | ||
|
|
84423e6309 | ||
|
|
1d2136da4b | ||
|
|
802f28082d | ||
|
|
56441b8e34 | ||
|
|
5106315128 | ||
|
|
6ca7f10faf | ||
|
|
56802fc85e | ||
|
|
700583a739 | ||
|
|
a290b0bef5 | ||
|
|
79a06dd91c | ||
|
|
6cd6f28820 | ||
|
|
dabb5016fc | ||
|
|
58e38faad6 | ||
|
|
31e8ca8c8d | ||
|
|
c72519e3ea | ||
|
|
58333c1b46 | ||
|
|
f0ad090cdc | ||
|
|
4bd1fce1f6 | ||
|
|
b35e25e5dc | ||
|
|
a8bb345c88 | ||
|
|
bbe4f9c286 | ||
|
|
f9dcefd6ea | ||
|
|
44c2bab557 | ||
|
|
fbca5a4d8f | ||
|
|
c2ceaa9bdd | ||
|
|
dc402bef68 | ||
|
|
64272c99fb | ||
|
|
c8377c0bb3 | ||
|
|
4145ddad39 | ||
|
|
e9dfe3c389 | ||
|
|
f9162e4d30 | ||
|
|
b97fab2bf4 | ||
|
|
3c9ebb75fe | ||
|
|
434a522429 | ||
|
|
49fa63971b | ||
|
|
8dfc563c86 | ||
|
|
dded9103cb | ||
|
|
741f57e9e2 | ||
|
|
59cf1d5baf | ||
|
|
916ef06913 | ||
|
|
91ee65a101 | ||
|
|
042f926700 | ||
|
|
c0432359c3 | ||
|
|
fbf5545708 | ||
|
|
6ae7b0136c | ||
|
|
200ccd3ad0 | ||
|
|
31f97f74fd | ||
|
|
4cabd2e4ed | ||
|
|
8be7fa9157 | ||
|
|
8ddf7dfbd4 | ||
|
|
571ddb109a | ||
|
|
b2772bbfc1 | ||
|
|
57815ac6a0 | ||
|
|
758f329d14 | ||
|
|
096f984d6b | ||
|
|
06cd584f10 | ||
|
|
4f2f75762c | ||
|
|
d94516f39b | ||
|
|
b479a3570e | ||
|
|
ac49b8074f | ||
|
|
7a49a5b3e8 | ||
|
|
6d9e6e6466 | ||
|
|
2d179199ed | ||
|
|
dc928828e2 | ||
|
|
658df9fb01 | ||
|
|
44bf3cb101 | ||
|
|
b82d7c12af | ||
|
|
4476d6b258 | ||
|
|
433b399de9 | ||
|
|
58d04c0cbb | ||
|
|
e3a74f23a1 | ||
|
|
3a374de210 | ||
|
|
4cc6437408 | ||
|
|
821725cf4d | ||
|
|
931de230ae | ||
|
|
7301946236 | ||
|
|
a15041da75 | ||
|
|
00f8c0a51f | ||
|
|
63483837bc | ||
|
|
dc5f4e6694 | ||
|
|
35f8a5115a | ||
|
|
8398fd47f0 | ||
|
|
9d7c869c0a | ||
|
|
74587f269e | ||
|
|
6a3ffff3ad | ||
|
|
2f8eac07ee | ||
|
|
3eaefa01f9 | ||
|
|
b250af913d | ||
|
|
0b4968d148 | ||
|
|
8817d179c6 | ||
|
|
e5e3fec1a9 | ||
|
|
eecb0c0f01 | ||
|
|
d45689c7df | ||
|
|
2201dfc371 | ||
|
|
3ef9042051 | ||
|
|
1236ad252b | ||
|
|
65331ab22e | ||
|
|
c485fdfa87 | ||
|
|
6effda29a9 | ||
|
|
7035154454 | ||
|
|
d7f3ab9177 | ||
|
|
3660dde75f | ||
|
|
99688b78c7 | ||
|
|
6841f24932 | ||
|
|
9f94d0838a | ||
|
|
086fc67ecc | ||
|
|
a2551f98c2 | ||
|
|
95c928afc9 | ||
|
|
8a00e6e532 | ||
|
|
287a97aea6 | ||
|
|
664267bff0 | ||
|
|
2597b33f81 | ||
|
|
9442b348e6 | ||
|
|
3b7f9c9fb0 | ||
|
|
20ca7533b0 | ||
|
|
15a324a946 | ||
|
|
94175877d7 | ||
|
|
c1ec3c5eba | ||
|
|
42804b0cd3 | ||
|
|
b1248521f3 | ||
|
|
b744997c72 | ||
|
|
2d37409392 | ||
|
|
bd02e724e5 | ||
|
|
fef7aaba8f | ||
|
|
1775ea86ff | ||
|
|
b0918d7bd3 | ||
|
|
29e0ce5f96 | ||
|
|
44c26165f4 | ||
|
|
9dd68947f1 | ||
|
|
db5fdb1fcb | ||
|
|
74e72854d8 | ||
|
|
ece246b391 | ||
|
|
cdb5dfec62 | ||
|
|
8a5b6f6cbc | ||
|
|
585e1ac7aa | ||
|
|
8726946d4a | ||
|
|
064008d200 | ||
|
|
d955280f90 | ||
|
|
580a7fac24 | ||
|
|
9df054dd0c | ||
|
|
8fa7b112e1 | ||
|
|
dd9df0a18c | ||
|
|
3a601a015d | ||
|
|
87b4698d5b | ||
|
|
67632ced09 | ||
|
|
d7fb335815 | ||
|
|
4809a21e38 | ||
|
|
6b3646e981 | ||
|
|
0c64bf470a | ||
|
|
99e034921e | ||
|
|
7a3a3de7d1 | ||
|
|
f91c5bd7b9 | ||
|
|
bcb198220d | ||
|
|
bf1af6a68c | ||
|
|
3dd2975c61 | ||
|
|
33f1e0cb3c | ||
|
|
7514f63dcd | ||
|
|
b6ff73391d | ||
|
|
369ea8d381 | ||
|
|
a7296c512c | ||
|
|
8f70817c10 | ||
|
|
d044739f1c | ||
|
|
3d1684f825 | ||
|
|
f6af9e94ab | ||
|
|
215cf59e0b | ||
|
|
0d14cd6e7e |
14
.dockerignore
Normal file
14
.dockerignore
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
node_modules/
|
||||||
|
|
||||||
|
.git
|
||||||
|
.gitattributes
|
||||||
|
.gitignore
|
||||||
|
.editorconfig
|
||||||
|
|
||||||
|
.dockerignore
|
||||||
|
Dockerfile
|
||||||
|
docker-compose.yml
|
||||||
|
|
||||||
|
*.md
|
||||||
|
Quotes.txt
|
||||||
|
netscript_tests/
|
||||||
@@ -2,3 +2,7 @@ node_modules/
|
|||||||
doc/build/
|
doc/build/
|
||||||
dist/
|
dist/
|
||||||
tests/*.bundle.*
|
tests/*.bundle.*
|
||||||
|
src/ThirdParty/*
|
||||||
|
src/ScriptEditor/CodeMirrorNetscriptMode.js
|
||||||
|
src/ScriptEditor/CodeMirrorNetscriptLint.js
|
||||||
|
src/JSInterpreter.js
|
||||||
627
.eslintrc.js
627
.eslintrc.js
File diff suppressed because it is too large
Load Diff
6
.gitignore
vendored
6
.gitignore
vendored
@@ -3,6 +3,6 @@ Netburner.txt
|
|||||||
/doc/build
|
/doc/build
|
||||||
/node_modules
|
/node_modules
|
||||||
/dist/*.map
|
/dist/*.map
|
||||||
/tests/*.map
|
/test/*.map
|
||||||
/tests/*.bundle.*
|
/test/*.bundle.*
|
||||||
/tests/*.css
|
/test/*.css
|
||||||
|
|||||||
35
Dockerfile
Normal file
35
Dockerfile
Normal file
@@ -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
|
||||||
@@ -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,
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
# Bitburner
|
# Bitburner
|
||||||
Bitburner is a cyberpunk hacking-themed incremental game. The game can be
|
Bitburner is a programming-based [incremental game](https://en.wikipedia.org/wiki/Incremental_game)
|
||||||
played at https://danielyxie.github.io/bitburner.
|
that revolves around hacking and cyberpunk themes.
|
||||||
|
The game can be played at https://danielyxie.github.io/bitburner.
|
||||||
|
|
||||||
# Documentation
|
# Documentation
|
||||||
The game's official documentation can be found on [Read The
|
The game's official documentation can be found on [Read The
|
||||||
|
|||||||
23
README_contribution.md
Normal file
23
README_contribution.md
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
Deploying a new version
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Update the following
|
||||||
|
- `src/Constants.ts` `Version` and `LatestUpdate`
|
||||||
|
- `package.json` `version`
|
||||||
|
- `doc/source/conf.py` `version` and `release`
|
||||||
|
- `doc/source/changelog.rst`
|
||||||
|
- post to discord
|
||||||
|
- post to reddit.com/r/Bitburner
|
||||||
|
|
||||||
|
Deploying `dev` to the Beta Branch
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
Development Workflow Best Practices
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
- Work in a new branch forked from the `dev` branch to isolate your new code
|
||||||
|
- Keep code-changes on a branch as small as possible. This makes it easier for code review. Each branch should be its own independent feature.
|
||||||
|
- Regularly rebase your branch against `dev` to make sure you have the latest updates pulled.
|
||||||
|
- When merging, always merge your branch into `dev`. When releasing a new update, then merge `dev` into `master`
|
||||||
126
css/activescripts.scss
Normal file
126
css/activescripts.scss
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
@import "theme";
|
||||||
|
|
||||||
|
.active-scripts-list {
|
||||||
|
list-style-type: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#active-scripts-container {
|
||||||
|
position: fixed;
|
||||||
|
padding-top: 10px;
|
||||||
|
|
||||||
|
> p {
|
||||||
|
width: 70%;
|
||||||
|
margin: 6px;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.accordion-header {
|
||||||
|
> pre {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.active-scripts-server-header {
|
||||||
|
background-color: #444;
|
||||||
|
font-size: $defaultFontSize * 1.25;
|
||||||
|
color: #fff;
|
||||||
|
margin: 6px 6px 0 6px;
|
||||||
|
padding: 6px;
|
||||||
|
cursor: pointer;
|
||||||
|
width: 60%;
|
||||||
|
text-align: left;
|
||||||
|
border: none;
|
||||||
|
outline: none;
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
content: '\02795'; /* "plus" sign (+) */
|
||||||
|
font-size: $defaultFontSize * 0.8125;
|
||||||
|
color: #fff;
|
||||||
|
float: right;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active, &:hover {
|
||||||
|
background-color: #555;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.active-scripts-server-header.active {
|
||||||
|
&:after {
|
||||||
|
content: "\2796"; /* "minus" sign (-) */
|
||||||
|
font-size: $defaultFontSize * 0.8125;
|
||||||
|
color: #fff;
|
||||||
|
float: right;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: #666;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.active-scripts-server-panel {
|
||||||
|
margin: 0 6px 6px 6px;
|
||||||
|
padding: 0 6px 6px 6px;
|
||||||
|
width: 55%;
|
||||||
|
margin-left: 5%;
|
||||||
|
display: none;
|
||||||
|
|
||||||
|
div, ul, ul > li {
|
||||||
|
background-color: #555;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.active-scripts-script-header {
|
||||||
|
background-color: #555;
|
||||||
|
border: none;
|
||||||
|
color: var(--my-font-color);
|
||||||
|
cursor: pointer;
|
||||||
|
display: block;
|
||||||
|
outline: none;
|
||||||
|
padding: 4px 25px 4px 10px;
|
||||||
|
position: relative;
|
||||||
|
text-align: left;
|
||||||
|
width: auto;
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
content: '\02795'; /* "plus" sign (+) */
|
||||||
|
font-size: $defaultFontSize * 0.8125;
|
||||||
|
float: right;
|
||||||
|
margin-left: 5px;
|
||||||
|
color: transparent;
|
||||||
|
text-shadow: 0 0 0 var(--my-font-color);
|
||||||
|
position: absolute;
|
||||||
|
bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active:after {
|
||||||
|
content: "\2796"; /* "minus" sign (-) */
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&.active:hover {
|
||||||
|
background-color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
background-color: #555;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.active-scripts-script-panel {
|
||||||
|
background-color: #555;
|
||||||
|
display: none;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
padding: 0 18px;
|
||||||
|
width: auto;
|
||||||
|
|
||||||
|
pre, h2, ul, li {
|
||||||
|
background-color: #555;
|
||||||
|
width: auto;
|
||||||
|
color: #fff;
|
||||||
|
margin-left: 5%;
|
||||||
|
}
|
||||||
|
}
|
||||||
30
css/augmentations.scss
Normal file
30
css/augmentations.scss
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
/**
|
||||||
|
* Styling for the Augmentations UI. This is the page that displays all of the
|
||||||
|
* player's owned and purchased Augmentations and Source-Files. It also allows
|
||||||
|
* the player to install Augmentations
|
||||||
|
*/
|
||||||
|
@import "theme";
|
||||||
|
|
||||||
|
#augmentations-container {
|
||||||
|
position: fixed;
|
||||||
|
padding-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#augmentations-content {
|
||||||
|
> p {
|
||||||
|
font-size: $defaultFontSize * 0.875;
|
||||||
|
width: 70%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.augmentations-list {
|
||||||
|
button,
|
||||||
|
div {
|
||||||
|
color: var(--my-font-color);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
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 {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
24
css/casino.scss
Normal file
24
css/casino.scss
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
.casino-card {
|
||||||
|
padding: 10px;
|
||||||
|
border: solid 1px #808080;
|
||||||
|
background-color: white;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 10px;
|
||||||
|
font-size: 14pt;
|
||||||
|
text-align: center;
|
||||||
|
margin: 3px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.casino-card .value {
|
||||||
|
font-size: 15pt;
|
||||||
|
font-family: sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.casino-card.red {
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
.casino-card.black {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
@@ -43,14 +43,8 @@
|
|||||||
background-color: #444;
|
background-color: #444;
|
||||||
}
|
}
|
||||||
|
|
||||||
.character-stat-cell {
|
.character-stat-cell {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
|
||||||
|
|
||||||
#character-hack-wrapper td,
|
|
||||||
#character-agi-wrapper td {
|
|
||||||
border-bottom: 1px #aaa solid;
|
|
||||||
padding-bottom: 10px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#character-str-wrapper td,
|
#character-str-wrapper td,
|
||||||
@@ -58,11 +52,24 @@
|
|||||||
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-money-wrapper { color: $my-stat-money-color; }
|
#character-money-wrapper { color: $my-stat-money-color; }
|
||||||
|
.character-money-cell { color: $my-stat-money-color; }
|
||||||
#character-hack-wrapper { color: $my-stat-hack-color; }
|
#character-hack-wrapper { color: $my-stat-hack-color; }
|
||||||
|
.character-hack-cell { color: $my-stat-hack-color; }
|
||||||
#character-cha-wrapper { color: $my-stat-cha-color; }
|
#character-cha-wrapper { color: $my-stat-cha-color; }
|
||||||
|
.character-cha-cell { color: $my-stat-cha-color; }
|
||||||
#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-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);
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
#codemirror-form-wrapper {
|
#codemirror-form-wrapper {
|
||||||
height: 80%;
|
height: 80%;
|
||||||
margin: 10px 0px 0px 6px;
|
margin: 10px 0 0 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.CodeMirror {
|
.CodeMirror {
|
||||||
@@ -22,11 +22,11 @@
|
|||||||
* Highlight matches
|
* Highlight matches
|
||||||
*/
|
*/
|
||||||
.cm-matchhighlight {
|
.cm-matchhighlight {
|
||||||
background-color: #8F908A;
|
background-color: #8f908a;
|
||||||
}
|
}
|
||||||
|
|
||||||
.CodeMirror-selection-highlight-scrollbar {
|
.CodeMirror-selection-highlight-scrollbar {
|
||||||
background-color: #8F908A;
|
background-color: #8f908a;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
.cm-whitespace::before {
|
.cm-whitespace::before {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
color: #404F7D;
|
color: #404f7d;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,36 +1,32 @@
|
|||||||
.add-exp-button {
|
.add-exp-button {
|
||||||
margin-right: 0px;
|
margin-right: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.remove-exp-button {
|
.remove-exp-button {
|
||||||
margin-left:0px;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.exp-input {
|
.exp-input {
|
||||||
margin-right: 0px;
|
margin: 5px 0 5px 0;
|
||||||
margin-left:0px;
|
|
||||||
|
|
||||||
margin-top: 5px;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
|
|
||||||
padding: 2px 5px;
|
padding: 2px 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-center {
|
.text-center {
|
||||||
margin: auto;
|
margin: auto;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
.touch-right {
|
.touch-right {
|
||||||
margin-right: 0px;
|
margin-right: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.touch-left {
|
.touch-left {
|
||||||
margin-left: 0px;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.touch-sides {
|
.touch-sides {
|
||||||
margin-left: 0px;
|
margin-left: 0;
|
||||||
margin-right: 0px;
|
margin-right: 0;
|
||||||
}
|
}
|
||||||
|
|||||||
3
css/grid.min.css
vendored
3
css/grid.min.css
vendored
File diff suppressed because one or more lines are too long
56
css/infiltration.scss
Normal file
56
css/infiltration.scss
Normal file
@@ -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;
|
||||||
|
}
|
||||||
@@ -18,126 +18,6 @@
|
|||||||
position: fixed;
|
position: fixed;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Active scripts */
|
|
||||||
.active-scripts-list {
|
|
||||||
list-style-type: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#active-scripts-container {
|
|
||||||
position: fixed;
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#active-scripts-text,
|
|
||||||
#active-scripts-total-prod {
|
|
||||||
width: 70%;
|
|
||||||
margin: 6px;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.active-scripts-server-header {
|
|
||||||
background-color: #444;
|
|
||||||
font-size: $defaultFontSize * 1.25;
|
|
||||||
color: #fff;
|
|
||||||
margin: 6px 6px 0 6px;
|
|
||||||
padding: 6px;
|
|
||||||
cursor: pointer;
|
|
||||||
width: 60%;
|
|
||||||
text-align: left;
|
|
||||||
border: none;
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.active-scripts-server-header.active,
|
|
||||||
.active-scripts-server-header:hover {
|
|
||||||
background-color: #555;
|
|
||||||
}
|
|
||||||
|
|
||||||
.active-scripts-server-header.active:hover {
|
|
||||||
background-color: #666;
|
|
||||||
}
|
|
||||||
|
|
||||||
.active-scripts-server-header:after {
|
|
||||||
content: '\02795'; /* "plus" sign (+) */
|
|
||||||
font-size: $defaultFontSize * 0.8125;
|
|
||||||
color: #fff;
|
|
||||||
float: right;
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.active-scripts-server-header.active:after {
|
|
||||||
content: "\2796"; /* "minus" sign (-) */
|
|
||||||
font-size: $defaultFontSize * 0.8125;
|
|
||||||
color: #fff;
|
|
||||||
float: right;
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.active-scripts-server-panel {
|
|
||||||
margin: 0 6px 6px 6px;
|
|
||||||
padding: 0 6px 6px 6px;
|
|
||||||
width: 55%;
|
|
||||||
margin-left: 5%;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.active-scripts-server-panel div,
|
|
||||||
.active-scripts-server-panel ul,
|
|
||||||
.active-scripts-server-panel ul > li {
|
|
||||||
background-color: #555;
|
|
||||||
}
|
|
||||||
|
|
||||||
.active-scripts-script-header {
|
|
||||||
background-color: #555;
|
|
||||||
color: var(--my-font-color);
|
|
||||||
padding: 4px 25px 4px 10px;
|
|
||||||
cursor: pointer;
|
|
||||||
width: auto;
|
|
||||||
text-align: left;
|
|
||||||
border: none;
|
|
||||||
outline: none;
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
&:after {
|
|
||||||
content: '\02795'; /* "plus" sign (+) */
|
|
||||||
font-size: $defaultFontSize * 0.8125;
|
|
||||||
float: right;
|
|
||||||
margin-left: 5px;
|
|
||||||
color: transparent;
|
|
||||||
text-shadow: 0 0 0 var(--my-font-color);
|
|
||||||
position: absolute;
|
|
||||||
bottom: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.active:after {
|
|
||||||
content: "\2796"; /* "minus" sign (-) */
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover,
|
|
||||||
&.active:hover {
|
|
||||||
background-color: #666;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.active {
|
|
||||||
background-color: #555;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.active-scripts-script-panel {
|
|
||||||
padding: 0 18px;
|
|
||||||
background-color: #555;
|
|
||||||
width: auto;
|
|
||||||
display: none;
|
|
||||||
margin-bottom: 6px;
|
|
||||||
|
|
||||||
p, h2, ul, li {
|
|
||||||
background-color: #555;
|
|
||||||
width: auto;
|
|
||||||
color: #fff;
|
|
||||||
margin-left: 5%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* World */
|
/* World */
|
||||||
#world-container {
|
#world-container {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
@@ -185,19 +65,6 @@
|
|||||||
width: 70%;
|
width: 70%;
|
||||||
}
|
}
|
||||||
|
|
||||||
#faction-donate-amount-txt,
|
|
||||||
#faction-donate-input {
|
|
||||||
padding: 6px;
|
|
||||||
margin: 6px;
|
|
||||||
display: inline-block;
|
|
||||||
color: var(--my-font-color);
|
|
||||||
background-color: #000;
|
|
||||||
}
|
|
||||||
|
|
||||||
#faction-donate-amount-txt {
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#faction-container p,
|
#faction-container p,
|
||||||
#faction-container pre {
|
#faction-container pre {
|
||||||
padding: 4px 6px;
|
padding: 4px 6px;
|
||||||
@@ -213,45 +80,12 @@
|
|||||||
word-wrap: break-word; /* Internet Explorer 5.5+ */
|
word-wrap: break-word; /* Internet Explorer 5.5+ */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Faction Augmentations */
|
|
||||||
#faction-augmentations-container {
|
|
||||||
position: fixed;
|
|
||||||
padding-top: 10px;
|
|
||||||
|
|
||||||
p, a, ul, h1 {
|
|
||||||
margin: 8px;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* World */
|
/* World */
|
||||||
#world-container li {
|
#world-container li {
|
||||||
margin: 0 0 15px 0;
|
margin: 0 0 15px 0;
|
||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Augmentations */
|
|
||||||
#augmentations-container {
|
|
||||||
position: fixed;
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.augmentations-list {
|
|
||||||
button,
|
|
||||||
div {
|
|
||||||
color: var(--my-font-color);
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
padding: 2px 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div {
|
|
||||||
padding: 6px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Tutorial */
|
/* Tutorial */
|
||||||
#tutorial-container {
|
#tutorial-container {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
@@ -316,39 +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;
|
|
||||||
width: 25%;
|
|
||||||
}
|
}
|
||||||
|
|||||||
5
css/milestones.scss
Normal file
5
css/milestones.scss
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#milestones-container {
|
||||||
|
position: fixed;
|
||||||
|
padding: 6px;
|
||||||
|
width: 60%;
|
||||||
|
}
|
||||||
@@ -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 {
|
||||||
@@ -12,7 +13,6 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: auto;
|
|
||||||
background-color: rbga(var(--my-background-color), 0.4);
|
background-color: rbga(var(--my-background-color), 0.4);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,6 +23,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);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,8 +57,7 @@
|
|||||||
background-color: #000;
|
background-color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dialog-box-container,
|
.dialog-box-container {
|
||||||
#log-box-container {
|
|
||||||
display: block;
|
display: block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
@@ -72,8 +72,47 @@
|
|||||||
border: 5px solid var(--my-highlight-color);
|
border: 5px solid var(--my-highlight-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dialog-box-content,
|
|
||||||
#log-box-content {
|
.log-box-container {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column;
|
||||||
|
background-color: gray;
|
||||||
|
width: 50%;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 40%;
|
||||||
|
margin: -10% 0 0 -25%;
|
||||||
|
height: auto;
|
||||||
|
max-height: 50%;
|
||||||
|
z-index: 10;
|
||||||
|
background-color: var(--my-background-color);
|
||||||
|
border: 2px solid var(--my-highlight-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.log-box-header {
|
||||||
|
background-color: #333;
|
||||||
|
border: 1px solid var(--my-highlight-color);
|
||||||
|
display: flex;
|
||||||
|
flex: row nowrap;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.log-box-log-container {
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.log-box-button {
|
||||||
|
color: #aaa;
|
||||||
|
font-size: $defaultFontSize;
|
||||||
|
font-weight: bold;
|
||||||
|
padding: 2px;
|
||||||
|
margin: 6px;
|
||||||
|
border: 1px solid #fff;
|
||||||
|
background-color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialog-box-content {
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
background-color: var(--my-background-color);
|
background-color: var(--my-background-color);
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
@@ -87,6 +126,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;
|
||||||
|
|||||||
@@ -7,16 +7,28 @@
|
|||||||
position: fixed;
|
position: fixed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.bitnode {
|
.bitnode {
|
||||||
color: #00f;
|
&.level-0 {
|
||||||
}
|
color: red;
|
||||||
|
}
|
||||||
|
|
||||||
.bitnode-destroyed {
|
&.level-1 {
|
||||||
color: #f00;
|
color: yellow;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bitnode:hover,
|
&.level-2 {
|
||||||
.bitnode-destroyed:hover {
|
color: #48d1cc;
|
||||||
color: #fff;
|
}
|
||||||
|
|
||||||
|
&.level-3 {
|
||||||
|
color: blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.unimplemented {
|
||||||
|
color: gray;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/**
|
/**
|
||||||
* Styling for the Re-Sleeving Page
|
* Styling for the Re-Sleeving Page
|
||||||
*/
|
*/
|
||||||
@import "theme";
|
@import "theme";
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
.resleeve-panel {
|
.resleeve-panel {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin: 0px;
|
margin: 0;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,19 +9,6 @@
|
|||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ace-editor {
|
|
||||||
margin: 10px;
|
|
||||||
height: 80%;
|
|
||||||
width: 100%;
|
|
||||||
margin-left: 6px;
|
|
||||||
padding-left: 6px;
|
|
||||||
padding-top: 6px;
|
|
||||||
padding-bottom: 6px;
|
|
||||||
border: 2px solid var(--my-highlight-color);
|
|
||||||
z-index: 1;
|
|
||||||
font-family: $fontFamily;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* This temp element is used for auto adjusting filename field */
|
/* This temp element is used for auto adjusting filename field */
|
||||||
.tmp-element {
|
.tmp-element {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
@@ -47,7 +34,6 @@
|
|||||||
|
|
||||||
#script-editor-filename-wrapper {
|
#script-editor-filename-wrapper {
|
||||||
background-color: #555;
|
background-color: #555;
|
||||||
margin-left: 6px;
|
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
padding-left: 6px;
|
padding-left: 6px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -108,17 +94,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Specific overrides for Ace Editor */
|
.editor-options-container {
|
||||||
.ace_line,
|
display: flex;
|
||||||
.ace_line * {
|
flex-flow: column;
|
||||||
background-color: transparent;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.ace_text-input {
|
.editor-options-line {
|
||||||
font-size: $defaultFontSize;
|
display: flex;
|
||||||
background-color: transparent;
|
flex: row nowrap;
|
||||||
}
|
align-items: center;
|
||||||
|
justify-content: start;
|
||||||
/* Specified overrides for Code mirror Editor are defined in codemirror-override.scss */
|
}
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
.sleeve-panel {
|
.sleeve-panel {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin: 0px;
|
margin: 0;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
|
|
||||||
select {
|
select {
|
||||||
|
|||||||
@@ -7,35 +7,45 @@
|
|||||||
p {
|
p {
|
||||||
font-size: $defaultFontSize * 0.8125;
|
font-size: $defaultFontSize * 0.8125;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
font-size: $defaultFontSize * 0.875;
|
font-size: $defaultFontSize * 0.875;
|
||||||
}
|
}
|
||||||
h2 {
|
}
|
||||||
|
|
||||||
|
.stock-market-info-and-purchases {
|
||||||
|
> h2 {
|
||||||
|
display: block;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
> p {
|
||||||
display: block;
|
display: block;
|
||||||
|
margin-left: 10px;
|
||||||
|
width: 70%;
|
||||||
|
}
|
||||||
|
|
||||||
|
> a, > button {
|
||||||
|
margin: 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#stock-market-list li {
|
#stock-market-list {
|
||||||
button {
|
list-style: none;
|
||||||
font-size: $defaultFontSize;
|
|
||||||
|
li {
|
||||||
|
button {
|
||||||
|
font-size: $defaultFontSize;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#stock-market-container p {
|
|
||||||
padding: 6px;
|
|
||||||
margin: 6px;
|
|
||||||
width: 70%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#stock-market-container a {
|
|
||||||
margin: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#stock-market-watchlist-filter {
|
#stock-market-watchlist-filter {
|
||||||
|
display: block;
|
||||||
|
margin: 5px 5px 5px 10px;
|
||||||
|
padding: 4px;
|
||||||
width: 50%;
|
width: 50%;
|
||||||
margin-left: 10px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.stock-market-input {
|
.stock-market-input {
|
||||||
@@ -47,14 +57,36 @@
|
|||||||
color: var(--my-font-color);
|
color: var(--my-font-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.stock-market-price-movement-warning {
|
||||||
|
border: 1px solid white;
|
||||||
|
color: red;
|
||||||
|
margin: 2px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
.stock-market-position-text {
|
.stock-market-position-text {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
display: inline-block;
|
display: block;
|
||||||
|
|
||||||
|
p {
|
||||||
|
color: #fff;
|
||||||
|
display: inline-block;
|
||||||
|
margin: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
margin: 4px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.stock-market-order-list {
|
.stock-market-order-list {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
max-height: 100px;
|
max-height: 100px;
|
||||||
|
|
||||||
|
li {
|
||||||
|
color: #fff;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.stock-market-order-cancel-btn {
|
.stock-market-order-cancel-btn {
|
||||||
|
|||||||
100
css/styles.scss
100
css/styles.scss
@@ -17,7 +17,10 @@ body {
|
|||||||
p,
|
p,
|
||||||
pre,
|
pre,
|
||||||
h2,
|
h2,
|
||||||
.text {
|
h3,
|
||||||
|
h4,
|
||||||
|
.text,
|
||||||
|
td {
|
||||||
color: var(--my-font-color);
|
color: var(--my-font-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,6 +38,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;
|
||||||
}
|
}
|
||||||
@@ -79,6 +86,28 @@ a:visited {
|
|||||||
right: 0;
|
right: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#factions-tab {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
#factions-notification {
|
||||||
|
font-size: $defaultFontSize * 0.625;
|
||||||
|
position: absolute; /* Position the badge within the relatively positioned button */
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#augmentations-tab {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
#augmentations-notification {
|
||||||
|
font-size: $defaultFontSize * 0.625;
|
||||||
|
position: absolute; /* Position the badge within the relatively positioned button */
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.notification-on {
|
.notification-on {
|
||||||
background-color: #fa3e3e;
|
background-color: #fa3e3e;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@@ -205,14 +234,15 @@ a:visited {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.status-text {
|
.status-text {
|
||||||
display: inline-block;
|
|
||||||
position: fixed;
|
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
-webkit-animation: status-text 3s 1;
|
-webkit-animation: status-text 3s 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#status-text-container {
|
#status-text-container {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
#status-text {
|
#status-text {
|
||||||
@@ -243,8 +273,8 @@ a:visited {
|
|||||||
/* Accordion menus (Header with collapsible panel) */
|
/* Accordion menus (Header with collapsible panel) */
|
||||||
.accordion-header {
|
.accordion-header {
|
||||||
background-color: #444;
|
background-color: #444;
|
||||||
font-size: $defaultFontSize * 1.25;
|
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
font-size: $defaultFontSize * 1.25;
|
||||||
margin: 6px 6px 0 6px;
|
margin: 6px 6px 0 6px;
|
||||||
padding: 4px 6px;
|
padding: 4px 6px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
@@ -333,6 +363,68 @@ a:visited {
|
|||||||
color: $my-stat-cha-color;
|
color: $my-stat-cha-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.reputation {
|
||||||
|
color: $light-yellow;
|
||||||
|
}
|
||||||
|
|
||||||
.smallfont {
|
.smallfont {
|
||||||
font-size: $defaultFontSize * 0.8125;
|
font-size: $defaultFontSize * 0.8125;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.samefont {
|
||||||
|
font-size: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.noscrollbar {
|
||||||
|
-ms-overflow-style: none; /* IE and Edge */
|
||||||
|
/* 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 {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="checkbox"] {
|
||||||
|
filter: invert(1) sepia(1) hue-rotate(41deg) brightness(100%) saturate(10);
|
||||||
|
}
|
||||||
|
|
||||||
|
.optionCheckbox {
|
||||||
|
margin: 5px;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.optionRange {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
background: #777;
|
||||||
|
outline: none;
|
||||||
|
opacity: 0.7;
|
||||||
|
height: 10px;
|
||||||
|
-webkit-transition: 0.2s;
|
||||||
|
transition: opacity 0.2s;
|
||||||
|
margin: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.optionRange::-webkit-slider-thumb {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
appearance: none;
|
||||||
|
width: 10px;
|
||||||
|
height: 10px;
|
||||||
|
background: var(--my-font-color);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.optionRange::-moz-range-thumb {
|
||||||
|
width: 10px;
|
||||||
|
height: 10px;
|
||||||
|
background: var(--my-font-color);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.noselect {
|
||||||
|
-moz-user-select: -moz-none;
|
||||||
|
-khtml-user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
left: 50%;
|
left: 50%;
|
||||||
transform: translate(-100%, -100%);
|
transform: translate(-100%, -100%);
|
||||||
|
|
||||||
/* Backwards compatibility */
|
/* Backwards compatibility */
|
||||||
-webkit-transform: translate(-100%, -100%);
|
-webkit-transform: translate(-100%, -100%);
|
||||||
-moz-transform: translate(-100%, -100%);
|
-moz-transform: translate(-100%, -100%);
|
||||||
-o-transform: translate(-100%, -100%);
|
-o-transform: translate(-100%, -100%);
|
||||||
@@ -85,3 +85,45 @@
|
|||||||
.tooltip:hover .tooltiptextlow {
|
.tooltip:hover .tooltiptextlow {
|
||||||
visibility: visible;
|
visibility: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.copy_tooltip {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.copy_tooltip_copied {
|
||||||
|
color: #fff;
|
||||||
|
transition: color 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.copy_tooltip .copy_tooltip_text {
|
||||||
|
visibility: hidden;
|
||||||
|
font-size: 15px;
|
||||||
|
padding: 5px;
|
||||||
|
background-color: var(--my-background-color);
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 1;
|
||||||
|
top: 120%;
|
||||||
|
left: 5%;
|
||||||
|
opacity: 0;
|
||||||
|
border: 2px solid var(--my-highlight-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.copy_tooltip .copy_tooltip_text::after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
bottom: 100%;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -6px;
|
||||||
|
border-width: 8px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: transparent transparent white transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.copy_tooltip .copy_tooltip_text_visible {
|
||||||
|
visibility: visible;
|
||||||
|
opacity: 1;
|
||||||
|
transition: opacity 0.3s;
|
||||||
|
}
|
||||||
|
|||||||
@@ -7,16 +7,16 @@
|
|||||||
.Treant.Treant-loaded .pseudo { visibility: visible; }
|
.Treant.Treant-loaded .pseudo { visibility: visible; }
|
||||||
.Treant > .pseudo { width: 0; height: 0; border: none; padding: 0; }
|
.Treant > .pseudo { width: 0; height: 0; border: none; padding: 0; }
|
||||||
.Treant .collapse-switch { width: 3px; height: 3px; display: block; border: 1px solid black; position: absolute; top: 1px; right: 1px; cursor: pointer; }
|
.Treant .collapse-switch { width: 3px; height: 3px; display: block; border: 1px solid black; position: absolute; top: 1px; right: 1px; cursor: pointer; }
|
||||||
.Treant .collapsed .collapse-switch { background-color: #868DEE; }
|
.Treant .collapsed .collapse-switch { background-color: #868dee; }
|
||||||
.Treant > .node img { border: none; float: left; }
|
.Treant > .node img { border: none; float: left; }
|
||||||
.Treant > .node {
|
.Treant > .node {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
min-width: 60px;
|
min-width: 60px;
|
||||||
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,.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;
|
||||||
|
|||||||
20
dist/engine.bundle.js
vendored
20
dist/engine.bundle.js
vendored
File diff suppressed because one or more lines are too long
2
dist/engineStyle.bundle.js
vendored
Normal file
2
dist/engineStyle.bundle.js
vendored
Normal file
@@ -0,0 +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([863,0]),o()}({800:function(n,t,o){},802:function(n,t,o){},804:function(n,t,o){},806:function(n,t,o){},808:function(n,t,o){},810:function(n,t,o){},812:function(n,t,o){},814:function(n,t,o){},816:function(n,t,o){},818:function(n,t,o){},820:function(n,t,o){},822:function(n,t,o){},824:function(n,t,o){},826:function(n,t,o){},828:function(n,t,o){},830:function(n,t,o){},832:function(n,t,o){},834:function(n,t,o){},836:function(n,t,o){},838:function(n,t,o){},840:function(n,t,o){},842:function(n,t,o){},844:function(n,t,o){},846:function(n,t,o){},848:function(n,t,o){},850:function(n,t,o){},852:function(n,t,o){},854:function(n,t,o){},856:function(n,t,o){},858:function(n,t,o){},860:function(n,t,o){},863:function(n,t,o){"use strict";o.r(t);o(862),o(860),o(858),o(856),o(854),o(852),o(850),o(848),o(846),o(844),o(842),o(840),o(838),o(836),o(834),o(832),o(830),o(828),o(826),o(824),o(822),o(820),o(818),o(816),o(814),o(812),o(810),o(808),o(806),o(804),o(802),o(800)}});
|
||||||
|
//# sourceMappingURL=engineStyle.bundle.js.map
|
||||||
1825
dist/engine.css → dist/engineStyle.css
vendored
1825
dist/engine.css → dist/engineStyle.css
vendored
File diff suppressed because it is too large
Load Diff
742
dist/vendor.bundle.js
vendored
742
dist/vendor.bundle.js
vendored
File diff suppressed because one or more lines are too long
5527
dist/vendor.css
vendored
5527
dist/vendor.css
vendored
File diff suppressed because one or more lines are too long
@@ -56,8 +56,3 @@ through destroying BitNodes is:
|
|||||||
|
|
||||||
* Source-Files
|
* Source-Files
|
||||||
* Scripts on the home computer
|
* Scripts on the home computer
|
||||||
|
|
||||||
BitNode Details
|
|
||||||
^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
TODO
|
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
@@ -86,8 +86,11 @@ Sleeve memory dictates what a sleeve's synchronization will be when its reset by
|
|||||||
switching BitNodes. For example, if a sleeve has a memory of 10, then when you
|
switching BitNodes. For example, if a sleeve has a memory of 10, then when you
|
||||||
switch BitNodes its synchronization will initially be set to 10, rather than 1.
|
switch BitNodes its synchronization will initially be set to 10, rather than 1.
|
||||||
|
|
||||||
Memory can only be increased by purchasing upgrades from The Covenant.
|
Memory can only be increased by purchasing upgrades from The Covenant. Just like
|
||||||
It is a persistent stat, meaning it never gets reset back to 1.
|
the ability to purchase additional sleeves, this is only available in BitNodes-10
|
||||||
|
and above, and is only available after defeating BitNode-10 at least once.
|
||||||
|
|
||||||
|
Memory is a persistent stat, meaning it never gets reset back to 1.
|
||||||
The maximum possible value for a sleeve's memory is 100.
|
The maximum possible value for a sleeve's memory is 100.
|
||||||
|
|
||||||
Re-sleeving
|
Re-sleeving
|
||||||
|
|||||||
@@ -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) |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ user's physical and mental faculties.
|
|||||||
Augmentations provide persistent upgrades in the form of multipliers.
|
Augmentations provide persistent upgrades in the form of multipliers.
|
||||||
These multipliers apply to a wide variety of things such as stats,
|
These multipliers apply to a wide variety of things such as stats,
|
||||||
experience gain, and hacking, just to name a few. Your multipliers
|
experience gain, and hacking, just to name a few. Your multipliers
|
||||||
can be viewed in the 'Character' page (:ref:`keyboard shortcut <shortcuts>` Alt + c)
|
can be viewed in the 'Character' page (:ref:`keyboard shortcut <shortcuts>` Alt + c).
|
||||||
|
|
||||||
How to acquire Augmentations
|
How to acquire Augmentations
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ solutions. Some may be numbers, others may be strings or arrays.
|
|||||||
If a contract asks for a specific solution format, then
|
If a contract asks for a specific solution format, then
|
||||||
use that. Otherwise, follow these rules when submitting solutions:
|
use that. Otherwise, follow these rules when submitting solutions:
|
||||||
|
|
||||||
* String-type solutions should not have quotation marks surrounding
|
* String-type solutions should **not** have quotation marks surrounding
|
||||||
the string (unless specifically asked for). Only quotation
|
the string (unless specifically asked for). Only quotation
|
||||||
marks that are part of the actual string solution should be included.
|
marks that are part of the actual string solution should be included.
|
||||||
* Array-type solutions should be submitted with each element
|
* Array-type solutions should be submitted with each element
|
||||||
@@ -204,8 +204,8 @@ The list contains the name of (i.e. the value returned by
|
|||||||
| | | the string, the result should be an array with only an empty string. |
|
| | | the string, the result should be an array with only an empty string. |
|
||||||
| | | |
|
| | | |
|
||||||
| | | Examples: |
|
| | | Examples: |
|
||||||
| | | ()())() -> ["()()()", "(())()"] |
|
| | | ()())() -> [()()(), (())()] |
|
||||||
| | | (a)())() -> ["(a)()()", "(a())()"] |
|
| | | (a)())() -> [(a)()(), (a())()] |
|
||||||
| | | )( -> [""] |
|
| | | )( -> [""] |
|
||||||
+------------------------------------+------------------------------------------------------------------------------------------+
|
+------------------------------------+------------------------------------------------------------------------------------------+
|
||||||
| Find All Valid Math Expressions | | You are given a string which contains only digits between 0 and 9 as well as a target |
|
| Find All Valid Math Expressions | | You are given a string which contains only digits between 0 and 9 as well as a target |
|
||||||
@@ -214,10 +214,12 @@ The list contains the name of (i.e. the value returned by
|
|||||||
| | | |
|
| | | |
|
||||||
| | | The answer should be provided as an array of strings containing the valid expressions. |
|
| | | The answer should be provided as an array of strings containing the valid expressions. |
|
||||||
| | | |
|
| | | |
|
||||||
|
| | | NOTE: Numbers in an expression cannot have leading 0's |
|
||||||
|
| | | |
|
||||||
| | | Examples: |
|
| | | Examples: |
|
||||||
| | | Input: digits = "123", target = 6 |
|
| | | Input: digits = "123", target = 6 |
|
||||||
| | | Output: ["1+2+3", "1*2*3"] |
|
| | | Output: [1+2+3, 1*2*3] |
|
||||||
| | | |
|
| | | |
|
||||||
| | | Input: digits = "105", target = 5 |
|
| | | Input: digits = "105", target = 5 |
|
||||||
| | | Output: ["1*0+5", "10-5"] |
|
| | | Output: [1*0+5, 10-5] |
|
||||||
+------------------------------------+------------------------------------------------------------------------------------------+
|
+------------------------------------+------------------------------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ List of Factions and their Requirements
|
|||||||
| Early Game | Faction Name | Requirements | Joining this Faction prevents |
|
| Early Game | Faction Name | Requirements | Joining this Faction prevents |
|
||||||
| Factions | | | you from joining: |
|
| Factions | | | you from joining: |
|
||||||
+ +----------------+-----------------------------------------+-------------------------------+
|
+ +----------------+-----------------------------------------+-------------------------------+
|
||||||
| | CyberSec | * Hack CSEC Manually | |
|
| | CyberSec | * Install a backdoor on the CSEC server | |
|
||||||
+ +----------------+-----------------------------------------+-------------------------------+
|
+ +----------------+-----------------------------------------+-------------------------------+
|
||||||
| | Tian Di Hui | * $1m | |
|
| | Tian Di Hui | * $1m | |
|
||||||
| | | * Hacking Level 50 | |
|
| | | * Hacking Level 50 | |
|
||||||
@@ -74,13 +74,16 @@ List of Factions and their Requirements
|
|||||||
| | | | * New Tokyo |
|
| | | | * New Tokyo |
|
||||||
| | | | * Ishima |
|
| | | | * Ishima |
|
||||||
+---------------------+----------------+-----------------------------------------+-------------------------------+
|
+---------------------+----------------+-----------------------------------------+-------------------------------+
|
||||||
| Hacking | NiteSec | * Hack avmnite-02h manually | |
|
| Hacking | NiteSec | * Install a backdoor on the avmnite-02h | |
|
||||||
| Groups | | * Home Computer RAM of at least 32GB | |
|
| Groups | | server | |
|
||||||
|
| | | * Home Computer RAM of at least 32GB | |
|
||||||
+ +----------------+-----------------------------------------+-------------------------------+
|
+ +----------------+-----------------------------------------+-------------------------------+
|
||||||
| | The Black Hand | * Hack I.I.I.I manually | |
|
| | The Black Hand | * Install a backdoor on the I.I.I.I | |
|
||||||
|
| | | server | |
|
||||||
| | | * Home Computer RAM of at least 64GB | |
|
| | | * Home Computer RAM of at least 64GB | |
|
||||||
+ +----------------+-----------------------------------------+-------------------------------+
|
+ +----------------+-----------------------------------------+-------------------------------+
|
||||||
| | Bitrunners | * Hack run4theh111z manually | |
|
| | Bitrunners | * Install a backdoor on the run4theh111z| |
|
||||||
|
| | | server | |
|
||||||
| | | * Home Computer RAM of at least 128GB | |
|
| | | * Home Computer RAM of at least 128GB | |
|
||||||
+---------------------+----------------+-----------------------------------------+-------------------------------+
|
+---------------------+----------------+-----------------------------------------+-------------------------------+
|
||||||
| Megacorporations | ECorp | * Have 200k reputation with | |
|
| Megacorporations | ECorp | * Have 200k reputation with | |
|
||||||
@@ -112,7 +115,8 @@ List of Factions and their Requirements
|
|||||||
+ +----------------+-----------------------------------------+-------------------------------+
|
+ +----------------+-----------------------------------------+-------------------------------+
|
||||||
| | Fulcrum Secret | * Have 250k reputation with | |
|
| | Fulcrum Secret | * Have 250k reputation with | |
|
||||||
| | Technologies | the Corporation | |
|
| | Technologies | the Corporation | |
|
||||||
| | | * Hack fulcrumassets manually | |
|
| | | * Install a backdoor on the | |
|
||||||
|
| | | fulcrumassets server | |
|
||||||
+---------------------+----------------+-----------------------------------------+-------------------------------+
|
+---------------------+----------------+-----------------------------------------+-------------------------------+
|
||||||
| Criminal | Slum Snakes | * All Combat Stats of 30 | |
|
| Criminal | Slum Snakes | * All Combat Stats of 30 | |
|
||||||
| Organizations | | * -9 Karma | |
|
| Organizations | | * -9 Karma | |
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -7,10 +7,14 @@ buy and sell stocks in order to make money.
|
|||||||
|
|
||||||
The WSE can be found in the 'City' tab, and is accessible in every city.
|
The WSE can be found in the 'City' tab, and is accessible in every city.
|
||||||
|
|
||||||
Automating the Stock Market
|
Fundamentals
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
------------
|
||||||
You can write scripts to perform automatic and algorithmic trading on the Stock Market.
|
The Stock Market is not as simple as "buy at price X and sell at price Y". The following
|
||||||
See :ref:`netscript_tixapi` for more details.
|
are several fundamental concepts you need to understand about the stock market.
|
||||||
|
|
||||||
|
.. note:: For those that have experience with finance/trading/investing, please be aware
|
||||||
|
that the game's stock market does not function exactly like it does in the real
|
||||||
|
world. So these concepts below should seem similar, but won't be exactly the same.
|
||||||
|
|
||||||
Positions: Long vs Short
|
Positions: Long vs Short
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
@@ -21,16 +25,73 @@ is the exact opposite. In a Short position you purchase shares of a stock and
|
|||||||
earn a profit if the price of that stock decreases. This is also called 'shorting'
|
earn a profit if the price of that stock decreases. This is also called 'shorting'
|
||||||
a stock.
|
a stock.
|
||||||
|
|
||||||
NOTE: Shorting stocks is not available immediately, and must be unlocked later in the
|
.. note:: Shorting stocks is not available immediately, and must be unlocked later in the
|
||||||
game.
|
game.
|
||||||
|
|
||||||
|
Forecast & Second-Order Forecast
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
A stock's forecast is its likelihood of increasing or decreasing in value. The
|
||||||
|
forecast is typically represented by its probability of increasing in either
|
||||||
|
a decimal or percentage form. For example, a forecast of 70% means the stock
|
||||||
|
has a 70% chance of increasing and a 30% chance of decreasing.
|
||||||
|
|
||||||
|
A stock's second-order forecast is the target value that its forecast trends towards.
|
||||||
|
For example, if a stock has a forecast of 60% and a second-order forecast of 70%,
|
||||||
|
then the stock's forecast should slowly trend towards 70% over time. However, this is
|
||||||
|
determined by RNG so there is a chance that it may never reach 70%.
|
||||||
|
|
||||||
|
Both the forecast and the second-order forecast change over time.
|
||||||
|
|
||||||
|
A stock's forecast can be viewed after purchasing Four Sigma (4S) Market Data
|
||||||
|
access. This lets you see the forecast info on the Stock Market UI. If you also
|
||||||
|
purchase access to the 4S Market Data TIX API, then you can view a stock's forecast
|
||||||
|
using the :js:func:`getStockForecast` function.
|
||||||
|
|
||||||
|
A stock's second-order forecast is always hidden.
|
||||||
|
|
||||||
|
.. _gameplay_stock_market_spread:
|
||||||
|
|
||||||
|
Spread (Bid Price & Ask Price)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
The **bid price** is the maximum price at which someone will buy a stock on the
|
||||||
|
stock market.
|
||||||
|
|
||||||
|
The **ask price** is the minimum price that a seller is willing to receive for a stock
|
||||||
|
on the stock market
|
||||||
|
|
||||||
|
The ask price will always be higher than the bid price (This is because if a seller
|
||||||
|
is willing to receive less than the bid price, that transaction is guaranteed to
|
||||||
|
happen). The difference between the bid and ask price is known as the **spread**.
|
||||||
|
A stock's "price" will be the average of the bid and ask price.
|
||||||
|
|
||||||
|
The bid and ask price are important because these are the prices at which a
|
||||||
|
transaction actually occurs. If you purchase a stock in the long position, the cost
|
||||||
|
of your purchase depends on that stock's ask price. If you then try to sell that
|
||||||
|
stock (still in the long position), the price at which you sell is the stock's
|
||||||
|
bid price. Note that this is reversed for a short position. Purchasing a stock
|
||||||
|
in the short position will occur at the stock's bid price, and selling a stock
|
||||||
|
in the short position will occur at the stock's ask price.
|
||||||
|
|
||||||
|
Transactions Influencing Stock Forecast
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Buying or selling a large number of shares
|
||||||
|
of a stock will influence that stock's forecast & second-order forecast.
|
||||||
|
The forecast is the likelihood that the stock will increase or decrease in price.
|
||||||
|
The magnitude of this effect depends on the number of shares being transacted.
|
||||||
|
More shares will have a bigger effect.
|
||||||
|
|
||||||
|
The effect that transactions have on a stock's second-order forecast is
|
||||||
|
significantly smaller than the effect on its forecast.
|
||||||
|
|
||||||
|
.. _gameplay_stock_market_order_types:
|
||||||
|
|
||||||
Order Types
|
Order Types
|
||||||
^^^^^^^^^^^
|
^^^^^^^^^^^
|
||||||
There are three different types of orders you can make to buy or sell stocks on the exchange:
|
There are three different types of orders you can make to buy or sell stocks on the exchange:
|
||||||
Market Order, Limit Order, and Stop Order.
|
Market Order, Limit Order, and Stop Order.
|
||||||
|
|
||||||
Note that Limit Orders and Stop Orders are not available immediately, and must be unlocked
|
.. note:: Limit Orders and Stop Orders are not available immediately, and must be unlocked
|
||||||
later in the game.
|
later in the game.
|
||||||
|
|
||||||
When you place a Market Order to buy or sell a stock, the order executes immediately at
|
When you place a Market Order to buy or sell a stock, the order executes immediately at
|
||||||
whatever the current price of the stock is. For example if you choose to short a stock
|
whatever the current price of the stock is. For example if you choose to short a stock
|
||||||
@@ -71,3 +132,77 @@ A Limit Order to sell will execute if the stock's price <= order's price
|
|||||||
A Stop Order to buy will execute if the stock's price <= order's price
|
A Stop Order to buy will execute if the stock's price <= order's price
|
||||||
|
|
||||||
A Stop Order to sell will execute if the stock's price >= order's price.
|
A Stop Order to sell will execute if the stock's price >= order's price.
|
||||||
|
|
||||||
|
.. _gameplay_stock_market_player_actions_influencing_stock:
|
||||||
|
|
||||||
|
Player Actions Influencing Stocks
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
It is possible for your actions elsewhere in the game to influence the stock market.
|
||||||
|
|
||||||
|
Hacking
|
||||||
|
If a server has a corresponding stock (e.g. *foodnstuff* server -> FoodNStuff
|
||||||
|
stock), then hacking that server can decrease the stock's second-order
|
||||||
|
forecast. This causes the corresponding stock's forecast to trend downwards in value
|
||||||
|
over time.
|
||||||
|
|
||||||
|
This effect only occurs if you set the *stock* option to
|
||||||
|
true when calling the :js:func:`hack` function. The chance that hacking a
|
||||||
|
server will cause this effect is based on what percentage of the
|
||||||
|
server's total money you steal.
|
||||||
|
|
||||||
|
A single hack will have a minor
|
||||||
|
effect, but continuously hacking a server for lots of money over time
|
||||||
|
will have a noticeable effect in making the stock's forecast trend downwards.
|
||||||
|
|
||||||
|
Growing
|
||||||
|
If a server has a corresponding stock (e.g. *foodnstuff* server -> FoodNStuff
|
||||||
|
stock), then growing that server's money can increase the stock's
|
||||||
|
second-order forecast. This causes the corresponding stock's
|
||||||
|
forecast to trend upwards in value over time.
|
||||||
|
|
||||||
|
This effect only occurs if you set the *stock* option to true when calling the
|
||||||
|
:js:func:`grow` function. The chance that growing a server will cause this
|
||||||
|
effect is based on what percentage of the server's total money to add to it.
|
||||||
|
|
||||||
|
A single grow operation will have a minor effect, but continuously growing
|
||||||
|
a server for lots of money over time will have a noticeable effect in making
|
||||||
|
the stock's forecast trend upwards.
|
||||||
|
|
||||||
|
Working for a Company
|
||||||
|
If a company has a corresponding stock, then working for that company will
|
||||||
|
increase the corresponding stock's second-order forecast. This will
|
||||||
|
cause the stock's forecast to (slowly) trend upwards in value
|
||||||
|
over time.
|
||||||
|
|
||||||
|
The potency of this effect is based on how "effective" you are when you work
|
||||||
|
(i.e. its based on your stats and multipliers).
|
||||||
|
|
||||||
|
Automating the Stock Market
|
||||||
|
---------------------------
|
||||||
|
You can write scripts to perform automatic and algorithmic trading on the Stock Market.
|
||||||
|
See :ref:`netscript_tixapi` for more details.
|
||||||
|
|
||||||
|
Under the Hood
|
||||||
|
--------------
|
||||||
|
Stock prices are updated every ~6 seconds.
|
||||||
|
|
||||||
|
Whether a stock's price moves up or down is determined by RNG. However,
|
||||||
|
stocks have properties that can influence the way their price moves. These properties
|
||||||
|
are hidden, although some of them can be made visible by purchasing the
|
||||||
|
Four Sigma (4S) Market Data upgrade. Some examples of these properties are:
|
||||||
|
|
||||||
|
* Volatility
|
||||||
|
* Likelihood of increasing or decreasing (i.e. the stock's forecast)
|
||||||
|
* Likelihood of forecast increasing or decreasing (i.e. the stock's second-order forecast)
|
||||||
|
* How easily a stock's price/forecast is influenced by transactions
|
||||||
|
* Spread percentage
|
||||||
|
* Maximum price (not a real maximum, more of a "soft cap")
|
||||||
|
|
||||||
|
Each stock has its own unique values for these properties.
|
||||||
|
|
||||||
|
Offline Progression
|
||||||
|
-------------------
|
||||||
|
The Stock Market does not change or process anything while the game has closed.
|
||||||
|
However, it does accumulate time when offline. This accumulated time allows
|
||||||
|
the stock market to run 50% faster when the game is opened again. This means
|
||||||
|
that stock prices will update every ~4 seconds instead of 6.
|
||||||
|
|||||||
@@ -148,6 +148,14 @@ has root access, what ports are opened/closed, and also hacking-related informat
|
|||||||
such as an estimated chance to successfully hack, an estimate of how much money is
|
such as an estimated chance to successfully hack, an estimate of how much money is
|
||||||
available on the server, etc.
|
available on the server, etc.
|
||||||
|
|
||||||
|
backdoor
|
||||||
|
^^^^^^^^
|
||||||
|
|
||||||
|
Installs a backdoor on the current server. Root access is required to do this.
|
||||||
|
|
||||||
|
Servers will give different bonuses when you install a backdoor.
|
||||||
|
This can pass faction tests or give bonsues such as discounts from companies.
|
||||||
|
|
||||||
buy
|
buy
|
||||||
^^^
|
^^^
|
||||||
|
|
||||||
@@ -312,9 +320,12 @@ kill
|
|||||||
^^^^
|
^^^^
|
||||||
|
|
||||||
$ kill [script name] [args...]
|
$ kill [script name] [args...]
|
||||||
|
$ kill [pid]
|
||||||
|
|
||||||
Kill the script specified by the script name and arguments. Each argument must
|
Kill the script specified by the script filename and arguments OR by its PID.
|
||||||
be separated by a space. Remember that a running script is uniquely identified
|
|
||||||
|
If you are killing the script using its filename and arguments, then each argument
|
||||||
|
must be separated by a space. Remember that a running script is uniquely identified
|
||||||
by both its name and the arguments that are used to start it. So, if a script
|
by both its name and the arguments that are used to start it. So, if a script
|
||||||
was ran with the following arguments::
|
was ran with the following arguments::
|
||||||
|
|
||||||
@@ -324,8 +335,7 @@ Then to kill this script the same arguments would have to be used::
|
|||||||
|
|
||||||
$ kill foo.script 50e3 sigma-cosmetics
|
$ kill foo.script 50e3 sigma-cosmetics
|
||||||
|
|
||||||
Note that after issuing the 'kill' command for a script, it may take a few seconds for
|
If you are killing the script using its PID, then the PID argument must be numeric.
|
||||||
the script to actually stop running.
|
|
||||||
|
|
||||||
killall
|
killall
|
||||||
^^^^^^^
|
^^^^^^^
|
||||||
@@ -403,7 +413,7 @@ to convert from script to text file, or vice versa.
|
|||||||
This function can also be used to rename files.
|
This function can also be used to rename files.
|
||||||
|
|
||||||
.. note:: Unlike the Linux :code:`mv` command, the *destination* argument must be the
|
.. note:: Unlike the Linux :code:`mv` command, the *destination* argument must be the
|
||||||
full filepath. It cannot be a directory.
|
full filepath. It cannot be a directory.
|
||||||
|
|
||||||
Examples::
|
Examples::
|
||||||
|
|
||||||
@@ -511,6 +521,8 @@ sudov
|
|||||||
|
|
||||||
Prints whether or not you have root access to the current server.
|
Prints whether or not you have root access to the current server.
|
||||||
|
|
||||||
|
.. _tail_terminal_command:
|
||||||
|
|
||||||
tail
|
tail
|
||||||
^^^^
|
^^^^
|
||||||
|
|
||||||
@@ -584,7 +596,7 @@ The data can only be downloaded to a script (.script, .ns, .js) or a text file
|
|||||||
(.txt). If the target file already exists, it will be overwritten by this command.
|
(.txt). If the target file already exists, it will be overwritten by this command.
|
||||||
|
|
||||||
Note that will not be possible to download data from many websites because they
|
Note that will not be possible to download data from many websites because they
|
||||||
do not allow cross-origin origin sharing (CORS). This includes websites such
|
do not allow cross-origin resource sharing (CORS). This includes websites such
|
||||||
as gist and pastebin. One notable site it will work on is rawgithub. Example::
|
as gist and pastebin. One notable site it will work on is rawgithub. Example::
|
||||||
|
|
||||||
$ wget https://raw.githubusercontent.com/danielyxie/bitburner/master/README.md game_readme.txt
|
$ wget https://raw.githubusercontent.com/danielyxie/bitburner/master/README.md game_readme.txt
|
||||||
|
|||||||
@@ -3,13 +3,947 @@
|
|||||||
Changelog
|
Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
v0.52.7 - 2021-07-21 Fixing the previous patch tbh (hydroflame)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
** Netscript **
|
||||||
|
|
||||||
|
* API BREAKING CHANGE: getActionEstimatedSuccessChance now returns a pair of
|
||||||
|
value to reflect the UI changes. I'm very sorry.
|
||||||
|
|
||||||
|
** Bladeburner **
|
||||||
|
|
||||||
|
* General actions now display time required.
|
||||||
|
* Recruitment now displays success chance.
|
||||||
|
* All other success chance now display a range instead of a single value
|
||||||
|
The real value is guaranteed to be within that range.
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* Fix tutorial not working after Monaco upate
|
||||||
|
* Fix logbox logs not taking up the whole logbox
|
||||||
|
* Fix script editor shortcut (ctrl+b)
|
||||||
|
* Fix Corporation popup appearing in the wrong order, hiding one of them
|
||||||
|
* Fix error when loading Corp
|
||||||
|
* Fix logbox dragging (smoother now)
|
||||||
|
* Fix logbox name collision
|
||||||
|
* Fix logbox allowing to open the same box multiple times
|
||||||
|
* Fix netscript write.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.52.6 - 2021-07-21 Logboxes and VS-code (hydroflame)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
** Text Editor **
|
||||||
|
|
||||||
|
* Ace and Codemirror have been removed in favor of monaco (web version of
|
||||||
|
vs-code). The options are a bit lackluster but more will be added as
|
||||||
|
feedback comes.
|
||||||
|
|
||||||
|
** Log boxes **
|
||||||
|
|
||||||
|
* Multiple log boxes can be opened at once. They can be moved around the
|
||||||
|
screen. (but the movement behavior is a bit weird.)
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* Job promotion now correctly updates the UI.
|
||||||
|
* Milestones now call the faction CyberSec instead of CSEC
|
||||||
|
* Can no longer create file that break the filesystem.
|
||||||
|
* Remove dollar sign in blade contract UI element
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.52.5 - 2021-07-19 CPU cores are useful!? (hydroflame)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
** Terminal **
|
||||||
|
|
||||||
|
* When executing 'run SCRIPT' any script can now add '--tail' to
|
||||||
|
automatically bring up the logs.
|
||||||
|
|
||||||
|
** Netscript **
|
||||||
|
|
||||||
|
* The 'flags' function now works with single letter flags but they only take
|
||||||
|
one dash.
|
||||||
|
* Fix several broken bladeburner netscript functions.
|
||||||
|
* Fix gang.getMemberInformation returning inconsistent data after the gang
|
||||||
|
rework.
|
||||||
|
|
||||||
|
** CPU Cores **
|
||||||
|
|
||||||
|
* CPU Cores on the home computer now provide a bonus to grow() money gain
|
||||||
|
and makes weaken lower more security. Only for scripts running on 'home'
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* Fix weird scrolling in the new Bladeburner React console.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.52.4 - 2021-07-19 Bladeburner in React (hydroflame)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
** Bladeburner **
|
||||||
|
|
||||||
|
* The entire UI was rebuild in React. It should be more responsive
|
||||||
|
|
||||||
|
** Hacknet **
|
||||||
|
|
||||||
|
* Displays how many time each hash upgrade was bought.
|
||||||
|
* Displays cummulative effect of the upgrade.
|
||||||
|
* Removed "Close" button from hash upgrade menu.
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* More popup/modals have dark background, can be dismissed by clicking
|
||||||
|
outside, or by pressing escape.
|
||||||
|
* Small reword in the guide.
|
||||||
|
* Fix several typos in the bladeburner documentation.
|
||||||
|
* Linting (no one cares except the dev)
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.52.3 - 2021-07-15 Gangs were OP (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.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
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)
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
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.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
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.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
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
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
|
||||||
|
v0.51.8 - 2021-05-07 It was there all along (hydroflame & community)
|
||||||
|
--------------------------------------------------------
|
||||||
|
|
||||||
|
**Servers**
|
||||||
|
|
||||||
|
* Update n00dles metadata
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'hashGainRate' use the correct 'usedRam' and 'maxRam'
|
||||||
|
* Fix 'setActionAutolevel' logging.
|
||||||
|
* Fix 'setActionLevel' not working at all.
|
||||||
|
* Add 'installBackdoor' singularity function.
|
||||||
|
|
||||||
|
**Hacknet**
|
||||||
|
|
||||||
|
* Fix Hacknet Servers total production always displaying 0
|
||||||
|
|
||||||
|
**Documentation**
|
||||||
|
|
||||||
|
* Updated guide to no longer recommend BN12.
|
||||||
|
* Fix documentation for maxNumNodes (@ModdedGamers)
|
||||||
|
* Fix typo in 'sourcefiles.rst'
|
||||||
|
* Fix typo in 'recommendedbitnodeorder.rst'
|
||||||
|
* Fix 'getServer' documentation missing 'server' argument.
|
||||||
|
* Fix missing ram cost in 'getData.rst'
|
||||||
|
* Fix basic formulas examples.
|
||||||
|
* Fix typo in BN11 description.
|
||||||
|
* Fix formatting issue in Bladeburner (@Pimgd)
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Fix negative money being displayed in full.
|
||||||
|
* Fix Hacking Missions not working.
|
||||||
|
* Fix Corporation tree not rendering.
|
||||||
|
* Fix script being needlessly recompiled. This should save real ram (not game ram)
|
||||||
|
* w0r1d_d43m0n can be backdoored
|
||||||
|
* Coding Contracts title is click-to-copy (@Rodeth)
|
||||||
|
* Covenant memory upgrade works better.
|
||||||
|
* Fix Neuroflux not being correctly calculated when entering BN with SF12.
|
||||||
|
* Delete Active Script now delete all active scripts, not just home.
|
||||||
|
* Now you can 'cd' in directories that only contain '.txt' files.
|
||||||
|
* Fix 'analyze' always saying players had root access
|
||||||
|
* Passive faction rep no longer builds for special factions.
|
||||||
|
* Donation option no longer appears for special factions.
|
||||||
|
* Rephrased some milestones.
|
||||||
|
* donation textbox now accepts money in the format '1b' and the like (@Dawe)
|
||||||
|
* Fix being able to join hated factions simultaneously. (@Dawe)
|
||||||
|
* 'ls' now displays files in multiple column. (Helps players with many files)
|
||||||
|
* Bladeburner multiplers now appear under Character>Stats and
|
||||||
|
Character>Augmentation when they are relevant.
|
||||||
|
* Fix missing functions syntax highlight in codemirror.
|
||||||
|
* Fix infiltration number formatting.
|
||||||
|
* script income transfers to parent on death. This helps keep track of
|
||||||
|
income for scripts that spawn short lived scripts.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.51.7 - 2021-04-28 n00dles (hydroflame & community)
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
**Tutorial servers**
|
||||||
|
|
||||||
|
* All the tutorial servers have been reverted to their original value
|
||||||
|
* The new server n00dles has been added as tutorial server.
|
||||||
|
|
||||||
|
**Terminal**
|
||||||
|
|
||||||
|
* 'tail' now accepts Pid.
|
||||||
|
* 'analyze' now handles Hacknet Servers correctly.
|
||||||
|
* 'ServerProfiler.exe' now handles Hacknet Servers correctly.
|
||||||
|
|
||||||
|
**SF12**
|
||||||
|
|
||||||
|
* Now makes you start with Neuroflux Governor equal to the level of the SF.
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* Deprecated 'getServerRam'.
|
||||||
|
* 'getServerMaxRam' added to replace 'getServerRam'
|
||||||
|
* 'getServerUsedRam' added to replace 'getServerRam'
|
||||||
|
* 'getBitnodeMultipliers' is available inside BN5
|
||||||
|
* Time logged by hack/grow/weaken now displays in human time.
|
||||||
|
* thread count logged by hack/grow/weaken now displays with commas every
|
||||||
|
thousands place.
|
||||||
|
|
||||||
|
**Donation**
|
||||||
|
|
||||||
|
* Always visible but locked until favor requirements are reached.
|
||||||
|
|
||||||
|
**Augmentations**
|
||||||
|
|
||||||
|
* City factions has been rebalanced to give a reason to visit them all.
|
||||||
|
|
||||||
|
**Sleeves**
|
||||||
|
|
||||||
|
* Fix sleeves not being able to work at Volhavens gym.
|
||||||
|
|
||||||
|
**Lint**
|
||||||
|
|
||||||
|
* This shouldn't change anything but was like 10h of work. So I'm logging it.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Plethora of typo fixed (@Pimgd)
|
||||||
|
* ps documentation fix (@Dawe)
|
||||||
|
* The dev menu now has a quick bitflume option.
|
||||||
|
* Fix SF -1 not being as powerful as intended.
|
||||||
|
* Fix cashroot starter kit not displaying correctly.
|
||||||
|
* Fix DOM element 'character-overview-text' being nested twice.
|
||||||
|
* Hacknet documentation example fix.
|
||||||
|
* Money amount under 1000 dont display 3 decimal anymore.
|
||||||
|
* Fix nextSourceFile flag miscalculation on the bitverse (for Bn12)
|
||||||
|
* Faction invite text says "Decide later"/"Join!" instead of "No"/"Yes"
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
|
||||||
|
v0.51.6 - 2021-04-28 Backdoor! (hydroflame & community)
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
**Backdoor**
|
||||||
|
|
||||||
|
* a new terminal command, backdoor, has been added to help differentiate
|
||||||
|
between the terminal hack command and the netscript hack function. (@dewint)
|
||||||
|
|
||||||
|
**Servers**
|
||||||
|
|
||||||
|
* foodnstuff, sigma-cosmetics, and joesguns have been rebalanced to help new players.
|
||||||
|
|
||||||
|
**Milestones**
|
||||||
|
|
||||||
|
* A new tab under the Help menu has been added to guide players through the
|
||||||
|
game.
|
||||||
|
|
||||||
|
**Casino**
|
||||||
|
|
||||||
|
* Blackjack has been added (@BigD)
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'prompt' now converts input to JSON.
|
||||||
|
* 'getRunningScript' is a new netscript function that returns a bunch of
|
||||||
|
data related to a running script.
|
||||||
|
|
||||||
|
**Coding contracts**
|
||||||
|
|
||||||
|
* trivial puzzles should no longer appear.
|
||||||
|
|
||||||
|
**Infiltration**
|
||||||
|
|
||||||
|
* All numbers are formatted like the rest of the game.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Server security is capped at 100.
|
||||||
|
* Added option to quit a job.
|
||||||
|
* 'cd' no longer works on unexistent folders.
|
||||||
|
* cd with no arguments brings you back to top level folder (@Andreas)
|
||||||
|
* 'softReset' documentation udpated.
|
||||||
|
* Money tracker now accounts for going to the hospital manually.
|
||||||
|
* codemirror is now the default editor (for new save files)
|
||||||
|
* fix typo in dark web help text (@Rodeth)
|
||||||
|
* so many documentation and typos fixes (@Pimgd)
|
||||||
|
* A corruption visual effect has been added to location with servers that
|
||||||
|
have backdoor installed. (@dewint)
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
|
||||||
|
v0.51.5 - 2021-04-20 Flags! (hydroflame)
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'flags' is a new function that helps script handle flags.
|
||||||
|
This is subject to change if it doesn't meet the need of the players.
|
||||||
|
* 'ps' now returns the pid.
|
||||||
|
* 'tail' now works with pid as first argument.
|
||||||
|
* 'tail' hostname defaults to current server. (like the documentation says)
|
||||||
|
* 'isRunning' hostname defaults to current server.
|
||||||
|
* 'isRunning' now works with pid as first argument.
|
||||||
|
|
||||||
|
**Gang**
|
||||||
|
|
||||||
|
* Nerfed ascension mechanic once again :(
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Souce-File typo fix
|
||||||
|
* Fix 'while you were away' screen.
|
||||||
|
* Bladeburner team size can no longer be set to negative amounts.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.51.4 - 2021-04-19 Manual hacking is fun (hydroflame)
|
||||||
|
-------------------------------------------------------
|
||||||
|
|
||||||
|
**Manual hacking**
|
||||||
|
|
||||||
|
* These bonus require an install or a soft reset to take effect.
|
||||||
|
* Manual hacking gyms and university gives you a 10% discount.
|
||||||
|
* Manual hacking a corporation server decreases the penalty for leaving work
|
||||||
|
early.
|
||||||
|
|
||||||
|
**BladeBurner**
|
||||||
|
|
||||||
|
* nerfed int exp gained.
|
||||||
|
|
||||||
|
**Documentation**
|
||||||
|
|
||||||
|
* purchaseServer specifies what happens on failure.
|
||||||
|
* Fixed typo in recommended bitnode page.
|
||||||
|
* Removed misleading ram requirements for hacking factions.
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* growthAnalyze handles Infinity correctly.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Faction Augmentation will list how much reputation is required even after
|
||||||
|
that goal has been reached.
|
||||||
|
* Removed dollar sign in travel agency confirmation dialog box.
|
||||||
|
* Fixed typo in alpha-omega.lit
|
||||||
|
* the 'Game saved!' text no longer blocks the save game/options button.
|
||||||
|
* The text editor now remembers the location of your cursor and restores it.
|
||||||
|
* skills are recalculated instantly.
|
||||||
|
* Fix typo in Operation Zero description.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.51.3 - 2021-04-16 Y'all broke it on the first day (hydroflame)
|
||||||
|
-----------------------------------------------------------------
|
||||||
|
|
||||||
|
**Passive faction reputation**
|
||||||
|
|
||||||
|
* Reworked, from 1 rep / 2 minute. Now is a complicated percentage of the
|
||||||
|
reputation you'd gain working for them. It's not op but it feels a bit
|
||||||
|
more useful.
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* print/tprint now take any number of arguments.
|
||||||
|
* print/tprint will now print object as json.
|
||||||
|
* print/tprint now handle passing in an undefined argument properly.
|
||||||
|
|
||||||
|
**Casino**
|
||||||
|
|
||||||
|
* Cannot bet negative money anymore.
|
||||||
|
* Roulette max bet is a bit higher.
|
||||||
|
* Coin Flip has a small cooldown.
|
||||||
|
* All buttons reject unstrusted mouse events.
|
||||||
|
|
||||||
|
**Documentation**
|
||||||
|
|
||||||
|
* Changed a message that said nsjs only works on Chrome.
|
||||||
|
|
||||||
|
**Bugfix**
|
||||||
|
|
||||||
|
* hacknet.maxNumNodes now works for both nodes and servers.
|
||||||
|
* Fixed a bug where the popup boxes would contain data from previous popup boxes.
|
||||||
|
* .js files will also have the 'export async function' boilerplate.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* turned off web form autocomplete for the terminal text input.
|
||||||
|
* Fixed an issue on Windows+Firefox where pressing up on the terminal would
|
||||||
|
bring the cursor to the begining of the line. (Issue #836)
|
||||||
|
* Hacknet node names is easier to handle for screen readers.
|
||||||
|
* Money spent on classes is now tracked independently of work money.
|
||||||
|
* running coding contract from the terminal will display its name.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.51.2 - 2021-04-09 Vegas, Baby! (hydroflame)
|
||||||
|
----------------------------------------------
|
||||||
|
|
||||||
|
**New location: The Iker Molina Casino**
|
||||||
|
|
||||||
|
* A casino opened in Aevum. However the house is rumored to cheat. If only
|
||||||
|
we could give them a taste of their own medicine.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Link to discord added under options
|
||||||
|
* 'getMemberInformation' doc updated, oops
|
||||||
|
* tech vendor now handle max ram and cores.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.51.1 - 2021-04-06 Bugfixes because the author of the last patch sucks (it's hydroflame)
|
||||||
|
------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'getPlayer' returns players faction and tor
|
||||||
|
* 'hospitalization' is a new singularity function.
|
||||||
|
* 'gang.getMemberInformation' now returns more information.
|
||||||
|
* 'hacknet.hashCapacity' is a new hacknet function that returns the maximum hash capacity.
|
||||||
|
|
||||||
|
**Hospitalization**
|
||||||
|
|
||||||
|
* Now only cost at most 10% of your money.
|
||||||
|
|
||||||
|
**Bugfix**
|
||||||
|
|
||||||
|
* confirmation dialog box no longer use previous text
|
||||||
|
|
||||||
|
**Accessibility**
|
||||||
|
|
||||||
|
* The game is a little easier to handle for screen readers (yes, there's an
|
||||||
|
absolute legend playing this game with a screen reader)
|
||||||
|
* Infiltration use buttons instead of a-links
|
||||||
|
* New option to disable ASCII art. This will make the metro map and world
|
||||||
|
map display as a list of buttons.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* 'fl1ght.exe' will no longer suggest the combat path. Related faction
|
||||||
|
requirements unchanged.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.51.0 - 2021-03-31 Formulas (hydroflame)
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
**Formulas API**
|
||||||
|
|
||||||
|
* A new API is introduced, this gives players access to various formulas used in the game.
|
||||||
|
It'll help you make more informed decisions.
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'getServer' is a new function meant to be used with the formulas API.
|
||||||
|
* 'getPlayer' is a new function meant to be used with the formulas API.
|
||||||
|
* 'getStats' and 'getCharacterInformation' are deprecated in favor of 'getPlayer'
|
||||||
|
* 'getCurrentServer' is a new function that returns the server the player is currently connected.
|
||||||
|
|
||||||
|
**Display**
|
||||||
|
|
||||||
|
* All money should now consistently be orange.
|
||||||
|
* All rep should now consistently be light-yellow.
|
||||||
|
* Most numbers should display consistently now (aka all money is formatted the same).
|
||||||
|
|
||||||
|
**Click to copy**
|
||||||
|
|
||||||
|
* Certain UI elements are now 'click-to-copy'
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.50.2 - 2021-03-25 Everyone asked for this one. (hydroflame)
|
||||||
|
--------------------------------------------------------------
|
||||||
|
|
||||||
|
**BitNodeMultipliers**
|
||||||
|
|
||||||
|
* 'GangKarmaRequirements': a new multipler that influences how much karma is required to make a gang different bitnodes.
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'connect': a new singularity function that connects you to a server. (like the terminal command)
|
||||||
|
* 'manualHack': a new singularity function that performs a manual hack on the players current server.
|
||||||
|
* ns2 stack trace works on Firefox now.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* New shortcut, Alt + b, brings you to bladeburner
|
||||||
|
* New shortcut, Alt + g, brings you to gang
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.50.1 - 2021-03-22 (hydroflame)
|
||||||
|
---------------------------------
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* getTaskStats works
|
||||||
|
|
||||||
|
**Source-File -1**
|
||||||
|
|
||||||
|
* Added a new Exploit
|
||||||
|
|
||||||
|
**Factions**
|
||||||
|
|
||||||
|
* Augmentations offered by a Faction but already bought are in a separate list at the bottom of the page.
|
||||||
|
|
||||||
|
**Bug fixed**
|
||||||
|
|
||||||
|
* Fixed a bug where completing a maxed non-repeatable BitNode would make its color on the BitVerse like level 1.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Minor spacing in stats tables.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.50.0 - 2021-03-20 Intelligence (hydroflame)
|
||||||
|
----------------------------------------------
|
||||||
|
|
||||||
|
**Intelligence**
|
||||||
|
|
||||||
|
* int exp gain and effect has been reworked. It is now much more easy to
|
||||||
|
acquire and far more powerful. The goal here is to feel like players have
|
||||||
|
another tool in their arsenal.
|
||||||
|
|
||||||
|
**Factions**
|
||||||
|
|
||||||
|
* Hacking factions no longer have hacking level requirements since their associated servers do.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Sleeve styling.
|
||||||
|
* number formatting
|
||||||
|
* remove wiki button in Hacking Missions.
|
||||||
|
* Fix NaN displayed when very very large numbers are reached.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.49.2 - 2021-03-13 (hydroflame)
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
**BN8**
|
||||||
|
|
||||||
|
* A new bitnode multipler has been added, it lets you reduce money from a
|
||||||
|
server without gaining actually any money. This is important for BN8 where
|
||||||
|
hack/grow can influence the stock market. No money can be gained from
|
||||||
|
hacking but server money can still be reduced.
|
||||||
|
|
||||||
|
**Documentation**
|
||||||
|
|
||||||
|
* readthedocs should now be more consistent and many examples were added.
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* Ace editor will now correctly highlight all functions.
|
||||||
|
* 'tFormat' is a new netscript function that returns a human readable
|
||||||
|
representation of milliseconds. eg. "2 hours 15 minute 43 seconds"
|
||||||
|
|
||||||
|
**Gang**
|
||||||
|
|
||||||
|
* style improvements
|
||||||
|
|
||||||
|
**Bladeburner**
|
||||||
|
|
||||||
|
* style improvements
|
||||||
|
* fix bug where 'skill list SKILL' would crash if skill is level 0.
|
||||||
|
|
||||||
|
**Sleeve**
|
||||||
|
|
||||||
|
* karma gain now scales with sync.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Fix issue where the effective stats under Character>Stats were being calculated.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.49.0 - 2021-03-11 Source-File -1 (hydroflame)
|
||||||
|
------------------------------------------------
|
||||||
|
|
||||||
|
**Source-File -1**
|
||||||
|
|
||||||
|
* For advanced players: The game now embraces exploits and will reward
|
||||||
|
players for doing so.
|
||||||
|
|
||||||
|
**Gang**
|
||||||
|
|
||||||
|
* ascension is less effective as the ascension multiplier goes up.
|
||||||
|
* territory gain scales with power difference.
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'gang.getEquipmentStats' returns the stats of the equipment.
|
||||||
|
* 'gang.getTaskStats' returns the stats of a task.
|
||||||
|
* 'getCrimeStats' returns the stats of a crime.
|
||||||
|
* Crashes should now print the ns stack trace.
|
||||||
|
* Log messages are now more consistent.
|
||||||
|
* 'softReset' now accepts a callback script like 'installAugmentations'
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Minor formatting under Hacking>Active Scripts
|
||||||
|
* option menu colors now match the rest of the game, kinda.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
|
||||||
|
v0.48.0 - ASCII - 2021-03-07 (hydroflame)
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
**ASCII**
|
||||||
|
|
||||||
|
* Travel Agency now displays a world map
|
||||||
|
* Cities are now top view of metro station maps
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'softReset' is a new netscript function that performs a soft reset
|
||||||
|
regardless of if the player has bought augmentations or not.
|
||||||
|
* 'getAugmentationStats' is a new netscript function that returns the stats of
|
||||||
|
an augmentation.
|
||||||
|
* getCharacterInformation now additionally returns exp
|
||||||
|
* pid resets back to 1 when installing or destroying a BitNode.
|
||||||
|
* New '.ns' scripts start with a main function.
|
||||||
|
* 'hacknet.maxNumNodes' returns the maximum number of hacknet nodes.
|
||||||
|
|
||||||
|
**Bladeburner**
|
||||||
|
|
||||||
|
* Current stamina will scale as max stamina increases, this prevents players
|
||||||
|
from having very high penalty when they gain huge amount of exp at the
|
||||||
|
start of a reset.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Fixed an issue where SF3 was listed as infinitly repeatable and SF12 as
|
||||||
|
having a limit of 3.
|
||||||
|
* Fixed an issue where the gang equipment screen would freeze the game if a
|
||||||
|
script installed augmentations while it is open.
|
||||||
|
* All BonusTime now displays in the 'H M S' format.
|
||||||
|
* Donation textbox style updated to match the rest of the game.
|
||||||
|
* Corporation name style updated to match the rest of the game.
|
||||||
|
* minor formatting under Hacking>Active Scripts
|
||||||
|
* typo in BN12 description
|
||||||
|
* BN12 now reduces contract money
|
||||||
|
* Character>Stats percentages are aligned, server and hacknet limit are
|
||||||
|
displayed, if the player has SF5 the reduces stats are shown.
|
||||||
|
* Character>Augmentations now displays by how much the player stats will
|
||||||
|
increase.
|
||||||
|
* Character>Augmentations has a badge indicating how many augs the player
|
||||||
|
has bought but not installed
|
||||||
|
* Character>Factions has a badge indicating how many factions have pending
|
||||||
|
invites.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.47.2 - 7/15/2019
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
**Netscript Changes**
|
||||||
|
|
||||||
|
* Added tail() Netscript function
|
||||||
|
* hacknet.getNodeStats() function now returns an additional property for Hacknet Servers: hashCapacity
|
||||||
|
* When writing to a file, the write() function now casts the data being written to a string (using String())
|
||||||
|
* BitNode-selection page now shows what Source-File level you have for each BitNode
|
||||||
|
* Overloaded kill() function so that you can kill a script by its PID
|
||||||
|
* spawn() now only takes 10 seconds to run (decreased from 20 seconds)
|
||||||
|
* run() and exec() now return the PID of the newly-executed scripts, rather than a boolean
|
||||||
|
* (A PID is just a positive integer)
|
||||||
|
* run(), exec(), and spawn() no longer need to be await-ed in NetscriptJS
|
||||||
|
* Script parsing and RAM calculations now support ES9
|
||||||
|
* installAugmentations() no longer has a return value since it causes all scripts to die
|
||||||
|
* isBusy() now returns true if you are in a Hacking Mission
|
||||||
|
* Bug fix: workForFaction() function now properly accounts for disabled logs
|
||||||
|
* Bug fix: RAM should now be properly calculated when running a callback script with installAugmentations()
|
||||||
|
* Bug fix: Fixed bug that caused scripts killed by exit()/spawn() to "clean up" twice
|
||||||
|
|
||||||
|
**Misc Changes**
|
||||||
|
|
||||||
|
* The 'kill' Terminal command can now kill a script by its PID
|
||||||
|
* Added 'Solarized Dark' theme to CodeMirror editor
|
||||||
|
* After Infiltration, you will now return to the company page rather than the city page
|
||||||
|
* Bug fix: Stock Market UI should no longer crash for certain locale settings
|
||||||
|
* Bug fix: You can now properly remove unfinished programs (the `*.exe-N%-INC` files)
|
||||||
|
* Bug fix: Fixed an issue that allowed you to increase money on servers with a 'maxMoney' of 0 (like CSEC)
|
||||||
|
* Bug fix: Scripts no longer persist if they were started with syntax/import errors
|
||||||
|
* Bug fix: 'hack' and 'analyze' Terminal commands are now blocking
|
||||||
|
* Bug fix: Exp earned by duplicate sleeves at universities/gyms now takes hash upgrades into account
|
||||||
|
|
||||||
|
v0.47.1 - 6/27/2019
|
||||||
|
-------------------
|
||||||
|
* Stock Market changes:
|
||||||
|
* Transactions no longer influence stock prices (but they still influence forecast)
|
||||||
|
* Changed the way stocks behave, particularly with regard to how the stock forecast occasionally "flips"
|
||||||
|
* Hacking & growing a server can potentially affect the way the corresponding stock's forecast changes
|
||||||
|
* Working for a company positively affects the way the corresponding stock's forecast changes
|
||||||
|
|
||||||
|
* Scripts now start/stop instantly
|
||||||
|
* Improved performance when starting up many copies of a new NetscriptJS script (by Ornedan)
|
||||||
|
* Improved performance when killing scripts
|
||||||
|
* Dialog boxes can now be closed with the ESC key (by jaguilar)
|
||||||
|
* NetscriptJS scripts should now be "re-compiled" if their dependencies change (by jaguilar)
|
||||||
|
* write() function should now properly cause NetscriptJS scripts to "re-compile" (by jaguilar)
|
||||||
|
|
||||||
|
v0.47.0 - 5/17/2019
|
||||||
|
-------------------
|
||||||
|
* Stock Market changes:
|
||||||
|
* Implemented spread. Stock's now have bid and ask prices at which transactions occur
|
||||||
|
* Large transactions will now influence a stock's price and forecast
|
||||||
|
* This "influencing" can take effect in the middle of a transaction
|
||||||
|
* See documentation for more details on these changes
|
||||||
|
* Added getStockAskPrice(), getStockBidPrice() Netscript functions to the TIX API
|
||||||
|
* Added getStockPurchaseCost(), getStockSaleGain() Netscript functions to the TIX API
|
||||||
|
|
||||||
|
* Re-sleeves can no longer have the NeuroFlux Governor augmentation
|
||||||
|
* This is just a temporary patch until the mechanic gets re-worked
|
||||||
|
|
||||||
|
* hack(), grow(), and weaken() functions now take optional arguments for number of threads to use (by MasonD)
|
||||||
|
* codingcontract.attempt() now takes an optional argument that allows you to configure the function to return a contract's reward
|
||||||
|
* Adjusted RAM costs of Netscript Singularity functions (mostly increased)
|
||||||
|
* Adjusted RAM cost of codingcontract.getNumTriesRemaining() Netscript function
|
||||||
|
* Netscript Singularity functions no longer cost extra RAM outside of BitNode-4
|
||||||
|
* Corporation employees no longer have an "age" stat
|
||||||
|
* Gang Wanted level gain rate capped at 100 (per employee)
|
||||||
|
* Script startup/kill is now processed every 3 seconds, instead of 6 seconds
|
||||||
|
* getHackTime(), getGrowTime(), and getWeakenTime() now return Infinity if called on a Hacknet Server
|
||||||
|
* Money/Income tracker now displays money lost from hospitalizations
|
||||||
|
* Exported saves now have a unique filename based on current BitNode and timestamp
|
||||||
|
* Maximum number of Hacknet Servers decreased from 25 to 20
|
||||||
|
* Bug Fix: Corporation employees stats should no longer become negative
|
||||||
|
* Bug Fix: Fixed sleeve.getInformation() throwing error in certain scenarios
|
||||||
|
* Bug Fix: Coding contracts should no longer generate on the w0r1d_d43m0n server
|
||||||
|
* Bug Fix: Duplicate Sleeves now properly have access to all Augmentations if you have a gang
|
||||||
|
* Bug Fix: getAugmentationsFromFaction() & purchaseAugmentation() functions should now work properly if you have a gang
|
||||||
|
* Bug Fix: Fixed issue that caused messages (.msg) to be sent when refreshing/reloading the game
|
||||||
|
* Bug Fix: Purchasing hash upgrades for Bladeburner/Corporation when you don't actually have access to those mechanics no longer gives hashes
|
||||||
|
* Bug Fix: run(), exec(), and spawn() Netscript functions now throw if called with 0 threads
|
||||||
|
* Bug Fix: Faction UI should now automatically update reputation
|
||||||
|
* Bug Fix: Fixed purchase4SMarketData()
|
||||||
|
* Bug Fix: Netscript1.0 now works properly for multiple 'namespace' imports (import * as namespace from "script")
|
||||||
|
* Bug Fix: Terminal 'wget' command now correctly evaluates directory paths
|
||||||
|
* Bug Fix: wget(), write(), and scp() Netscript functions now fail if an invalid filepath is passed in
|
||||||
|
* Bug Fix: Having Corporation warehouses at full capacity should no longer freeze game in certain conditions
|
||||||
|
* Bug Fix: Prevented an exploit that allows you to buy multiple copies of an Augmentation by holding the 'Enter' button
|
||||||
|
* Bug Fix: gang.getOtherGangInformation() now properly returns a deep copy
|
||||||
|
* Bug Fix: Fixed getScriptIncome() returning an undefined value
|
||||||
|
* Bug Fix: Fixed an issue with Hacknet Server hash rate not always updating
|
||||||
|
|
||||||
|
v0.46.3 - 4/20/2019
|
||||||
|
-------------------
|
||||||
|
* Added a new Augmentation: The Shadow's Simulacrum
|
||||||
|
* Improved tab autocompletion feature in Terminal so that it works better with directories
|
||||||
|
* Bug Fix: Tech vendor location UI now properly refreshed when purchasing a TOR router
|
||||||
|
* Bug Fix: Fixed UI issue with faction donations
|
||||||
|
* Bug Fix: The money statistics & breakdown should now properly track money earned from Hacknet Server (hashes -> money)
|
||||||
|
* Bug Fix: Fixed issue with changing input in 'Minimum Path Sum in a Triangle' coding contract problem
|
||||||
|
* Fixed several typos in various places
|
||||||
|
|
||||||
v0.46.2 - 4/14/2019
|
v0.46.2 - 4/14/2019
|
||||||
-------------------
|
-------------------
|
||||||
* Source-File 2 now allows you to form gangs in other BitNodes when your karma reaches a very large negative value
|
* Source-File 2 now allows you to form gangs in other BitNodes when your karma reaches a very large negative value
|
||||||
** (Karma is a hidden stat and is lowered by committing crimes)
|
* (Karma is a hidden stat and is lowered by committing crimes)
|
||||||
|
|
||||||
* Gang changes:
|
* Gang changes:
|
||||||
** Bug Fix: Gangs can no longer clash with themselve
|
* Bug Fix: Gangs can no longer clash with themselve
|
||||||
** Bug Fix: Winning against another gang should properly reduce their power
|
* Bug Fix: Winning against another gang should properly reduce their power
|
||||||
|
|
||||||
* Bug Fix: Terminal 'wget' command now works properly
|
* Bug Fix: Terminal 'wget' command now works properly
|
||||||
* Bug Fix: Hacknet Server Hash upgrades now properly reset upon installing Augs/switching BitNodes
|
* Bug Fix: Hacknet Server Hash upgrades now properly reset upon installing Augs/switching BitNodes
|
||||||
|
|||||||
@@ -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.46'
|
version = '0.52'
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = '0.46.2'
|
release = '0.52.7'
|
||||||
|
|
||||||
# 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.
|
||||||
|
|||||||
@@ -2,10 +2,11 @@ Guides & Tips
|
|||||||
=============
|
=============
|
||||||
|
|
||||||
Getting Started Guide for Intermediate Programmers
|
Getting Started Guide for Intermediate Programmers
|
||||||
What BitNode should I do?
|
|
||||||
Beginners FAQ
|
Beginners FAQ
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 3
|
:maxdepth: 3
|
||||||
|
|
||||||
Getting Started Guide for Beginner Programmers <guidesandtips/gettingstartedguideforbeginnerprogrammers>
|
Getting Started Guide for Beginner Programmers <guidesandtips/gettingstartedguideforbeginnerprogrammers>
|
||||||
|
What BitNode should I do?<guidesandtips/recommendedbitnodeorder>
|
||||||
|
|||||||
@@ -634,18 +634,18 @@ This tells me that I can reach :code:`CSEC` by going through :code:`iron-gym`::
|
|||||||
Make sure you notice the required hacking skill for the :code:`CSEC` server.
|
Make sure you notice the required hacking skill for the :code:`CSEC` server.
|
||||||
This is a random value between 51 and 60. Although you receive the message
|
This is a random value between 51 and 60. Although you receive the message
|
||||||
from CSEC once you hit 50 hacking, you cannot actually pass their test
|
from CSEC once you hit 50 hacking, you cannot actually pass their test
|
||||||
until your hacking is high enough to hack their server.
|
until your hacking is high enough to install a backdoor on their server.
|
||||||
|
|
||||||
After you are connected to the :code:`CSEC` server, you can hack it. Note that this
|
After you are connected to the :code:`CSEC` server, you can backdoor it. Note that this
|
||||||
server requires one open port in order to gain root access. We can open the SSH port
|
server requires one open port in order to gain root access. We can open the SSH port
|
||||||
using the :code:`BruteSSH.exe` program we created earlier. In |Terminal|::
|
using the :code:`BruteSSH.exe` program we created earlier. In |Terminal|::
|
||||||
|
|
||||||
$ run BruteSSH.exe
|
$ run BruteSSH.exe
|
||||||
$ run NUKE.exe
|
$ run NUKE.exe
|
||||||
$ hack
|
$ backdoor
|
||||||
|
|
||||||
Keep hacking the server until you are successful. After you successfully hack it, you should
|
After you successfully install the backdoor, you should receive a faction
|
||||||
receive a faction invitation from |CyberSec| shortly afterwards. Accept it. If you accidentally
|
invitation from |CyberSec| shortly afterwards. Accept it. If you accidentally
|
||||||
reject the invitation, that's okay. Just go to the :code:`Factions` tab
|
reject the invitation, that's okay. Just go to the :code:`Factions` tab
|
||||||
(|Keyboard shortcut| Alt + f) and you should see an option that lets you
|
(|Keyboard shortcut| Alt + f) and you should see an option that lets you
|
||||||
accept the invitation.
|
accept the invitation.
|
||||||
@@ -860,7 +860,7 @@ Random Tips
|
|||||||
.. Substitution definitions
|
.. Substitution definitions
|
||||||
.. |Alpha Enterprises| replace:: :code:`Alpha Enterprises`
|
.. |Alpha Enterprises| replace:: :code:`Alpha Enterprises`
|
||||||
.. |Augmentations tab| replace:: :code:`Augmentations` tab
|
.. |Augmentations tab| replace:: :code:`Augmentations` tab
|
||||||
.. |AutoLink| replace:: :code:`NUKE.exe`
|
.. |AutoLink| replace:: :code:`AutoLink.exe`
|
||||||
.. |BruteSSH| replace:: :code:`BruteSSH.exe`
|
.. |BruteSSH| replace:: :code:`BruteSSH.exe`
|
||||||
.. |City tab| replace:: :code:`City` tab
|
.. |City tab| replace:: :code:`City` tab
|
||||||
.. |CyberSec| replace:: :code:`CyberSec`
|
.. |CyberSec| replace:: :code:`CyberSec`
|
||||||
|
|||||||
488
doc/source/guidesandtips/recommendedbitnodeorder.rst
Normal file
488
doc/source/guidesandtips/recommendedbitnodeorder.rst
Normal file
@@ -0,0 +1,488 @@
|
|||||||
|
What BitNode should I do?
|
||||||
|
=========================
|
||||||
|
|
||||||
|
.. warning:: This page contains spoilers regarding the game's story/plot-line.
|
||||||
|
|
||||||
|
After destroying their first :ref:`BitNode <gameplay_bitnodes>`, many players
|
||||||
|
wonder which BitNode they should tackle next. This guide hopefully helps answer
|
||||||
|
that question.
|
||||||
|
|
||||||
|
Overview of each BitNode
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
BitNode-1: Source Genesis
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Description
|
||||||
|
The first BitNode created by the Enders to imprison the minds of humans. It became
|
||||||
|
the prototype and testing-grounds for all of the BitNodes that followed.
|
||||||
|
This is the first BitNode that you play through. It has no special
|
||||||
|
modifications or mechanics.
|
||||||
|
|
||||||
|
Source-File
|
||||||
|
:Max Level: 3
|
||||||
|
|
||||||
|
This Source-File lets the player start with 32GB of RAM on his/her home computer when
|
||||||
|
entering a new BitNode, and also increases all of the player's multipliers by:
|
||||||
|
|
||||||
|
* Level 1: 16%
|
||||||
|
* Level 2: 24%
|
||||||
|
* Level 3: 28%
|
||||||
|
|
||||||
|
Difficulty
|
||||||
|
The easiest BitNode
|
||||||
|
|
||||||
|
BitNode-2: Rise of the Underworld
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Description
|
||||||
|
Organized crime groups quickly filled the void of power left behind from the collapse of
|
||||||
|
Western government in the 2050s. As society and civlization broke down, people quickly
|
||||||
|
succumbed to the innate human impulse of evil and savagery. The organized crime
|
||||||
|
factions quickly rose to the top of the modern world.
|
||||||
|
|
||||||
|
In this BitNode:
|
||||||
|
|
||||||
|
* Your hacking level is reduced by 20%
|
||||||
|
* The growth rate and maximum amount of money available on servers are significantly decreased
|
||||||
|
* The amount of money gained from crimes and Infiltration is tripled
|
||||||
|
* Certain Factions (Slum Snakes, Tetrads, The Syndicate, The Dark Army, Speakers for the Dead,
|
||||||
|
NiteSec, The Black Hand) give the player the ability to form and manage their own gangs. These gangs
|
||||||
|
will earn the player money and reputation with the corresponding Faction
|
||||||
|
* Every Augmentation in the game will be available through the Factions listed above
|
||||||
|
* For every Faction NOT listed above, reputation gains are halved
|
||||||
|
* You will no longer gain passive reputation with Factions
|
||||||
|
|
||||||
|
Source-File
|
||||||
|
:Max Level: 3
|
||||||
|
|
||||||
|
This Source-File allows you to form gangs in other BitNodes once your karma decreases to a certain value.
|
||||||
|
It also increases the player's crime success rate, crime money, and charisma multipliers by:
|
||||||
|
|
||||||
|
* Level 1: 24%
|
||||||
|
* Level 2: 36%
|
||||||
|
* Level 3: 42%
|
||||||
|
|
||||||
|
Difficulty
|
||||||
|
Fairly easy, as hacking is still very profitable and the costs of various purchases/upgrades
|
||||||
|
is not increased. The gang mechanic may seem strange as its very different from anything
|
||||||
|
else, but it can be very powerful once you get the hang of it.
|
||||||
|
|
||||||
|
BitNode-3: Corporatocracy
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Description
|
||||||
|
Our greatest illusion is that a healthy society can revolve around a
|
||||||
|
single-minded pursuit of wealth.
|
||||||
|
Sometime in the early 21st century economic and political globalization turned
|
||||||
|
the world into a corporatocracy, and it never looked back. Now, the privileged
|
||||||
|
elite will happily bankrupt their own countrymen, decimate their own community,
|
||||||
|
and evict their neighbors from houses in their desperate bid to increase their wealth.
|
||||||
|
In this BitNode you can create and manage your own corporation. Running a successful corporation
|
||||||
|
has the potential of generating massive profits. All other forms of income are reduced by 75%. Furthermore:
|
||||||
|
|
||||||
|
* The price and reputation cost of all Augmentations is tripled
|
||||||
|
* The starting and maximum amount of money on servers is reduced by 75%
|
||||||
|
* Server growth rate is reduced by 80%
|
||||||
|
* You now only need 75 favour with a faction in order to donate to it, rather than 150
|
||||||
|
|
||||||
|
Source-File
|
||||||
|
:Max Level: 3
|
||||||
|
|
||||||
|
This Source-File lets you create corporations on other BitNodes (although
|
||||||
|
some BitNodes will disable this mechanic). This Source-File also increases your
|
||||||
|
charisma and company salary multipliers by:
|
||||||
|
|
||||||
|
* Level 1: 8%
|
||||||
|
* Level 2: 12%
|
||||||
|
* Level 3: 14%
|
||||||
|
|
||||||
|
Difficulty
|
||||||
|
Somewhat-steep learning curve as you learn how to use and manage Corporations. Afterwards,
|
||||||
|
however, the BitNode is easy as Corporations can be very profitable.
|
||||||
|
|
||||||
|
BitNode-4: The Singularity
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Description
|
||||||
|
The Singularity has arrived. The human race is gone, replaced by artificially superintelligent
|
||||||
|
beings that are more machine than man.
|
||||||
|
|
||||||
|
In this BitNode, progressing is significantly harder:
|
||||||
|
|
||||||
|
* Experience gain rates for all stats are reduced.
|
||||||
|
* Most methods of earning money will now give significantly less.
|
||||||
|
|
||||||
|
In this BitNode you will gain access to a new set of Netscript Functions known as Singularity Functions.
|
||||||
|
These functions allow you to control most aspects of the game through scripts, including
|
||||||
|
working for factions/companies, purchasing/installing Augmentations, and creating programs.
|
||||||
|
|
||||||
|
Source-File
|
||||||
|
:Max Level: 3
|
||||||
|
|
||||||
|
This Source-File lets you access and use the Singularity Functions in other BitNodes.
|
||||||
|
Each level of this Source-File will open up more Singularity Functions that you can use.
|
||||||
|
|
||||||
|
Difficulty:
|
||||||
|
Depending on what Source-Files you have unlocked before attempting this BitNode,
|
||||||
|
it can range from easy to moderate.
|
||||||
|
|
||||||
|
BitNode-5: Artificial Intelligence
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Description
|
||||||
|
They said it couldn't be done. They said the human brain,
|
||||||
|
along with its consciousness and intelligence, couldn't be replicated. They said the complexity
|
||||||
|
of the brain results from unpredictable, nonlinear interactions that couldn't be modeled
|
||||||
|
by 1's and 0's. They were wrong.
|
||||||
|
|
||||||
|
In this BitNode:
|
||||||
|
|
||||||
|
* The base security level of servers is doubled
|
||||||
|
* The starting money on servers is halved, but the maximum money remains the same
|
||||||
|
* Most methods of earning money now give significantly less
|
||||||
|
* Infiltration gives 50% more reputation and money
|
||||||
|
* Corporations have 50% lower valuations and are therefore less profitable
|
||||||
|
* Augmentations are more expensive
|
||||||
|
* Hacking experience gain rates are reduced
|
||||||
|
|
||||||
|
Source-File
|
||||||
|
:Max Level: 3
|
||||||
|
|
||||||
|
This Source-File grants you a special new stat called Intelligence.
|
||||||
|
|
||||||
|
Intelligence is unique because it is permanent and persistent (it never gets reset back to 1). However
|
||||||
|
gaining Intelligence experience is much slower than other stats, and it is also hidden (you won't know
|
||||||
|
when you gain experience and how much). Higher Intelligence levels will boost your production for many actions
|
||||||
|
in the game.
|
||||||
|
|
||||||
|
In addition, this Source-File will unlock the :js:func:`getBitNodeMultipliers()` Netscript function,
|
||||||
|
and will also raise all of your hacking-related multipliers by:
|
||||||
|
|
||||||
|
* Level 1: 8%
|
||||||
|
* Level 2: 12%
|
||||||
|
* Level 3: 14%
|
||||||
|
|
||||||
|
Difficulty
|
||||||
|
Depending on what Source-Files you have unlocked before attempting this BitNode, it
|
||||||
|
can range from easy to moderate.
|
||||||
|
|
||||||
|
BitNode-6: Bladeburners
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Description
|
||||||
|
In the middle of the 21st century, OmniTek Incorporated began designing and manufacturing advanced synthetic
|
||||||
|
androids, or Synthoids for short. They achieved a major technological breakthrough in the sixth generation
|
||||||
|
of their Synthoid design, called MK-VI, by developing a hyperintelligent AI. Many argue that this was
|
||||||
|
the first sentient AI ever created. This resulted in Synthoid models that were stronger, faster, and more intelligent
|
||||||
|
than the humans that had created them.
|
||||||
|
|
||||||
|
In this BitNode you will be able to access the Bladeburner Division at the NSA, which provides
|
||||||
|
a new mechanic for progression. Furthermore:
|
||||||
|
|
||||||
|
* Hacking and Hacknet Nodes will be less profitable
|
||||||
|
* Your hacking level is reduced by 65%
|
||||||
|
* Hacking experience gain from scripts is reduced by 75%
|
||||||
|
* Corporations have 80% lower valuations and are therefore less profitable
|
||||||
|
* Working for companies is 50% less profitable
|
||||||
|
* Crimes and Infiltration are 25% less profitable
|
||||||
|
|
||||||
|
Source-File
|
||||||
|
:Max Level: 3
|
||||||
|
|
||||||
|
This Source-File allows you to access the NSA's Bladeburner Division in other
|
||||||
|
BitNodes. In addition, this Source-File will raise both the level and experience
|
||||||
|
gain rate of all your combat stats by:
|
||||||
|
|
||||||
|
* Level 1: 8%
|
||||||
|
* Level 2: 12%
|
||||||
|
* Level 3: 14%
|
||||||
|
|
||||||
|
Difficulty
|
||||||
|
Initially difficult due to the fact that hacking is no longer profitable and you have
|
||||||
|
to learn a new mechanic. After you get the hang of the Bladeburner mechanic, however,
|
||||||
|
it becomes moderately easy.
|
||||||
|
|
||||||
|
BitNode-7: Bladeburners 2079
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Description
|
||||||
|
In the middle of the 21st century, you were doing cutting-edge work at OmniTek Incorporated
|
||||||
|
as part of the AI design team for advanced synthetic androids, or Synthoids for short. You helped
|
||||||
|
achieve a major technological breakthrough in the sixth generation of the company's Synthoid
|
||||||
|
design, called MK-VI, by developing a hyperintelligent AI. Many argue that this was the first
|
||||||
|
sentient AI ever created. This resulted in Synthoid models that were stronger, faster,
|
||||||
|
and more intelligent than the humans that had created them.
|
||||||
|
|
||||||
|
In this BitNode you will be able to access the Bladeburner API, which allows you to access
|
||||||
|
Bladeburner functionality through Netscript. Furthermore:
|
||||||
|
|
||||||
|
* The rank you gain from Bladeburner contracts/operations is reduced by 40%
|
||||||
|
* Bladeburner skills cost twice as many skill points
|
||||||
|
* Augmentations are 3x more expensive
|
||||||
|
* Hacking and Hacknet Nodes will be significantly less profitable
|
||||||
|
* Your hacking level is reduced by 65%
|
||||||
|
* Hacking experience gain from scripts is reduced by 75%
|
||||||
|
* Corporations have 80% lower valuations and are therefore less profitable
|
||||||
|
* Working for companies is 50% less profitable
|
||||||
|
* Crimes and Infiltration are 25% less profitable
|
||||||
|
|
||||||
|
Source-File
|
||||||
|
:Max Level: 3
|
||||||
|
|
||||||
|
This Source-File allows you to access the Bladeburner Netscript API in other
|
||||||
|
BitNodes. In addition, this Source-File will increase all of your Bladeburner multipliers by:
|
||||||
|
|
||||||
|
* Level 1: 8%
|
||||||
|
* Level 2: 12%
|
||||||
|
* Level 3: 14%
|
||||||
|
|
||||||
|
Difficulty
|
||||||
|
Slightly more difficult than BitNode-6. However, you will be able to automate more
|
||||||
|
aspects of the Bladeburner feature, which means it will be more passive.
|
||||||
|
|
||||||
|
BitNode-8: Ghost of Wall Street
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Description
|
||||||
|
You are trying to make a name for yourself as an up-and-coming hedge fund manager on Wall Street.
|
||||||
|
|
||||||
|
In this BitNode:
|
||||||
|
|
||||||
|
* You start with $250 million
|
||||||
|
* The only way to earn money is by trading on the stock market
|
||||||
|
* You start with a WSE membership and access to the TIX API
|
||||||
|
* You are able to short stocks and place different types of orders (limit/stop)
|
||||||
|
* You can immediately donate to factions to gain reputation
|
||||||
|
|
||||||
|
Source-File
|
||||||
|
:Max Level: 3
|
||||||
|
|
||||||
|
This Source-File grants the following benefits:
|
||||||
|
|
||||||
|
* Level 1: Permanent access to WSE and TIX API
|
||||||
|
* Level 2: Ability to short stocks in other BitNodes
|
||||||
|
* Level 3: Ability to use limit/stop orders in other BitNodes
|
||||||
|
|
||||||
|
This Source-File also increases your hacking growth multipliers by:
|
||||||
|
|
||||||
|
* Level 1: 12%
|
||||||
|
* Level 2: 18%
|
||||||
|
* Level 3: 21%
|
||||||
|
|
||||||
|
Difficulty
|
||||||
|
Very difficult until you unlock the Four Sigma (4S) Market Data API. After you
|
||||||
|
unlock the API however, it becomes moderately easy.
|
||||||
|
|
||||||
|
BitNode-9: Hacktocracy
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Description
|
||||||
|
When Fulcrum Technologies released their open-source Linux distro Chapeau, it quickly
|
||||||
|
became the OS of choice for the underground hacking community. Chapeau became especially
|
||||||
|
notorious for powering the Hacknet, a global, decentralized network used for nefarious
|
||||||
|
purposes. Fulcrum quickly abandoned the project and dissociated themselves from it.
|
||||||
|
|
||||||
|
This BitNode unlocks the Hacknet Server, an upgraded version of the Hacknet Node. Hacknet Servers generate
|
||||||
|
hashes, which can be spent on a variety of different upgrades.
|
||||||
|
|
||||||
|
In this BitNode:
|
||||||
|
|
||||||
|
* Your stats are significantly decreased
|
||||||
|
* You cannnot purchase additional servers
|
||||||
|
* Hacking is significantly less profitable
|
||||||
|
|
||||||
|
Source-File
|
||||||
|
:Max Level: 3
|
||||||
|
|
||||||
|
This Source-File grants the following benefits:
|
||||||
|
|
||||||
|
* Level 1: Permanently unlocks the Hacknet Server in other BitNodes
|
||||||
|
* Level 2: You start with 128GB of RAM on your home computer when entering a new BitNode
|
||||||
|
* Level 3: Grants a highly-upgraded Hacknet Server when entering a new BitNode
|
||||||
|
|
||||||
|
(Note that the Level 3 effect of this Source-File only applies when entering a new BitNode, NOT
|
||||||
|
when installing Augmentations.)
|
||||||
|
|
||||||
|
Difficulty
|
||||||
|
Hard
|
||||||
|
|
||||||
|
BitNode-10: Digital Carbon
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Description
|
||||||
|
In 2084, VitaLife unveiled to the world the Persona Core, a technology that allowed people
|
||||||
|
to digitize their consciousness. Their consciousness could then be transferred into Synthoids
|
||||||
|
or other bodies by trasmitting the digitized data. Human bodies became nothing more than 'sleeves'
|
||||||
|
for the human consciousness. Mankind had finally achieved immortality - at least for those
|
||||||
|
that could afford it.
|
||||||
|
|
||||||
|
This BitNode unlocks Sleeve technology. Sleeve technology allows you to:
|
||||||
|
|
||||||
|
1. Re-sleeve: Purchase and transfer your consciousness into a new body
|
||||||
|
2. Duplicate Sleeves: Duplicate your consciousness into Synthoids, allowing you to perform different tasks synchronously
|
||||||
|
|
||||||
|
In this BitNode:
|
||||||
|
|
||||||
|
* Your stats are significantly decreased
|
||||||
|
* All methods of gaining money are half as profitable (except Stock Market)
|
||||||
|
* Purchased servers are more expensive, have less max RAM, and a lower maximum limit
|
||||||
|
* Augmentations are 5x as expensive and require twice as much reputation
|
||||||
|
|
||||||
|
Source-File
|
||||||
|
:Max Level: 3
|
||||||
|
|
||||||
|
This Source-File unlocks Sleeve technology in other BitNodes.
|
||||||
|
Each level of this Source-File also grants you a Duplicate Sleeve.
|
||||||
|
|
||||||
|
Difficulty
|
||||||
|
Hard
|
||||||
|
|
||||||
|
BitNode-11: The Big Crash
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Description
|
||||||
|
The 2050s was defined by the massive amounts of violent civil unrest and anarchic rebellion that rose all around the world. It was this period
|
||||||
|
of disorder that eventually lead to the governmental reformation of many global superpowers, most notably
|
||||||
|
the USA and China. But just as the world was slowly beginning to recover from these dark times, financial catastrophe hit.
|
||||||
|
In many countries, the high cost of trying to deal with the civil disorder bankrupted the governments. In all of this chaos and confusion, hackers
|
||||||
|
were able to steal billions of dollars from the world's largest electronic banks, prompting an international banking crisis as
|
||||||
|
governments were unable to bail out insolvent banks. Now, the world is slowly crumbling in the middle of the biggest economic crisis of all time.
|
||||||
|
|
||||||
|
In this BitNode:
|
||||||
|
|
||||||
|
* Your hacking stat and experience gain are halved
|
||||||
|
* The starting and maximum amount of money available on servers is significantly decreased
|
||||||
|
* The growth rate of servers is significantly reduced
|
||||||
|
* Weakening a server is twice as effective
|
||||||
|
* Company wages are decreased by 50%
|
||||||
|
* Corporation valuations are 99% lower and are therefore significantly less profitable
|
||||||
|
* Hacknet Node production is significantly decreased
|
||||||
|
* Crime and Infiltration are more lucrative
|
||||||
|
* Augmentations are twice as expensive
|
||||||
|
|
||||||
|
Source-File
|
||||||
|
:Max Level: 3
|
||||||
|
|
||||||
|
Destroying this BitNode will give you Source-File 11, or if you already have this Source-File it will
|
||||||
|
upgrade its level up to a maximum of 3. This Source-File makes it so that company favor increases BOTH
|
||||||
|
the player's salary and reputation gain rate at that company by 1% per favor (rather than just the reputation gain).
|
||||||
|
This Source-File also increases the player's company salary and reputation gain multipliers by:
|
||||||
|
|
||||||
|
* Level 1: 32%
|
||||||
|
* Level 2: 48%
|
||||||
|
* Level 3: 56%
|
||||||
|
|
||||||
|
Difficulty
|
||||||
|
Hard
|
||||||
|
|
||||||
|
BitNode-12: The Recursion
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Description
|
||||||
|
Every time this BitNode is destroyed, it becomes slightly harder.
|
||||||
|
|
||||||
|
Source-File
|
||||||
|
:Max Level: Infinity
|
||||||
|
|
||||||
|
Each level of Source-File 12 will let you start with Neuroflux Governor
|
||||||
|
equal to the level of this Source-File.
|
||||||
|
|
||||||
|
This BitNode is meant to be done passively or when waiting for new content.
|
||||||
|
|
||||||
|
Difficulty
|
||||||
|
Initially very easy, but then it (obviously) becomes harder as you continue to do it.
|
||||||
|
|
||||||
|
Recommended BitNodes
|
||||||
|
--------------------
|
||||||
|
As a player, you are not forced to tackle the BitNodes in any particular order. You are
|
||||||
|
free to choose whichever ones you want. The "best" order can vary between players,
|
||||||
|
depending on what you like to do any what kind of player you are. In general, here
|
||||||
|
are the recommended BitNodes for different things:
|
||||||
|
|
||||||
|
For fast progression
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
.. note:: This does not recommend the absolute fastest path, as I don't know what
|
||||||
|
exactly the fastest path is. But it does recommend the BitNodes that are
|
||||||
|
commonly considered to be optimal by players.
|
||||||
|
|
||||||
|
1. Repeat **BitNode-1: Source Genesis** until you max out its Source-File. Its Source-File
|
||||||
|
is extremely powerful, as it raises all multipliers by a significant amount.
|
||||||
|
|
||||||
|
2. Do **BitNode-5: Artificial Intelligence** once or twice. The intelligence stat it unlocks
|
||||||
|
will gradually build up as you continue to play the game, and will be helpful
|
||||||
|
in the future. The Source-File also provides hacking multipliers, which are
|
||||||
|
strong because hacking is typically one of the best ways of earning money.
|
||||||
|
|
||||||
|
3. (Optional) Consider doing **BitNode-4: The Singularity**. Its Source-File does not directly make you
|
||||||
|
more powerful in any way, but it does unlock :ref:`netscript_singularityfunctions` which
|
||||||
|
let you automate significantly more aspects of the game.
|
||||||
|
|
||||||
|
4. Do **BitNode-3: Corporatocracy** once to unlock the Corporation mechanic. This mechanic
|
||||||
|
has high profit potential.
|
||||||
|
|
||||||
|
5. Do **BitNode-6: Bladeburners** once to unlock the Bladeburners mechanic. The Bladeburner
|
||||||
|
mechanic is useful for some of the future BitNodes (such as 9 and 10).
|
||||||
|
|
||||||
|
6. Do **BitNode-9: Hacktocracy** to unlock the Hacknet Server mechanic. You can
|
||||||
|
consider repeating it as well, as its Level 2 and 3 effects are pretty helpful as well.
|
||||||
|
|
||||||
|
.. todo:: To be continued as more BitNodes get added
|
||||||
|
|
||||||
|
For the strongest Source-Files
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Note that the strongest Source-Files are typically rewarded by the hardest BitNodes.
|
||||||
|
|
||||||
|
The strongest Source-File is that from **BitNode-1: Source Genesis**, as it raises
|
||||||
|
all multipliers by a significant amount.
|
||||||
|
|
||||||
|
Similarly, the Source-File from **BitNode-12: The Recursion** is also very strong
|
||||||
|
because it raises all multipliers. Each level of Source-File 12 is fairly weak,
|
||||||
|
but its effectiveness gets better over time since the effects of Source-Files and
|
||||||
|
Augmentations are multiplicative with each other.
|
||||||
|
|
||||||
|
The Source-File from **BitNode-9: Hacktocracy** is good because it unlocks the Hacknet
|
||||||
|
Server mechanic. The Hacknet Server mechanic causes Hacknet Nodes to produce a new
|
||||||
|
currency called *hashes*, rather than money. *Hashes* can be spent on powerful upgrades
|
||||||
|
that benefit your hacking, Corporation, Bladeburner, etc.
|
||||||
|
|
||||||
|
The Duplicate Sleeves granted by the Source-File from **BitNode-10: Digital Carbon**
|
||||||
|
are strong, but only after you have several of them and have spent some time/money upgrading
|
||||||
|
them.
|
||||||
|
|
||||||
|
For more scripting/hacking
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
**BitNode-4: The Singularity** unlocks the :ref:`netscript_singularityfunctions`, which
|
||||||
|
can be used to automate many different aspects of the game, including working for factions/companies,
|
||||||
|
purchasing & installing Augmentations, and creating programs
|
||||||
|
|
||||||
|
**BitNode-6** and **BitNode-7** unlock Bladeburner and its corresponding
|
||||||
|
:ref:`Netscript API <netscript_bladeburnerapi>`. This allows you to automate an entire
|
||||||
|
new mechanic.
|
||||||
|
|
||||||
|
**BitNode-2: Rise of the Underworld** also unlocks a new mechanic and Netscript API for automating
|
||||||
|
it (the Gang mechanic). However, it is not as interesting as Bladeburner (in my opinion)
|
||||||
|
|
||||||
|
**BitNode-9: Hacktocracy** unlocks the Hacknet Server mechanic and several new
|
||||||
|
functions in the :ref:`Hacknet Node API <netscript_hacknetnodeapi>` for using it.
|
||||||
|
|
||||||
|
For new mechanics
|
||||||
|
^^^^^^^^^^^^^^^^^
|
||||||
|
**BitNode-2: Rise of the Underworld** unlocks a new mechanic in which you can
|
||||||
|
manage a gang. Gangs earn you money and can be very profitable once they get large
|
||||||
|
and powerful. The biggest benefit of gangs, however, is that they make all
|
||||||
|
Augmentations available to you through their corresponding faction.
|
||||||
|
|
||||||
|
**BitNode-3: Corporatocracy** unlocks a new mechanic in which you can manage a
|
||||||
|
corporation. You can earn money through Corporations by selling your stocks, or by
|
||||||
|
configuring your corporation to pay dividends to shareholders. If your Corporation
|
||||||
|
gets big enough, it can also bribe factions in exchange for faction reputation.
|
||||||
|
|
||||||
|
**BitNode-6: Bladeburners** unlocks a new mechanic that centers around combat rather
|
||||||
|
than hacking. The main benefit of the Bladeburner mechanic is that it offers a new
|
||||||
|
method of destroying a BitNode.
|
||||||
|
|
||||||
|
**BitNode-9: Hacktocracy** unlocks the Hacknet Server, which is an upgraded version of a
|
||||||
|
Hacknet Node. The Hacknet Server generates a computational unit called a *hash*. *Hashes*
|
||||||
|
can be spent on a variety of different upgrades that can benefit your hacking,
|
||||||
|
Corporation, Bladeburner progress, and more. It transforms the Hacknet Node from a
|
||||||
|
simple money-generator to a more interesting mechanic.
|
||||||
|
|
||||||
|
**BitNode-10: Digital Carbon** unlocks two new mechanics: Re-Sleeving and
|
||||||
|
Duplicate Sleeves.
|
||||||
|
|
||||||
|
For a Challenge
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
In general, the higher BitNodes are more difficult than the lower ones.
|
||||||
|
**BitNode-12: The Recursion** is an obvious exception as it gets progressively harder.
|
||||||
|
|
||||||
|
**BitNode-8: Ghost of Wall Street** provides a unique challenge as the only method
|
||||||
|
of earning money in that BitNode is through trading at the stock market.
|
||||||
@@ -5,8 +5,9 @@
|
|||||||
|
|
||||||
Welcome to Bitburner's documentation!
|
Welcome to Bitburner's documentation!
|
||||||
=====================================
|
=====================================
|
||||||
Bitburner is a cyberpunk-themed `incremental game <https://en.wikipedia.org/wiki/Incremental_game>`_ that is currently in the
|
Bitburner is a programming-based `incremental game <https://en.wikipedia.org/wiki/Incremental_game>`_
|
||||||
early beta stage of development. The game `can be played here <https://danielyxie.github.io/bitburner/>`_.
|
that revolves around hacking and cyberpunk themes. The game is currently in the
|
||||||
|
early beta stage of development. It `can be played here <https://danielyxie.github.io/bitburner/>`_.
|
||||||
|
|
||||||
What is Bitburner?
|
What is Bitburner?
|
||||||
------------------
|
------------------
|
||||||
@@ -26,6 +27,7 @@ secrets that you've been searching for.
|
|||||||
Script Editors <scripteditors>
|
Script Editors <scripteditors>
|
||||||
Game Frozen or Stuck? <gamefrozen>
|
Game Frozen or Stuck? <gamefrozen>
|
||||||
Guides & Tips <guidesandtips>
|
Guides & Tips <guidesandtips>
|
||||||
|
Tools & Resources <toolsandresources>
|
||||||
Changelog <changelog>
|
Changelog <changelog>
|
||||||
Donate <https://paypal.me/danielyxie>
|
Donate <https://paypal.me/danielyxie>
|
||||||
|
|
||||||
|
|||||||
@@ -30,4 +30,5 @@ to reach out to the developer!
|
|||||||
Gang API <netscript/netscriptgangapi>
|
Gang API <netscript/netscriptgangapi>
|
||||||
Coding Contract API <netscript/netscriptcodingcontractapi>
|
Coding Contract API <netscript/netscriptcodingcontractapi>
|
||||||
Sleeve API <netscript/netscriptsleeveapi>
|
Sleeve API <netscript/netscriptsleeveapi>
|
||||||
|
Formulas API <netscript/netscriptformulasapi>
|
||||||
Miscellaneous <netscript/netscriptmisc>
|
Miscellaneous <netscript/netscriptmisc>
|
||||||
|
|||||||
@@ -3,14 +3,22 @@ getBitNodeMultipliers() Netscript Function
|
|||||||
|
|
||||||
.. js:function:: getBitNodeMultipliers()
|
.. js:function:: getBitNodeMultipliers()
|
||||||
|
|
||||||
Returns an object containing the current BitNode multipliers. This function requires Source-File 5 in order
|
:RAM cost: 4 GB
|
||||||
to run. The multipliers are returned in decimal forms (e.g. 1.5 instead of 150%). The multipliers represent
|
|
||||||
the difference between the current BitNode and the 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 multipliers get added to the game.
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
Refer to the `source code here <https://github.com/danielyxie/bitburner/blob/master/src/BitNode/BitNodeMultipliers.ts>`_
|
run this function.
|
||||||
|
|
||||||
|
Returns an object containing the current BitNode multipliers. The
|
||||||
|
multipliers are returned in decimal forms (e.g. 1.5 instead of 150%). The
|
||||||
|
multipliers represent the difference between the current BitNode and the
|
||||||
|
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
|
||||||
|
multipliers get added to the game. Refer to the `source code here
|
||||||
|
<https://github.com/danielyxie/bitburner/blob/master/src/BitNode/BitNodeMultipliers.ts>`_
|
||||||
to see the name of the BitNode multipliers.
|
to see the name of the BitNode multipliers.
|
||||||
|
|
||||||
Example::
|
Example::
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
getHackTime(), getGrowTime(), & getWeakenTime()
|
|
||||||
===============================================
|
|
||||||
|
|
||||||
The :js:func:`getHackTime`, :js:func:`getGrowTime`, and :js:func:`getWeakenTime`
|
|
||||||
all take an additional third optional parameter for specifying a specific intelligence
|
|
||||||
level to see how that would affect the hack/grow/weaken times. This parameter
|
|
||||||
defaults to your current intelligence level.
|
|
||||||
|
|
||||||
(Intelligence is unlocked after obtaining Source-File 5).
|
|
||||||
|
|
||||||
The function signatures are then::
|
|
||||||
|
|
||||||
getHackTime(hostname/ip[, hackLvl=current level, intLvl=current level])
|
|
||||||
getGrowTime(hostname/ip[, hackLvl=current level, intLvl=current level])
|
|
||||||
getWeakenTime(hostname/ip[, hackLvl=current level, intLvl=current level])
|
|
||||||
40
doc/source/netscript/advancedfunctions/getServer.rst
Normal file
40
doc/source/netscript/advancedfunctions/getServer.rst
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
getServer() Netscript Function
|
||||||
|
==========================================
|
||||||
|
|
||||||
|
.. js:function:: getServer([hostname])
|
||||||
|
|
||||||
|
:RAM cost: 2 GB
|
||||||
|
: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.
|
||||||
|
|
||||||
|
This function is meant to be used in conjunction with the :doc:`formulas API<../netscriptformulasapi>`.
|
||||||
|
|
||||||
|
Returns an object with the Server's stats. The object has the following properties::
|
||||||
|
|
||||||
|
{
|
||||||
|
cpuCores
|
||||||
|
ftpPortOpen
|
||||||
|
hasAdminRights
|
||||||
|
hostname
|
||||||
|
httpPortOpen
|
||||||
|
ip
|
||||||
|
isConnectedTo
|
||||||
|
maxRam
|
||||||
|
organizationName
|
||||||
|
ramUsed
|
||||||
|
smtpPortOpen
|
||||||
|
sqlPortOpen
|
||||||
|
sshPortOpen
|
||||||
|
baseDifficulty
|
||||||
|
hackDifficulty
|
||||||
|
backdoorInstalled
|
||||||
|
minDifficulty
|
||||||
|
moneyAvailable
|
||||||
|
moneyMax
|
||||||
|
numOpenPortsRequired
|
||||||
|
openPortCount
|
||||||
|
purchasedByPlayer
|
||||||
|
requiredHackingSkill
|
||||||
|
serverGrowth
|
||||||
|
}
|
||||||
@@ -1,13 +1,17 @@
|
|||||||
brutessh() Netscript Function
|
brutessh() Netscript Function
|
||||||
=============================
|
=============================
|
||||||
|
|
||||||
.. js:function:: brutessh(hostname/ip)
|
.. js:function:: brutessh(hostname)
|
||||||
|
|
||||||
:param string hostname/ip: IP or hostname of the target server
|
:RAM cost: 0.05 GB
|
||||||
:RAM cost: 0 GB
|
|
||||||
|
|
||||||
Runs the BruteSSH.exe program on the target server. BruteSSH.exe must exist on your home computer.
|
:param string hostname: Hostname of the target server.
|
||||||
|
|
||||||
Example::
|
Runs the ``BruteSSH.exe`` program on the target server. ``BruteSSH.exe``
|
||||||
|
must exist on your home computer.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
brutessh("foodnstuff");
|
brutessh("foodnstuff");
|
||||||
|
|||||||
@@ -1,13 +1,16 @@
|
|||||||
clear() Netscript Function
|
clear() Netscript Function
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
.. js:function:: clear(port/fn)
|
.. js:function:: clear(portOrFilename)
|
||||||
|
|
||||||
:param string/number port/fn: Port or text file to clear
|
|
||||||
:RAM cost: 1 GB
|
:RAM cost: 1 GB
|
||||||
|
|
||||||
This function is used to clear data in a `Netscript Ports <http://bitburner.wikia.com/wiki/Netscript_Ports>`_ or a text file.
|
:param string/number portOrFilename: Port or text file to clear.
|
||||||
|
|
||||||
If the *port/fn* argument is a number between 1 and 20, then it specifies a port and will clear it (deleting all data from the underlying queue).
|
This function is used to clear data in a :ref:`Netscript Port <netscript_ports>` or a text file.
|
||||||
|
|
||||||
If the *port/fn* argument is a string, then it specifies the name of a text file (.txt) and will delete all data from that text file.
|
If the ``portOrFilename`` argument is a number between 1 and 20, then it
|
||||||
|
specifies a port and will clear it (deleting all data from the underlying queue).
|
||||||
|
|
||||||
|
If the ``portOrFilename`` argument is a string, then it specifies the name
|
||||||
|
of a text file (.txt) and will delete all data from that text file.
|
||||||
|
|||||||
@@ -5,4 +5,13 @@ clearLog() Netscript Function
|
|||||||
|
|
||||||
:RAM cost: 0 GB
|
:RAM cost: 0 GB
|
||||||
|
|
||||||
Clears the script's logs
|
Clears the script's logs. Useful when making monitoring scripts.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
while(true) {
|
||||||
|
clearLog();
|
||||||
|
print(getServerMoneyAvailable('foodnstuff'));
|
||||||
|
}
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ deleteServer() Netscript Function
|
|||||||
|
|
||||||
.. js:function:: deleteServer(hostname)
|
.. js:function:: deleteServer(hostname)
|
||||||
|
|
||||||
:param string hostname: Hostname of the server to delete
|
|
||||||
:RAM cost: 2.25 GB
|
:RAM cost: 2.25 GB
|
||||||
|
:param string hostname: Hostname of the server to delete.
|
||||||
|
:returns: ``true`` if successful, ``false`` otherwise.
|
||||||
|
|
||||||
Deletes one of your purchased servers, which is specified by its hostname.
|
Deletes the specified purchased server.
|
||||||
|
|
||||||
The *hostname* argument can be any data type, but it will be converted to a string. Whitespace is automatically removed from
|
The ``hostname`` argument can be any data type, but it will be converted to
|
||||||
the string. This function will not delete a server that still has scripts running on it.
|
a string. Whitespace is automatically removed from the string. This function
|
||||||
|
will not delete a server that still has scripts running on it.
|
||||||
Returns true if successful, and false otherwise.
|
|
||||||
|
|||||||
@@ -1,16 +1,11 @@
|
|||||||
disableLog() Netscript Function
|
disableLog() Netscript Function
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
.. js:function:: disableLog(fn)
|
.. js:function:: disableLog(functionName)
|
||||||
|
|
||||||
:param string fn: Name of function for which to disable logging
|
|
||||||
:RAM cost: 0 GB
|
:RAM cost: 0 GB
|
||||||
|
|
||||||
|
:param string functionName: Name of function for which to disable logging.
|
||||||
|
|
||||||
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
|
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
enableLog() Netscript Function
|
enableLog() Netscript Function
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
.. js:function:: enableLog(fn)
|
.. js:function:: enableLog(functionName)
|
||||||
|
|
||||||
:param string fn: Name of function for which to enable logging
|
|
||||||
:RAM cost: 0 GB
|
:RAM cost: 0 GB
|
||||||
|
|
||||||
Re-enables logging for the given function. If 'ALL' is passed into this function
|
:param string functionName: Name of function for which to enable logging.
|
||||||
as an argument, then it will revert the effects of disableLog('ALL')
|
|
||||||
|
Re-enables logging for the given function. If 'ALL' is passed into this
|
||||||
|
function as an argument, then it will revert the effects of
|
||||||
|
``disableLog('ALL')``
|
||||||
|
|||||||
@@ -1,34 +1,40 @@
|
|||||||
exec() Netscript Function
|
exec() Netscript Function
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
.. js:function:: exec(script, hostname/ip, [numThreads=1], [args...])
|
.. js:function:: exec(script, hostname[, numThreads=1[, args...]])
|
||||||
|
|
||||||
:param string script: Filename of script to execute
|
|
||||||
:param string hostname/ip: IP or hostname of the 'target server' on which to execute the script
|
|
||||||
:param number numThreads: Optional thread count for new script. Set to 1 by default. Will be rounded to nearest integer
|
|
||||||
:param args...:
|
|
||||||
Additional arguments to pass into the new script that is being run. Note that if any arguments are being
|
|
||||||
passed into the new script, then the third argument *numThreads* must be filled in with a value.
|
|
||||||
:RAM cost: 1.3 GB
|
:RAM cost: 1.3 GB
|
||||||
|
|
||||||
Run a script as a separate process on a specified server. This is similar to the *run* function except
|
:param string script: Filename of script to execute.
|
||||||
that it can be used to run a script on any server, instead of just the current server.
|
:param string hostname: Hostname of the target server on which to execute the script.
|
||||||
|
:param number numThreads: Optional thread count for new script. Set to 1 by
|
||||||
|
default. Will be rounded to nearest integer
|
||||||
|
:param args...: Additional arguments to pass into the new script that is
|
||||||
|
being run. Note that if any arguments are being
|
||||||
|
passed into the new script, then the third argument ``numThreads`` must
|
||||||
|
be filled in with a value.
|
||||||
|
:returns: Newly created process id on success, 0 on failure.
|
||||||
|
|
||||||
Returns true if the script is successfully started, and false otherwise.
|
Run a script as a separate process on a specified server. This is similar to
|
||||||
|
the :doc:`run<run>` function except that it can be used to run a script on any
|
||||||
|
server, instead of just the current server.
|
||||||
|
|
||||||
Running this function with a *numThreads* argument of 0 will return false without running the script.
|
.. warning:: Running this function with a ``numThreads`` argument of 0 or
|
||||||
However, running this function with a negative *numThreads* argument will cause a runtime error.
|
less will cause a runtime error.
|
||||||
|
|
||||||
The simplest way to use the *exec* command is to call it with just the script name and the target server.
|
The simplest way to use the :doc:`exec<exec>` command is to call it with
|
||||||
The following example will try to run *generic-hack.script* on the *foodnstuff* server::
|
just the script name and the target server. The following example will try
|
||||||
|
to run ``generic-hack.script`` on the ``foodnstuff`` server::
|
||||||
|
|
||||||
exec("generic-hack.script", "foodnstuff");
|
exec("generic-hack.script", "foodnstuff");
|
||||||
|
|
||||||
The following example will try to run the script *generic-hack.script* on the *joesguns* server with 10 threads::
|
The following example will try to run the script ``generic-hack.script`` on
|
||||||
|
the ``joesguns`` server with 10 threads::
|
||||||
|
|
||||||
exec("generic-hack.script", "joesguns", 10);
|
exec("generic-hack.script", "joesguns", 10);
|
||||||
|
|
||||||
This last example will try to run the script *foo.script* on the *foodnstuff* server with 5 threads. It will also pass
|
This last example will try to run the script ``foo.script`` on the
|
||||||
the number 1 and the string "test" in as arguments to the script::
|
``foodnstuff`` server with 5 threads. It will also pass the number 1 and the
|
||||||
|
string "test" in as arguments to the script::
|
||||||
|
|
||||||
exec("foo.script", "foodnstuff", 5, 1, "test");
|
exec("foo.script", "foodnstuff", 5, 1, "test");
|
||||||
|
|||||||
@@ -5,4 +5,13 @@ 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.
|
||||||
|
|||||||
@@ -1,25 +1,29 @@
|
|||||||
fileExists() Netscript Function
|
fileExists() Netscript Function
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
.. js:function:: fileExists(filename, [hostname/ip])
|
.. js:function:: fileExists(filename[, hostname])
|
||||||
|
|
||||||
:param string filename: Filename of file to check
|
|
||||||
:param string hostname/ip:
|
|
||||||
Hostname or IP of target server. This is optional. If it is not specified then the
|
|
||||||
function will use the current server as the target server
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
|
|
||||||
Returns a boolean indicating whether the specified file exists on the target server. The filename
|
:param string filename: Filename of file to check.
|
||||||
for scripts is case-sensitive, but for other types of files it is not. For example, *fileExists("brutessh.exe")*
|
:param string hostname:
|
||||||
will work fine, even though the actual program is named "BruteSSH.exe".
|
Hostname of target server. This is optional. If it is not specified then
|
||||||
|
the function will use the current server as the target server.
|
||||||
|
:returns: ``true`` if the file exists, ``false`` if it doesn't.
|
||||||
|
|
||||||
If the *hostname/ip* argument is omitted, then the function will search through the current server (the server
|
The filename for scripts is case-sensitive, but for other types of files it
|
||||||
running the script that calls this function) for the file.
|
is not. For example, ``fileExists("brutessh.exe")`` will work fine, even
|
||||||
|
though the actual program is named ``BruteSSH.exe``.
|
||||||
|
|
||||||
Examples::
|
If the ``hostname`` argument is omitted, then the function will search
|
||||||
|
through the server running the script that calls this function for the file.
|
||||||
|
|
||||||
fileExists("foo.script", "foodnstuff");
|
Examples:
|
||||||
fileExists("ftpcrack.exe");
|
|
||||||
|
|
||||||
The first example above will return true if the script named *foo.script* exists on the *foodnstuff* server, and false otherwise.
|
.. code-block:: javascript
|
||||||
The second example above will return true if the current server contains the *FTPCrack.exe* program, and false otherwise.
|
|
||||||
|
fileExists("foo.script", "foodnstuff"); // returns: false
|
||||||
|
fileExists("ftpcrack.exe"); // returns: true
|
||||||
|
|
||||||
|
The first example above will return true if the script named ``foo.script`` exists on the ``foodnstuff`` server, and false otherwise.
|
||||||
|
The second example above will return true if the current server contains the ``FTPCrack.exe`` program, and false otherwise.
|
||||||
|
|||||||
46
doc/source/netscript/basicfunctions/flags.rst
Normal file
46
doc/source/netscript/basicfunctions/flags.rst
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
flags() Netscript Function
|
||||||
|
============================
|
||||||
|
|
||||||
|
.. js:function:: flags(data)
|
||||||
|
|
||||||
|
:RAM cost: 0 GB
|
||||||
|
:param data array of pairs of strings: Flags definition.
|
||||||
|
:returns: Object containing all the flags that were parsed or default.
|
||||||
|
|
||||||
|
This function allows for a more flexible way of parsing script arguments
|
||||||
|
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
|
||||||
|
contains the special field '_', which contains all arguments that were not
|
||||||
|
flags.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
// example.script
|
||||||
|
var data = flags([
|
||||||
|
['delay', 0], // a default number means this flag is a number
|
||||||
|
['server', 'foodnstuff'], // a default string means this flag is a string
|
||||||
|
['exclude', []], // a default array means this flag is a default array of string
|
||||||
|
['help', false], // a default boolean means this flag is a boolean
|
||||||
|
]);
|
||||||
|
tprint(data);
|
||||||
|
/*
|
||||||
|
[home ~/]> run example.script
|
||||||
|
{"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":false}
|
||||||
|
[home ~/]> run example.script --delay 3000
|
||||||
|
{"_":[],"server":"foodnstuff","exclude":[],"help":false,"delay":3000}
|
||||||
|
[home ~/]> run example.script --delay 3000 --server harakiri-sushi
|
||||||
|
{"_":[],"exclude":[],"help":false,"delay":3000,"server":"harakiri-sushi"}
|
||||||
|
[home ~/]> run example.script --delay 3000 --server harakiri-sushi hello world
|
||||||
|
{"_":["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
|
||||||
|
{"_":["hello","world"],"help":false,"delay":3000,"server":"harakiri-sushi","exclude":["a","b"]}
|
||||||
|
[home ~/]> run example.script --help
|
||||||
|
{"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":true}
|
||||||
|
*/
|
||||||
@@ -1,13 +1,17 @@
|
|||||||
ftpcrack() Netscript Function
|
ftpcrack() Netscript Function
|
||||||
=============================
|
=============================
|
||||||
|
|
||||||
.. js:function:: ftpcrack(hostname/ip)
|
.. js:function:: ftpcrack(hostname)
|
||||||
|
|
||||||
:param string hostname/ip: IP or hostname of the target server
|
:RAM cost: 0.05 GB
|
||||||
:RAM cost: 0 GB
|
|
||||||
|
|
||||||
Runs the FTPCrack.exe program on the target server. FTPCrack.exe must exist on your home computer.
|
:param string hostname: Hostname of the target server.
|
||||||
|
|
||||||
Example::
|
Runs the ``FTPCrack.exe`` program on the target server. ``FTPCrack.exe``
|
||||||
|
must exist on your home computer.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
ftpcrack("foodnstuff");
|
ftpcrack("foodnstuff");
|
||||||
|
|||||||
@@ -4,5 +4,10 @@ getFavorToDonate() Netscript Function
|
|||||||
.. js:function:: getFavorToDonate()
|
.. js:function:: getFavorToDonate()
|
||||||
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
|
:returns: Amount of faction favor required to unlock donation.
|
||||||
|
|
||||||
Returns the amount of Faction favor required to be able to donate to a faction.
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getFavorToDonate() // returns: 150
|
||||||
|
|||||||
@@ -1,13 +1,23 @@
|
|||||||
getGrowTime() Netscript Function
|
getGrowTime() Netscript Function
|
||||||
================================
|
================================
|
||||||
|
|
||||||
.. js:function:: getGrowTime(hostname/ip[, hackLvl=current level])
|
.. js:function:: getGrowTime(hostname[, hackLvl=current level])
|
||||||
|
|
||||||
:param string hostname/ip: Hostname or IP of target server
|
|
||||||
:param number hackLvl: Optional hacking level for the calculation. Defaults to player's current hacking level
|
|
||||||
:RAM cost: 0.05 GB
|
:RAM cost: 0.05 GB
|
||||||
|
|
||||||
Returns the amount of time in seconds it takes to execute the *grow()* Netscript function on the target server.
|
:param string hostname: Hostname of target server.
|
||||||
|
:param number hackLvl: Optional hacking level for the calculation. Defaults
|
||||||
|
to player's current hacking level.
|
||||||
|
:returns: seconds it takes to execute :doc:`grow<grow>` on that server.
|
||||||
|
|
||||||
The function takes in an optional *hackLvl* parameter that can be specified
|
The function takes in an optional ``hackLvl`` parameter that can be
|
||||||
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:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getGrowTime("foodnstuff"); // returns: 53.4
|
||||||
|
|
||||||
|
.. note:: For Hacknet Servers (the upgraded version of a Hacknet Node), this function will
|
||||||
|
return ``Infinity``.
|
||||||
|
|||||||
@@ -1,13 +1,22 @@
|
|||||||
getHackTime() Netscript Function
|
getHackTime() Netscript Function
|
||||||
================================
|
================================
|
||||||
|
|
||||||
.. js:function:: getHackTime(hostname/ip[, hackLvl=current level])
|
.. js:function:: getHackTime(hostname[, hackLvl=current level])
|
||||||
|
|
||||||
:param string hostname/ip: Hostname or IP of target server
|
|
||||||
:param number hackLvl: Optional hacking level for the calculation. Defaults to player's current hacking level
|
|
||||||
:RAM cost: 0.05 GB
|
:RAM cost: 0.05 GB
|
||||||
|
:param string hostname: Hostname of target server.
|
||||||
|
:param number hackLvl: Optional hacking level for the calculation. Defaults
|
||||||
|
to player's current hacking level.
|
||||||
|
:returns: seconds it takes to execute :doc:`hack<hack>` on that server.
|
||||||
|
|
||||||
Returns the amount of time in seconds it takes to execute the *hack()* Netscript function on the target server.
|
The function takes in an optional ``hackLvl`` parameter that can be
|
||||||
|
specified to see what the hack time would be at different hacking levels.
|
||||||
|
|
||||||
The function takes in an optional *hackLvl* parameter that can be specified
|
Example:
|
||||||
to see what the hack time would be at different hacking levels.
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getHackTime("foodnstuff"); // returns: 53.4
|
||||||
|
|
||||||
|
.. note:: For Hacknet Servers (the upgraded version of a Hacknet Node), this function will
|
||||||
|
return :code:`Infinity`.
|
||||||
|
|||||||
@@ -4,5 +4,10 @@ getHackingLevel() Netscript Function
|
|||||||
.. js:function:: getHackingLevel()
|
.. js:function:: getHackingLevel()
|
||||||
|
|
||||||
:RAM cost: 0.05 GB
|
:RAM cost: 0.05 GB
|
||||||
|
:returns: The player's current hacking level.
|
||||||
|
|
||||||
Returns the player's current hacking level
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getHackingLevel(); // returns: 124
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ getHackingMultipliers() Netscript Function
|
|||||||
.. js:function:: getHackingMultipliers()
|
.. js:function:: getHackingMultipliers()
|
||||||
|
|
||||||
:RAM cost: 4 GB
|
:RAM cost: 4 GB
|
||||||
|
:returns: object containing the player's hacking multipliers. These
|
||||||
|
multipliers are returned in decimal forms, not percentages (e.g. 1.5
|
||||||
|
instead of 150%).
|
||||||
|
|
||||||
Returns an object containing the Player's hacking related multipliers. These multipliers are
|
Structure::
|
||||||
returned in decimal forms, not percentages (e.g. 1.5 instead of 150%). The object has the following structure::
|
|
||||||
|
|
||||||
{
|
{
|
||||||
chance: Player's hacking chance multiplier,
|
chance: Player's hacking chance multiplier,
|
||||||
@@ -15,7 +17,9 @@ getHackingMultipliers() Netscript Function
|
|||||||
growth: Player's hacking growth multiplier
|
growth: Player's hacking growth multiplier
|
||||||
}
|
}
|
||||||
|
|
||||||
Example of how this can be used::
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
mults = getHackingMultipliers();
|
mults = getHackingMultipliers();
|
||||||
print(mults.chance);
|
print(mults.chance);
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ getHacknetMultipliers() Netscript Function
|
|||||||
.. js:function:: getHacknetMultipliers()
|
.. js:function:: getHacknetMultipliers()
|
||||||
|
|
||||||
:RAM cost: 4 GB
|
:RAM cost: 4 GB
|
||||||
|
:returns: object containing the player's hacknet multipliers. These
|
||||||
|
multipliers are returned in decimal forms, not percentages (e.g. 1.5
|
||||||
|
instead of 150%).
|
||||||
|
|
||||||
Returns an object containing the Player's hacknet related multipliers. These multipliers are
|
Structure::
|
||||||
returned in decimal forms, not percentages (e.g. 1.5 instead of 150%). The object has the following structure::
|
|
||||||
|
|
||||||
{
|
{
|
||||||
production: Player's hacknet production multiplier,
|
production: Player's hacknet production multiplier,
|
||||||
@@ -16,7 +18,9 @@ getHacknetMultipliers() Netscript Function
|
|||||||
levelCost: Player's hacknet level cost multiplier
|
levelCost: Player's hacknet level cost multiplier
|
||||||
}
|
}
|
||||||
|
|
||||||
Example of how this can be used::
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
mults = getHacknetMultipliers();
|
mults = getHacknetMultipliers();
|
||||||
print(mults.production);
|
print(mults.production);
|
||||||
|
|||||||
@@ -4,5 +4,10 @@ getHostname() Netscript Function
|
|||||||
.. js:function:: getHostname()
|
.. js:function:: getHostname()
|
||||||
|
|
||||||
:RAM cost: 0.05 GB
|
:RAM cost: 0.05 GB
|
||||||
|
:returns: Hostname of the server this script is running on.
|
||||||
|
|
||||||
Returns a string with the hostname of the server that the script is running on
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getHostname(); // returns: "foodnstuff"
|
||||||
|
|||||||
101
doc/source/netscript/basicfunctions/getPlayer.rst
Normal file
101
doc/source/netscript/basicfunctions/getPlayer.rst
Normal file
@@ -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);
|
||||||
@@ -3,9 +3,9 @@ getPortHandle() Netscript Function
|
|||||||
|
|
||||||
.. js:function:: getPortHandle(port)
|
.. js:function:: getPortHandle(port)
|
||||||
|
|
||||||
:param number port: Port number
|
|
||||||
:RAM cost: 10 GB
|
:RAM cost: 10 GB
|
||||||
|
|
||||||
Get a handle to a Netscript Port. See more details here: :ref:`netscript_ports`
|
:param number port: Port number
|
||||||
|
:returns: portHandle object. See :ref:`netscript_ports`
|
||||||
|
|
||||||
**WARNING:** Port Handles only work in :ref:`netscriptjs`. They will not work in :ref:`netscript1`.
|
**WARNING:** Port Handles only work in :ref:`netscriptjs`. They will not work in :ref:`netscript1`.
|
||||||
|
|||||||
@@ -6,11 +6,10 @@ getPurchasedServerCost() Netscript Function
|
|||||||
:RAM cost: 0.25 GB
|
:RAM cost: 0.25 GB
|
||||||
|
|
||||||
:param number ram: Amount of RAM of a potential purchased server. Must be a power of 2 (2, 4, 8, 16, etc.). Maximum value of 1048576 (2^20)
|
:param number ram: Amount of RAM of a potential purchased server. Must be a power of 2 (2, 4, 8, 16, etc.). Maximum value of 1048576 (2^20)
|
||||||
|
:returns: Cost to purchase a server with the specified amount of ``ram``.
|
||||||
|
|
||||||
Returns the cost to purchase a server with the specified amount of *ram*.
|
Example:
|
||||||
|
|
||||||
Examples::
|
.. code-block:: javascript
|
||||||
|
|
||||||
for (i = 1; i <= 20; i++) {
|
getPurchasedServerCost(8192); // returns: 450560000
|
||||||
tprint(i + " -- " + getPurchasedServerCost(Math.pow(2, i)));
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -4,5 +4,10 @@ getPurchasedServerLimit() Netscript Function
|
|||||||
.. js:function:: getPurchasedServerLimit()
|
.. js:function:: getPurchasedServerLimit()
|
||||||
|
|
||||||
:RAM cost: 0.05 GB
|
:RAM cost: 0.05 GB
|
||||||
|
:returns: The maximum number of servers you can purchase.
|
||||||
|
|
||||||
Returns the maximum number of servers you can purchase
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getPurchasedServerLimit() // returns: 25
|
||||||
|
|||||||
@@ -4,5 +4,10 @@ getPurchasedServerMaxRam() Netscript Function
|
|||||||
.. js:function:: getPurchasedServerMaxRam()
|
.. js:function:: getPurchasedServerMaxRam()
|
||||||
|
|
||||||
:RAM cost: 0.05 GB
|
:RAM cost: 0.05 GB
|
||||||
|
:returns: The maximum RAM that a purchased server can have.
|
||||||
|
|
||||||
Returns the maximum RAM that a purchased server can have
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getPurchasedServerMaxRam(); // returns: 1048576
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
getPurchasedServers() Netscript Function
|
getPurchasedServers() Netscript Function
|
||||||
========================================
|
========================================
|
||||||
|
|
||||||
.. js:function:: getPurchasedServers([hostname=true])
|
.. js:function:: getPurchasedServers()
|
||||||
|
|
||||||
:param boolean hostname:
|
|
||||||
Specifies whether hostnames or IP addresses should be returned. If it's true then hostnames will be returned, and if false
|
|
||||||
then IPs will be returned. If this argument is omitted then it is true by default
|
|
||||||
:RAM cost: 2.25 GB
|
:RAM cost: 2.25 GB
|
||||||
|
:returns: String array of hostnames of all of the servers you have purchased.
|
||||||
|
|
||||||
Returns an array with either the hostnames or IPs of all of the servers you have purchased.
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getPurchasedServers(); // returns: ['grow-server-0', 'grow-server-1', 'weaken-server-0']
|
||||||
|
|||||||
88
doc/source/netscript/basicfunctions/getRunningScript.rst
Normal file
88
doc/source/netscript/basicfunctions/getRunningScript.rst
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
getRunningScript() Netscript Function
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
.. js:function:: getRunningScript()
|
||||||
|
|
||||||
|
:RAM cost: 0.3 GB
|
||||||
|
:returns: Script object or null if not found.
|
||||||
|
|
||||||
|
The object has the following properties:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
{
|
||||||
|
// Script arguments
|
||||||
|
args
|
||||||
|
|
||||||
|
// Script filename
|
||||||
|
filename
|
||||||
|
|
||||||
|
// This script's logs. An array of log entries
|
||||||
|
logs
|
||||||
|
|
||||||
|
// Flag indicating whether the logs have been updated since
|
||||||
|
// the last time the UI was updated
|
||||||
|
logUpd
|
||||||
|
|
||||||
|
// Total amount of hacking experience earned from this script when offline
|
||||||
|
offlineExpGained
|
||||||
|
|
||||||
|
// Total amount of money made by this script when offline
|
||||||
|
offlineMoneyMade
|
||||||
|
|
||||||
|
// Number of seconds that the script has been running offline
|
||||||
|
offlineRunningTime
|
||||||
|
|
||||||
|
// Total amount of hacking experience earned from this script when online
|
||||||
|
onlineExpGained
|
||||||
|
|
||||||
|
// Total amount of money made by this script when online
|
||||||
|
onlineMoneyMade
|
||||||
|
|
||||||
|
// Number of seconds that this script has been running online
|
||||||
|
onlineRunningTime
|
||||||
|
|
||||||
|
// Process ID.
|
||||||
|
pid
|
||||||
|
|
||||||
|
// How much RAM this script uses for ONE thread
|
||||||
|
ramUsage
|
||||||
|
|
||||||
|
// IP of the server on which this script is running
|
||||||
|
server
|
||||||
|
|
||||||
|
// Number of threads that this script is running with
|
||||||
|
threads
|
||||||
|
}
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getRunningScript(); // get the current script.
|
||||||
|
|
||||||
|
.. js:function:: getRunningScript(pid)
|
||||||
|
|
||||||
|
:RAM cost: 0.3 GB
|
||||||
|
:param number pid: PID of the script.
|
||||||
|
:returns: Script object or null if not found.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getRunningScript(42); // get the script with pid 42.
|
||||||
|
|
||||||
|
.. js:function:: getRunningScript(fn, hostname[, args...])
|
||||||
|
|
||||||
|
:RAM cost: 0.3 GB
|
||||||
|
:param number fn: Filename of the target script.
|
||||||
|
:param number hostname: Hostname of the server running the script.
|
||||||
|
:param number args...: Arguments that the script is running with.
|
||||||
|
:returns: Script object or null if not found.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getRunningScript("example.script", "home", "foodnstuff"); // get the script called "example.script" on "home" with argument "foodnstuff"
|
||||||
@@ -1,14 +1,17 @@
|
|||||||
getScriptExpGain() Netscript Function
|
getScriptExpGain() Netscript Function
|
||||||
=====================================
|
=====================================
|
||||||
|
|
||||||
.. js:function:: getScriptExpGain([scriptname], [hostname/ip], [args...])
|
.. js:function:: getScriptExpGain([scriptname[, hostname[, args...]]])
|
||||||
|
|
||||||
:param string scriptname: Filename of script
|
|
||||||
:param string hostname/ip: Server on which script is running
|
|
||||||
:param args...: Arguments that the script is running with
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
|
:param string scriptname: Filename of script.
|
||||||
|
:param string hostname: Server on which script is running.
|
||||||
|
:param args...: Arguments that the script is running with.
|
||||||
|
:returns: The amount of hacking experience the specified script generates
|
||||||
|
while online.
|
||||||
|
|
||||||
Returns the amount of hacking experience the specified script generates while online (when the game is open, does not apply for offline experience gains).
|
This function can also return the total experience gain rate of all of your
|
||||||
Remember that a script is uniquely identified by both its name and its arguments.
|
active scripts by running the function with no arguments.
|
||||||
|
|
||||||
This function can also return the total experience gain rate of all of your active scripts by running the function with no arguments.
|
.. note:: A script is uniquely identified by both its name and its
|
||||||
|
arguments.
|
||||||
|
|||||||
@@ -1,18 +1,19 @@
|
|||||||
getScriptIncome() Netscript Function
|
getScriptIncome() Netscript Function
|
||||||
====================================
|
====================================
|
||||||
|
|
||||||
.. js:function:: getScriptIncome([scriptname], [hostname/ip], [args...])
|
.. js:function:: getScriptIncome([scriptname[, hostname/ip[, [args...]]])
|
||||||
|
|
||||||
|
:RAM cost: 0.1 GB
|
||||||
:param string scriptname: Filename of script
|
:param string scriptname: Filename of script
|
||||||
:param string hostname/ip: Server on which script is running
|
:param string hostname/ip: Server on which script is running
|
||||||
:param args...: Arguments that the script is running with
|
:param args...: Arguments that the script is running with
|
||||||
:RAM cost: 0.1 GB
|
:returns: Amount of income the specified script generates while online.
|
||||||
|
|
||||||
Returns the amount of income the specified script generates while online (when the game is open, does not apply for offline income).
|
If called with no arguments this function will return an array of two
|
||||||
Remember that a script is uniquely identified by both its name and its arguments. So for example if you ran a script with the arguments
|
values. The first value is the total income ($ / second) of all of your
|
||||||
"foodnstuff" and "5" then in order to use this function to get that script's income you must specify those same arguments in the same order
|
active scripts (scripts that are currently running on any server). The
|
||||||
in this function call.
|
second value is the total income ($ / second) that you've earned from
|
||||||
|
scripts since you last installed Augmentations.
|
||||||
|
|
||||||
This function can also be called with no arguments. If called with no arguments, then this function will return an array of two values. The
|
.. note:: A script is uniquely identified by both its name and its
|
||||||
first value is the total income ($ / second) of all of your active scripts (scripts that are currently running on any server). The second value
|
arguments.
|
||||||
is the total income ($ / second) that you've earned from scripts since you last installed Augmentations.
|
|
||||||
|
|||||||
@@ -1,27 +1,27 @@
|
|||||||
getScriptLogs() Netscript Function
|
getScriptLogs() Netscript Function
|
||||||
==================================
|
==================================
|
||||||
|
|
||||||
.. js:function:: getScriptLogs([fn], [hostname/ip=current ip], [args...])
|
.. js:function:: getScriptLogs([filename[, hostname=current hostname[, args...]]])
|
||||||
|
|
||||||
:param string fn: Optional. Filename of script to get logs from.
|
|
||||||
:param string ip: Optional. IP or hostname of the server that the script is on
|
|
||||||
:param args...: Arguments to identify which scripts to get logs for
|
|
||||||
:RAM cost: 0 GB
|
:RAM cost: 0 GB
|
||||||
|
:param string filename: Optional. Filename of script to get logs from.
|
||||||
|
:param string hostname: Optional. Hostname of the server running the script.
|
||||||
|
:param args...: Arguments to identify which scripts to get logs for
|
||||||
|
:returns: Array of string, each line being a logged line. Chronological.
|
||||||
|
|
||||||
Returns a script's logs. The logs are returned as an array, where each
|
.. note:: There is a maximum number of lines that a script stores in its logs.
|
||||||
line is an element in the array. The most recently logged line is at the
|
This is configurable in the game's options.
|
||||||
end of the array.
|
|
||||||
|
|
||||||
Note that there is a maximum number of lines that a script stores in its logs.
|
If the function is called with no arguments, it will return the current
|
||||||
This is configurable in the game's options.
|
script's logs.
|
||||||
|
|
||||||
If the function is called with no arguments, it will return the current script's logs.
|
Otherwise, the ``filename``, ``hostname``, and ``args...`` arguments can be
|
||||||
|
used to get the logs from another script. Remember that scripts are uniquely
|
||||||
|
identified by both their names and arguments.
|
||||||
|
|
||||||
Otherwise, the `fn`, `hostname/ip,` and `args...` arguments can be used to get the logs
|
Example:
|
||||||
from another script. Remember that scripts are uniquely identified by both
|
|
||||||
their names and arguments.
|
|
||||||
|
|
||||||
Examples::
|
.. code-block:: javascript
|
||||||
|
|
||||||
// Get logs from foo.script on the current server that was run with no args
|
// Get logs from foo.script on the current server that was run with no args
|
||||||
getScriptLogs("foo.script");
|
getScriptLogs("foo.script");
|
||||||
|
|||||||
@@ -4,5 +4,10 @@ getScriptName() Netscript Function
|
|||||||
.. js:function:: getScriptName()
|
.. js:function:: getScriptName()
|
||||||
|
|
||||||
:RAM cost: 0 GB
|
:RAM cost: 0 GB
|
||||||
|
:returns: Current script name.
|
||||||
|
|
||||||
Returns the current script name
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getScriptName(); // returns: "example.script"
|
||||||
|
|||||||
@@ -1,11 +1,16 @@
|
|||||||
getScriptRam() Netscript Function
|
getScriptRam() Netscript Function
|
||||||
=================================
|
=================================
|
||||||
|
|
||||||
.. js:function:: getScriptRam(scriptname[, hostname/ip])
|
.. js:function:: getScriptRam(filename[, hostname])
|
||||||
|
|
||||||
:param string scriptname: Filename of script. This is case-sensitive.
|
|
||||||
:param string hostname/ip: Hostname or IP of target server the script is located on. This is optional, If it is not specified then the function will set the current server as the target server.
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
|
:param string filename: Filename of script.
|
||||||
|
:param string hostname: Hostname of target server the script is located on.
|
||||||
|
Default to the server this script is running on.
|
||||||
|
:returns: Amount of RAM required to run the script, 0 if it does not exist.
|
||||||
|
|
||||||
Returns the amount of RAM required to run the specified script on the target server. Returns
|
Example:
|
||||||
0 if the script does not exist.
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getScriptRam("grow.script"); // returns: 1.75
|
||||||
|
|||||||
@@ -1,12 +1,28 @@
|
|||||||
getServerBaseSecurityLevel() Netscript Function
|
getServerBaseSecurityLevel() Netscript Function
|
||||||
===============================================
|
===============================================
|
||||||
|
|
||||||
.. js:function:: getServerBaseSecurityLevel(hostname/ip)
|
.. js:function:: getServerBaseSecurityLevel(hostname)
|
||||||
|
|
||||||
:param string hostname/ip: Hostname or IP of target server
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
|
:param string hostname: Hostname of target server.
|
||||||
|
:returns: Base security level of target server.
|
||||||
|
|
||||||
Returns the base security level of the target server. This is the security level that the server starts out with.
|
The base security level is the security level that the server starts out with.
|
||||||
This is different than *getServerSecurityLevel()* because *getServerSecurityLevel()* returns the current
|
|
||||||
security level of a server, which can constantly change due to *hack()*, *grow()*, and *weaken()*, calls on that
|
This function isn't particularly useful.
|
||||||
server. The base security level will stay the same until you reset by installing an Augmentation(s).
|
:doc:`getServerSecurityLevel<getServerSecurityLevel>` and
|
||||||
|
:doc:`getServerMinSecurityLevel<getServerMinSecurityLevel>` are more often
|
||||||
|
used.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getServerBaseSecurityLevel('foodnstuff'); // returns: 9
|
||||||
|
|
||||||
|
.. note:: This is different than :doc:`getServerSecurityLevel<getServerSecurityLevel>`
|
||||||
|
because :doc:`getServerSecurityLevel<getServerSecurityLevel>` returns the current
|
||||||
|
security level of a server, which can constantly change due to
|
||||||
|
:doc:`hack<hack>`, :doc:`grow<grow>`, and :doc:`weaken<weaken>` calls on
|
||||||
|
that server. The base security level will stay the same until you reset
|
||||||
|
by installing augmentation(s).
|
||||||
|
|||||||
@@ -1,12 +1,19 @@
|
|||||||
getServerGrowth() Netscript Function
|
getServerGrowth() Netscript Function
|
||||||
====================================
|
====================================
|
||||||
|
|
||||||
.. js:function:: getServerGrowth(hostname/ip)
|
.. js:function:: getServerGrowth(hostname)
|
||||||
|
|
||||||
:param string hostname/ip: Hostname or IP of target server
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
|
:param string hostname: Hostname of target server.
|
||||||
|
:returns: Server growth parameter.
|
||||||
|
|
||||||
Returns the server's instrinsic "growth parameter". This growth parameter is a number
|
The growth parameter is a number, typically between 1 and 100, that affects
|
||||||
between 1 and 100 that represents how quickly the server's money grows. This parameter affects the
|
the percentage by which the server's money is increased when using the
|
||||||
percentage by which the server's money is increased when using the *grow()* function. A higher
|
:doc:`grow<grow>` function. A higher growth parameter will result in a
|
||||||
growth parameter will result in a higher percentage increase from *grow()*.
|
higher percentage increase.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getServerGrowth('foodnstuff'); // returns: 5
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
getServerMaxMoney() Netscript Function
|
getServerMaxMoney() Netscript Function
|
||||||
======================================
|
======================================
|
||||||
|
|
||||||
.. js:function:: getServerMaxMoney(hostname/ip)
|
.. js:function:: getServerMaxMoney(hostname)
|
||||||
|
|
||||||
:param string hostname/ip: Hostname or IP of target server
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
|
:param string hostname: Hostname of target server.
|
||||||
|
:returns: Maximum amount of money that can be available on a server.
|
||||||
|
|
||||||
Returns the maximum amount of money that can be available on a server
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getServerMaxMoney('foodnstuff'); // returns: 50000000
|
||||||
|
|||||||
15
doc/source/netscript/basicfunctions/getServerMaxRam.rst
Normal file
15
doc/source/netscript/basicfunctions/getServerMaxRam.rst
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
getServerMaxRam() Netscript Function
|
||||||
|
====================================
|
||||||
|
|
||||||
|
.. js:function:: getServerMaxRam(hostname)
|
||||||
|
|
||||||
|
:RAM cost: 0.05 GB
|
||||||
|
:param string hostname: Hostname of target server.
|
||||||
|
:returns: Total ram available on that server. In GB.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
maxRam = getServerMaxRam("helios"); // returns: 16
|
||||||
|
print("helios has "+maxRam + "GB");
|
||||||
@@ -1,9 +1,14 @@
|
|||||||
getServerMinSecurityLevel() Netscript Function
|
getServerMinSecurityLevel() Netscript Function
|
||||||
==============================================
|
==============================================
|
||||||
|
|
||||||
.. js:function:: getServerMinSecurityLevel(hostname/ip)
|
.. js:function:: getServerMinSecurityLevel(hostname)
|
||||||
|
|
||||||
:param string hostname/ip: Hostname or IP of target server
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
|
:param string hostname: Hostname of target server.
|
||||||
|
:returns: The minimum security level of the target server.
|
||||||
|
|
||||||
Returns the minimum security level of the target server
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getServerMinSecurityLevel('foodnstuff'); // returns: 3
|
||||||
|
|||||||
@@ -1,15 +1,19 @@
|
|||||||
getServerMoneyAvailable() Netscript Function
|
getServerMoneyAvailable() Netscript Function
|
||||||
============================================
|
============================================
|
||||||
|
|
||||||
.. js:function:: getServerMoneyAvailable(hostname/ip)
|
.. js:function:: getServerMoneyAvailable(hostname)
|
||||||
|
|
||||||
:param string hostname/ip: Hostname or IP of target server
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
|
:param string hostname: Hostname of target server.
|
||||||
|
:returns: Money available on that server.
|
||||||
|
|
||||||
Returns the amount of money available on a server. **Running this function on the home computer will return
|
.. note::
|
||||||
the player's money.**
|
|
||||||
|
|
||||||
Example::
|
Running this function on the home computer will return the player's money.
|
||||||
|
|
||||||
getServerMoneyAvailable("foodnstuff");
|
Example:
|
||||||
getServerMoneyAvailable("home"); //Returns player's money
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getServerMoneyAvailable("foodnstuff"); // returns: 120000
|
||||||
|
getServerMoneyAvailable("home"); // returns: 1000
|
||||||
|
|||||||
@@ -1,9 +1,15 @@
|
|||||||
getServerNumPortsRequired() Netscript Function
|
getServerNumPortsRequired() Netscript Function
|
||||||
==============================================
|
==============================================
|
||||||
|
|
||||||
.. js:function:: getServerNumPortsRequired(hostname/ip)
|
.. js:function:: getServerNumPortsRequired(hostname)
|
||||||
|
|
||||||
:param string hostname/ip: Hostname or IP of target server
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
|
:param string hostname: Hostname of target server.
|
||||||
|
:returns: The number of open ports required to successfully run NUKE.exe on
|
||||||
|
the specified server.
|
||||||
|
|
||||||
Returns the number of open ports required to successfully run NUKE.exe on the specified server.
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getServerNumPortsRequired("unitalife"); // returns: 4
|
||||||
|
|||||||
@@ -1,17 +1,25 @@
|
|||||||
getServerRam() Netscript Function
|
getServerRam() Netscript Function
|
||||||
=================================
|
=================================
|
||||||
|
|
||||||
.. js:function:: getServerRam(hostname/ip)
|
.. js:function:: getServerRam(hostname)
|
||||||
|
|
||||||
|
.. warning:: This function is deprecated. It still functions, but new
|
||||||
|
scripts should prefer :doc:`getServerMaxRam<getServerMaxRam>`
|
||||||
|
and :doc:`getServerUsedRam<getServerUsedRam>` instead.
|
||||||
|
|
||||||
:param string hostname/ip: Hostname or IP of target server
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
|
:param string hostname: Hostname of target server.
|
||||||
|
:returns: An array of 2 numbers; the first number is the total RAM, and the
|
||||||
|
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
|
||||||
the array is the amount of RAM that is currently being used on the server (in GB).
|
the array is the amount of RAM that is currently being used on the server (in GB).
|
||||||
|
|
||||||
Example::
|
Example:
|
||||||
|
|
||||||
res = getServerRam("helios");
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
res = getServerRam("helios"); // returns: [5, 10]
|
||||||
totalRam = res[0];
|
totalRam = res[0];
|
||||||
ramUsed = res[1];
|
ramUsed = res[1];
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
getServerRequiredHackingLevel() Netscript Function
|
getServerRequiredHackingLevel() Netscript Function
|
||||||
==================================================
|
==================================================
|
||||||
|
|
||||||
.. js:function:: getServerRequiredHackingLevel(hostname/ip)
|
.. js:function:: getServerRequiredHackingLevel(hostname)
|
||||||
|
|
||||||
:param string hostname/ip: Hostname or IP of target server
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
|
:param string hostname: Hostname of target server.
|
||||||
|
:returns: The required hacking level of target server.
|
||||||
|
|
||||||
Returns the required hacking level of the target server
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getServerRequiredHackingLevel("foodnstuff"); // returns: 5
|
||||||
|
|||||||
@@ -1,10 +1,14 @@
|
|||||||
getServerSecurityLevel() Netscript Function
|
getServerSecurityLevel() Netscript Function
|
||||||
===========================================
|
===========================================
|
||||||
|
|
||||||
.. js:function:: getServerSecurityLevel(hostname/ip)
|
.. js:function:: getServerSecurityLevel(hostname)
|
||||||
|
|
||||||
:param string hostname/ip: Hostname or IP of target server
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
|
:param string hostname: Hostname of target server.
|
||||||
|
:returns: The security level of the target server.
|
||||||
|
|
||||||
Returns the security level of the target server. A server's security level is denoted by a number, typically
|
Example:
|
||||||
between 1 and 100 (but it can go above 100).
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getServerSecurityLevel("foodnstuff"); // returns: 3.45
|
||||||
|
|||||||
15
doc/source/netscript/basicfunctions/getServerUsedRam.rst
Normal file
15
doc/source/netscript/basicfunctions/getServerUsedRam.rst
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
getServerUsedRam() Netscript Function
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
.. js:function:: getServerUsedRam(hostname)
|
||||||
|
|
||||||
|
:RAM cost: 0.05 GB
|
||||||
|
:param string hostname: Hostname of target server.
|
||||||
|
:returns: Used ram on that server. In GB.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
usedRam = getServerUsedRam("harakiri-sushi"); // returns: 5.6
|
||||||
|
print("harakiri-sushi uses "+usedRam + "GB");
|
||||||
@@ -4,5 +4,10 @@ getTimeSinceLastAug() Netscript Function
|
|||||||
.. js:function:: getTimeSinceLastAug()
|
.. js:function:: getTimeSinceLastAug()
|
||||||
|
|
||||||
:RAM cost: 0.05 GB
|
:RAM cost: 0.05 GB
|
||||||
|
:returns: Milliseconds since you last installed augmentations.
|
||||||
|
|
||||||
Returns the amount of time in milliseconds that have passed since you last installed Augmentations
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getTimeSinceLastAug(); // returns: 13912400
|
||||||
|
|||||||
@@ -1,13 +1,23 @@
|
|||||||
getWeakenTime() Netscript Function
|
getWeakenTime() Netscript Function
|
||||||
==================================
|
==================================
|
||||||
|
|
||||||
.. js:function:: getWeakenTime(hostname/ip[, hackLvl=current level])
|
.. js:function:: getWeakenTime(hostname[, hackLvl=current level])
|
||||||
|
|
||||||
:param string hostname/ip: Hostname or IP of target server
|
|
||||||
:param number hackLvl: Optional hacking level for the calculation. Defaults to player's current hacking level
|
|
||||||
:RAM cost: 0.05 GB
|
:RAM cost: 0.05 GB
|
||||||
|
:param string hostname: Hostname of target server.
|
||||||
Returns the amount of time in seconds it takes to execute the *weaken()* Netscript function on the target server.
|
:param number hackLvl: Optional hacking level for the calculation. Defaults
|
||||||
|
to player's current hacking level.
|
||||||
|
:returns: seconds it takes to execute the :doc:`weaken<weaken>` Netscript
|
||||||
|
function on the target server.
|
||||||
|
|
||||||
The function takes in an optional *hackLvl* parameter that can be specified
|
The function takes in an optional *hackLvl* parameter that can be specified
|
||||||
to see what the weaken time would be at different hacking levels.
|
to see what the weaken time would be at different hacking levels.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getWeakenTime("foodnstuff"); // returns: 34.5
|
||||||
|
|
||||||
|
.. note:: For Hacknet Servers (the upgraded version of a Hacknet Node), this function will
|
||||||
|
return :code:`Infinity`.
|
||||||
|
|||||||
@@ -1,21 +1,37 @@
|
|||||||
grow() Netscript Function
|
grow() Netscript Function
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
.. js:function:: grow(hostname/ip)
|
.. js:function:: grow(hostname[, opts={}])
|
||||||
|
|
||||||
:param string hostname/ip: IP or hostname of the target server to grow
|
|
||||||
:returns: The number by which the money on the server was multiplied for the growth
|
|
||||||
:RAM cost: 0.15 GB
|
:RAM cost: 0.15 GB
|
||||||
|
:param string hostname: Hostname of the target server.
|
||||||
|
:param object opts: Optional parameters for configuring function behavior. Properties:
|
||||||
|
|
||||||
Use your hacking skills to increase the amount of money available on a server. The runtime for this command depends on your hacking
|
* threads (*number*) - Number of threads to use for this function.
|
||||||
level and the target server's security level. When grow() completes, the money available on a target server will be increased by a
|
Must be less than or equal to the number of threads the script is running with.
|
||||||
certain, fixed percentage. This percentage is determined by the target server's growth rate (which varies between servers) and security level.
|
* stock (*boolean*) - If true, the function can affect the stock market. See
|
||||||
Generally, higher-level servers have higher growth rates. The getServerGrowth() function can be used to obtain a server's growth rate.
|
:ref:`gameplay_stock_market_player_actions_influencing_stock`
|
||||||
|
|
||||||
Like hack(), grow() can be called on any server, regardless of where the script is running. The grow() command requires
|
:returns: The number by which the money on the server was multiplied for the growth
|
||||||
root access to the target server, but there is no required hacking level to run the command. It also raises the security level
|
|
||||||
of the target server by 0.004.
|
|
||||||
|
|
||||||
Example::
|
Increase the amount of money available on a server. The time it takes to
|
||||||
|
execute depends on your hacking level and the target server's security
|
||||||
|
level. When :doc:`grow<grow>` completes, the money available on a target
|
||||||
|
server will be increased by a certain, fixed percentage. This percentage is
|
||||||
|
determined by the target server's growth rate (which varies between servers)
|
||||||
|
and security level. Generally, higher-level servers have higher growth
|
||||||
|
rates. The :doc:`getServerGrowth<getServerGrowth>` function can be used to
|
||||||
|
obtain a server's growth rate.
|
||||||
|
|
||||||
grow("foodnstuff");
|
Like :doc:`hack<hack>`, :doc:`grow<grow>` can be called on any server, from
|
||||||
|
any server. The :doc:`grow<grow>` command requires root access to the target
|
||||||
|
server, but there is no required hacking level to run the command. It also
|
||||||
|
raises the security level of the target server by 0.004 per thread.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
while(true) {
|
||||||
|
grow("foodnstuff");
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,24 +1,23 @@
|
|||||||
growthAnalyze() Netscript Function
|
growthAnalyze() Netscript Function
|
||||||
==================================
|
==================================
|
||||||
|
|
||||||
.. js:function:: growthAnalyze(hostname/ip, growthAmount)
|
.. js:function:: growthAnalyze(hostname, growthAmount)
|
||||||
|
|
||||||
:param string hostname/ip: IP or hostname of server to analyze
|
|
||||||
:param number growthAmount: Multiplicative factor by which the server is grown. Decimal form.
|
|
||||||
:returns: The amount of grow() calls needed to grow the specified server by the specified amount
|
|
||||||
:RAM cost: 1 GB
|
:RAM cost: 1 GB
|
||||||
|
:param string hostname: Hostname of server to analyze.
|
||||||
|
:param number growthAmount: Multiplicative factor by which the server is
|
||||||
|
grown. Decimal form. Must be >= 1.
|
||||||
|
:returns: The amount of :doc:`grow<grow>` threads needed to grow the specified
|
||||||
|
server by the specified amount.
|
||||||
|
|
||||||
This function returns the number of "growths" needed in order to increase the amount
|
Example:
|
||||||
of money available on the specified server by the specified amount.
|
|
||||||
|
|
||||||
The specified amount is multiplicative and is in decimal form, not percentage.
|
.. code-block:: javascript
|
||||||
|
|
||||||
For example, if you want to determine how many `grow()` calls you need
|
// How many grow threads are needed to double the current money on 'foodnstuff'
|
||||||
to double the amount of money on `foodnstuff`, you would use::
|
growthAnalyze("foodnstuff", 2); // returns: 5124
|
||||||
|
|
||||||
growthAnalyze("foodnstuff", 2);
|
If this returns 5124, then this means you need to call :doc:`grow<grow>`
|
||||||
|
5124 times in order to double the money (or once with 5124 threads).
|
||||||
If this returns 100, then this means you need to call `grow()` 100 times
|
|
||||||
in order to double the money (or once with 100 threads).
|
|
||||||
|
|
||||||
**Warning**: The value returned by this function isn't necessarily a whole number.
|
**Warning**: The value returned by this function isn't necessarily a whole number.
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user