Compare commits

..

875 Commits

Author SHA1 Message Date
Olivier Gagnon
cb31954b08 v0.53.0 2021-09-09 22:57:37 -04:00
Olivier Gagnon
7f1d39a298 the world map is used every place a travel is done 2021-09-09 22:06:59 -04:00
Olivier Gagnon
d5c9306395 Convert sleeves to react, fix shock recovery bug 2021-09-09 21:38:05 -04:00
Olivier Gagnon
b0fcdb8363 some sleeve conversion 2021-09-09 16:04:36 -04:00
Olivier Gagnon
ab8937870c resleeve in react 2021-09-09 15:19:11 -04:00
Olivier Gagnon
4e22b880bb removed Corporation rerender and drilled down a rerender function in the react. 2021-09-09 14:21:21 -04:00
Olivier Gagnon
f77ab4e871 engine work 2021-09-09 13:48:21 -04:00
Olivier Gagnon
0a210555e9 remove some createElement 2021-09-09 13:00:06 -04:00
Olivier Gagnon
3df298e91e fix contract 2021-09-09 12:52:43 -04:00
Olivier Gagnon
b7e07bc7f2 convert all hacknet to ts 2021-09-09 03:17:01 -04:00
Olivier Gagnon
c97fece747 UI work on corps 2021-09-09 00:34:13 -04:00
Olivier Gagnon
a2aaf6bd2e build sleeve memory fix 2021-09-08 23:48:42 -04:00
Olivier Gagnon
2a13db39c7 fix sleeve memory bug 2021-09-08 23:47:34 -04:00
hydroflame
bada8a5f39 Merge pull request #1192 from vmesecher/dev
Adds getAugmentationPrice() and getAugmentationReqRep() Netscript Singularity functions.
2021-09-08 00:16:14 -04:00
vmesecher
6979082be7 Adds getAugmentationPrice() and getAugmentationReqRep() Netscript Singularity functions. Deprecates getAugmentationCost() Netscript singularity function. 2021-09-07 20:33:34 -07:00
Olivier Gagnon
1c9542d102 tech vendor buttons update better 2021-09-07 17:26:49 -04:00
Olivier Gagnon
0d5a302580 few more bug fixes 2021-09-07 17:18:02 -04:00
Olivier Gagnon
7bc0764d5d noselect some blade stuff 2021-09-07 16:49:11 -04:00
Olivier Gagnon
bc034bb417 Added more complex customization to smart supply 2021-09-07 16:46:36 -04:00
Olivier Gagnon
ea99166f7f better ascii maps 2021-09-07 15:09:05 -04:00
Olivier Gagnon
82c3362adc fix tests 2021-09-07 14:31:47 -04:00
hydroflame
e7d77b7569 Merge pull request #1167 from threehams/cypress
Add browser tests for tutorial, NetScript 2
2021-09-07 14:00:58 -04:00
Olivier Gagnon
c5af4f8177 remove debug log 2021-09-07 13:29:35 -04:00
Olivier Gagnon
d0cb0e3f5b remove ram requirements from joining factinos 2021-09-07 13:22:39 -04:00
Olivier Gagnon
f7adadd671 Blade action count replenishes more consistently 2021-09-07 13:15:27 -04:00
Olivier Gagnon
faa6f75027 UI improvements for corps. 2021-09-07 02:03:39 -04:00
Olivier Gagnon
3b0cf6714a build corp fixes 2021-09-07 01:16:28 -04:00
Olivier Gagnon
cd43f25bf5 make smart supply actually kinda smart 2021-09-07 01:14:55 -04:00
Olivier Gagnon
6e670e88e2 Fix manual management issues 2021-09-06 19:10:40 -04:00
David Edmondson
20062b11b9 Add test for static/dynamic RAM check 2021-09-06 13:51:55 -07:00
David Edmondson
d0ca2d8c36 Set up cy:test for production tests 2021-09-06 13:51:54 -07:00
David Edmondson
20e41e8006 Add back command import 2021-09-06 13:49:34 -07:00
David Edmondson
7ef7fc1b26 Remove getId for now 2021-09-06 13:49:34 -07:00
David Edmondson
6352704608 Remove placeholder fixture 2021-09-06 13:49:34 -07:00
David Edmondson
072f7693f4 gitignore cypress output 2021-09-06 13:49:34 -07:00
David Edmondson
fbe70f51c2 Add browser tests for tutorial, NetScript 2 2021-09-06 13:49:34 -07:00
David Edmondson
27e2b2ea65 separate PR/dev actions 2021-09-06 13:46:59 -07:00
David Edmondson
6320189717 Specify node version 2021-09-06 13:32:18 -07:00
David Edmondson
17da325585 Cache npm install, add tests 2021-09-06 13:29:35 -07:00
David Edmondson
5873b5fe19 Try again 2021-09-06 13:24:33 -07:00
David Edmondson
6d8b52c0d6 npm install 2021-09-06 13:20:07 -07:00
David Edmondson
8faa7faf8a Set up GitHub Actions 2021-09-06 13:17:42 -07:00
Olivier Gagnon
66a593e06b expand new city and new industry dont appear if you cant 2021-09-06 15:53:31 -04:00
Olivier Gagnon
506122f5b8 fmt, remove corp routing, lint 2021-09-06 15:06:08 -04:00
hydroflame
91434b7972 Merge pull request #1173 from threehams/source-maps
Speed up sourcemaps in dev mode
2021-09-06 13:05:13 -04:00
David Edmondson
ba46262426 Speed up sourcemaps in dev mode 2021-09-05 11:32:52 -07:00
Olivier Gagnon
aa91e8aecc fix ts warning 2021-09-05 14:18:33 -04:00
hydroflame
2874112946 Merge pull request #1171 from threehams/ts-check-1169
Add async TS checker to build
2021-09-05 14:13:36 -04:00
David Edmondson
3f8aa2aa9e Add async TS checker to build 2021-09-05 11:10:23 -07:00
Olivier Gagnon
b9acfde363 fix research box not displaying well on big screens. 2021-09-05 13:48:38 -04:00
Olivier Gagnon
b4c9655782 reword hacking skill aug effect 2021-09-05 01:56:37 -04:00
Olivier Gagnon
f50b2a9d9f remove debug log 2021-09-05 01:51:27 -04:00
Olivier Gagnon
a475e6297e fix miscalc in favor 2021-09-05 01:50:26 -04:00
Olivier Gagnon
cfdf23cd11 fix whitespace from new build 2021-09-05 01:33:05 -04:00
hydroflame
d6aa331310 Merge pull request #1163 from threehams/world-map
Fix world map and casino visuals.
2021-09-05 01:31:36 -04:00
David Edmondson
306facc0d1 Switch to babel for builds.
Fix whitespace mangled by prettier
2021-09-04 22:17:30 -07:00
hydroflame
5e11e77282 Merge pull request #1161 from threehams/fixed-builds
Fixed builds
2021-09-04 21:05:52 -04:00
David Edmondson
daafdbbddf Target ES2017 browsers and above 2021-09-04 17:52:23 -07:00
David Edmondson
8501c9bb1b Revert swc change due to prod crash 2021-09-04 17:45:30 -07:00
Olivier Gagnon
05f3b1c390 remove some function from autocomplete. 2021-09-04 20:14:33 -04:00
Olivier Gagnon
7f15a19f12 fix bad import 2021-09-04 20:09:22 -04:00
hydroflame
4011542b97 Merge pull request #1157 from threehams/faster-builds
Switch ts and babel for swc-loader
2021-09-04 20:05:51 -04:00
Olivier Gagnon
858b1e7468 documentation 2021-09-04 20:05:24 -04:00
David Edmondson
cfbdae6def Switch ts and babel for swc-loader
Replace old <> assertion syntax
2021-09-04 16:57:49 -07:00
Olivier Gagnon
05a6f2a20e fix formatting of Spiralize Matrix contract 2021-09-04 19:54:08 -04:00
Olivier Gagnon
05bab22807 Better error message for dynamic ram miscalculation 2021-09-04 19:27:16 -04:00
Olivier Gagnon
a18bdd6afc prettify, sorry for the big ass commit 2021-09-04 19:09:30 -04:00
hydroflame
3d7cdb4ef9 Merge pull request #1105 from danielyxie/dependabot/npm_and_yarn/jszip-3.7.0
Bump jszip from 3.1.5 to 3.7.0
2021-09-04 19:03:43 -04:00
hydroflame
eed915dbbd Merge pull request #1154 from threehams/num-people-killed
Add numPeopleKilled to getPlayer return
2021-09-04 19:03:36 -04:00
hydroflame
570e5b17a2 Merge pull request #1122 from threehams/upgrade-acorn
Support optional chaining in static RAM calculator.
2021-09-04 19:03:22 -04:00
hydroflame
4a7fcda86f Merge pull request #1152 from threehams/prettier
Configure `prettier`.
2021-09-04 19:03:05 -04:00
David Edmondson
a63178f30c Run eslint on js,jsx files 2021-09-04 14:56:54 -07:00
David Edmondson
2914bbb789 Add numPeopleKilled to getPlayer return 2021-09-04 14:51:59 -07:00
David Edmondson
1e42f73e2a Add prettier, and fix some CSS/line errors. 2021-09-04 13:18:35 -07:00
hydroflame
2d322e7a6a Merge pull request #1115 from danielyxie/react-corp
React corp
2021-09-04 15:11:43 -04:00
Olivier Gagnon
75d77410ea merge dev 2021-09-04 15:11:17 -04:00
Olivier Gagnon
0ad05c7bad fix disableLog issue 2021-09-04 14:51:50 -04:00
Olivier Gagnon
69ec6f6679 Travel cost greys out 2021-09-04 14:46:13 -04:00
Olivier Gagnon
c8dd17d573 added formula for cores cost, ram cost, and changed core cost formula 2021-09-04 14:43:22 -04:00
Olivier Gagnon
1241cc5128 Avoid use of any in CONSTANTS.ts 2021-09-04 14:09:57 -04:00
Olivier Gagnon
e1c29f25e2 Fix missing money display 2021-09-04 14:03:19 -04:00
Olivier Gagnon
c9efa977fb BN10 now has the sleeve you would gain but inside, also it starts with 25-25 sync-shock 2021-09-04 12:15:16 -04:00
Olivier Gagnon
6e013e4e6a Change money to automatically color grey when something cannot be bought. 2021-09-04 03:27:31 -04:00
Olivier Gagnon
3a943e0e50 made tech vendors button a tad smarter. 2021-09-04 02:21:31 -04:00
Olivier Gagnon
f2edb42aca gave some love to the donations 2021-09-04 01:39:34 -04:00
Olivier Gagnon
e1cb0e529c Tech vendors give a tip that you can buy bigger servers via scripts. 2021-09-03 18:04:05 -04:00
Olivier Gagnon
008b233c9d reword faction reputation and favor tooltips 2021-09-03 17:42:23 -04:00
Olivier Gagnon
cc9a07c09f Fix 180 favor issue, reworked favor and reputation mathjax 2021-09-03 17:12:55 -04:00
Olivier Gagnon
2866bfaa70 more corp API 2021-09-03 16:02:41 -04:00
David Edmondson
38880f69e1 Update acorn for optional chaining support 2021-09-02 13:56:30 -07:00
Olivier Gagnon
eb01051ad6 rebuild 2021-09-02 16:42:24 -04:00
Olivier Gagnon
5dd6145d53 build player patch 2021-09-02 13:34:59 -04:00
hydroflame
a652140224 Merge pull request #1124 from TomCassWindred/WrapOnLineBreak
Set log messages to wrap on line breaks
2021-09-02 13:24:30 -04:00
Cass
aa929b1837 Set log messages to wrap on line breaks
This retains \n characters on strings given as inputs
2021-09-02 18:15:42 +01:00
Olivier Gagnon
9b501e061a merge dev 2021-09-02 03:16:58 -04:00
dependabot[bot]
6f3db27373 Bump jszip from 3.1.5 to 3.7.0
Bumps [jszip](https://github.com/Stuk/jszip) from 3.1.5 to 3.7.0.
- [Release notes](https://github.com/Stuk/jszip/releases)
- [Changelog](https://github.com/Stuk/jszip/blob/master/CHANGES.md)
- [Commits](https://github.com/Stuk/jszip/compare/v3.1.5...v3.7.0)

---
updated-dependencies:
- dependency-name: jszip
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-02 07:11:42 +00:00
Olivier Gagnon
454a792f0a Added mathjax formulas for favor and made favor calculation faster. 2021-09-02 03:10:12 -04:00
Olivier Gagnon
8d17495e85 corp API 2021-09-02 00:36:33 -04:00
Olivier Gagnon
d3aeda8ad5 more conversion 2021-09-01 22:16:48 -04:00
Olivier Gagnon
65158e4db7 merge dev 2021-08-31 16:30:01 -04:00
Olivier Gagnon
fd85a00b8f Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2021-08-31 16:26:54 -04:00
Olivier Gagnon
a239f0ad58 Build some PRs for the players 2021-08-31 16:26:06 -04:00
hydroflame
d936f68c7a Merge pull request #1111 from brubsby/patch-2
Update all general actions to have infinity count
2021-08-31 16:24:57 -04:00
hydroflame
feebdc8ee5 Merge pull request #1112 from brubsby/patch-3
Update getActionEstimatedSuccessChance
2021-08-31 16:24:47 -04:00
hydroflame
0eeb868e25 Merge pull request #1117 from TomCassWindred/IndividualLogEnable
Individual log enable
2021-08-31 16:22:34 -04:00
Olivier Gagnon
d9c9c30fdd more conversion 2021-08-31 16:19:58 -04:00
Cass
294640d27e Quick Tidy 2021-08-31 21:04:40 +01:00
Cass
fe25460997 Replace "ALL" log flag with individually disabling every log.
https://github.com/danielyxie/bitburner/issues/1116
2021-08-31 21:03:39 +01:00
Olivier Gagnon
f987ff9e2a no more any in corp 2021-08-31 15:51:27 -04:00
Olivier Gagnon
d65cbf07f4 Narrow down corporation types 2021-08-31 14:47:07 -04:00
Olivier Gagnon
2624e13c34 build dev menu 2021-08-31 13:06:23 -04:00
Olivier Gagnon
7c9c4d3f4d No more use of any in Corporations. 2021-08-31 13:04:33 -04:00
Olivier Gagnon
a2379b21ec more conversion 2021-08-31 03:39:04 -04:00
Olivier Gagnon
68885ceff5 more conversion 2021-08-31 03:18:44 -04:00
Olivier Gagnon
1ae17677c0 jsts corporation 2021-08-31 03:07:20 -04:00
Olivier Gagnon
67be13c6d6 more conversion 2021-08-31 02:49:57 -04:00
Olivier Gagnon
d4349e85b1 fix some of the research popup stuff 2021-08-31 01:05:51 -04:00
Olivier Gagnon
a721c49e1d more conversion 2021-08-31 00:54:57 -04:00
hydroflame
2d2c20bfc7 Merge pull request #1114 from threehams/autocomplete
Add tests for autocomplete
2021-08-30 22:08:16 -04:00
David Edmondson
ed035a2e89 Add tests for autocomplete 2021-08-30 17:58:01 -07:00
Olivier Gagnon
cf72d72bb0 Finished converting all the popups. 2021-08-30 17:59:11 -04:00
Olivier Gagnon
3ba04220e1 I made a mistake but caught it. 2021-08-30 03:18:12 -04:00
Olivier Gagnon
a72d1aa99f more conversion 2021-08-30 03:07:14 -04:00
Olivier Gagnon
21008ba65a more conversion 2021-08-28 14:45:55 -04:00
Olivier Gagnon
a760ede129 more conversion 2021-08-28 14:22:36 -04:00
Olivier Gagnon
717b32b0b4 more conversion 2021-08-28 14:03:07 -04:00
Olivier Gagnon
4b6d049da2 more conversion 2021-08-28 13:41:25 -04:00
Olivier Gagnon
8bb4e8b7cf more conversion 2021-08-28 13:07:35 -04:00
Olivier Gagnon
0d30544a52 more conversion 2021-08-28 12:00:18 -04:00
Olivier Gagnon
361ef31fe7 more conversion 2021-08-28 03:49:15 -04:00
Olivier Gagnon
0de3deee3f Even more conversion 2021-08-28 03:31:47 -04:00
Olivier Gagnon
94ad7ccf4b more conversion 2021-08-28 02:57:57 -04:00
Olivier Gagnon
4b53d6ecf7 more convertion 2021-08-28 02:50:06 -04:00
Olivier Gagnon
3d2aeb63a0 more convert 2021-08-28 00:29:19 -04:00
Olivier Gagnon
b621359a9e fix changelog dates 2021-08-28 00:13:08 -04:00
Olivier Gagnon
07c0b708d7 more convertion 2021-08-28 00:11:42 -04:00
brubsby
b372f23b6e Update getActionEstimatedSuccessChance
ns.bladeburner.getActionEstimatedSuccessChance("general", "Diplomacy") returned [-1, -1] (as well as "Hyperbolic Regeneration Chamber"), even though both tasks automatically succeed. Also Training and Field Analysis both previously returned [1, 1].
2021-08-27 17:06:01 -05:00
Olivier Gagnon
a8254e7144 one component 2021-08-27 17:39:15 -04:00
brubsby
02a21cf2d9 Update all general actions to have infinity count
ns.bladeburner.getActionCountRemaining("general", "Diplomacy") currently returns -1. I think it'd be more intuitive if all the general actions returned Infinity, instead of just two of them
2021-08-27 16:13:22 -05:00
Olivier Gagnon
bcb0606900 fix typo 2021-08-27 15:31:54 -04:00
Olivier Gagnon
42704d8695 v0.52.9 2021-08-27 15:26:12 -04:00
Olivier Gagnon
e75197dee3 build 2021-08-27 14:19:36 -04:00
Olivier Gagnon
9e92df47a5 Added file diagnostic. 2021-08-27 14:17:25 -04:00
Olivier Gagnon
c110c22efb My corp infinity safeguard from 2 patch ago wasn't actually preventing it, just logging, now it returns to avoid it. 2021-08-27 11:18:06 -04:00
Olivier Gagnon
c9ab7908a7 another blocker against mku equal 0 and added tprintf 2021-08-27 11:05:36 -04:00
Olivier Gagnon
3ab306f9d7 fix the errors about node setTimeout instead of window 2021-08-27 01:11:11 -04:00
hydroflame
f08aa8924c Merge pull request #1102 from threehams/test-runner
Switch out test runner for jest
2021-08-27 00:53:45 -04:00
Olivier Gagnon
c4914fa54f build community prs 2021-08-27 00:45:11 -04:00
hydroflame
fa5e2f4964 Merge pull request #1079 from threehams/infil-instakill
Instakill player when automating infiltration
2021-08-26 21:42:08 -04:00
hydroflame
77eda1fd75 Merge pull request #1098 from brubsby/patch-1
add bladeburner_analysis_mult to getPlayer()
2021-08-26 21:42:01 -04:00
Olivier Gagnon
c987c91a11 add corp safeguard 2021-08-26 21:39:51 -04:00
David Edmondson
feaa74ed34 Only compile down imports during tests 2021-08-26 17:02:02 -07:00
David Edmondson
701fba7ec7 Drop cross-env 2021-08-26 16:45:39 -07:00
David Edmondson
51bd626e88 Remove unneeded stuff, .vscode on gitignore 2021-08-26 16:44:37 -07:00
David Edmondson
ab4863e7df Swap out mocha/chai for jest 2021-08-26 16:43:11 -07:00
David Edmondson
1a8bcf66cc Fix existing tests, update to jest 2021-08-26 16:43:03 -07:00
David Edmondson
7bfceb1690 Replace old-style import with type 2021-08-26 16:42:57 -07:00
David Edmondson
27e22814a9 Remove missing + unused variable 2021-08-26 16:42:47 -07:00
Olivier Gagnon
ceb4e304fd Hotfix corp mku getting set to zero and causing infinity 2021-08-26 15:22:06 -04:00
Olivier Gagnon
e2d74f9432 fix beautify 2021-08-25 16:14:47 -04:00
Olivier Gagnon
79345a49b4 Bladeburner automation status always displays the commands, even when disabled 2021-08-25 11:50:33 -04:00
Olivier Gagnon
7066a793a1 build fix 2021-08-24 21:40:50 -04:00
hydroflame
2a5cf62168 Merge pull request #1097 from Snarling/patch-2
Fix joining blade via ns
2021-08-24 21:39:29 -04:00
brubsby
6495be5705 add bladeburner_analysis_mult to getPlayer() 2021-08-24 20:02:39 -05:00
Snarling
0d6d05db49 Fix joining blade via ns
Pass Player as an argument in Bladeburner constructor call for ns.bladeburner.joinBladeburnerDivision()
2021-08-24 20:08:29 -04:00
Olivier Gagnon
5d59620dce click to copy every bladeburner action 2021-08-23 11:42:14 -04:00
Olivier Gagnon
60d95a90d0 Fix script not being saved on their individual computers. 2021-08-23 09:33:49 -04:00
Olivier Gagnon
51debc60da build omuretsu fix 2021-08-23 09:18:43 -04:00
Snarling
faf625b34d Update Root.tsx
Went back to tracking lastServer as a hostname, since server IPs are not static.
2021-08-23 04:04:52 -07:00
Snarling
1a8b194341 Update Root.tsx
Removed unnecessary conversions between server and ip
2021-08-23 04:04:52 -07:00
Snarling
386f8a11c5 Change lastServer to reference the server ip
Should fix issue with newly saved scripts failing to run
2021-08-23 04:04:52 -07:00
hydroflame
4278191b0e Merge pull request #1090 from danielyxie/dev
v0.52.8
2021-08-23 02:09:55 -04:00
Olivier Gagnon
6d2b8b4f6f v0.52.8 2021-08-23 02:09:49 -04:00
Olivier Gagnon
b148b2f0b5 logbox close on escape now 2021-08-23 01:15:20 -04:00
hydroflame
4a9bac99d2 Merge pull request #1083 from danielyxie/dev
Fix monaco jumping to end of file.
2021-08-22 23:57:16 -04:00
Olivier Gagnon
0b3c114cd0 Fix monaco jumping to end of file. 2021-08-22 23:57:00 -04:00
hydroflame
49cc75a575 Merge pull request #1082 from danielyxie/dev
trying to fix the jumping bug
2021-08-22 23:47:44 -04:00
Olivier Gagnon
e0d631f8b3 trying to fix the jumping bug 2021-08-22 23:46:30 -04:00
hydroflame
8289c9fc75 Merge pull request #1080 from danielyxie/dev
Fixed Script Editor not loading the same file after manually clicking it
2021-08-22 01:31:00 -04:00
Olivier Gagnon
d66e36b637 Fixed Script Editor not loading the same file after manually clicking it 2021-08-22 01:30:28 -04:00
David Edmondson
6cd7465b82 Instakill player when automating infiltration 2021-08-21 15:00:00 -07:00
hydroflame
c7125e2e46 Merge pull request #1077 from danielyxie/dev
Fix a few other bugs
2021-08-21 14:01:05 -04:00
Olivier Gagnon
a564957092 v0.52.7 2021-08-21 14:00:28 -04:00
Olivier Gagnon
4b8e63f342 Fix a few other bugs 2021-08-21 11:30:31 -04:00
hydroflame
480d47eece Merge pull request #1076 from danielyxie/dev
Fix log box dragging.
2021-08-21 02:39:17 -04:00
Olivier Gagnon
4de20f8cce Made logbox drag a little smoother. 2021-08-21 02:31:37 -04:00
Olivier Gagnon
4b38d296a8 Fix corp industry wrong initial value. 2021-08-21 02:10:58 -04:00
hydroflame
9ac75d5bf5 Merge pull request #1075 from danielyxie/dev
Fix Corp research popup box appearing behind one another.
2021-08-21 02:07:10 -04:00
Olivier Gagnon
6561413137 Fix Corp research popup box appearing behind one another. 2021-08-21 02:06:48 -04:00
hydroflame
1fb5105d0a Merge pull request #1074 from danielyxie/dev
hotfix broken editor shortcuts
2021-08-21 01:55:05 -04:00
Olivier Gagnon
b67c03ff8a hotfix broken editor shortcuts 2021-08-21 01:54:39 -04:00
hydroflame
7db3716256 Merge pull request #1072 from danielyxie/dev
hotfix the tutorial
2021-08-21 00:58:58 -04:00
Olivier Gagnon
ee5a70901b hotfix logbox width 2021-08-21 00:58:24 -04:00
Olivier Gagnon
63b2c77907 hotfix the tutorial 2021-08-21 00:51:07 -04:00
hydroflame
aa3ad3164c Merge pull request #1068 from danielyxie/dev
v0.52.6
2021-08-21 00:32:04 -04:00
Olivier Gagnon
474befa091 v0.52.6 2021-08-21 00:31:42 -04:00
hydroflame
cd1c1ce145 Merge pull request #1067 from danielyxie/monaco
Monaco
2021-08-21 00:17:58 -04:00
Olivier Gagnon
5aa24f22c4 final changes for monac 2021-08-21 00:17:26 -04:00
Olivier Gagnon
f02c6443cc ok figured out how to make the javascript autocomplete. 2021-08-20 17:14:20 -04:00
Olivier Gagnon
4497143785 basic autocomplete working 2021-08-20 16:11:49 -04:00
Olivier Gagnon
0b3c48827b Ok we can load a thing but it has no effect. 2021-08-20 15:46:59 -04:00
Olivier Gagnon
86de11e794 link for monaco 2021-08-20 15:46:59 -04:00
Olivier Gagnon
fb87385704 Added function definition for netscritp in typescript 2021-08-20 15:46:59 -04:00
Olivier Gagnon
b1caea796a another link 2021-08-20 15:46:59 -04:00
Olivier Gagnon
2dfd19c9e0 rename, kinda add option for tabs vs space 2021-08-20 15:46:59 -04:00
Olivier Gagnon
0e24020796 Move monaco UI back where it belongs ish 2021-08-20 15:46:59 -04:00
Olivier Gagnon
ed62a3ebc2 deleted ace and monaco 2021-08-20 15:46:59 -04:00
Olivier Gagnon
258716388e focus works 2021-08-20 15:46:59 -04:00
Olivier Gagnon
73ec97db87 first pass at monaco. 2021-08-20 15:46:58 -04:00
Olivier Gagnon
567c5dc230 lint 2021-08-20 15:45:21 -04:00
Olivier Gagnon
980665b77c Fix job bug 2021-08-20 15:41:15 -04:00
Olivier Gagnon
dcddc0c2d5 fix a few things 2021-08-20 14:39:24 -04:00
Olivier Gagnon
6e1100750e script log boxes can now be dragged around and multiple of them can be on screen at once. 2021-08-19 22:22:21 -04:00
hydroflame
fea25249a8 Merge pull request #1062 from danielyxie/dev
v0.52.5
2021-08-19 16:38:26 -04:00
Olivier Gagnon
df457a0c6e v0.52.5 2021-08-19 16:37:59 -04:00
hydroflame
3826de72ef Merge pull request #1061 from danielyxie/dev
hotfix some blade netscript functions not working
2021-08-19 11:04:24 -04:00
Olivier Gagnon
ee3530d9b9 hotfix some blade netscript functions not working 2021-08-19 11:04:01 -04:00
hydroflame
5098ef6232 Merge pull request #1057 from danielyxie/dev
v0.52.4 - Bladeburner in React
2021-08-19 01:46:16 -04:00
Olivier Gagnon
1a1a43c1ce v0.52.4 2021-08-19 01:45:26 -04:00
Olivier Gagnon
d6b349b6ff dialogBoxCreate now uses the same logic as other popups, now all popup can be dismissed with escape. 2021-08-18 00:51:51 -04:00
Olivier Gagnon
5c92360310 convert a few variables to const. 2021-08-18 00:08:23 -04:00
hydroflame
1fbb971d6f Merge pull request #1049 from danielyxie/react-blade
React blade
2021-08-17 23:54:52 -04:00
Olivier Gagnon
fa78b3f421 Fix React list without keys, fix int miscalculation of blade skills. 2021-08-17 23:52:18 -04:00
Olivier Gagnon
9af9bf58b6 fix final bugs 2021-08-17 23:28:40 -04:00
Olivier Gagnon
99afb156fa Refactoring mostly done, still a few bugs and test to do. 2021-08-17 23:28:40 -04:00
Olivier Gagnon
8d550157bc Blade is fully converted to React but now it needs refactoring. 2021-08-17 23:28:40 -04:00
Olivier Gagnon
4865563f26 Almost done converting blade to react. 2021-08-17 23:28:40 -04:00
Olivier Gagnon
cc8de58cff More converting blade to react. 2021-08-17 23:28:40 -04:00
Olivier Gagnon
58ada6d128 converting the giant Bladeburner object. 2021-08-17 23:28:40 -04:00
Olivier Gagnon
ae6f95b59a The blade UI is fully converted to React, the business logic is left to do. 2021-08-17 23:28:40 -04:00
Olivier Gagnon
99d4f17cdb work on blade to react 2021-08-17 23:28:40 -04:00
Olivier Gagnon
33f0efd49c converting more blade to react 2021-08-17 23:28:40 -04:00
Olivier Gagnon
988ca37764 converting more blade to react/ts 2021-08-17 23:28:40 -04:00
Olivier Gagnon
0e9d7450c9 Converting bladeburner to react 2021-08-17 23:28:40 -04:00
hydroflame
27ee65f524 Merge pull request #1051 from danielyxie/dev
hotfix 0 territory being softlocked.
2021-08-17 17:47:58 -04:00
Olivier Gagnon
78cd319c21 hotfix 0 territory being softlocked. 2021-08-17 17:47:22 -04:00
hydroflame
1d0f193c34 Merge pull request #1050 from danielyxie/dev
hotfix blocked in Gang
2021-08-17 17:14:11 -04:00
Olivier Gagnon
7367167019 hotfix blocked in Gang 2021-08-17 17:13:32 -04:00
hydroflame
08908c87ea Merge pull request #1048 from danielyxie/dev
Hotfix weird bladeburner ui bug
2021-08-15 17:14:38 -04:00
Olivier Gagnon
392f164f8e Hotfix weird bladeburner ui bug 2021-08-15 17:14:05 -04:00
hydroflame
3957a517db Merge pull request #1047 from danielyxie/dev
v0.52.3 - 2021-07-15 Gangs were OP (hydroflame)
2021-08-15 16:26:52 -04:00
Olivier Gagnon
e4b2a6853d v0.52.3 2021-08-15 16:23:54 -04:00
Olivier Gagnon
697a8119b0 update Changelog. 2021-08-15 16:20:34 -04:00
Olivier Gagnon
b31b3dc735 Factions list screen converted to React. 2021-08-15 16:20:10 -04:00
Olivier Gagnon
5848fa53b7 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2021-08-15 15:24:23 -04:00
Olivier Gagnon
539b206cb5 update patch notes. 2021-08-15 15:23:39 -04:00
hydroflame
0f92890f0c Merge pull request #1045 from danielyxie/gang2
Gang rework
2021-08-15 15:01:27 -04:00
Olivier Gagnon
056f0213dd Fixed an issue where a faction could be joined twice. 2021-08-15 14:31:38 -04:00
Olivier Gagnon
41871de26c More adjustments to gang rework 2021-08-15 14:09:58 -04:00
Olivier Gagnon
5803ddc613 popup now all can be dismissed by clicking outside the window and have grey background 2021-08-15 12:16:16 -04:00
Olivier Gagnon
99263309ba Fix gaining too much asc pts, reduce reputation gain in gangs. 2021-08-15 12:14:56 -04:00
Olivier Gagnon
8a78ee4cf6 build dev for beta branch 2021-08-15 12:11:18 -04:00
Olivier Gagnon
af46324c6d Changed the ascension mechanic 2021-08-15 12:09:44 -04:00
Olivier Gagnon
42aa6525a6 the gang UI has a force update on ascension. 2021-08-15 12:09:44 -04:00
Olivier Gagnon
05b1b55e9a bit more code cleanups 2021-08-15 12:09:44 -04:00
Olivier Gagnon
febf0835c2 tweaks to how the gang ui is loaded, making it more like stock market 2021-08-15 12:09:44 -04:00
Olivier Gagnon
94ea0d253c Removed all DOM id 2021-08-15 12:09:44 -04:00
Olivier Gagnon
31cf02e8e4 some comments 2021-08-15 12:09:44 -04:00
Olivier Gagnon
97fdf7cb7f Format/cleanup of Gang UI 2021-08-15 12:09:44 -04:00
Olivier Gagnon
2c7fbc03cf Remove all uses of any in Gang, Train Combat and Train Hacking are now the best exp gains, gang equipment and augs now give exp boosts 2021-08-15 12:09:43 -04:00
Olivier Gagnon
07cca48a17 converted everything to ts 2021-08-15 12:09:43 -04:00
Olivier Gagnon
43d0fcb9f9 little cleanup 2021-08-15 12:09:43 -04:00
Olivier Gagnon
99b8dfa0c1 Converted GangMember to tsx, only Gang left 2021-08-15 12:09:43 -04:00
Olivier Gagnon
4cdd65e96c more gang react conversion 2021-08-15 12:09:43 -04:00
Olivier Gagnon
9e345b1375 Mostly done converting Gang UI to React 2021-08-15 12:09:43 -04:00
Olivier Gagnon
9466017906 modifying gang stats 2021-08-15 12:09:43 -04:00
Olivier Gagnon
9c24f1325f Gang member accordion done 2021-08-15 12:09:43 -04:00
Olivier Gagnon
26401fbb93 more panels! 2021-08-15 12:09:43 -04:00
Olivier Gagnon
69dfbb6673 panel 2 done 2021-08-15 12:09:43 -04:00
Olivier Gagnon
5863797b03 minor refactor 2021-08-15 12:09:43 -04:00
Olivier Gagnon
25f546c691 part 1 of converting gang to react 2021-08-15 12:09:43 -04:00
hydroflame
21daab32c1 Merge pull request #1044 from danielyxie/dev
v0.52.2
2021-08-15 02:15:03 -04:00
Olivier Gagnon
67e5e413e4 v0.52.2 2021-08-15 02:14:07 -04:00
Olivier Gagnon
796d91835c Simplify all the augmentation effects. 2021-08-15 00:49:19 -04:00
Olivier Gagnon
be8d56ced9 rewrite augmentation stats description so it's autogenerated and consistent with the actual effects. 2021-08-15 00:24:31 -04:00
hydroflame
0671c48c86 Merge pull request #1029 from Kwazygloo/patch-1
Unique  Aevum Augment
2021-08-14 14:28:37 -04:00
hydroflame
5e2ed7a79e Merge pull request #1042 from danielyxie/dev
hotfix revert tutorial instructing the player to make a script on n00…
2021-08-11 01:05:46 -04:00
Olivier Gagnon
94388ba6af hotfix revert tutorial instructing the player to make a script on n00dles 2021-08-11 01:05:11 -04:00
hydroflame
d9e60ea124 Merge pull request #1039 from danielyxie/dev
rebuild with the version inside the game correctly udpated
2021-08-10 21:10:00 -04:00
Olivier Gagnon
306fe97ed8 rebuild with the version inside the game correctly udpated 2021-08-10 21:09:37 -04:00
hydroflame
2750eb293a Merge pull request #1038 from danielyxie/dev
v0.52.1
2021-08-10 21:04:05 -04:00
Olivier Gagnon
c9b47ac3a6 Update changelog. 2021-08-10 21:03:40 -04:00
Olivier Gagnon
8c9f78394b v0.52.1 2021-08-10 21:01:09 -04:00
hydroflame
643d2525c5 Merge pull request #1031 from PurePandemonium/patch-1
Update doc page for Singularity functions
2021-08-10 20:56:40 -04:00
hydroflame
cb6e7ef5e9 Merge pull request #1036 from schroederIT/patch-1
Fix for unintended backdoor/autolink interaction
2021-08-10 20:55:50 -04:00
hydroflame
f7f9065472 Merge pull request #1037 from danielyxie/v0.52.1
V0.52.1
2021-08-10 20:55:19 -04:00
Olivier Gagnon
1e3af43ab3 v0.52.1 2021-08-10 20:54:43 -04:00
Olivier Gagnon
e18aa08eeb Fix crash when quitting an unfocused job 2021-08-10 19:36:52 -04:00
schroederIT
5a75581b38 Fix for unintended backdoor/autolink interaction
Added check for backdoorFlag when calling scan-analyze-link
2021-08-09 20:22:46 -05:00
Joshua Morgan
0d3bc1ea1f Update doc page for Singularity functions
Clean up the intro a bit and separate the list by level.
2021-07-08 14:09:45 -07:00
Kwazygloo
547324a813 Update AugmentationHelpers.jsx 2021-07-06 01:55:42 -07:00
Kwazygloo
fa64186120 Update AugmentationHelpers.jsx 2021-07-06 01:55:42 -07:00
Kwazygloo
9b593758c3 Update AugmentationHelpers.jsx 2021-07-06 01:55:42 -07:00
Kwazygloo
a55fd5046b Update AugmentationHelpers.jsx 2021-07-06 01:55:42 -07:00
Kwazygloo
0e177841ac Update AugmentationHelpers.jsx 2021-07-06 01:55:42 -07:00
MageKing17
0cd17cd3b3 Correct incorrect RAM value in tutorial.
Appears to be a leftover mistake from when the tutorial pointed at foodnstuff; n00dles only has 4 GB.
2021-07-06 00:19:34 -07:00
MageKing17
04c0c87242 Addressing feedback.
`flags` example should have the output, instead of the code, in a comment block. `formulas.basic.calculateExp` and `formulas.basic.hackChance` should have explicit `var` declarations.
2021-07-06 00:18:22 -07:00
MageKing17
43b09a2459 Correct descriptions of LuminCloaking2 and HydroflameLeftArm.
LuminCloaking-V2 claimed to be a more advanced version of itself, and Hydroflame Left Arm described a 2.7 multiplier as a 270% increase.
2021-07-06 00:18:22 -07:00
MageKing17
8731a02ef0 Update Source-File documentation and descriptions.
Only SF-11 had incorrect multipliers, but quite a few were missing things that they unlock; in particular, even the in-game description of BN/SF5 didn't mention the formulas API, which is one of its major benefits (besides Intelligence). I also removed the empty rows from the Source-File description table; it's not exactly hard to add new rows when new BitNodes get added, and all that empty space looks bad.
2021-07-06 00:18:22 -07:00
MageKing17
30abcec74a Update scriptScheduler.ns example to not be pointlessly async.
The example code gives the impression that `ns.run` and `ns.exec` are asynchronous, when they're not; making these functions async is adding overhead for no purpose.
2021-07-06 00:18:22 -07:00
MageKing17
ae15914efa Update netscript documentation.
Unfortunately, I haven't used most of the specialty APIs yet, so I'm not intimately familiar with where their documentation might be wrong. I figured some fixes were better than no fixes, and I can always make more fixes later.

Fixes #1023.
2021-07-06 00:18:22 -07:00
Kwazygloo
1aa141b87e Update AugmentationHelpers.jsx 2021-07-03 11:13:45 -04:00
Kwazygloo
55d1ebd0e4 Synthetic Heart and Combat Rib Description Changes 2021-06-29 19:55:26 -07:00
Kwazygloo
06ac63aece Update AugmentationHelpers.jsx 2021-06-29 19:29:36 -07:00
Kwazygloo
f706fee3d1 Augmented Targeting Description Changes 2021-06-29 19:20:05 -07:00
Kwazygloo
f554398a7f Update AugmentationHelpers.jsx 2021-06-22 23:17:24 -07:00
Kwazygloo
abe204109e Update AugmentationHelpers.jsx 2021-06-18 16:11:12 -04:00
Kwazygloo
434dd2b58d Update AugmentationHelpers.jsx 2021-06-18 12:09:56 -04:00
hydroflame
4c8d0acbd9 Merge pull request #1015 from danielyxie/dev
hotfix buying multiple NFG from level 0 not stacking
2021-06-14 20:32:49 -04:00
Olivier Gagnon
96847b5d27 build hotfix 2021-06-14 20:32:36 -04:00
Olivier Gagnon
8facdd2b49 hotfix buying multiple NFG from level 0 not stacking 2021-06-14 20:31:24 -04:00
hydroflame
8e2b5cfccb Merge pull request #1014 from danielyxie/dev
hotfix augmentation displaying null
2021-06-13 17:32:27 -04:00
Olivier Gagnon
2c7a4f4ce6 hotfix augmentation displaying null 2021-06-13 17:32:16 -04:00
hydroflame
1ca52e2b77 Merge pull request #1013 from danielyxie/dev
Hotfix adding noodle bars as infiltration location
2021-06-13 12:19:01 -04:00
Olivier Gagnon
2248c083c8 Hotfix adding noodle bars as infiltration location 2021-06-13 12:18:34 -04:00
hydroflame
37ec5c733f Merge pull request #1011 from danielyxie/dev
v0.52.0 Infiltration 2.0
2021-06-13 11:15:47 -04:00
Olivier Gagnon
321dca4993 v0.52.0 2021-06-13 11:15:02 -04:00
hydroflame
19f51b684b Infiltration rework (#1010)
Infiltration 2
2021-06-13 11:05:40 -04:00
Olivier Gagnon
39b4048603 Fixed a performance issue when installing too many Neuroflux at once. 2021-06-13 11:05:07 -04:00
Olivier Gagnon
2b1ec7d573 update patch notes 2021-06-12 05:57:09 -04:00
Olivier Gagnon
2b13b5329f tail is smarter 2021-06-12 05:42:18 -04:00
Olivier Gagnon
6661473adc Fix an issue where an empty stack trace would appear in ns1 scripts 2021-06-12 05:09:12 -04:00
Olivier Gagnon
d6a7471e0b Added functions to create gang 2021-06-12 04:47:03 -04:00
Olivier Gagnon
9996232751 Nerf the effect of intelligence on faction reputation gain 2021-06-12 04:28:17 -04:00
Olivier Gagnon
cdd376f2ae gave some love to the tutorial. 2021-06-12 04:23:15 -04:00
hydroflame
00a5085cdf Merge pull request #1008 from Tesseract1234567890/typosFix
Typo Fixes
2021-06-11 00:18:48 -04:00
Tesseract1234567890
4cd17607e6 Fixed server/node text always displaying as Hacknet Nodes even if the player has servers unlocked 2021-06-10 09:27:43 -04:00
Tesseract1234567890
1b734be895 Test to fix server/node text 2021-06-10 09:05:16 -04:00
Tesseract1234567890
6a8aa79396 Fixed capitalization error in Quotes.txt 2021-06-10 08:56:53 -04:00
Tesseract1234567890
34b3843e18 Fixed typo in PlayerObjectGeneralMethods.jsx 2021-06-10 08:55:06 -04:00
Tesseract1234567890
dd75c1b2d2 Fixed typo in Infiltration.js 2021-06-10 08:54:21 -04:00
hydroflame
6d072d766d Merge pull request #1007 from danielyxie/fix-reputation-transfer
Fix reputation transfering when applying for other jobs
2021-06-09 16:33:42 -04:00
Olivier Gagnon
7875d1ba93 Fix reputation transfering when applying for other jobs 2021-06-09 16:33:21 -04:00
hydroflame
0e458a8142 Merge pull request #1004 from Kwazygloo/patch-15
Update Info.tsx
2021-06-08 21:33:55 -04:00
Kwazygloo
8ab571d54d Update Info.tsx 2021-06-08 08:31:56 -04:00
hydroflame
d9da1a8568 Merge pull request #997 from Tesseract1234567890/sleevesUIFix
Allowed Sleeves UI to update on workout change via API
2021-06-07 19:45:25 -04:00
hydroflame
b946886295 Merge pull request #1002 from Tesseract1234567890/hydroPetPeeveFix
Hydro's Pet Peeve Fix
2021-06-07 19:43:16 -04:00
hydroflame
3bb74ceebe Merge pull request #1001 from Tesseract1234567890/hacknetNodeConstantsFix
Hacknet Node Constants Fix (see omuretsu's message in Discord)
2021-06-07 19:10:14 -04:00
Tesseract1234567890
e24c5b3cce Fixed hydro's pet peeve 2021-06-07 09:22:26 -04:00
Tesseract1234567890
527455bada Removed HacknetServerConstant from formulas.hacknetNodes.constants function call 2021-06-07 08:40:10 -04:00
Olivier Gagnon
efdd8482d7 minor tweak to really large number display 2021-06-06 15:06:39 -04:00
hydroflame
4180ceae17 Merge pull request #984 from Tesseract1234567890/numeralFormat.ts-NanT-removal
Modified numeralFormat.ts to prevent NaNt from appearing
2021-06-06 14:59:03 -04:00
hydroflame
9e04aef8d2 Merge pull request #999 from danielyxie/dev
0.51.10 early
2021-06-06 14:54:07 -04:00
Olivier Gagnon
0fc6f90863 push 0.51.11 early for a player 2021-06-06 14:53:31 -04:00
Olivier Gagnon
0cb821b50d lint 2021-06-06 14:46:33 -04:00
QuantumByte
14af88c3fc Merge branch 'danielyxie:dev' into sleevesUIFix 2021-06-06 14:41:48 -04:00
Olivier Gagnon
61dded637d fix some typos in augmentation descriptions. 2021-06-06 14:40:16 -04:00
Tesseract1234567890
4623bb3a0b Fix to Sleeves UI not updating when set to workout value by API 2021-06-06 14:32:09 -04:00
QuantumByte
4f7fb1cd62 Merge branch 'danielyxie:dev' into dev 2021-06-06 14:20:56 -04:00
Olivier Gagnon
0b401ba83b collapse 2 constants in where they are used. 2021-06-06 14:17:03 -04:00
Olivier Gagnon
40813d5c4f Finish work on the gimick time-based aug 2021-06-06 13:28:25 -04:00
QuantumByte
687a2f8852 Merge branch 'danielyxie:dev' into dev 2021-06-06 12:42:28 -04:00
Tesseract1234567890
150a3b03f4 Merge branch 'intFix' of https://github.com/Tesseract1234567890/bitburner into dev 2021-06-06 12:25:48 -04:00
hydroflame
42935a217d Merge pull request #991 from Tesseract1234567890/timeBasedAugment
Circadian Modulator - an augment based on the hour in which you install/reset
2021-06-06 12:06:15 -04:00
Olivier Gagnon
2c2548f856 dev menu is now save-file sensitive, Fixed some bugs related to BN5-1 int 2021-06-06 12:00:59 -04:00
hydroflame
141f2a8331 Merge pull request #994 from Tesseract1234567890/intFix
Fixed intelligence not resetting when b1t_flum3.exe is used from BN5 without having SF5
2021-06-06 11:03:01 -04:00
hydroflame
5b9d2e36c6 Merge pull request #995 from Tesseract1234567890/bladeburnerStatFix
Fixed Bladeburner stats not displaying correctly on Augmentations page
2021-06-06 10:54:18 -04:00
Tesseract1234567890
80125d1521 Fixed bladeburner stats not displaying correctly 2021-06-04 13:55:33 -04:00
Tesseract1234567890
ed041743c2 Allows player to keep int if bitfluming into SF5 from SF5 for some reason 2021-06-04 12:17:46 -04:00
Tesseract1234567890
f9ff45fbed Attempt at making Int. available from start of BN5 2021-06-04 12:14:04 -04:00
Tesseract1234567890
fc5e0ea6a0 Set intelligence_exp to 0 if player does not have SourceFile 5 on b1t_flum3.exe usage 2021-06-04 12:02:26 -04:00
Tesseract1234567890
66ff040e38 Attempt at fixing Int. not resetting on b1t_flum3.exe usage 2021-06-04 11:59:23 -04:00
Tesseract1234567890
49cc25479e Modified flavortext 2021-06-04 08:55:06 -04:00
hydroflame
4bd1813b45 Merge pull request #988 from Kwazygloo/patch-1
Update FactionInfo.ts
2021-06-03 22:56:30 -04:00
Tesseract1234567890
8259c1a5b9 Reset RNG to reload every hour 2021-06-03 16:54:43 -04:00
Tesseract1234567890
c793a076db Changed price and rep. cost of augment 2021-06-03 16:30:06 -04:00
Tesseract1234567890
e320a8339a added extended info to augment 2021-06-03 16:27:06 -04:00
Tesseract1234567890
1427a0f1ae Modified RNG gen for testing 2021-06-03 16:20:35 -04:00
Tesseract1234567890
17315733a7 deleted unnecessary functions 2021-06-03 16:17:34 -04:00
Tesseract1234567890
29d7134859 testing 2021-06-03 16:16:20 -04:00
Tesseract1234567890
4ac91f5599 set to hour instead of 6 mins 2021-06-03 15:27:08 -04:00
Tesseract1234567890
a3496cdfa9 changed rng method to based on hour of install, changes every 360000 ms 2021-06-03 13:25:20 -04:00
Tesseract1234567890
b88990444b Swapped faction to speakers for the dead, modified price + rep cost, modified lore 2021-06-03 13:21:11 -04:00
Tesseract1234567890
e9eae40891 expanded multiplierTypes 2021-06-03 12:21:56 -04:00
Tesseract1234567890
0ec05f3fe2 get random modifier for augment function added 2021-06-03 12:10:26 -04:00
Tesseract1234567890
21611ec571 Made random mult into function 2021-06-03 12:01:10 -04:00
Tesseract1234567890
e7fde38bf9 testing step random 2021-06-03 11:55:50 -04:00
Tesseract1234567890
c47990ef56 Fixed RNG generation for augment 2021-06-03 11:36:32 -04:00
Tesseract1234567890
23cefed8d4 test 2021-06-03 11:33:15 -04:00
Tesseract1234567890
d86fb0262a Attempt 2 2021-06-03 11:30:43 -04:00
Tesseract1234567890
aef0cc815e added rng to circ. modulator 2021-06-03 11:18:55 -04:00
Tesseract1234567890
e0436a4314 increased effect of modulator to test 2021-06-03 11:07:05 -04:00
Tesseract1234567890
1ad0fbe2e1 Attempt #1 at creating custom augment 2021-06-03 11:03:53 -04:00
Kwazygloo
db21010fe4 Update FactionInfo.ts 2021-06-03 08:40:25 -04:00
Tesseract1234567890
0535a0c49b Fixed high HP values 2021-06-02 21:57:31 -04:00
Tesseract1234567890
6314000bd0 Fixed absurdly high skill counter on UI 2021-06-02 21:54:11 -04:00
Tesseract1234567890
a05335d6e2 fixed a stupid mistake 2021-06-02 21:47:32 -04:00
Tesseract1234567890
54114dc6d0 Edited formatAbsurdNumber; reinstated parts of formatShares 2021-06-02 21:41:58 -04:00
Tesseract1234567890
1b6058dd0a Fixed formatAbsurdNumber 2021-06-02 21:38:36 -04:00
Tesseract1234567890
75227233f3 Added class method formatAbsurdNumber 2021-06-02 21:33:27 -04:00
hydroflame
8d80ecffd4 Merge pull request #987 from danielyxie/dev
hotfix making getPlayer a non-singularity function
2021-06-02 21:29:41 -04:00
Olivier Gagnon
57ab1d885b build hotfix 2021-06-02 21:29:29 -04:00
Olivier Gagnon
34c2c70a2b hotfix getPlayer non-singularity 2021-06-02 21:28:07 -04:00
hydroflame
0ef09a1c73 Merge pull request #977 from Kwazygloo/patch-3
Update Literatures.ts
2021-06-02 21:19:53 -04:00
hydroflame
264e0b2e1a Merge pull request #982 from Kwazygloo/patch-1
Update AugmentationHelpers.jsx
2021-06-02 21:19:05 -04:00
hydroflame
5755db4979 Merge pull request #983 from Kwazygloo/patch-1
Update Literatures.ts
2021-06-02 21:18:19 -04:00
hydroflame
84b49bb5e9 Merge pull request #985 from Tesseract1234567890/ErrorMessagesFix
Fixed typos in error messages
2021-06-02 21:16:17 -04:00
hydroflame
fb89b824d9 Merge pull request #986 from Tesseract1234567890/HudTextMod
Capitalized HP in HUD
2021-06-02 21:15:19 -04:00
Tesseract1234567890
fee661b451 Capitalized HP 2021-06-02 16:31:21 -04:00
Tesseract1234567890
a40d0bb6e0 Fixed typos in error messages 2021-06-02 16:18:38 -04:00
Tesseract1234567890
f7f22ac7ef Fixed typos in error messages 2021-06-02 16:12:46 -04:00
Tesseract1234567890
8fba3c3fa4 Modified numeralFormat.ts to prevent NaNt from appearing 2021-06-02 16:07:52 -04:00
Kwazygloo
a72560bf25 Update Literatures.ts 2021-06-01 16:12:11 -04:00
Kwazygloo
21211e7d08 Update AugmentationHelpers.jsx 2021-06-01 12:36:57 -04:00
hydroflame
d627890047 Merge pull request #979 from danielyxie/dev
hotfix farming rep and hacking mission or infiltrations
2021-05-31 23:58:53 -04:00
Olivier Gagnon
a1e0d40963 hotfix farming rep and hacking mission or infiltrations 2021-05-31 23:58:34 -04:00
hydroflame
ca8fc54400 Merge pull request #978 from danielyxie/dev
hotfix being to do other stuff while working out at the gym
2021-05-31 23:44:14 -04:00
Olivier Gagnon
cf67213c36 hotfix being to do other stuff while working out at the gym 2021-05-31 23:43:51 -04:00
Kwazygloo
51b2175c35 Update Literatures.ts 2021-05-31 20:35:30 -04:00
hydroflame
531c0ce5c0 Merge pull request #974 from danielyxie/dev
v0.59.10
2021-05-31 17:35:35 -04:00
hydroflame
ad9c01ac50 Merge pull request #973 from danielyxie/v0.59.10
v0.59.10
2021-05-31 17:34:53 -04:00
Olivier Gagnon
0f266eaa42 v0.59.10 2021-05-31 17:34:23 -04:00
Olivier Gagnon
674ce17834 fix nearly all lint errors now 2021-05-29 14:48:56 -04:00
hydroflame
e611ab7bc7 Merge pull request #969 from danielyxie/dev
Hotfix Vigilante Justice reducing wanted by a percentage.
2021-05-29 12:50:53 -04:00
Olivier Gagnon
60d6d49c43 Vigilante Justice now reduces wanted by a percentage to help players stuck with very high wanted level. 2021-05-29 12:48:58 -04:00
Olivier Gagnon
75b2806c93 Added new SF -1 called Bypass 2021-05-29 12:10:17 -04:00
hydroflame
04b57f07a9 Merge pull request #967 from danielyxie/dev
Hotfix very large number to extend kmbt with qQsSon.
2021-05-27 14:05:04 -04:00
Olivier Gagnon
a2d924e1c6 revert dev menu to 1e99 money 2021-05-27 14:04:49 -04:00
Olivier Gagnon
f14f65814a Hotfix very large number to extend kmbt with qQsSon. 2021-05-27 14:03:53 -04:00
hydroflame
04921520d8 Merge pull request #966 from danielyxie/dev
Hotfix number of decimal for very large numbers
2021-05-26 17:55:26 -04:00
Olivier Gagnon
9d1e132d11 Hotfix number of decimal for very large numbers 2021-05-26 17:54:55 -04:00
hydroflame
eb84652e19 Merge pull request #965 from danielyxie/dev
Hotfix large numbers
2021-05-26 14:14:44 -04:00
Olivier Gagnon
7fedd1f1f5 Fix very large number appearing as NaN 2021-05-26 14:14:20 -04:00
hydroflame
ba4169268c Merge pull request #963 from Pimvgd/patch-6
Update GeneralActions.ts
2021-05-23 13:45:06 -04:00
Pimvgd
5bf21c0ab2 Update GeneralActions.ts
typo fix
2021-05-18 21:16:32 +02:00
hydroflame
670587a07d Merge pull request #962 from danielyxie/dev
hotfix grow percent being logged 100x too high
2021-05-18 10:52:05 -04:00
Olivier Gagnon
4dc206bb3e hotfix grow percent being logged 100x too high 2021-05-18 10:51:36 -04:00
hydroflame
a7389f63b8 Merge pull request #961 from danielyxie/dev
v0.51.9
2021-05-18 00:01:35 -04:00
Olivier Gagnon
8ba63f4951 update changelog 2021-05-18 00:00:51 -04:00
Olivier Gagnon
b28f607056 v0.51.9 2021-05-17 23:59:45 -04:00
Olivier Gagnon
218a9dd250 Sleeves earnings is now tracked in Character Stats Money 2021-05-17 22:03:48 -04:00
Olivier Gagnon
7a1fdd6c28 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2021-05-17 22:03:27 -04:00
Olivier Gagnon
b69a262faf ls no longer prints lingering newline 2021-05-17 21:58:11 -04:00
hydroflame
66c87b1f64 Merge pull request #673 from danielyxie/dependabot/npm_and_yarn/jquery-3.5.0
Bump jquery from 3.3.1 to 3.5.0
2021-05-17 21:51:00 -04:00
hydroflame
9bc1a4a895 Merge pull request #671 from danielyxie/dependabot/npm_and_yarn/acorn-6.4.1
Bump acorn from 6.2.0 to 6.4.1
2021-05-17 21:45:40 -04:00
dependabot[bot]
7a0d0b3fec Bump jquery from 3.3.1 to 3.5.0
Bumps [jquery](https://github.com/jquery/jquery) from 3.3.1 to 3.5.0.
- [Release notes](https://github.com/jquery/jquery/releases)
- [Commits](https://github.com/jquery/jquery/compare/3.3.1...3.5.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-18 01:26:20 +00:00
dependabot[bot]
dd077152f4 Bump acorn from 6.2.0 to 6.4.1
Bumps [acorn](https://github.com/acornjs/acorn) from 6.2.0 to 6.4.1.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.2.0...6.4.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-18 01:20:42 +00:00
hydroflame
2347e0b1fd Merge pull request #956 from danielyxie/dependabot/npm_and_yarn/codemirror-5.58.2
Bump codemirror from 5.43.0 to 5.58.2
2021-05-17 21:19:48 -04:00
Olivier Gagnon
188dcbad89 bladeburner supress option now correctly updates when blade become accessible/unaccessible 2021-05-17 21:17:17 -04:00
hydroflame
eb7004feaa Merge pull request #959 from MartinFournier/suppress-bladeburner-popup
Add setting to suppress Bladeburner prompts
2021-05-17 21:09:21 -04:00
Olivier Gagnon
062cd2dc38 update changelog 2021-05-17 21:08:29 -04:00
hydroflame
2f3e5c79e7 Merge pull request #954 from Daniferrito/bladeburner-fixes
Bladeburner fixes
2021-05-17 21:05:19 -04:00
Olivier Gagnon
bd172434d1 Fixed an issue where bladeburner would miscalculate hospitalization cost. 2021-05-17 20:18:05 -04:00
Olivier Gagnon
afc1347d3a Deleting a file without ext print a normal error msg. 2021-05-17 18:09:47 -04:00
Olivier Gagnon
b9c292f7cf Can no longer export negative amount 2021-05-17 18:04:10 -04:00
Olivier Gagnon
6df824613e Fix more bugs 2021-05-17 18:00:22 -04:00
Olivier Gagnon
de113a7b92 City hall no longer just has nothing when you can't create corp 2021-05-17 17:56:31 -04:00
Olivier Gagnon
4ec14460b6 more fixes 2021-05-17 17:49:39 -04:00
Olivier Gagnon
3f63d91448 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2021-05-17 17:12:37 -04:00
Olivier Gagnon
2ae9a3d2a7 fix fconf not being created and fix formatting in netscript functions 2021-05-17 17:12:35 -04:00
Martin Fournier
ae04b7357e Add setting to suppress Bladeburner popups
Used to suppress the message that is shown when your Bladeburner action
is cancelled when busy with something else.

Will be hidden if the player does not have access to Bladeburners.
2021-05-15 13:33:30 -04:00
hydroflame
bf141c7eb0 Merge pull request #958 from Daniferrito/dynamic-possibleLogs
Added dynamic generation of functionNames
2021-05-15 11:23:42 -04:00
Olivier Gagnon
1503d82e35 update changelog 2021-05-15 11:19:02 -04:00
hydroflame
a75efd9c62 Merge pull request #955 from Daniferrito/import-autoreload
Import autoreload
2021-05-15 11:16:24 -04:00
Olivier Gagnon
299e964e2b update changelog 2021-05-15 11:09:32 -04:00
hydroflame
69fbfe87c0 Merge branch 'dev' into import-autoreload 2021-05-15 11:08:36 -04:00
hydroflame
60a229030b Merge pull request #951 from Daniferrito/aliases
Recursive and multi-command alias
2021-05-15 11:06:06 -04:00
Olivier Gagnon
e27b19ffae update changelog 2021-05-15 11:05:52 -04:00
Olivier Gagnon
5e2c40ea23 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2021-05-15 10:56:00 -04:00
Olivier Gagnon
8411de8e42 remove offline calc from importing game 2021-05-15 10:54:19 -04:00
Daniel Ferri
525c0ada55 Added dynamic generation of functionNames 2021-05-12 21:10:36 +02:00
hydroflame
0e06565e27 Merge pull request #953 from MartinFournier/docker-support
Add basic docker support for development
2021-05-12 00:29:36 -04:00
dependabot[bot]
5e517d1671 Bump codemirror from 5.43.0 to 5.58.2
Bumps [codemirror](https://github.com/codemirror/CodeMirror) from 5.43.0 to 5.58.2.
- [Release notes](https://github.com/codemirror/CodeMirror/releases)
- [Changelog](https://github.com/codemirror/CodeMirror/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codemirror/CodeMirror/compare/5.43.0...5.58.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-12 00:32:31 +00:00
Daniel Ferri
1b57c1f7e0 Changed loops to be more concise 2021-05-11 20:16:18 +02:00
Daniel Ferri
0cb2fd1a87 Removed useless code 2021-05-11 19:46:51 +02:00
Daniel Ferri
08b0c7710d Changed import so it saves and reloads the page 2021-05-11 19:27:02 +02:00
Daniel Ferri
f8a085af7a Autofocus the input when opening a "Set Team Size" popup 2021-05-11 15:34:05 +02:00
Daniel Ferri
c95a926154 Add overflow time of bladeburner updates to the next update 2021-05-11 15:32:43 +02:00
Olivier Gagnon
5af10c8406 Offline money gain is based off hacking exp / time since last aug instead 2021-05-10 20:11:03 -04:00
Olivier Gagnon
0f2b7517b4 Added export bonus 2021-05-10 18:26:50 -04:00
Martin Fournier
ac8565d820 Add basic docker support for development
Assuming docker engine is installed, it is now possible to run the dev
server using 'docker-compose up --build' or run the production version using
'docker build -t bitburner . && docker run -it -p 8000:80 bitburner'.
2021-05-10 08:54:25 -04:00
hydroflame
2adcf79264 Merge pull request #952 from danielyxie/dev
hotfix ls not listing all files lol
2021-05-08 22:39:52 -04:00
Olivier Gagnon
2bd4892fa8 hotfix ls not listing all files lol 2021-05-08 22:38:48 -04:00
Daniel Ferri
46862d30fd Recursive and multi-command alias 2021-05-08 18:44:21 +02:00
hydroflame
fccf2b5cb4 Merge pull request #950 from danielyxie/dev
hotfix ls printing a bunch of newlines
2021-05-07 22:38:19 -04:00
Olivier Gagnon
f6af61d15b hotfix ls printing a bunch of newlines 2021-05-07 22:37:50 -04:00
hydroflame
b35d8475e3 Merge pull request #949 from danielyxie/dev
v0.51.8
2021-05-07 22:29:39 -04:00
Olivier Gagnon
04e8bc944e build 2021-05-07 22:29:18 -04:00
Olivier Gagnon
d96ad9fa6e v0.51.8 2021-05-07 22:26:02 -04:00
Olivier Gagnon
5dd32ef4e4 Scripts transfer stats to parent on death. 2021-05-07 22:01:52 -04:00
Olivier Gagnon
6dde89f3c4 0518 2021-05-07 22:01:52 -04:00
Olivier Gagnon
9a9d2e1f81 ls-changes 2021-05-07 22:01:23 -04:00
Pimvgd
d347bf568e Update Overview.jsx
fix space
2021-05-07 19:34:57 -04:00
Daniel Ferri
62e2f0582a Fixed bug with faction invitations not getting deleted 2021-05-07 19:12:30 -04:00
Daniel Ferri
68eb68a89e Added accepting numbers in 1b format to faction donations 2021-05-07 19:12:30 -04:00
Daniel Ferri
13206a8c3e Fixed casing on import
Did not want to compile without the change
2021-05-07 19:12:30 -04:00
Olivier Gagnon
cfd78e2d36 Add installBackdoor 2021-05-07 02:14:46 -04:00
Olivier Gagnon
8b7f140115 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2021-05-07 02:14:34 -04:00
Olivier Gagnon
16c8c78b54 Add installBackdoor 2021-05-07 02:13:33 -04:00
Olivier Gagnon
cbb47772db Add installBackdoor 2021-05-07 02:09:30 -04:00
Olivier Gagnon
0642491402 hotfix backdooring the world daemon not resetting flags 2021-05-06 11:12:41 -04:00
Olivier Gagnon
c7e34d4a56 hotfix backdooring the world daemon not resetting flags 2021-05-06 11:12:04 -04:00
hydroflame
8be63be17b Merge pull request #942 from danielyxie/dev
Another build for the quick and easy stuff.
2021-05-05 21:40:14 -04:00
Olivier Gagnon
08207ac79b another build 2021-05-05 21:39:48 -04:00
Olivier Gagnon
6747a509ff Reword the Milestones 2021-05-05 21:36:43 -04:00
Olivier Gagnon
c7c86240db Faction Donation does not appear on special or gang factions, passive rep doesnt work on gang or special factions 2021-05-05 21:32:06 -04:00
hydroflame
ce0c3d71f4 Merge pull request #941 from danielyxie/dev
hotfix for some stuff
2021-05-05 21:07:09 -04:00
Olivier Gagnon
5bb6a72c90 build 2021-05-05 21:02:54 -04:00
hydroflame
5a06c60c27 Merge pull request #940 from danielyxie/0517-2
0517 hotfix
2021-05-05 21:00:14 -04:00
Olivier Gagnon
764c2533b4 hashGainRate updated to use the correct usedRam and maxRam 2021-05-05 19:18:47 -04:00
Olivier Gagnon
a9cee6f907 Fix analyze Root Access displaying always Yes 2021-05-05 19:15:56 -04:00
Olivier Gagnon
a10100bf60 You cna now cd in dir that only contain text files. 2021-05-05 19:09:14 -04:00
Olivier Gagnon
cedac23dfa CodingContractPopup now correctly displays innerHTML, desc should be changed to return jsx though. 2021-05-05 19:06:08 -04:00
Olivier Gagnon
f7c1d64033 Delete Active Scripts actually deletes active scripts on all servers, not just home 2021-05-05 18:58:53 -04:00
hydroflame
7d6d0eac32 Merge pull request #939 from ModdedGamers/dev
Make it clear that maxNumNodes returns Infinity
2021-05-05 11:03:22 -04:00
Modded Gamers
34768591b7 Make it clear that maxNumNodes returns Infinity
this function returns Infinity in some cases, so this makes that clearer.
2021-05-05 10:00:16 -04:00
Daniel Xie
827c79f70c Add build for hotfix 2021-05-05 04:31:54 -07:00
Daniel Xie
0415c7aa7c Give NeuroFlux for SF-12 before re-calculating multipliers 2021-05-05 04:23:10 -07:00
hydroflame
0c744d98b9 Merge pull request #933 from danielyxie/dev
* .ns script no longer needlessly recompile
* scping the exact same content over doesn't trigger an actual scp
* world daemon can be backdoored
* Coding contract title is click-to-copy
* Sleeve memory covenant upgrade reacts better.
2021-05-03 19:54:31 -04:00
Olivier Gagnon
11cbda6974 build 2021-05-03 19:54:11 -04:00
Olivier Gagnon
e284f49747 Covenant sleeve memory upgrade styling and more reactive text field 2021-05-03 19:52:19 -04:00
Olivier Gagnon
7777c400a5 Make coding contract title click-to-copy 2021-05-03 19:46:04 -04:00
Olivier Gagnon
dae0448744 world daemon can now be backdoored 2021-05-03 19:00:01 -04:00
Olivier Gagnon
02a4e85353 Build nsjs recompile hotfix 2021-05-03 18:54:54 -04:00
hydroflame
3cbf225c98 Fix script needlessly being recompiled (#932)
* Fix nsjs recompiling needlesly.
2021-05-03 18:53:10 -04:00
hydroflame
8006e976a5 Merge pull request #929 from danielyxie/dev
Fix research tree not appearing
2021-05-03 18:25:04 -04:00
Olivier Gagnon
5613d371c9 Fix research tree not appearing 2021-05-03 18:24:22 -04:00
hydroflame
7c9d6669f7 Merge pull request #928 from danielyxie/dev
Hotfix Mission.jsx fake unused import
2021-05-03 17:25:19 -04:00
Olivier Gagnon
c6f0551709 Hotfix Mission.jsx fake unused import 2021-05-03 17:24:39 -04:00
hydroflame
f57eed4de1 Merge pull request #926 from danielyxie/dev
Hotfix
2021-05-03 16:03:12 -04:00
Olivier Gagnon
b99711788f Hotfix negative money, n00dles metadata and guide 2021-05-03 16:02:26 -04:00
Olivier Gagnon
08aac8e35d change noodles metadata. 2021-05-03 12:56:27 -04:00
hydroflame
e3579b7229 Merge pull request #925 from danielyxie/dev
did I forget the build again?
2021-05-03 12:27:21 -04:00
Olivier Gagnon
662d0dd5fb did I forget the build again 2021-05-03 12:26:37 -04:00
hydroflame
77c40b5d67 Merge pull request #924 from danielyxie/dev
Forgot to push the build
2021-05-03 12:21:28 -04:00
Olivier Gagnon
ee759a8dd6 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2021-05-03 12:20:54 -04:00
hydroflame
ad9c7ec696 Merge pull request #923 from danielyxie/dev
0.51.7
2021-05-03 12:18:18 -04:00
Olivier Gagnon
c9b5aaa2f7 v0.51.7 2021-05-03 12:17:05 -04:00
hydroflame
b554328a77 Merge pull request #915 from danielyxie/noodles
Noodles
2021-05-03 12:01:39 -04:00
Olivier Gagnon
c421c57e56 address comments. 2021-05-03 11:58:11 -04:00
hydroflame
fb42d5cd79 Merge pull request #918 from Pimvgd/patch-4
typo fixes for blackops
2021-05-03 02:26:47 -04:00
hydroflame
6203d8d6f4 Merge pull request #919 from Daniferrito/patch-2
Update ps documentation
2021-05-03 02:21:22 -04:00
Olivier Gagnon
d422028737 analyze and ServerProfiler.exe handle hacknet servers better. 2021-05-03 02:20:31 -04:00
Olivier Gagnon
136d769d55 Change faction invitation Yes,No to say Join and Decide later 2021-05-03 02:01:45 -04:00
Olivier Gagnon
daaab1d6f1 Fix forgotten text for Source-File 12 2021-05-03 01:55:04 -04:00
Olivier Gagnon
4f7befb639 Fix miscalculation of source file flags on the bitverse screen. 2021-05-03 01:50:09 -04:00
Olivier Gagnon
9976ed136c fix money formatting for amount under 1000 2021-05-03 01:44:02 -04:00
Olivier Gagnon
8c2e661e08 Remove console.log 2021-05-03 01:41:16 -04:00
Olivier Gagnon
e6e598eeb4 moved augmentations between city faction to be more even. 2021-05-03 01:40:22 -04:00
Olivier Gagnon
4d9439a007 Added getServerMaxRam and getServerUsedRam, deprecated getServerRam 2021-05-03 01:07:46 -04:00
Olivier Gagnon
9951c8b18f Fix mistake in hacknet API example 2021-05-03 00:51:12 -04:00
Olivier Gagnon
800c673839 Fix character-overview-text being nested twice. 2021-05-03 00:47:56 -04:00
Olivier Gagnon
065544909b thread count formatted with commas every thousands. 2021-05-03 00:45:21 -04:00
Olivier Gagnon
4eaf68c940 Donation is always visible but locked before favor requirements are fulfilled. 2021-05-03 00:37:53 -04:00
Olivier Gagnon
a14a694df3 Fix sleeves not being to work out at volhaven 2021-05-03 00:27:12 -04:00
Dani
3ab61cbaf3 Update ps documentation 2021-05-02 23:48:20 +02:00
Pimvgd
f49aff05d7 typo fixes for blackops 2021-05-02 23:44:59 +02:00
hydroflame
e2371a0ef6 Merge pull request #917 from Daniferrito/patch-1
Fixed #916
2021-05-02 17:38:47 -04:00
Dani
6a2b3ee52e Fixed #916 2021-05-02 23:37:09 +02:00
Olivier Gagnon
5a45e3584d Formatted time in netscript hgw display in human time, milliFormat now displays milli sometimes 2021-05-02 01:04:49 -04:00
Olivier Gagnon
56ce83cce5 Fix cashroot not displaying properly 2021-05-02 00:07:04 -04:00
Olivier Gagnon
d126b6d8c5 Fix sf minus 1 bad constant 2021-05-01 23:44:23 -04:00
Olivier Gagnon
7172ef6dae SF12 now lets player start with Neuroflux 2021-05-01 23:42:52 -04:00
Olivier Gagnon
a8d0b6e13d Tail now accepts PID 2021-05-01 23:33:44 -04:00
Olivier Gagnon
d2d6453a78 quick b1tflum3 2021-05-01 23:23:04 -04:00
Olivier Gagnon
89cdecb05f getBitnodeMultipliers is available inside BN5 2021-05-01 23:08:51 -04:00
Olivier Gagnon
81fdff9068 Revert tutorial servers and add the n00dles server. 2021-05-01 23:08:51 -04:00
hydroflame
34a20802c9 Merge pull request #910 from danielyxie/lint-fix
The mega linting patch
2021-05-01 23:08:10 -04:00
hydroflame
6d53ff109b Merge pull request #914 from Pimvgd/patch-3
Typo fixes
2021-05-01 21:50:08 -04:00
Pimvgd
8eab9f3b59 Update Bladeburner.jsx 2021-05-02 00:09:13 +02:00
Pimvgd
f40faadcc4 Update augmentations.rst 2021-05-01 18:04:27 +02:00
Pimvgd
fb129198a6 Update AugmentationHelpers.jsx
more typos
2021-05-01 17:43:13 +02:00
Pimvgd
3eecff1de6 Update netscriptbladeburnerapi.rst
fix typos
2021-05-01 17:34:55 +02:00
Olivier Gagnon
d745150c45 all the lints 2021-05-01 03:17:31 -04:00
Olivier Gagnon
abe0330dc3 css --fix 2021-04-29 23:59:43 -04:00
Olivier Gagnon
3fad505096 run auto fix lint 2021-04-29 23:52:56 -04:00
hydroflame
b2ac383b69 Merge pull request #909 from danielyxie/dev
When you hotfix you need to build
2021-04-29 13:41:48 -04:00
Olivier Gagnon
77cb63e36a When you hotfix you need to build 2021-04-29 13:41:13 -04:00
hydroflame
7df4aac8e6 Merge pull request #908 from danielyxie/dev
hotfix netscript access to formulas and getServer
2021-04-29 13:39:35 -04:00
Olivier Gagnon
50b490ba8d fix netscript access 2021-04-29 13:39:03 -04:00
hydroflame
15bd8a6233 Merge pull request #907 from danielyxie/dev
update patch notes
2021-04-28 20:26:38 -04:00
Olivier Gagnon
20c593b236 update patch notes 2021-04-28 20:25:51 -04:00
hydroflame
52a80ad236 v0.51.6 (#905)
* Make command `cd` without arguments an alias for `cd /` (#853)

In most shells `cd` without arguments takes you to the home directory
of the current user. I keep trying to do this due to muscle memory
from working in terminals, so I figured I'd make it do something useful.

There is no home directory in the game, but going to / is the closest
thing we have, since that is the starting point for the user in the
game.

* Add new `backdoor` terminal command (#852)

* Add the backdoor command to the terminal

This command will perform a manual hack without rewarding money. It will be used for the story, mainly for faction hacking tests

* Add tab completion for backdoor command

* Add help text for backdoor command

* Change condition syntax to be more consistent with others

* Extract reused code block so it is always called after actions

* Update documentation for new backdoor command

Modified references to manual hack as it isn't for factions anymore

* Remove extra parenthesis

* Rename manuallyHacked to backdoorInstalled

* Fix typo

* Change faction test messages to use backdoor instad of hack

* Rename more instances of manuallyHacked

* fixed typo in helptext of darkweb buy (#858)

* Fix typos and unify descriptions of augmentations (#859)

Made an attempt to...
- give all "+rep% company/faction" the same text
- make all augmentations with a single effect use a single line to describe the effect
- make all effects end with a period

* Made Cashroot starter kit display its tooltip with the money formatted properly and in gold

* fix typo in docs (#860)

* Initial code for Casino Card Deck implementation

* Casino Blackjack Implementation

* Update some tools (eslint, typescript)

* Blackjack code cleanup

* Update README_contribution

* Update ScriptHelpers.js (#861)

expand error message

* More augmentation typo fixes (#862)

* Add Netscript function getCurrentScript (#856)

Add netscript function that returns the current script.

* Added milestones menu to guide new players. (#865)

Milestone menu

* fix typos in milestones (#866)

Co-authored-by: sschmidTU <s.schmid@phonicscore.com>

* Corrupt location title when backdoor is installed (#864)

* Add corruptableText component

* Corrupt location title if backdoor is installed

* Formatting

* Add helper to check value of backdoorInstalled

Helper could be oneline but it would make it less readable

* Fix some formatting

* Add settings option to disable text effects

* Import useState

* getRunningScript (#867)

* Replaced getCurrentScript with getRunningScript

* Bunch of smaller fixes (#904)

Fix #884
Fix #879
Fix #878
Fix #876
Fix #874
Fix #873
Fix #887
Fix #891
Fix #895

* rework the early servers to be more noob friendly (#903)

* v0.51.6

Co-authored-by: Andreas Eriksson <2691182+AndreasTPC@users.noreply.github.com>
Co-authored-by: Jack <jackdewinter1@gmail.com>
Co-authored-by: Teun Pronk <5228255+Crownie88@users.noreply.github.com>
Co-authored-by: Pimvgd <Pimvgd@gmail.com>
Co-authored-by: Daniel Xie <daniel.xie@flockfreight.com>
Co-authored-by: Simon <33069673+sschmidTU@users.noreply.github.com>
Co-authored-by: sschmidTU <s.schmid@phonicscore.com>
2021-04-28 20:07:26 -04:00
hydroflame
b2aafea656 v0.51.5 (#848) 2021-04-21 08:20:26 -04:00
hydroflame
135df8703c V0.51.4 (#847)
* 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.
    * Fixed typo in alpha-omega.lit

* the game save text no longer obstruct the save game and options button

* the text editors now remember where your cursor was and restores it when loading the same script again.

* v0.51.4
2021-04-19 21:26:51 -04:00
hydroflame
4743801e86 hotfix (#846) 2021-04-18 11:33:46 -04:00
hydroflame
4e5ebcfe6f V0.51.3 (#845)
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 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.
2021-04-18 11:18:56 -04:00
hydroflame
80b703639e Small hotfix (#840)
* yesno box now correctly clean up before new content is loaded in.

* formatHp doesnt display decimal, duh

* character overview uses numeralWrapper formatHp

* minor formatting stuff

* Class spending is tracked indepedently of work money

* Made an augmentation named after myself.

* hotfix a bunch of small stuff
2021-04-12 20:03:32 -04:00
hydroflame
0afdba8f38 fixed ns imports requiring semicolon (#839) 2021-04-10 02:26:13 -04:00
hydroflame
925e96345d v0.51.2 (#838)
* infiltration use buttons instead of a links

* minor accessibility patch

* Hospitalization will not cost more than 10% of the players money.

* Adde hospitalization netscript function

* Removed the suggestion that the combat path will lead to Daedalus, it still will. But new players should not be told that this is a viable path to completing a BitNode.

* getMemberInformation now returns everything about the member.

* New netscript function to get the players hacknet server hash capacity

* yesno dialog box will not keep older messages anymore

* v0.51.1

* Casino part 1

* Discord link in options, documentation for getMemberInformation updated, dev menu has more money options, tech vendors now handle max cores or max ram better

* Removed text under Factiosn referencing rejected factions.

* Removed html element forgotten in plain text

* Casino implementation

* v0.51.2
2021-04-09 18:12:31 -04:00
hydroflame
db2bf79e3b v0.51.1 (#835)
* infiltration use buttons instead of a links

* minor accessibility patch

* Hospitalization will not cost more than 10% of the players money.

* Adde hospitalization netscript function

* Removed the suggestion that the combat path will lead to Daedalus, it still will. But new players should not be told that this is a viable path to completing a BitNode.

* getMemberInformation now returns everything about the member.

* New netscript function to get the players hacknet server hash capacity

* yesno dialog box will not keep older messages anymore

* v0.51.1
2021-04-06 03:50:09 -04:00
hydroflame
6f330efc44 Added Disable ASCII art to options (#832)
* hotfix getPlayer missing factions

* Added ability to disable ascii art in options. ASCII art is impossible to deal with for screenreaders.
2021-04-02 20:14:35 -04:00
hydroflame
708c73fa0f hotfix getPlayer missing factions (#831) 2021-04-01 12:55:43 -04:00
hydroflame
c7febd5551 Failed crime no longer pretend you gained money. (#830) 2021-04-01 00:06:00 -04:00
hydroflame
ddbdf66d00 hotfix analyze (#828)
* hotfix analyze
2021-03-31 11:45:55 -04:00
hydroflame
e572c6dad8 v0.51.0 (#826)
* Hash upgrades and Bladeburner skills can now be clicked to copy to clipboard

* Aug purchase confirmation popup displays money in 0.000a format

* Character now displays hacknet server info properly

* Character,Info now displays hacknet server info correctly.

* Formulas (#825)

Formulas API v0.1

* Make all money the same color, same for reputation, format all numbers consistently.

* rename a lot of the formulas function to no longer contain calculate

* added hacking related formulas

* removed unused variable

* v0.51.0
2021-03-31 00:45:21 -04:00
hydroflame
ff097db1e2 Merge pull request #824 from danielyxie/dev
Update sphinx changelog
2021-03-25 21:21:11 -04:00
Olivier Gagnon
ad12f0e551 Update sphinx changelog 2021-03-25 21:20:37 -04:00
hydroflame
93f8785ec6 Merge pull request #823 from danielyxie/dev
v0.50.2
2021-03-25 21:16:22 -04:00
Olivier Gagnon
69124e7146 v0.50.2 2021-03-25 21:15:02 -04:00
Olivier Gagnon
8a42f6e49c user stack trace now works for firefox 2021-03-25 02:48:15 -04:00
Olivier Gagnon
2ac4cd41bb Added new BitNode multiplier, GangKarmaRequirement. Different BitNodes need different amount of negative karma to create a Gang. 2021-03-23 21:47:47 -04:00
Olivier Gagnon
28584c8461 executeCommand has been removed in favor of connect and manualHack, which is what people have been asking for. 2021-03-23 21:30:15 -04:00
Olivier Gagnon
1eddddd14f Added executeCommand netscript function 2021-03-23 16:02:34 -04:00
Olivier Gagnon
42e9a368b4 modified changelog 2021-03-23 15:26:36 -04:00
Olivier Gagnon
40713a4112 Added alt g shortcut to gang and alt b shortcut to bladeburner 2021-03-23 15:25:18 -04:00
hydroflame
8e79658e67 Merge pull request #821 from danielyxie/dev
Fix typo in patch notes.
2021-03-22 18:57:10 -04:00
Olivier Gagnon
6efc3ec75e Fix typo in patch notes. 2021-03-22 18:56:32 -04:00
hydroflame
9840e1f4eb Merge pull request #820 from danielyxie/dev
0.50.1 hotfix version number
2021-03-22 18:51:52 -04:00
Olivier Gagnon
7cdca5e813 fix version number 2021-03-22 18:51:11 -04:00
hydroflame
d170693da4 Merge pull request #819 from danielyxie/dev
v0.50.1
2021-03-22 18:44:49 -04:00
Olivier Gagnon
31a9c041b4 Changelog related stuff 2021-03-22 18:44:41 -04:00
Olivier Gagnon
ce7c2c309c fix bug with getTaskTask release 50.1 2021-03-22 18:42:39 -04:00
Olivier Gagnon
29abffd464 Added the "Unclickable" Exploit. 2021-03-22 14:48:48 -04:00
Olivier Gagnon
ae4b8228f7 fixed a bug where completing a non-repeatable bitnode thats already max level would display level 4 on the bitverse and color it like level 1. 2021-03-21 18:41:48 -04:00
Olivier Gagnon
04bc2bebdd Factions Augmentation page now lists purchased augmentation separatly. 2021-03-21 18:03:16 -04:00
hydroflame
8f30e60d08 Merge pull request #818 from danielyxie/dev
v0.50.0
2021-03-20 05:35:16 -04:00
Olivier Gagnon
e8aa1851c5 build 2021-03-20 05:32:38 -04:00
Olivier Gagnon
7232a786ed Intelligence rework, most intelligence gain have been multiplied by at least 100, if not more. All intelligence use have been reviewed and often boosted but by a percentage. Typically this means intelligence gives a 2-6% boost to everything for normal players and around 13% for int farmers. 2021-03-20 05:29:53 -04:00
Olivier Gagnon
2507899762 Mission format rep earned with 0.000a 2021-03-20 03:54:52 -04:00
Olivier Gagnon
26149d5a01 fix numeralWrapper should not return NaN anymore as it'll default to 1e+X. 2021-03-19 23:08:41 -04:00
Olivier Gagnon
670394ca2f format rep gain in hacking mission. 2021-03-19 22:56:43 -04:00
Olivier Gagnon
e0745d7757 remove wiki button from hacking mission, fix jsx class not being className 2021-03-19 22:54:10 -04:00
Olivier Gagnon
dc79f7a940 Add ram cost to softReset documentation 2021-03-18 14:37:21 -04:00
Olivier Gagnon
bf4d841f88 align aug mults in bladeburner, faction augmentation now display required rep in 0.000a 2021-03-17 13:40:31 -04:00
Olivier Gagnon
4c30f107e3 convert more netscript functions to use common error message 2021-03-16 06:01:15 -04:00
Olivier Gagnon
c9fe8d9b65 Sleeve UI improvements. 2021-03-16 05:42:12 -04:00
Olivier Gagnon
29ea1281e0 changelog 2021-03-15 23:41:10 -04:00
Olivier Gagnon
3ec54bcdd8 Hacking factions no longer have hacking level requirements since the servers they need to hack already have requirements, formatting and styling in sleeves. 2021-03-15 23:40:28 -04:00
Olivier Gagnon
4892f0bd79 convert Hacking.js to Hacking.ts 2021-03-14 01:38:50 -05:00
Olivier Gagnon
62c571ef3a Convert CodingContractGenerator to typescript 2021-03-14 01:31:23 -05:00
Olivier Gagnon
6c57d548ec Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2021-03-14 01:09:05 -05:00
Olivier Gagnon
6c0b5b3ed9 Converting random pieces of code to ts 2021-03-14 01:08:24 -05:00
hydroflame
f288d982db Merge pull request #815 from RSBat/patch-2
Fix AutoLink.exe substitution in "Getting started"
2021-03-13 15:31:18 -05:00
hydroflame
101834fcaf Merge pull request #817 from danielyxie/dev
Hotfix 0.49.2, link tFormat in documentation and update version so it…
2021-03-13 15:30:50 -05:00
Olivier Gagnon
642c7a107a Hotfix 0.49.2, link tFormat in documentation and update version so it shows up in-game 2021-03-13 15:30:09 -05:00
hydroflame
63da8d709a Merge pull request #816 from danielyxie/dev
0.49.3
2021-03-13 15:19:56 -05:00
Olivier Gagnon
31e9f65f06 0.49.3 2021-03-13 15:19:07 -05:00
Olivier Gagnon
4ce7981cc0 fix issue under Character, Stats where the wrong effective stats was being calculated 2021-03-13 15:15:36 -05:00
Olivier Gagnon
d6016f490c bladeburner slowly being converted to typescript, added ScriptHackMoneyGain multiplier which is the money you actually gain from script hacks, not money drained, important for BN8 2021-03-13 15:10:55 -05:00
Olivier Gagnon
9ccdd7f4e5 unify checkboxes in bladeburner 2021-03-12 15:56:25 -05:00
Olivier Gagnon
def3846b72 bladeburner textbox now match style. 2021-03-12 14:38:49 -05:00
Olivier Gagnon
c76110b575 added tFormat to represent times. 2021-03-12 14:32:07 -05:00
Olivier Gagnon
3db440fd95 remove console.log calls 2021-03-12 14:20:56 -05:00
Olivier Gagnon
1df0af0fa4 fix bug in ace keywords highlight, more formatting in gang, update changelog 2021-03-12 14:20:39 -05:00
Olivier Gagnon
f8d65b9240 General style improvement in gang 2021-03-12 14:09:35 -05:00
Olivier Gagnon
a4fe6d80d6 update changelog, just to keep track 2021-03-12 13:47:23 -05:00
Olivier Gagnon
3a31ebdce3 Sleeves karma gain scales with sync. 2021-03-12 13:44:06 -05:00
Olivier Gagnon
8b812b92cc Ace now creates the list of keywords from the actual ns object, meaning we cant forget to add functions to that list anymore. Also fixes the bug where clearLog would not get highlighted because clear took precedence. 2021-03-12 13:31:27 -05:00
Sergei Kozelko
753a1f1193 Fix AutoLink.exe substitution in "Getting started" 2021-03-12 16:35:15 +03:00
Olivier Gagnon
2ce6ff2041 work to make documentation unified. 2021-03-12 02:51:56 -05:00
hydroflame
726c36f276 Merge pull request #814 from danielyxie/dev
0.49.1 fix ns.print
2021-03-11 20:47:46 -05:00
Olivier Gagnon
a00c253dcb 0.49.1 fix ns.print 2021-03-11 20:47:05 -05:00
hydroflame
640795dbe9 Merge pull request #813 from danielyxie/dev
v0.49.0
2021-03-11 20:41:05 -05:00
Olivier Gagnon
123628ec0b update changelog and build 0.49 2021-03-11 20:39:31 -05:00
Olivier Gagnon
cae28e2d25 softReset now accepts a callback script like installAugmentations 2021-03-11 20:37:58 -05:00
Olivier Gagnon
486d025572 Gang ascension is less effective as the multiplier goes up, Gang territory gain scales with Gang power. 2021-03-11 20:19:00 -05:00
Olivier Gagnon
d4816ad0c4 Remove remaining shouldLog calls. 2021-03-11 17:01:28 -05:00
Olivier Gagnon
e7dbc08e18 fix documentation for Bladeburner API. 2021-03-11 16:48:00 -05:00
hydroflame
0483c809ff Merge pull request #812 from danielyxie/loglinenumber
log stack trace
2021-03-11 03:05:34 -05:00
Olivier Gagnon
cd972dabe3 crash now prints ns stack trace, workerscript now does the shouldLog check on its own, many ns function are way simpler. 2021-03-11 03:02:05 -05:00
Olivier Gagnon
e2a353fc8a Attempt at logging line number on netscript error 2021-03-10 01:27:14 -05:00
Olivier Gagnon
1b8214b6fa removed filter from checkbox, update changelog to say 2021 instead of 2020 2021-03-09 23:40:33 -05:00
Olivier Gagnon
af584e8c87 Removed CharacterInfo maximum hacknet, styling in the options, comments in exploits 2021-03-09 23:22:05 -05:00
Olivier Gagnon
250841df66 Added sf minus 1, exploits 2021-03-08 20:31:34 -05:00
Olivier Gagnon
d9aef91ea3 Fix changelog 2021-03-08 15:30:05 -05:00
Olivier Gagnon
c285d494b9 update lodash 2021-03-07 22:49:55 -05:00
Olivier Gagnon
316a1aa475 Most console.log have been changed to console.warn or removed if they were debug 2021-03-07 22:46:50 -05:00
Olivier Gagnon
56a3660d38 update patch notes 2021-03-07 22:23:42 -05:00
Olivier Gagnon
e1aec379c1 getCrimeStats returns the inner stats of a crime 2021-03-07 22:22:23 -05:00
Olivier Gagnon
381ea915f7 update patch notes and getTaskStats documentation 2021-03-07 22:13:04 -05:00
Olivier Gagnon
619db14622 Added gang.getTaskStats which returns the stats of a gang task 2021-03-07 22:12:02 -05:00
Olivier Gagnon
84423e6309 gang.getEquipmentStats added, returns equipment multipliers 2021-03-07 22:01:31 -05:00
Olivier Gagnon
1d2136da4b Minor space formatting in Hacking,Active Scripts 2021-03-07 21:40:30 -05:00
hydroflame
802f28082d Merge pull request #811 from danielyxie/dev
v0.48.0
2021-03-07 18:46:03 -05:00
Olivier Gagnon
56441b8e34 run build for 0.48 2021-03-07 18:45:23 -05:00
Olivier Gagnon
5106315128 Character,Factions has a badge indicating how many pending invite the player has, Character,Augmentations has a badge indicating how many augs the player has bought but not installed. 2021-03-07 18:41:04 -05:00
Olivier Gagnon
6ca7f10faf 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. 2021-03-07 16:48:48 -05:00
Olivier Gagnon
56802fc85e The players gang is always listed first in gang terrority screen. 2021-03-07 16:35:17 -05:00
Olivier Gagnon
700583a739 fix broken color from character overview 2021-03-07 16:33:46 -05:00
Olivier Gagnon
a290b0bef5 Bladeburner can be accessed from other bitnodes if the player has SF7 2021-03-07 16:32:56 -05:00
Olivier Gagnon
79a06dd91c Character,Augmentations now display by how much the stats will increase. 2021-03-07 16:32:16 -05:00
Olivier Gagnon
6cd6f28820 Cities are now top-down view of metro maps in ascii 2021-03-07 16:14:08 -05:00
Olivier Gagnon
dabb5016fc Added maxNumNodes to the hacknet API 2021-03-07 16:03:21 -05:00
Olivier Gagnon
58e38faad6 Character percentages are aligned, server and hacknet limit are displayed, if the player has SF5 the reduces stats are shown. 2021-03-07 15:58:52 -05:00
Olivier Gagnon
31e8ca8c8d BN12 now reduces coding contract money 2021-03-07 13:27:21 -05:00
Olivier Gagnon
c72519e3ea Formatting and typo 2021-03-07 13:25:09 -05:00
Olivier Gagnon
58333c1b46 corporation textbox now match the rest of the game. 2021-03-07 13:21:00 -05:00
Olivier Gagnon
f0ad090cdc All BonusTime now displays in the H M S format 2021-03-07 13:19:36 -05:00
Olivier Gagnon
4bd1fce1f6 Fixed an issue where the gang equipment screen would freeze the game if a script installed augmentations while it is open. 2021-03-07 13:15:15 -05:00
Olivier Gagnon
b35e25e5dc New .ns scripts start with a main function. 2021-03-07 13:11:29 -05:00
Olivier Gagnon
a8bb345c88 Faction donation text-input style now matches the rest of the game. 2021-03-07 13:09:32 -05:00
Olivier Gagnon
bbe4f9c286 Pid resets to 1 when installing or destroying a BitNode. 2021-03-07 13:08:12 -05:00
Olivier Gagnon
f9dcefd6ea Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2021-03-07 12:58:59 -05:00
Olivier Gagnon
44c2bab557 Travel Agency now displays a world map. 2021-03-07 12:58:49 -05:00
Olivier Gagnon
fbca5a4d8f Travel Agency now displays a world map. 2021-03-07 12:58:04 -05:00
Olivier Gagnon
c2ceaa9bdd getCharacterInformation now additionally returns stat experience 2021-03-07 05:01:24 -05:00
Olivier Gagnon
dc402bef68 added getAugmentationStats to netscript, it returns the stat boost of an aug 2021-03-07 04:57:49 -05:00
Olivier Gagnon
64272c99fb Added softReset to netscript 2021-03-07 04:49:57 -05:00
Olivier Gagnon
c8377c0bb3 Fix SF3 listed with a limit level of infinity 2021-03-07 04:43:31 -05:00
hydroflame
4145ddad39 0.47.3 patch 2 fix documentation (#810) 2021-03-07 04:37:56 -05:00
hydroflame
e9dfe3c389 v0.47.3 (#808)
* Updated ram cost of documentation

* v0.47.3

Co-authored-by: Samuel A. Lamb <samuei@users.noreply.github.com>
2021-03-07 04:13:37 -05:00
kalobkalob
f9162e4d30 Update ls.rst (#734)
* Update ls.rst

Modified ram cost.

Co-authored-by: hydroflame <79246165+hydroflame@users.noreply.github.com>
2021-03-07 03:10:53 -05:00
danielyxie
b97fab2bf4 Fixed gym bug 2019-07-16 09:52:43 -07:00
danielyxie
3c9ebb75fe Merge pull request #647 from danielyxie/dev
v0.47.2-patch-1
2019-07-16 01:33:35 -07:00
danielyxie
434a522429 Merge branch 'dev' of https://github.com/danielyxie/bitburner into dev 2019-07-16 01:32:02 -07:00
danielyxie
49fa63971b Minor typo fixes for v0.47.2 2019-07-16 01:31:48 -07:00
Kalumniatoris
8dfc563c86 stockmarket.rst typo very -> every
fixed typo: "Stock prices are updated very ~6 seconds." -> "Stock prices are updated every ~6 seconds."
2019-07-16 01:31:47 -07:00
danielyxie
dded9103cb Minor typo fixes for v0.47.2 2019-07-16 01:30:35 -07:00
Kalumniatoris
741f57e9e2 stockmarket.rst typo very -> every
fixed typo: "Stock prices are updated very ~6 seconds." -> "Stock prices are updated every ~6 seconds."
2019-07-15 21:41:03 -07:00
danielyxie
59cf1d5baf v0.47.2 2019-07-15 21:40:43 -07:00
danielyxie
916ef06913 isBusy() now returns true if you are in a hacking mission 2019-07-15 21:40:43 -07:00
danielyxie
91ee65a101 Converted everything to use acorn npm package. Updated acorn packages to latest version. Updated acorn parsing to use ES9 2019-07-15 21:40:43 -07:00
danielyxie
042f926700 Minor bugfixes with killing Netscript scripts, and cleaned up text 2019-07-15 21:40:43 -07:00
danielyxie
c0432359c3 Implemented 'kill by PID' functionality 2019-07-15 21:40:43 -07:00
danielyxie
fbf5545708 Color-coded BitNode selection screen and added SF information 2019-07-15 21:40:43 -07:00
danielyxie
6ae7b0136c Minor bugfixes for a variety of NS functions. After infiltration, UI returns to corp page rather than city page 2019-07-15 21:40:43 -07:00
danielyxie
200ccd3ad0 Renamed getNoSuchRunningScriptErrorMessage() function 2019-07-15 21:40:43 -07:00
danielyxie
31f97f74fd Fix GH Issue #621: workForFaction() now properly accounts for disabled/enabled logs 2019-07-15 21:40:43 -07:00
danielyxie
4cabd2e4ed Implement GH Issue #620: Add tail() Netscript function 2019-07-15 21:40:43 -07:00
danielyxie
8be7fa9157 Implemented GH Issue #599: Added 'solarized dark' theme to CodeMirror 2019-07-15 21:40:43 -07:00
danielyxie
8ddf7dfbd4 Fix GH Issue #616: Stock Market UI throws error for certain locales because the price format length is too high 2019-07-15 21:40:43 -07:00
danielyxie
571ddb109a Fix GH Issue #632: 'Create Program' link visibility should now be properly dynamically evaluated 2019-07-15 21:40:43 -07:00
danielyxie
b2772bbfc1 Fixed GH Issue #641 2019-07-15 21:40:43 -07:00
danielyxie
57815ac6a0 v0.47.2 2019-07-15 21:40:13 -07:00
danielyxie
758f329d14 isBusy() now returns true if you are in a hacking mission 2019-07-13 22:44:53 -07:00
danielyxie
096f984d6b Converted everything to use acorn npm package. Updated acorn packages to latest version. Updated acorn parsing to use ES9 2019-07-13 22:36:12 -07:00
danielyxie
06cd584f10 Minor bugfixes with killing Netscript scripts, and cleaned up text 2019-07-13 20:55:58 -07:00
danielyxie
4f2f75762c Implemented 'kill by PID' functionality 2019-07-11 19:37:17 -07:00
danielyxie
d94516f39b Color-coded BitNode selection screen and added SF information 2019-07-08 18:41:59 -07:00
danielyxie
b479a3570e Minor bugfixes for a variety of NS functions. After infiltration, UI returns to corp page rather than city page 2019-07-08 18:41:59 -07:00
danielyxie
ac49b8074f Renamed getNoSuchRunningScriptErrorMessage() function 2019-07-04 18:14:34 -07:00
danielyxie
7a49a5b3e8 Fix GH Issue #621: workForFaction() now properly accounts for disabled/enabled logs 2019-07-04 18:14:34 -07:00
danielyxie
6d9e6e6466 Implement GH Issue #620: Add tail() Netscript function 2019-07-04 18:14:34 -07:00
danielyxie
2d179199ed Implemented GH Issue #599: Added 'solarized dark' theme to CodeMirror 2019-07-04 18:14:34 -07:00
danielyxie
dc928828e2 Fix GH Issue #616: Stock Market UI throws error for certain locales because the price format length is too high 2019-07-04 18:14:34 -07:00
danielyxie
658df9fb01 Fix GH Issue #632: 'Create Program' link visibility should now be properly dynamically evaluated 2019-07-01 21:15:11 -07:00
danielyxie
44bf3cb101 Fixed GH Issue #641 2019-07-01 20:39:12 -07:00
Papayaman1000
b82d7c12af Removed outdated information
Firefox added flagless support for dynamic imports in version 67, so it no longer needs special mention.
2019-06-28 13:23:24 -07:00
danielyxie
4476d6b258 Merge pull request #642 from danielyxie/dev
Dev
2019-06-28 13:22:53 -07:00
danielyxie
433b399de9 v0.47.1 2019-06-28 09:28:08 -07:00
danielyxie
58d04c0cbb Updated documentation changelog 2019-06-27 00:01:46 -07:00
danielyxie
e3a74f23a1 ps and top Terminal commands now show script pid. Updated version and changelog 2019-06-27 00:01:06 -07:00
danielyxie
3a374de210 killWorkerScript() now takes an optional argument for whether to rerenderUI. This is used to batch UI updates on killall() 2019-06-24 22:48:54 -07:00
danielyxie
4cc6437408 Updated WorkerScript-related code for the workerScripts array->map change 2019-06-24 22:48:54 -07:00
danielyxie
821725cf4d Initial commit for converting workerScripts pool to Map data structure 2019-06-24 22:48:54 -07:00
danielyxie
931de230ae Minor rebalancing to stock market. Updated documentation and tests for recent changes 2019-06-11 00:18:14 -07:00
danielyxie
7301946236 Added and Updated Stock Market tests for the new changes 2019-06-09 21:23:48 -07:00
danielyxie
a15041da75 More rebalancing for stock market changes. Transactions now affect second-order forecast (very slightly) 2019-06-09 15:12:33 -07:00
danielyxie
00f8c0a51f Removed debug stuff for beta branch 2019-06-04 21:31:45 -07:00
danielyxie
63483837bc Fixed version in changelog 2019-06-03 23:10:10 -07:00
danielyxie
dc5f4e6694 Updated documentation for new Stock Market changes. More rebalancing for recent stock market changes 2019-06-03 23:05:25 -07:00
danielyxie
35f8a5115a Finished implementing player influencing on stock 2nd-order forecasts. Balanced recent stock market changes 2019-06-03 22:21:36 -07:00
danielyxie
8398fd47f0 Changed the way stock market cycles occur. Stock second-order forecast now changes normally like before 2019-06-02 23:29:56 -07:00
danielyxie
9d7c869c0a Merge branch 'dev' of https://github.com/danielyxie/bitburner into dev 2019-06-02 20:57:57 -07:00
danielyxie
74587f269e Updated changelog 2019-06-02 20:57:39 -07:00
danielyxie
6a3ffff3ad Merge pull request #630 from jaguilar/ns2_recompile_when_script_write
Recompile scripts when updated via ns.write
2019-06-02 20:56:21 -07:00
J
2f8eac07ee fix indentation 2019-06-02 23:53:07 -04:00
J
3eaefa01f9 Merge branch 'dev' into ns2_recompile_when_script_write 2019-06-02 23:50:57 -04:00
danielyxie
b250af913d Merge pull request #629 from jaguilar/ns2_recompile_stale_deps
recompile ns2 scripts if dependencies change
2019-06-02 20:46:32 -07:00
danielyxie
0b4968d148 Re-added the getStockPurchaseCost() and getStockSaleGain() functions so we don't break user scripts 2019-06-02 20:28:02 -07:00
J
8817d179c6 Merge branch 'dev' into ns2_recompile_stale_deps 2019-06-02 23:03:20 -04:00
James Aguilar
e5e3fec1a9 close dialog boxes on escape 2019-06-02 20:00:14 -07:00
Heikki Aitakangas
eecb0c0f01 Update script.module immediately, so we avoid accidentally evaling the same module several times 2019-06-02 19:58:01 -07:00
James Aguilar
d45689c7df use sequence numbers rather than timestamps for script expiration 2019-06-02 20:26:06 -04:00
James Aguilar
2201dfc371 fix typo 2019-06-02 15:40:13 -04:00
James Aguilar
3ef9042051 fix two cases where markUpdated was not properly called 2019-06-02 15:38:45 -04:00
James Aguilar
1236ad252b markUpdated() for Script 2019-06-02 15:32:35 -04:00
James Aguilar
65331ab22e recompile ns2 scripts if dependencies change 2019-06-02 15:21:08 -04:00
danielyxie
c485fdfa87 Removed stock market price movement. Now only forecast is influenced by big transactions 2019-05-22 19:12:06 -07:00
danielyxie
6effda29a9 Implemented second-order forecasts for stocks 2019-05-22 17:23:30 -07:00
danielyxie
7035154454 Merge branch 'master' of https://github.com/danielyxie/bitburner into dev 2019-05-20 14:45:30 -07:00
danielyxie
d7f3ab9177 Tempered the affect that stock market txs have on stock forecasts 2019-05-20 14:44:51 -07:00
danielyxie
3660dde75f Merge branch 'master' of https://github.com/danielyxie/bitburner into dev 2019-05-19 14:07:16 -07:00
danielyxie
99688b78c7 Temporary rebalancing for v0.47.0 2019-05-19 14:06:53 -07:00
danielyxie
6841f24932 Optimized Largest Prime factor coding contract solver. 2019-05-19 13:56:49 -07:00
Sotisi
9f94d0838a removed faulty else, was left prior by accident. 2019-05-17 15:54:36 -07:00
Sotisi
086fc67ecc Fixed O(n) runtime of "Find Largest Prime Factor" for high primes to 0(sqrt(n)). 2019-05-17 15:54:36 -07:00
danielyxie
a2551f98c2 Fixed documentation typos in v0.47.0 2019-05-17 15:51:28 -07:00
danielyxie
95c928afc9 Merge branch 'dev' of https://github.com/danielyxie/bitburner into dev 2019-05-17 13:51:48 -07:00
danielyxie
8a00e6e532 Merge pull request #614 from danielyxie/active-scripts-ui-and-implementation-rework
Active scripts ui and implementation rework
2019-05-17 13:50:55 -07:00
danielyxie
287a97aea6 Fixed merge conflcits with dev 2019-05-17 13:50:27 -07:00
danielyxie
664267bff0 Removed unused imports in engine 2019-05-17 13:47:35 -07:00
danielyxie
2597b33f81 Finished refactoring augmentations page UI to use react 2019-05-17 13:47:35 -07:00
danielyxie
9442b348e6 Refactored SourceFile-related code to TypeScript 2019-05-17 13:47:35 -07:00
danielyxie
3b7f9c9fb0 Fixed issues with Active Scripts UI. Implemented event emitter for Active Scripts UI 2019-05-17 13:41:16 -07:00
danielyxie
20ca7533b0 Merge pull request #612 from danielyxie/dev
v0.47.0
2019-05-17 13:09:04 -07:00
danielyxie
15a324a946 v0.47.0 release 2019-05-17 13:07:11 -07:00
danielyxie
94175877d7 Changed stock market price movements so that upward and downward movements use different trackers. Forecast can no longer be inverted due to price movements. Updated stock market unit tests 2019-05-16 23:55:21 -07:00
danielyxie
c1ec3c5eba Finished refactoring Active Scripts UI into React/TypeScript. Currently untested 2019-05-16 23:44:59 -07:00
danielyxie
42804b0cd3 Refactored 'workerScripts' array and killWorkerScript() fn to be their own modules in TypeScript 2019-05-15 23:05:36 -07:00
danielyxie
b1248521f3 Removed unused imports in engine 2019-05-15 00:37:11 -07:00
danielyxie
b744997c72 Finished refactoring augmentations page UI to use react 2019-05-15 00:15:07 -07:00
danielyxie
2d37409392 Refactored SourceFile-related code to TypeScript 2019-05-14 20:56:59 -07:00
danielyxie
bd02e724e5 Fixed several more bugs. Rebalanced stock market changes to make the effects a bit less potent for now 2019-05-14 04:23:55 -07:00
danielyxie
fef7aaba8f Adding more directory-related unit tests. Several more bug fixes and QoL improvements 2019-05-14 01:35:37 -07:00
danielyxie
1775ea86ff Fixed corporation bug 2019-05-11 20:03:36 -07:00
danielyxie
b0918d7bd3 Fixed numerous reported bugs. Refactored some of the directory-related code. Added documentation for MasonDs changes to hack/grow/weaken 2019-05-11 19:20:20 -07:00
danielyxie
29e0ce5f96 Fixed merge conflicts 2019-05-11 02:20:09 -07:00
Mason Dechaineux
44c26165f4 (feat) optional threads argument to netscript functions hack, weaken, grow 2019-05-11 02:05:40 -07:00
danielyxie
9dd68947f1 Added Dynamic RAM calculation unit tests 2019-05-10 02:24:50 -07:00
danielyxie
db5fdb1fcb Last fixes to unit test build configuration 2019-05-09 19:51:56 -07:00
danielyxie
74e72854d8 Configured unit test webpack build to work 2019-05-09 19:36:04 -07:00
danielyxie
ece246b391 Converted mocha unit tests to run using mocha-webpack (mochapack) package 2019-05-09 19:03:13 -07:00
danielyxie
cdb5dfec62 Resolved more circular dependencies. Installed acorn-walk and imported it in RamCalculations using ES6 modules. Fixed bugs in stock market rework 2019-05-06 18:01:06 -07:00
danielyxie
8a5b6f6cbc Refactored stock buying/selling code into its own file. Refactored WorkerScript & NetscriptEnvironment into their own Typescript classes. Refactored a ton of code to remove circular dependencies 2019-05-04 21:03:40 -07:00
danielyxie
585e1ac7aa Stock transactions can now influence forecast in addition to price. Several more minor bug/UI fixes 2019-05-01 15:20:14 -07:00
danielyxie
8726946d4a Merge branch 'dev' of https://github.com/danielyxie/bitburner into dev 2019-04-30 02:27:58 -07:00
danielyxie
064008d200 Removed 'age' stat from Corporation employees 2019-04-30 02:27:48 -07:00
danielyxie
d955280f90 Re-sleeves can no longer have the Neuroflux Governor aug. This is to prevent bugs 2019-04-30 02:27:13 -07:00
danielyxie
580a7fac24 Bug fixes for v0.47.0. Fixed the BUY MAX feature for new stock market. Added collapse/expand tickers buttons for new stock market UI 2019-04-29 20:54:20 -07:00
danielyxie
9df054dd0c Merge branch 'dev' of https://github.com/danielyxie/bitburner into dev 2019-04-28 23:22:02 -07:00
Mason Dechaineux
8fa7b112e1 Correctly throw error when ns.run() is called with 0 threads 2019-04-28 23:21:55 -07:00
danielyxie
dd9df0a18c Fixed Stock Market UI. Added documentation for stock market changes 2019-04-28 23:21:32 -07:00
danielyxie
3a601a015d Added unit tests for Stock Market. Removed dependencies from package.json, since they're sourced directly in tests/index.html 2019-04-28 23:21:32 -07:00
danielyxie
87b4698d5b Fixed issues relating to stock price movements 2019-04-28 23:21:32 -07:00
danielyxie
67632ced09 Fixed Stock Market UI issues. Added warnings for price movements 2019-04-28 23:21:32 -07:00
danielyxie
d7fb335815 Fixed Stock market UI compilation errors and removed refactored code 2019-04-28 23:21:32 -07:00
danielyxie
4809a21e38 Finished React components for new Stock Market UI 2019-04-28 23:21:32 -07:00
danielyxie
6b3646e981 Added spread and price movement properties to stocks. Refactored Stock Market implementation code 2019-04-28 23:21:32 -07:00
danielyxie
0c64bf470a Merge branch 'master' of https://github.com/danielyxie/bitburner into dev 2019-04-20 23:37:51 -07:00
danielyxie
99e034921e Updated docuemntation changelog for v0.46.3 2019-04-20 23:37:37 -07:00
danielyxie
7a3a3de7d1 v0.46.3 2019-04-20 23:37:37 -07:00
danielyxie
f91c5bd7b9 Updated docuemntation changelog for v0.46.3 2019-04-19 22:29:33 -07:00
danielyxie
bcb198220d v0.46.3 2019-04-19 22:27:33 -07:00
danielyxie
bf1af6a68c Merge branch 'master' of https://github.com/danielyxie/bitburner into dev 2019-04-16 01:22:22 -07:00
danielyxie
3dd2975c61 Fixed issue with faction reputation donation bug calculating invalid rep gain 2019-04-16 01:20:52 -07:00
danielyxie
33f1e0cb3c Fixed several typos. TechVendor location UI will now properly update when you purchase TOR router. 'Manage Gang' faction option should show up properly 2019-04-16 01:20:52 -07:00
danielyxie
7514f63dcd Fixed issue with faction reputation donation bug calculating invalid rep gain 2019-04-16 01:19:29 -07:00
danielyxie
b6ff73391d Fixed several typos. TechVendor location UI will now properly update when you purchase TOR router. 'Manage Gang' faction option should show up properly 2019-04-15 02:49:49 -07:00
danielyxie
369ea8d381 Merge pull request #597 from danielyxie/dev
Dev
2019-04-14 02:26:37 -07:00
danielyxie
a7296c512c Fix merge conflicts 2019-04-14 02:26:47 -07:00
danielyxie
8f70817c10 Adding tooltips to new purchase augmentation ui 2019-04-14 02:21:43 -07:00
danielyxie
7417fb6ef8 v0.46.2 2019-04-14 02:08:10 -07:00
danielyxie
d044739f1c v0.46.2 2019-04-14 02:07:29 -07:00
danielyxie
3d1684f825 Fix Terminal wget bug. Issue #593 2019-04-14 02:07:29 -07:00
danielyxie
f6af9e94ab Gang bug fixes. Issues #574 and #575 2019-04-14 02:07:29 -07:00
danielyxie
215cf59e0b Fixed comment styling for all top-level src files 2019-04-14 02:07:29 -07:00
danielyxie
0d14cd6e7e Improved module import styling for all top-level src files 2019-04-14 02:07:29 -07:00
danielyxie
98a04e4932 Fix Terminal wget bug. Issue #593 2019-04-13 00:33:30 -07:00
danielyxie
8d33c5b571 Gang bug fixes. Issues #574 and #575 2019-04-13 00:26:49 -07:00
danielyxie
221b81d802 Fixed comment styling for all top-level src files 2019-04-12 20:47:17 -07:00
danielyxie
df89cc5002 Improved module import styling for all top-level src files 2019-04-12 20:47:17 -07:00
danielyxie
3b6b37f8a6 Merge pull request #594 from danielyxie/dev
v0.46.1
2019-04-12 16:53:19 -07:00
danielyxie
cf2acb8844 Updated documentation changelog for v0.46.1 2019-04-12 16:54:11 -07:00
danielyxie
2e9b028174 v0.46.1 build 2019-04-12 16:52:59 -07:00
danielyxie
c56645c794 Updated doc for new Terminal filesystem. Fixed some minor issues with new Location UI 2019-04-09 23:34:23 -07:00
danielyxie
3ce2e83dd8 Finished rudimentary filesystem implementation for Terminal 2019-04-09 23:07:12 -07:00
danielyxie
3241945452 Added hacknet node api functions for spending hashes. Fixed several bugs with v0.46.0. Rebalanced hash upgrades. continued working on terminal directory implementation 2019-04-05 02:08:41 -07:00
danielyxie
fb857642e8 Merge pull request #591 from danielyxie/location-code-refactor
Location code refactor
2019-04-03 20:38:02 -07:00
Olivier Gagnon
cc0e6548ff folders 2019-04-03 20:37:38 -07:00
danielyxie
6c3c569a44 Merge branch 'master' of https://github.com/danielyxie/bitburner into location-code-refactor 2019-04-03 17:12:16 -07:00
danielyxie
b5ebbba43d Fixed merge conflicts with dev 2019-04-03 17:12:11 -07:00
danielyxie
bf9b837e31 Fixed bugs with Location code refactor 2019-04-03 17:08:11 -07:00
danielyxie
7f88ade30e Merge pull request #590 from danielyxie/dev
v0.46.0
2019-04-03 16:59:42 -07:00
danielyxie
36499ae9f2 Fixed bug where sleeves's exp didnt properly reset on prestige. Updated versions to v0.46.0. Added production build 2019-04-03 16:58:15 -07:00
danielyxie
4b95ba9ed1 Finished location code refactor. Has not yet been tested 2019-04-01 02:23:25 -07:00
danielyxie
804e4c23e3 Updated Hacknet Node API documentation for the BN-9 changes. netscript functions now properly fail for Hacknet Servers 2019-03-30 19:53:57 -07:00
danielyxie
b6b6d8e9fa Fixed bug with purchasing Hacknet Servers not updating hash capacity when done through Netscript 2019-03-30 17:39:37 -07:00
danielyxie
c566c838be Merge branch 'master' of https://github.com/danielyxie/bitburner into dev 2019-03-29 20:01:43 -07:00
danielyxie
51d9274626 Added effects for Source-File 9 2019-03-29 20:01:34 -07:00
danielyxie
c8b478c208 Merge branch 'dev' of https://github.com/danielyxie/bitburner into dev 2019-03-29 16:14:40 -07:00
danielyxie
18a3f061b4 Rebalanced new Hacknet Node mechanics. Adjusted Hacknet API so that it'll work with hacknet Servers. Fixed Corporation bug with Issuing new Shares 2019-03-29 16:14:32 -07:00
danielyxie
3f8b9e4a32 Fixed merge conflicts. Rebalanced new Hacknet Node mechanics. Adjusted Hacknet API so that it'll work with hacknet Servers. Fixed Corporation bug with Issuing new Shares 2019-03-29 16:13:58 -07:00
Olivier Gagnon
e63ad76701 typo 2019-03-29 16:11:43 -07:00
Olivier Gagnon
cb66ad9628 fli1ght now displays the correct number of augs 2019-03-29 16:11:43 -07:00
danielyxie
971bfbada4 Merge pull request #587 from hydroflame/align-free
Align free
2019-03-29 16:11:25 -07:00
Olivier Gagnon
b646c15521 It is now possible to join bladeburners in BN7 without having SF6-1 2019-03-29 16:11:16 -07:00
Olivier Gagnon
92f7d12c0e free output is now aligned and shows percent used 2019-03-29 12:26:25 -04:00
danielyxie
7172f4e527 Began creating 'parent' components for the City and Location-specific parts of the UI 2019-03-29 00:12:41 -07:00
danielyxie
5592a8bc96 Updated several packages 2019-03-27 01:53:30 -07:00
danielyxie
c4cb7daac5 Initial v0.46.0 changes - Fixed BN9 bugs. Rebalanced BN11 and Corporations. Added memory to Dup sleeves. Various bug fixes 2019-03-27 01:36:14 -07:00
danielyxie
75bc34208c Initial commit for Location Code refactor 2019-03-27 01:31:47 -07:00
danielyxie
83fc4d81b2 Merge branch 'dev' of https://github.com/danielyxie/bitburner into dev 2019-03-25 21:48:18 -07:00
danielyxie
3cf18f100a Added several resuable React components for commonly-used elements 2019-03-25 21:43:18 -07:00
danielyxie
8fbb072596 Merge branch 'dev' of https://github.com/danielyxie/bitburner into dev 2019-03-24 23:08:32 -07:00
danielyxie
ea7f0752cb Merge pull request #572 from hydroflame/sleeve-buy-aug-api
Sleeve buy aug api
2019-03-24 23:07:34 -07:00
Olivier Gagnon
0f8f572519 Merge branch 'dev' into sleeve-buy-aug-api 2019-03-25 02:01:45 -04:00
danielyxie
52b6defebd Merge branch 'dev' of https://github.com/danielyxie/bitburner into dev 2019-03-24 20:18:44 -07:00
danielyxie
34d749809a BitNode-9 initial implementation 2019-03-24 20:17:47 -07:00
Olivier Gagnon
2ce4af2498 infiltration now scale exp gained by some factor to prevent some abuse 2019-03-24 20:09:39 -07:00
koriar
227bcf146e Fixing Corp Happiness typo 2019-03-24 20:03:22 -07:00
danielyxie
139a5add20 Cleaned up whitespace from a PR 2019-03-24 19:56:47 -07:00
danielyxie
3a61a5cfa1 Merge pull request #577 from danielyxie/dev
v0.45.1
2019-03-24 19:55:49 -07:00
Olivier Gagnon
96db360a36 added sleeve aug api 2019-03-23 00:22:40 -04:00
956 changed files with 137426 additions and 81943 deletions

View File

@@ -1,3 +0,0 @@
{
"presets": ["@babel/preset-react"]
}

3
.browserslistrc Normal file
View File

@@ -0,0 +1,3 @@
last 4 versions
not dead
not ie <= 11

14
.dockerignore Normal file
View File

@@ -0,0 +1,14 @@
node_modules/
.git
.gitattributes
.gitignore
.editorconfig
.dockerignore
Dockerfile
docker-compose.yml
*.md
Quotes.txt
netscript_tests/

View File

@@ -2,3 +2,5 @@ node_modules/
doc/build/
dist/
tests/*.bundle.*
src/ThirdParty/*
src/JSInterpreter.js

File diff suppressed because it is too large Load Diff

31
.github/workflows/deploy.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
name: CI
on:
push:
branches: [dev]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "14"
cache: "npm"
- name: Install Dependencies
run: npm ci
- name: Test
run: npm run test
- name: Build
run: npm run build
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: .

25
.github/workflows/test.yml vendored Normal file
View File

@@ -0,0 +1,25 @@
name: CI
on: [push, pull_request]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
test:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "14"
cache: "npm"
- name: Install Dependencies
run: npm ci
- name: Test
run: npm run test

11
.gitignore vendored
View File

@@ -1,8 +1,13 @@
.vscode
Changelog.txt
Netburner.txt
/doc/build
/node_modules
/dist/*.map
/tests/*.map
/tests/*.bundle.*
/tests/*.css
/test/*.map
/test/*.bundle.*
/test/*.css
.cypress
# editor files
.vscode

4
.prettierignore Normal file
View File

@@ -0,0 +1,4 @@
node_modules
package.json
dist
doc/build/

5
.prettierrc Normal file
View File

@@ -0,0 +1,5 @@
{
"trailingComma": "all",
"tabWidth": 2,
"printWidth": 120
}

View File

@@ -1,24 +1,27 @@
# Contributing to Bitburner
## In General
The game is made better because the community as a whole speaks up about
ways to improve the game. Here's some of the ways you can make your voice
heard:
- [Discord](https://discordapp.com)
There is a dedicated Discord instance set up for more free-form chats
between all members of the community. Regular players, heavy scripters,
Bitburner contributors, and everyone in between can be found on the
server.
- [Github Issues](https://github.com/danielyxie/bitburner/issues)
Although the term "issues" can have a negative connotation, they are a
means of communicating with the community. A new Issue can be a
interesting new feature that you feel would improve the game. It could be
an unexpected behavior within the game. Or because the game is about
scripting perhaps there is something that is conflicting with the
browser's Javascript interaction. So please do not be afraid to open a
[new issue](https://github.com/danielyxie/bitburner/issues/new).
- [Discord](https://discordapp.com)
There is a dedicated Discord instance set up for more free-form chats
between all members of the community. Regular players, heavy scripters,
Bitburner contributors, and everyone in between can be found on the
server.
- [Github Issues](https://github.com/danielyxie/bitburner/issues)
Although the term "issues" can have a negative connotation, they are a
means of communicating with the community. A new Issue can be a
interesting new feature that you feel would improve the game. It could be
an unexpected behavior within the game. Or because the game is about
scripting perhaps there is something that is conflicting with the
browser's Javascript interaction. So please do not be afraid to open a
[new issue](https://github.com/danielyxie/bitburner/issues/new).
## Reporting Bugs
The recommended method for reporting a bug is by opening a
[Github Issue](https://github.com/danielyxie/bitburner/issues).
@@ -30,18 +33,19 @@ already been reported as an [Issue](https://github.com/danielyxie/bitburner/issu
#### How to Submit a Good Bug Report
* **Use a clear and descriptive title** for the issue
* **State your browser, your browser's version, and your computer's OS**
* **Attach your save file**, if you think it would help solve the issue
* **Provide instructions on how to reproduce the bug** in as much detail
as possible. If you cannot reliably reproduce the bug, then just try
your best to explain what was happening when the bug occurred
* **Provide any scripts** that triggered the bug if the issue is Netscript-related
* **Open your browser's Dev Console and report any error-related output**
that may be printed there. The Dev Console can be opened on most modern
browsers by pressing F12
- **Use a clear and descriptive title** for the issue
- **State your browser, your browser's version, and your computer's OS**
- **Attach your save file**, if you think it would help solve the issue
- **Provide instructions on how to reproduce the bug** in as much detail
as possible. If you cannot reliably reproduce the bug, then just try
your best to explain what was happening when the bug occurred
- **Provide any scripts** that triggered the bug if the issue is Netscript-related
- **Open your browser's Dev Console and report any error-related output**
that may be printed there. The Dev Console can be opened on most modern
browsers by pressing F12
## As a Developer
Anyone is welcome to contribute to Bitburner code. However, please read
the [license](https://github.com/danielyxie/bitburner/blob/dev/license.txt)
and the [readme](https://github.com/danielyxie/bitburner/blob/dev/README.md)
@@ -52,64 +56,70 @@ To contribute to Bitburner code, you will need to have
called `npm` is installed as well.
#### What are you Allowed to Contribute?
Not all code contributions will be accepted. The safest way to ensure
that you don't waste time working on something that gets rejected is to
run your idea(s)/plan(s) past [danielyxie](https://github.com/danielyxie) first.
You can contact him through:
* Github
* Discord
* [Reddit](https://www.reddit.com/user/chapt3r/)
- Github
- Discord
- [Reddit](https://www.reddit.com/user/chapt3r/)
Otherwise, here are some general guidelines for determining what types of
changes are okay to contribute:
##### Contributions that Will Most Likely Be Accepted
* Bug Fixes
* Quality-of-Life Changes
* Adding a new, commonly-requested Netscript function
* Fixing or improving UI elements
* Adding game settings/options
* Adding a new Terminal command
* Code Refactors that conform to good/standard practices
- Bug Fixes
- Quality-of-Life Changes
- Adding a new, commonly-requested Netscript function
- Fixing or improving UI elements
- Adding game settings/options
- Adding a new Terminal command
- Code Refactors that conform to good/standard practices
##### Contributions that will not be Accepted without prior approval
* Changes that directly affect the game's balance
* New gameplay mechanics
- Changes that directly affect the game's balance
- New gameplay mechanics
#### Submitting a Pull Request
When submitting a pull request with your code contributions, please abide by
the following rules:
- Work in a branch forked from `dev` to isolate the new code
- Ensure you have latest from the [game's main
repository](danielyxie/bitburner@dev)
- Rebase your branch if necessary
- Run the game locally to test out your changes
- When submitting the pull request, make sure that the base fork is
_danielyxie/bitburner_ and the base is _dev_.
- If your changes affect the game's UI, attach some screenshots or GIFs showing
the changes to the UI
- If your changes affect Netscript, provide some
scripts that can be used to test the Netscript changes.
- Ensure you have run `npm run lint` to make sure your changes conform to the
rules enforced across the code base. The command will fail if any of the
linters find a violation.
- Do not check in any bundled files (`dist\*.bundle.js`) or the `index.html`
in the root of the repository. These will be updated as part of official
releases.
- Work in a branch forked from `dev` to isolate the new code
- Ensure you have latest from the [game's main
repository](danielyxie/bitburner@dev)
- Rebase your branch if necessary
- Run the game locally to test out your changes
- When submitting the pull request, make sure that the base fork is
_danielyxie/bitburner_ and the base is _dev_.
- If your changes affect the game's UI, attach some screenshots or GIFs showing
the changes to the UI
- If your changes affect Netscript, provide some
scripts that can be used to test the Netscript changes.
- Ensure you have run `npm run lint` to make sure your changes conform to the
rules enforced across the code base. The command will fail if any of the
linters find a violation.
- Do not check in any bundled files (`dist\*.bundle.js`) or the `index.html`
in the root of the repository. These will be updated as part of official
releases.
## As a Documentor
To contribute to and view your changes to the BitBurner documentation, you will
need to have Python installed, along with [Sphinx](http://www.sphinx-doc.org).
Before submitting your code for a pull request, please try to follow these
rules:
- Work in a branch forked from `dev` to isolate the new code
- Ensure you have latest from the [game's main
repository](danielyxie/bitburner@dev)
- Rebase your branch if necessary
- When submitting the pull request, make sure that the base fork is
_danielyxie/bitburner_ and the base is _dev_.
- Do not check in any generated files under `doc\`. The documentation is built
automatically by ReadTheDocs.
- Work in a branch forked from `dev` to isolate the new code
- Ensure you have latest from the [game's main
repository](danielyxie/bitburner@dev)
- Rebase your branch if necessary
- When submitting the pull request, make sure that the base fork is
_danielyxie/bitburner_ and the base is _dev_.
- Do not check in any generated files under `doc\`. The documentation is built
automatically by ReadTheDocs.

35
Dockerfile Normal file
View 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

View File

@@ -1,13 +1,13 @@
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.
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
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
not stable, and nor is any single thing within it. Stars consume themselves,

View File

@@ -1,8 +1,11 @@
# Bitburner
Bitburner is a cyberpunk hacking-themed incremental game. The game can be
played at https://danielyxie.github.io/bitburner.
Bitburner is a programming-based [incremental game](https://en.wikipedia.org/wiki/Incremental_game)
that revolves around hacking and cyberpunk themes.
The game can be played at https://danielyxie.github.io/bitburner.
# Documentation
The game's official documentation can be found on [Read The
Docs](http://bitburner.readthedocs.io/). Please note that this is still a
work-in-progress.
@@ -15,6 +18,7 @@ For further guidance, please refer to the "As A Documentor" section of
[CONTRIBUTING](CONTRIBUTING.md).
# Contribution
There are many ways to contribute to the game. It can be as simple as fixing
a typo, correcting a bug, or improving the UI. For guidance on doing so,
please refer to the [CONTRIBUTING](CONTRIBUTING.md) document.

21
README_contribution.md Normal file
View File

@@ -0,0 +1,21 @@
## 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`

3
babel.config.js Normal file
View File

@@ -0,0 +1,3 @@
module.exports = {
presets: ["@babel/preset-react", "@babel/preset-env", "@babel/preset-typescript"],
};

View File

@@ -1,61 +1,61 @@
@mixin animation($property) {
-webkit-animation: $property;
-moz-animation: $property;
-ms-animation: $property;
-o-animation: $property;
animation: $property;
-webkit-animation: $property;
-moz-animation: $property;
-ms-animation: $property;
-o-animation: $property;
animation: $property;
}
@mixin borderRadius($property) {
-webkit-border-radius: $property;
-moz-border-radius: $property;
border-radius: $property;
-webkit-border-radius: $property;
-moz-border-radius: $property;
border-radius: $property;
}
@mixin boxShadow($value) {
-webkit-box-shadow: $value;
-moz-box-shadow: $value;
box-shadow: $value;
-webkit-box-shadow: $value;
-moz-box-shadow: $value;
box-shadow: $value;
}
@mixin keyframes($animationName) {
@-webkit-keyframes #{$animationName} {
$browser: '-webkit-' !global;
@content;
}
@-webkit-keyframes #{$animationName} {
$browser: "-webkit-" !global;
@content;
}
@-moz-keyframes #{$animationName} {
$browser: '-moz-' !global;
@content;
}
@-moz-keyframes #{$animationName} {
$browser: "-moz-" !global;
@content;
}
@-ms-keyframes #{$animationName} {
$browser: '-ms-' !global;
@content;
}
@-ms-keyframes #{$animationName} {
$browser: "-ms-" !global;
@content;
}
@-o-keyframes #{$animationName} {
$browser: '-o-' !global;
@content;
}
@-o-keyframes #{$animationName} {
$browser: "-o-" !global;
@content;
}
@keyframes #{$animationName} {
$browser: '' !global;
@content;
}
@keyframes #{$animationName} {
$browser: "" !global;
@content;
}
}
@mixin transform($property) {
-webkit-transform: $property;
-moz-transform: $property;
-ms-transform: $property;
-o-transform: $property;
transform: $property;
-webkit-transform: $property;
-moz-transform: $property;
-ms-transform: $property;
-o-transform: $property;
transform: $property;
}
@mixin userSelect($value) {
-webkit-user-select: $value;
-moz-user-select: $value;
-ms-user-select: $value;
user-select: $value;
-webkit-user-select: $value;
-moz-user-select: $value;
-ms-user-select: $value;
user-select: $value;
}

View File

@@ -1,15 +1,15 @@
@import "theme";
* {
font-size: $defaultFontSize;
font-family: $fontFamily;
font-size: $defaultFontSize;
font-family: $fontFamily;
}
*,
*:before,
*:after {
margin: 0;
padding: 0;
box-sizing: border-box;
vertical-align: top;
margin: 0;
padding: 0;
box-sizing: border-box;
vertical-align: top;
}

View File

@@ -1,4 +1,5 @@
$fontFamily: 'Lucida Console', 'Lucida Sans Unicode', 'Fira Mono', 'Consolas', 'Courier New', Courier, monospace, 'Times New Roman';
$fontFamily: "Lucida Console", "Lucida Sans Unicode", "Fira Mono", "Consolas", "Courier New", Courier, monospace,
"Times New Roman";
$defaultFontSize: 16px;
/* COLORS */

132
css/activescripts.scss Normal file
View File

@@ -0,0 +1,132 @@
@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
View 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;
}
}

View File

@@ -1,135 +1,137 @@
@import "theme";
#bladeburner-container {
a,
div,
p,
pre,
td {
font-size: $defaultFontSize * 0.8125;
}
position: fixed;
padding: 6px;
a,
div,
p,
pre,
td {
font-size: $defaultFontSize * 0.8125;
}
}
.bladeburner-action {
border: 1px solid #fff;
margin: 7px;
padding: 7px;
white-space: pre-wrap;
border: 1px solid #fff;
margin: 7px;
padding: 7px;
white-space: pre-wrap;
pre {
white-space: pre-wrap;
}
pre {
white-space: pre-wrap;
}
}
/* Whatever action is currently active */
.bladeburner-active-action {
border: 4px solid #fff;
border: 4px solid #fff;
}
/* Action & Skills panel navigation button */
%bladeburner-nav-button {
border: 1px solid #fff;
margin: 2px;
padding: 2px;
color: #fff;
border: 1px solid #fff;
margin: 2px;
padding: 2px;
color: #fff;
}
.bladeburner-nav-button {
@extend %bladeburner-nav-button;
@extend %bladeburner-nav-button;
&:hover {
background-color: #3d4044;
}
&:hover {
background-color: #3d4044;
}
}
.bladeburner-nav-button-inactive {
@extend %bladeburner-nav-button;
@extend %bladeburner-nav-button;
text-decoration: none;
background-color: #555;
cursor: default;
pointer-events: none;
text-decoration: none;
background-color: #555;
cursor: default;
pointer-events: none;
}
/* Checkbox for (de)selecting autoleveling */
.bbcheckbox {
position: relative;
display: inline;
label {
width: 20px;
height: 20px;
cursor: pointer;
position: absolute;
top: 0;
left: 0;
background: black;
border-width: 1px;
border-color: white;
border-style: solid;
&:after {
content: '';
width: 9px;
height: 5px;
position: absolute;
top: 5px;
left: 5px;
border: 3px solid white;
border-top: none;
border-right: none;
opacity: 0;
transform: rotate(-45deg);
}
position: relative;
display: inline;
label {
width: 20px;
height: 20px;
cursor: pointer;
position: absolute;
top: 0;
left: 0;
background: black;
border-width: 1px;
border-color: white;
border-style: solid;
&:after {
content: "";
width: 9px;
height: 5px;
position: absolute;
top: 5px;
left: 5px;
border: 3px solid white;
border-top: none;
border-right: none;
opacity: 0;
transform: rotate(-45deg);
}
input[type=checkbox] {
margin: 3px;
visibility: hidden;
&:checked + label:after {
opacity: 1;
}
}
input[type="checkbox"] {
margin: 3px;
visibility: hidden;
&:checked + label:after {
opacity: 1;
}
}
}
/* Bladeburner Console */
.bladeburner-console-div {
display: inline-block;
width: 40%;
border: 1px solid #fff;
overflow: auto;
height: 100%;
position: absolute;
display: inline-block;
width: 40%;
border: 1px solid #fff;
overflow: auto;
height: 100%;
position: absolute;
}
.bladeburner-console-table {
height: auto;
overflow: auto;
table-layout: fixed;
width: 100%;
height: auto;
overflow: auto;
table-layout: fixed;
width: 100%;
}
.bladeburner-console-input-row {
transition: height 1s;
width: 100%;
transition: height 1s;
width: 100%;
}
.bladeburner-console-input-cell {
display: flex;
display: flex;
}
.bladeburner-console-input {
display: inline-block;
padding: 0 !important;
margin: 0 !important;
border: 0;
background-color: var(--my-background-color);
font-size: $defaultFontSize * 0.8125;
outline: none;
color: var(--my-font-color);
flex: 1 1 auto;
display: inline-block;
padding: 0 !important;
margin: 0 !important;
border: 0;
background-color: var(--my-background-color);
font-size: $defaultFontSize * 0.8125;
outline: none;
color: var(--my-font-color);
flex: 1 1 auto;
}
.bladeburner-console-line {
word-wrap: break-word;
hyphens: auto;
-webkit-hyphens: auto;
-moz-hyphens: auto;
word-wrap: break-word;
hyphens: auto;
-webkit-hyphens: auto;
-moz-hyphens: auto;
}

View File

@@ -1,5 +1,6 @@
@import "mixins";
@import "theme";
@import "styles";
/**
* Styling for all buttons
@@ -10,82 +11,80 @@
/* Remove default <button> styling */
button {
border: none;
background-color: transparent;
border: none;
background-color: transparent;
}
.a-link-button,
.std-button {
text-decoration: none;
background-color: #555;
color: #fff;
padding: 3px 5px;
margin: 5px;
border: 1px solid #333;
@extend .noselect;
text-decoration: none;
background-color: #555;
color: #fff;
padding: 3px 5px;
margin: 5px;
border: 1px solid #333;
-moz-user-select: none;
-ms-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
&:hover {
background-color: #666;
}
&:hover {
background-color: #666;
}
&:active {
@include boxShadow(inset 0 1px 4px rgba(0, 0, 0, 0.6));
}
&:active {
@include boxShadow(inset 0 1px 4px rgba(0, 0, 0, 0.6));
}
}
.a-link-button-inactive,
.std-button-disabled,
.std-button:disabled {
text-decoration: none;
background-color: #333;
color: #fff;
padding: 3px 5px;
margin: 5px;
border: 1px solid #333;
cursor: default;
text-decoration: none;
background-color: #333;
color: #fff;
padding: 3px 5px;
margin: 5px;
border: 1px solid #333;
cursor: default;
-moz-user-select: none;
-ms-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
&:hover {
.tooltiptext,
.tooltiptexthigh,
.tooltiptextleft {
visibility: visible;
}
&:hover {
.tooltiptext,
.tooltiptexthigh,
.tooltiptextleft {
visibility: visible;
}
}
&:active {
pointer-events: none;
}
&:active {
pointer-events: none;
}
}
.a-link-button-bought,
.std-button-bought {
text-decoration: none;
background-color: #0a0;
color: #fff;
padding: 3px 5px;
margin: 5px;
border: 1px solid #0a0;
cursor: default;
@extend .noselect;
text-decoration: none;
background-color: #0a0;
color: #fff;
padding: 3px 5px;
margin: 5px;
border: 1px solid #0a0;
cursor: default;
&:hover {
.tooltiptext,
.tooltiptexthigh,
.tooltiptextleft {
visibility: visible;
}
&:hover {
.tooltiptext,
.tooltiptexthigh,
.tooltiptextleft {
visibility: visible;
}
}
&:active {
pointer-events: none;
}
&:active {
pointer-events: none;
}
}
/**
@@ -93,21 +92,21 @@ button {
* It has a black background so it does not clash with the default accordion coloring
*/
.accordion-button {
@include borderRadius(12px);
@include boxShadow(1px 1px 3px #000);
@include borderRadius(12px);
@include boxShadow(1px 1px 3px #000);
color: #aaa;
font-size: $defaultFontSize;
font-weight: bold;
margin: 4px;
padding: 4px;
background-color: #000;
color: #aaa;
font-size: $defaultFontSize;
font-weight: bold;
margin: 4px;
padding: 4px;
background-color: #000;
&:hover,
&:active {
color: #fff;
text-decoration: none;
cursor: pointer;
}
/* TODO focus selector? */
&:hover,
&:active {
color: #fff;
text-decoration: none;
cursor: pointer;
}
/* TODO focus selector? */
}

24
css/casino.scss Normal file
View File

@@ -0,0 +1,24 @@
.casino-card {
padding: 10px;
border: solid 1px #808080;
background-color: white;
display: inline-block;
border-radius: 10px;
font-size: 18.5px;
text-align: center;
margin: 3px;
font-weight: bold;
}
.casino-card .value {
font-size: 20px;
font-family: sans-serif;
}
.casino-card.red {
color: red;
}
.casino-card.black {
color: black;
}

View File

@@ -2,88 +2,121 @@
@import "theme";
/**
* Styling for the Character Overview Panel (top-right)
* Styling for the Character Overview Panel (top-right panel)
*/
#character-overview-wrapper {
position: relative;
position: relative;
}
#character-overview-container {
display: none;
position: absolute; /* Stay in place */
right: 0;
top: 0;
height: auto; /* Full height */
padding: 10px 2px;
border: 2px solid var(--my-highlight-color);
width: auto;
max-width: 280px;
overflow: auto; /* Enable scroll if needed */
background-color: rgba(57, 54, 54, 0.9); /* Fallback color */
z-index: 1;
display: none;
position: absolute; /* Stay in place */
right: 0;
top: 0;
height: auto; /* Full height */
padding: 10px 2px;
border: 2px solid var(--my-highlight-color);
width: auto;
max-width: 280px;
overflow: auto; /* Enable scroll if needed */
background-color: rgba(57, 54, 54, 0.9); /* Fallback color */
z-index: 1;
}
#character-overview-text {
color: $my-stat-physical;
color: $my-stat-physical;
table {
border-collapse: collapse;
margin: auto;
}
table {
border-collapse: collapse;
margin: auto;
}
td {
padding: 2px;
vertical-align: middle;
}
td {
padding: 2px;
vertical-align: middle;
}
}
.character-stat-text {
color: #fff;
background-color: #444;
color: #fff;
background-color: #444;
}
.character-stat-cell {
text-align: right;
}
#character-hack-wrapper td,
#character-agi-wrapper td {
border-bottom: 1px #aaa solid;
padding-bottom: 10px;
.character-stat-cell {
text-align: right;
}
#character-str-wrapper td,
#character-cha-wrapper td {
padding-top: 10px;
padding-top: 10px;
}
#character-hp-wrapper { color: $my-stat-hp-color; }
#character-money-wrapper { color: $my-stat-money-color; }
#character-hack-wrapper { color: $my-stat-hack-color; }
#character-cha-wrapper { color: $my-stat-cha-color; }
#character-int-wrapper { color: $my-stat-int-color; }
.character-divider td {
border-top: 1px #aaa solid;
padding-top: 10px;
}
#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-cell {
color: $my-stat-money-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-cell {
color: $my-stat-cha-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 {
@include borderRadius(12px);
@include boxShadow(1px 1px 3px #000);
color: #cecece;
display: inline-block;
font-size: $defaultFontSize * 0.875;
font-weight: bold;
height: 25px;
background-color: #000;
padding: 5px 8px;
@include borderRadius(12px);
@include boxShadow(1px 1px 3px #000);
color: #cecece;
display: inline-block;
font-size: $defaultFontSize * 0.875;
font-weight: bold;
height: 25px;
background-color: #000;
padding: 5px 8px;
}
.character-quick-options {
margin-top: 10px;
text-align: center;
margin-top: 10px;
text-align: center;
}
.character-overview-btn:hover,
.character-overview-btn:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
color: #fff;
text-decoration: none;
cursor: pointer;
}

View File

@@ -5,45 +5,45 @@
*/
#codemirror-form-wrapper {
height: 80%;
margin: 10px 0px 0px 6px;
height: 80%;
margin: 10px 0 0 6px;
}
.CodeMirror {
height: 100%;
width: 100%;
border: 2px solid var(--my-highlight-color);
z-index: 1;
font-family: $fontFamily;
font-size: $defaultFontSize;
height: 100%;
width: 100%;
border: 2px solid var(--my-highlight-color);
z-index: 1;
font-family: $fontFamily;
font-size: $defaultFontSize;
}
/**
* Highlight matches
*/
.cm-matchhighlight {
background-color: #8F908A;
background-color: #8f908a;
}
.CodeMirror-selection-highlight-scrollbar {
background-color: #8F908A;
background-color: #8f908a;
}
/**
* Show Invisibles
*/
.cm-whitespace::before {
position: absolute;
pointer-events: none;
color: #404F7D;
position: absolute;
pointer-events: none;
color: #404f7d;
}
/**
* Vim command display
*/
#codemirror-vim-command-display-wrapper {
background-color: white;
font-size: 13px;
height: 30px;
margin-left: 6px;
background-color: white;
font-size: 13px;
height: 30px;
margin-left: 6px;
}

View File

@@ -12,154 +12,154 @@
#cmpy-mgmt-container a,
#cmpy-mgmt-container div,
#cmpy-mgmt-container br {
font-size: $defaultFontSize * 0.8125;
font-size: $defaultFontSize * 0.8125;
}
/* Header tabs */
.cmpy-mgmt-header-tab {
display: inline-block;
color: #fff;
background-color: #555;
border: 1px solid #fff;
padding: 4px;
display: inline-block;
color: #fff;
background-color: #555;
border: 1px solid #fff;
padding: 4px;
}
.cmpy-mgmt-header-tab:hover {
background-color: #666;
background-color: #666;
}
.cmpy-mgmt-header-tab.current {
background-color: #777;
background-color: #777;
}
/* Switch between Cities */
.cmpy-mgmt-city-tab {
display: inline-block;
color: #fff;
background-color: #555;
border: 1px solid #fff;
padding: 4px;
display: inline-block;
color: #fff;
background-color: #555;
border: 1px solid #fff;
padding: 4px;
}
.cmpy-mgmt-city-tab:hover {
background-color: #666;
background-color: #666;
}
.cmpy-mgmt-city-tab.current {
background-color: #777;
background-color: #777;
}
/* Panels */
#cmpy-mgmt-panel {
height: 90%;
height: 90%;
}
.cmpy-mgmt-industry-left-panel,
.cmpy-mgmt-industry-right-panel {
display: inline-block;
height: 100%;
overflow-y: auto;
overflow-x: auto;
overflow: visible;
top: 10px;
width: 45%;
display: inline-block;
height: 100%;
overflow-y: auto;
overflow-x: auto;
overflow: visible;
top: 10px;
width: 45%;
}
.cmpy-mgmt-industry-overview-panel {
border: 1px solid #fff;
color: var(--my-font-color);
display: inline-block;
padding: 3px;
width: 100%;
border: 1px solid #fff;
color: var(--my-font-color);
display: inline-block;
padding: 3px;
width: 100%;
}
.cmpy-mgmt-employee-panel {
border: 1px solid #fff;
display: block;
padding: 3px;
width: 100%;
border: 1px solid #fff;
display: block;
padding: 3px;
width: 100%;
}
.cmpy-mgmt-warehouse-panel {
border: 1px solid #fff;
display: inline-block;
padding: 3px;
width: 100%;
border: 1px solid #fff;
display: inline-block;
padding: 3px;
width: 100%;
}
/* Hiring new employees */
.cmpy-mgmt-find-employee-option {
border: 1px solid #fff;
margin: 6px;
border: 1px solid #fff;
margin: 6px;
}
.cmpy-mgmt-find-employee-option:hover {
background-color: #3d4044;
background-color: #3d4044;
}
/* Warehouse */
.cmpy-mgmt-warehouse-material-div {
padding: 2px;
border: 1px solid #fff;
padding: 2px;
border: 1px solid #fff;
}
.cmpy-mgmt-warehouse-product-div {
padding: 2px;
border: 1px solid #fff;
padding: 2px;
border: 1px solid #fff;
}
/* Exporting materials/products */
.cmpy-mgmt-existing-export {
border: 1px solid #fff;
border-radius: 25px;
margin: 4px;
padding: 4px;
border: 1px solid #fff;
border-radius: 25px;
margin: 4px;
padding: 4px;
}
.cmpy-mgmt-existing-export:hover {
background-color: #333;
background-color: #333;
}
/* Corporation Upgrades */
.cmpy-mgmt-upgrade-container {
border: 1px solid #fff;
width: 60%;
margin: 4px;
border: 1px solid #fff;
width: 60%;
margin: 4px;
}
.cmpy-mgmt-upgrade-header {
margin: 6px;
padding: 6px;
margin: 6px;
padding: 6px;
}
.cmpy-mgmt-upgrade-div {
display: inline-block;
border: 1px solid #fff;
margin: 2px;
padding: 6px;
border-radius: 25px;
font-size: $defaultFontSize * 0.75;
color: var(--my-font-color);
display: inline-block;
border: 1px solid #fff;
margin: 2px;
padding: 6px;
border-radius: 25px;
font-size: $defaultFontSize * 0.75;
color: var(--my-font-color);
}
.cmpy-mgmt-upgrade-div:hover {
background-color: #333;
background-color: #333;
}
/* Industry Upgrades */
.industry-purchases-and-upgrades-header {
font-size: 14px;
margin: 2px;
padding: 2px;
font-size: 14px;
margin: 2px;
padding: 2px;
}
/* Advertising */
.cmpy-mgmt-advertising-info {
font-size: $defaultFontSize * 0.75;
font-size: $defaultFontSize * 0.75;
}
/* Research */
#corporation-research-popup-box-content {
overflow-x: auto !important;
overflow-y: auto !important;
overflow-x: auto !important;
overflow-y: auto !important;
}

4
css/corporation.scss Normal file
View File

@@ -0,0 +1,4 @@
#corporation-container {
position: fixed;
padding: 6px;
}

View File

@@ -1,36 +1,32 @@
.add-exp-button {
margin-right: 0px;
margin-right: 0;
}
.remove-exp-button {
margin-left:0px;
margin-left: 0;
}
.exp-input {
margin-right: 0px;
margin-left:0px;
margin-top: 5px;
margin-bottom: 5px;
margin: 5px 0 5px 0;
padding: 2px 5px;
padding: 2px 5px;
}
.text-center {
margin: auto;
text-align: center;
vertical-align: middle;
margin: auto;
text-align: center;
vertical-align: middle;
}
.touch-right {
margin-right: 0px;
margin-right: 0;
}
.touch-left {
margin-left: 0px;
margin-left: 0;
}
.touch-sides {
margin-left: 0px;
margin-right: 0px;
}
margin-left: 0;
margin-right: 0;
}

View File

@@ -7,13 +7,13 @@
@import "theme";
#game-options-right-panel {
a {
display: block;
width: 46%;
}
a {
display: block;
width: 46%;
}
button {
display: inline-block;
width: 46%;
}
button {
display: inline-block;
width: 46%;
}
}

View File

@@ -6,28 +6,29 @@
*/
#gang-container {
position: fixed;
padding: 6px;
position: fixed;
padding: 6px;
p, pre {
font-size: $defaultFontSize * 0.9375;
}
p,
pre {
font-size: $defaultFontSize * 0.9375;
}
select {
background-color: black;
color: white;
}
select {
background-color: black;
color: white;
}
}
#gang-management-subpage > p {
padding: 4px;
padding: 4px;
}
.gang-member-info-div {
background-color: #555;
display: inline;
float: left;
width: 30%;
background-color: #555;
display: inline;
float: left;
width: 30%;
}
/**
@@ -35,14 +36,14 @@
*/
.gang-owned-upgrades-div {
display: inline-block;
margin-left: 6px;
width: 75%;
display: inline-block;
margin-left: 6px;
width: 75%;
}
.gang-owned-upgrade {
border: 1px solid white;
font-size: 12px;
margin: 1px;
padding: 1px;
border: 1px solid white;
font-size: 12px;
margin: 1px;
padding: 1px;
}

3409
css/grid.min.css vendored

File diff suppressed because one or more lines are too long

75
css/hacknetnodes.scss Normal file
View File

@@ -0,0 +1,75 @@
@import "mixins";
@import "theme";
/**
* Styling for the Hacknet Nodes UI Page
*/
#hacknet-nodes-container {
position: fixed;
padding: 10px;
}
.hacknet-general-info {
margin: 10px;
width: 70vw;
}
#hacknet-nodes-container li {
float: left;
overflow: hidden;
white-space: nowrap;
&.hacknet-node {
$boxShadowArgs: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
@include boxShadow($boxShadowArgs);
margin: 6px;
padding: 7px;
width: 35vw;
border: 2px solid var(--my-highlight-color);
}
}
#hacknet-nodes-list {
list-style: none;
width: 82vw;
}
#hacknet-nodes-money {
margin: 10px;
float: left;
}
#hacknet-nodes-money-multipliers-div {
display: inline-block;
width: 70vw;
}
#hacknet-nodes-multipliers {
float: right;
}
#hacknet-nodes-purchase-button {
display: inline-block;
}
.hacknet-node-container {
display: inline-table;
.row {
display: table-row;
height: 30px;
p {
display: table-cell;
}
}
.upgradable-info {
display: inline-block;
margin: 0 4px; /* Don't want the vertical margin/padding, just left & right */
padding: 0 4px;
width: $defaultFontSize * 4;
}
}

61
css/infiltration.scss Normal file
View File

@@ -0,0 +1,61 @@
@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;
}
}

View File

@@ -3,69 +3,88 @@
/* interactivetutorial.css */
#interactive-tutorial-wrapper {
position: relative;
position: relative;
}
#interactive-tutorial-container {
display: none;
position: absolute; /* Stay in place */
right: 0;
top: 0;
height: 450px;
padding: 10px;
border: 5px solid #fff;
width: 23%;
overflow: hidden;
background-color: #444; /* Fallback color */
color: #fff;
display: none;
position: absolute; /* Stay in place */
right: 0;
top: 0;
height: 450px;
padding: 10px;
border: 5px solid #fff;
width: 23%;
overflow: hidden;
background-color: #444; /* Fallback color */
color: #fff;
> strong {
background-color: #444;
}
> strong {
background-color: #444;
}
}
#interactive-tutorial-text {
padding: 4px;
margin: 4px;
color: #fff;
background-color: #444;
font-size: $defaultFontSize * 0.875;
max-height: 350px;
overflow-y: auto;
padding: 4px;
margin: 4px;
color: #fff;
background-color: #444;
font-size: $defaultFontSize * 0.875;
max-height: 350px;
overflow-y: auto;
}
#interactive-tutorial-exit,
#interactive-tutorial-next,
#interactive-tutorial-back {
@include borderRadius(12px);
@include boxShadow(1px 1px 3px #000);
@include borderRadius(12px);
@include boxShadow(1px 1px 3px #000);
color: #aaa;
font-size: $defaultFontSize * 1.125;
font-weight: bold;
background-color: #000;
color: #aaa;
font-size: $defaultFontSize * 1.125;
font-weight: bold;
background-color: #000;
&:hover,
&:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
&:hover,
&:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
}
#interactive-tutorial-exit {
position: absolute;
bottom: 0;
left: 0;
padding: 4px;
position: absolute;
bottom: 0;
left: 0;
padding: 4px;
}
#interactive-tutorial-back {
float: left;
padding: 4px;
float: left;
padding: 4px;
}
#interactive-tutorial-next {
float: right;
padding: 4px;
float: right;
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;
}

View File

@@ -3,109 +3,109 @@
@import "theme";
@include keyframes(LOADERSPINNER) {
0% {
#{$browser}transform: translate(-50%, -50%) rotate(0deg);
}
100% {
#{$browser}transform: translate(-50%, -50%) rotate(360deg);
}
0% {
#{$browser}transform: translate(-50%, -50%) rotate(0deg);
}
100% {
#{$browser}transform: translate(-50%, -50%) rotate(360deg);
}
}
@include keyframes(LOADERLABEL) {
0% {
opacity: 1.0;
#{$browser}transform: translate(-50%, -50%) scale(1.0);
}
5% {
opacity: 0.5;
#{$browser}transform: translate(-50%, -50%) scale(0.5);
}
95% {
opacity: 0.5;
#{$browser}transform: translate(-50%, -50%) scale(0.5);
}
100% {
opacity: 1.0;
#{$browser}transform: translate(-50%, -50%) scale(1.0);
}
0% {
opacity: 1;
#{$browser}transform: translate(-50%, -50%) scale(1);
}
5% {
opacity: 0.5;
#{$browser}transform: translate(-50%, -50%) scale(0.5);
}
95% {
opacity: 0.5;
#{$browser}transform: translate(-50%, -50%) scale(0.5);
}
100% {
opacity: 1;
#{$browser}transform: translate(-50%, -50%) scale(1);
}
}
.loaderoverlay {
$spinnerBoxSize: 200px;
$themeColor: #6f3;
$spinnerBoxSize: 200px;
$themeColor: #6f3;
position: absolute;
width: 100%;
height: 100%;
background: #000;
color: $themeColor;
%spinnerBox {
border: 20px solid rgba(0, 0, 0, 0);
border-top-color: $themeColor;
border-bottom-color: $themeColor;
border-radius: 1000px;
position: absolute;
width: 100%;
height: 100%;
background: #000;
color: $themeColor;
top: 50%;
left: 50%;
}
%spinnerBox {
border: 20px solid rgba(0, 0, 0, 0);
border-top-color: $themeColor;
border-bottom-color: $themeColor;
border-radius: 1000px;
position: absolute;
top: 50%;
left: 50%;
}
.loaderspinner:before,
.loaderspinner:after {
content: "";
}
.loaderspinner:before,
.loaderspinner:after {
content: "";
}
.loaderspinner {
@extend %spinnerBox;
@include animation(LOADERSPINNER 5s linear infinite);
.loaderspinner {
@extend %spinnerBox;
@include animation(LOADERSPINNER 5s linear infinite);
width: $spinnerBoxSize;
height: $spinnerBoxSize;
}
width: $spinnerBoxSize;
height: $spinnerBoxSize;
}
.loaderspinner:before {
@extend %spinnerBox;
@include animation(LOADERSPINNER 10s linear infinite);
.loaderspinner:before {
@extend %spinnerBox;
@include animation(LOADERSPINNER 10s linear infinite);
width: $spinnerBoxSize * 0.8;
height: $spinnerBoxSize * 0.8;
}
width: $spinnerBoxSize * 0.8;
height: $spinnerBoxSize * 0.8;
}
.loaderspinner:after {
@extend %spinnerBox;
@include animation(LOADERSPINNER 5s linear infinite);
.loaderspinner:after {
@extend %spinnerBox;
@include animation(LOADERSPINNER 5s linear infinite);
width: $spinnerBoxSize * 0.6;
height: $spinnerBoxSize * 0.6;
}
width: $spinnerBoxSize * 0.6;
height: $spinnerBoxSize * 0.6;
}
.loaderlabel {
@include animation(LOADERLABEL 5s linear infinite);
.loaderlabel {
@include animation(LOADERLABEL 5s linear infinite);
text-transform: uppercase;
font-family: sans-serif;
font-size: $defaultFontSize * 1.375;
font-weight: 700;
letter-spacing: 2px;
position: absolute;
top: 50%;
left: 50%;
}
text-transform: uppercase;
font-family: sans-serif;
font-size: $defaultFontSize * 1.375;
font-weight: 700;
letter-spacing: 2px;
position: absolute;
top: 50%;
left: 50%;
}
}
.killAllMessage {
position: absolute;
top: 95%;
left: 50%;
-webkit-transform: translateX(-50%);
-moz-transform: translateX(-50%);
-ms-transform: translateX(-50%);
-o-transform: translateX(-50%);
transform: translateX(-50%);
position: absolute;
top: 95%;
left: 50%;
-webkit-transform: translateX(-50%);
-moz-transform: translateX(-50%);
-ms-transform: translateX(-50%);
-o-transform: translateX(-50%);
transform: translateX(-50%);
}
.killAllMessageWrapperHidden {
display: none;
display: none;
}
.killAllMessageWrapperShow {
display: block;
display: block;
}

View File

@@ -6,130 +6,130 @@
*/
.mainmenu {
list-style-type: none;
margin: 0;
padding: 0;
width: 10%;
position: fixed;
height: 100%;
overflow: auto;
list-style-type: none;
margin: 0;
padding: 0;
width: 10%;
position: fixed;
height: 100%;
overflow: auto;
border: 0;
border-bottom: 1px solid #000;
border-radius: 0;
background-color: #333;
border: 0;
border-bottom: 1px solid #000;
border-radius: 0;
background-color: #333;
}
/* Default buttons */
.mainmenu > li a,
.mainmenu > li button {
display: block;
color: #e6e6e6;
background-color: #555;
padding: 12px 8px;
display: block;
color: #e6e6e6;
background-color: #555;
padding: 12px 8px;
text-decoration: none;
cursor: pointer;
width: 100%;
text-align: left;
text-decoration: none;
cursor: pointer;
width: 100%;
text-align: left;
}
.mainmenu.classic > li a,
.mainmenu.classic > li button {
padding: 16px;
padding: 16px;
}
.mainmenu.compact > li a,
.mainmenu.compact > li button {
display: block;
color: #e6e6e6;
background-color: #555;
display: block;
color: #e6e6e6;
background-color: #555;
text-decoration: none;
cursor: pointer;
width: 100%;
text-align: left;
padding: 4px;
text-decoration: none;
cursor: pointer;
width: 100%;
text-align: left;
padding: 4px;
}
/* Hovering makes them lighter */
.mainmenu > li a:hover,
.mainmenu > li a:hover:not(.active),
.mainmenu > li a:focus {
background-color: #777;
color: #fff;
background-color: #777;
color: #fff;
}
.mainmenu > li button:hover,
.mainmenu > li button:hover:not(.active) {
background-color: #777;
color: #fff;
background-color: #777;
color: #fff;
}
/* Panel headers can become active, and they are "lighter" than the rest */
.mainmenu > li a.active,
.mainmenu > li button.active {
background-color: #777;
color: #fff;
background-color: #777;
color: #fff;
}
.mainmenu > li a.active:hover,
.mainmenu > li button.active:hover {
background-color: #aaa;
background-color: #aaa;
}
#hacking-menu-header-li,
#character-menu-header-li,
#world-menu-header-li,
#help-menu-header-li {
position: relative;
position: relative;
}
/* Accordion Outline */
.mainmenu-accordion-header,
.mainmenu-accordion-header-compact {
outline: 2px solid #fff !important;
outline: 2px solid #fff !important;
}
.mainmenu-accordion-header-classic {
border: 2px solid #fff;
padding: 16px !important;
border: 2px solid #fff;
padding: 16px !important;
}
/* Plus and minus signs */
.mainmenu-accordion-header:after,
.mainmenu-accordion-header-compact:after {
content: '\02795';
float: right;
font-size: $defaultFontSize * 0.8125;
position: absolute;
bottom: 25%;
right: 3px;
color: transparent;
text-shadow: 0 0 0 #fff;
content: "\02795";
float: right;
font-size: $defaultFontSize * 0.8125;
position: absolute;
bottom: 25%;
right: 3px;
color: transparent;
text-shadow: 0 0 0 #fff;
}
.mainmenu-accordion-header-classic:after {
content: '\02795';
float: right;
font-size: $defaultFontSize * 0.8125;
color: #fff;
margin-left: 5px;
content: "\02795";
float: right;
font-size: $defaultFontSize * 0.8125;
color: #fff;
margin-left: 5px;
}
.mainmenu-accordion-header.opened,
.mainmenu-accordion-header-classic.opened,
.mainmenu-accordion-header-compact.opened {
background-color: #222 !important;
background-color: #222 !important;
&:after {
content: "\2796";
}
&:after {
content: "\2796";
}
}
/* Slide down transition */
.mainmenu-accordion-panel {
max-height: 0;
opacity: 1;
transition: max-height 0.2s ease-out;
max-height: 0;
opacity: 1;
transition: max-height 0.2s ease-out;
}

View File

@@ -5,425 +5,151 @@
terminal which has its own page) */
.generic-menupage-container {
height: 100%;
padding-left: 10px;
margin-left: 10%;
width: 99%;
overflow-y: scroll;
height: 100%;
padding-left: 10px;
margin-left: 10%;
width: 99%;
overflow-y: scroll;
}
/* Character Info */
#character-container {
padding-top: 10px;
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%;
}
}
/* Hacknet Nodes */
#hacknet-nodes-container {
position: fixed;
padding: 10px;
}
#hacknet-nodes-text,
#hacknet-nodes-container li {
margin: 10px;
padding: 10px;
}
#hacknet-nodes-container li {
float: left;
overflow: hidden;
white-space: nowrap;
&.hacknet-node {
$boxShadowArgs: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
@include boxShadow($boxShadowArgs);
margin: 6px;
padding: 7px;
width: 35vw;
border: 2px solid var(--my-highlight-color);
}
}
#hacknet-nodes-list {
list-style: none;
width: 82vw;
}
#hacknet-nodes-money {
margin: 10px;
float: left;
}
#hacknet-nodes-money-multipliers-div {
display: inline-block;
width: 70vw;
}
#hacknet-nodes-multipliers {
float: right;
}
#hacknet-nodes-purchase-button {
display: inline-block;
}
.hacknet-node-container {
display: inline-table;
.row {
display: table-row;
height: 30px;
p {
display: table-cell;
}
}
.upgradable-info {
display: inline-block;
margin: 0 4px; /* Don't want the vertical margin/padding, just left & right */
padding: 0 4px;
width: $defaultFontSize * 4;
}
}
.menu-page-text {
width: 70vw;
padding-top: 10px;
position: fixed;
}
/* World */
#world-container {
position: fixed;
padding-top: 10px;
position: fixed;
padding-top: 10px;
}
#world-city-name,
#world-city-desc {
padding: 4px;
margin: 4px;
padding: 4px;
margin: 4px;
}
/* Create program */
#create-program-container {
position: fixed;
padding-top: 10px;
position: fixed;
padding-top: 10px;
}
#create-program-page-text,
#create-program-list {
width: 70%;
width: 70%;
}
/* Factions and Faction (Single Faction page) */
#factions-container {
position: fixed;
padding-top: 10px;
position: fixed;
padding-top: 10px;
}
#faction-container {
position: fixed;
padding-top: 10px;
position: fixed;
padding-top: 10px;
}
.faction-work-div {
width: 70%;
height: 100%;
width: 70%;
height: 100%;
}
.faction-work-div-wrapper {
overflow: hidden;
border: 2px solid #333;
padding: 6px;
margin: 6px;
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%;
overflow: hidden;
border: 2px solid #333;
padding: 6px;
margin: 6px;
width: 70%;
}
#faction-container p,
#faction-container pre {
padding: 4px 6px;
margin: 4px 6px;
padding: 4px 6px;
margin: 4px 6px;
}
#faction-container pre {
width: 70%;
white-space: pre-wrap; /* Since CSS 2.1 */
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
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;
}
width: 70%;
white-space: pre-wrap; /* Since CSS 2.1 */
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
/* World */
#world-container li {
margin: 0 0 15px 0;
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;
}
margin: 0 0 15px 0;
list-style-type: none;
}
/* Tutorial */
#tutorial-container {
position: fixed;
padding-top: 10px;
position: fixed;
padding-top: 10px;
}
#tutorial-text {
width: 70%;
margin: 10px;
width: 70%;
margin: 10px;
}
#tutorial-container a {
width: 50%;
width: 50%;
}
/* Dev menu */
#dev-menu-container {
position: fixed;
padding-top: 10px;
position: fixed;
padding-top: 10px;
}
#dev-menu-text {
width: 70%;
margin: 10px;
width: 70%;
margin: 10px;
}
#dev-menu-container a {
width: 50%;
width: 50%;
}
/* Location */
#location-container {
position: fixed;
padding: 6px;
overflow-x: hidden;
position: fixed;
padding: 6px;
overflow-x: hidden;
}
#location-container a {
display: inline-block;
width: 30%;
display: inline-block;
width: 30%;
}
#location-slums-description {
width: 70%;
margin: 10px;
width: 70%;
margin: 10px;
}
#location-return-to-world-button {
margin: 10px;
padding: 6px;
margin: 10px;
padding: 6px;
}
#location-container > * {
margin: 10px 5px 10px 5px;
margin: 10px 5px 10px 5px;
}
#location-job-reputation,
#location-company-favor {
display: inline;
display: inline;
}
/* Infiltration */
#infiltration-container {
position: fixed;
padding: 6px;
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%;
position: fixed;
margin: 5px;
width: 70%;
}

5
css/milestones.scss Normal file
View File

@@ -0,0 +1,5 @@
#milestones-container {
position: fixed;
padding: 6px;
width: 60%;
}

View File

@@ -5,115 +5,115 @@
/* Hacking missions */
#mission-container {
overflow: hidden;
overflow: hidden;
}
.hack-mission-grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
grid-gap: 2.5%;
height: 90%;
position: absolute;
width: 100%;
overflow-y: auto;
padding-right: 10px;
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
grid-gap: 2.5%;
height: 90%;
position: absolute;
width: 100%;
overflow-y: auto;
padding-right: 10px;
&::-webkit-scrollbar {
display: none;
}
&::-webkit-scrollbar {
display: none;
}
}
.hack-mission-node {
z-index: 5;
background-color: #808080;
align-self: center;
justify-self: center;
display: inline-block;
z-index: 5;
background-color: #808080;
align-self: center;
justify-self: center;
display: inline-block;
p {
@include userSelect(none);
p {
@include userSelect(none);
margin-top: 8px;
color: #fff;
font-size: $defaultFontSize * 0.75;
text-align: center;
}
margin-top: 8px;
color: #fff;
font-size: $defaultFontSize * 0.75;
text-align: center;
}
}
.hack-mission-player-node {
color: #fff;
background-color: #00f;
color: #fff;
background-color: #00f;
}
.hack-mission-player-node-active {
border: 2px solid #fff;
background-color: #66f;
border: 2px solid #fff;
background-color: #66f;
}
.hack-mission-enemy-node {
color: #fff;
background-color: #f00;
color: #fff;
background-color: #f00;
}
.hack-mission-cpu-node {
@include borderRadius(50%);
width: 100%;
height: 100%;
@include borderRadius(50%);
width: 100%;
height: 100%;
}
.hack-mission-firewall-node {
width: 90%;
height: 100%;
width: 90%;
height: 100%;
}
.hack-mission-database-node {
@include transform(skew(20deg));
@include transform(skew(20deg));
width: 100%;
height: 90%;
width: 100%;
height: 90%;
p {
@include transform(skew(-20deg));
@include userSelect(none);
p {
@include transform(skew(-20deg));
@include userSelect(none);
color: #fff;
font-size: $defaultFontSize * 0.75;
margin-top: 8px;
text-align: center;
}
color: #fff;
font-size: $defaultFontSize * 0.75;
margin-top: 8px;
text-align: center;
}
}
.hack-mission-transfer-node {
@include transform(skew(-20deg));
@include transform(skew(-20deg));
width: 100%;
height: 90%;
width: 100%;
height: 90%;
p {
@include transform(skew(20deg));
@include userSelect(none);
p {
@include transform(skew(20deg));
@include userSelect(none);
color: #fff;
font-size: $defaultFontSize * 0.75;
margin-top: 8px;
text-align: center;
}
color: #fff;
font-size: $defaultFontSize * 0.75;
margin-top: 8px;
text-align: center;
}
}
.hack-mission-spam-node,
.hack-mission-shield-node {
height: 100%;
width: 100%;
height: 100%;
width: 100%;
}
/* Non-map related DOM elements */
/* Element at the top of the Hacking Mission page (intro page, start button, guide buttons, etc.) */
.hack-mission-header-element {
margin: 6px;
margin: 6px;
}
.hack-mission-action-buttons-container {
border: 2px solid #fff;
border: 2px solid #fff;
}

View File

@@ -1,197 +1,244 @@
@import "mixins";
@import "theme";
@import "styles";
/* Pop-up boxes */
.popup-box-container {
display: none; /* Hidden by default */
position: fixed; /* Stay in place */
z-index: 10; /* Sit on top */
left: 0;
top: 0;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
overflow: auto;
background-color: rbga(var(--my-background-color), 0.4);
display: none; /* Initially hidden */
position: fixed; /* Stay in place */
z-index: 10; /* Sit on top */
left: 0;
top: 0;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
background-color: rbga(var(--my-background-color), 0.4);
}
.popup-box-content {
background-color: var(--my-background-color);
padding: 12px;
border: 5px solid var(--my-highlight-color);
width: 70%;
max-height: 80%;
overflow-y: auto;
color: var(--my-font-color);
background-color: var(--my-background-color);
padding: 12px;
border: 5px solid var(--my-highlight-color);
width: 70%;
max-height: 80%;
overflow-y: auto;
z-index: 11; /* Sit on top of the container */
color: var(--my-font-color);
}
.popup-box-button,
.popup-box-button-inactive {
color: #aaa;
float: right;
font-size: $defaultFontSize;
font-weight: bold;
padding: 2px;
margin: 6px;
border: 1px solid #fff;
background-color: #000;
color: #aaa;
float: right;
font-size: $defaultFontSize;
font-weight: bold;
padding: 2px;
margin: 6px;
border: 1px solid #fff;
background-color: #000;
}
.popup-box-button:hover,
.popup-box-button:focus {
color: var(--my-font-color);
text-decoration: none;
cursor: pointer;
color: var(--my-font-color);
text-decoration: none;
cursor: pointer;
}
.popupbox-button-inactive {
pointer-events: none;
cursor: default;
pointer-events: none;
cursor: default;
}
#yes-no-text-input-box-input {
color: var(--my-font-color);
border: 1px solid #fff;
background-color: #000;
color: var(--my-font-color);
border: 1px solid #fff;
background-color: #000;
}
.dialog-box-container,
#log-box-container {
display: block;
position: absolute;
z-index: 10;
width: 50%;
height: auto;
max-height: 50%;
top: 40%;
left: 50%;
margin: -10% 0 0 -25%;
overflow: auto;
background-color: var(--my-background-color);
border: 5px solid var(--my-highlight-color);
.dialog-box-container {
display: block;
position: absolute;
z-index: 10;
width: 50%;
height: auto;
max-height: 50%;
top: 40%;
left: 50%;
margin: -10% 0 0 -25%;
overflow: auto;
background-color: var(--my-background-color);
border: 5px solid var(--my-highlight-color);
}
.dialog-box-content,
#log-box-content {
z-index: 2;
background-color: var(--my-background-color);
padding: 10px;
.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);
}
p span {
padding: 0;
margin: 0;
}
.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;
}
.log-box-button:hover,
.log-box-button:focus {
color: var(--my-font-color);
text-decoration: none;
cursor: pointer;
}
.dialog-box-content {
z-index: 2;
background-color: var(--my-background-color);
padding: 10px;
p span {
padding: 0;
margin: 0;
}
}
.dialog-box-close-button {
@include borderRadius(12px);
@include boxShadow(1px 1px 3px #000);
@include borderRadius(12px);
@include boxShadow(1px 1px 3px #000);
@extend .noselect;
float: right;
color: #aaa;
font-size: $defaultFontSize * 1.25;
font-weight: bold;
float: right;
color: #aaa;
font-size: $defaultFontSize * 1.25;
font-weight: bold;
}
#log-box-close {
position: fixed;
right: 27%;
position: fixed;
right: 27%;
}
#log-box-kill-script {
right: 11%;
position: relative;
right: 11%;
position: relative;
}
#log-box-close, #log-box-kill-script {
float: right;
display: inline-block;
#log-box-close,
#log-box-kill-script {
float: right;
display: inline-block;
}
.dialog-box-close-button:hover,
.dialog-box-close-button:focus,{
color: #fff;
text-decoration: none;
cursor: pointer;
.dialog-box-close-button:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
/* Faction invitation box */
#faction-invitation-box-container {
transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
}
#faction-invitation-box-warning {
margin: 4px;
padding: 4px;
margin: 4px;
padding: 4px;
}
/* Infiltration-box */
#infiltration-box-sell,
#infiltration-box-faction {
display: block;
padding: 8px;
margin: 8px;
display: block;
padding: 8px;
margin: 8px;
}
#infiltration-box-content span {
padding: 0;
margin: 0;
padding: 0;
margin: 0;
}
#infiltration-faction-select {
background-color: #000;
background-color: #000;
}
/* Generic Yes No Box */
#yes-no-text-input-box-input {
color: #fff;
color: #fff;
}
/* Game Options */
#game-options-container {
transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
}
#game-options-content {
background-color: var(--my-background-color);
padding: 10px;
border: 5px solid var(--my-highlight-color);
color: var(--my-font-color);
width: 80%;
max-height: 80%;
overflow-y: auto;
background-color: var(--my-background-color);
padding: 10px;
border: 5px solid var(--my-highlight-color);
color: var(--my-font-color);
width: 80%;
max-height: 80%;
overflow-y: auto;
}
#game-options-left-panel,
#game-options-right-panel {
display: inline-block;
width: 49%;
display: inline-block;
width: 49%;
}
#game-options-close-button {
@include borderRadius(12px);
@include boxShadow(1px 1px 3px #000);
@include borderRadius(12px);
@include boxShadow(1px 1px 3px #000);
color: #aaa;
float: right;
margin: 4px;
padding: 4px;
font-size: $defaultFontSize * 1.25;
font-weight: bold;
color: #aaa;
float: right;
margin: 4px;
padding: 4px;
font-size: $defaultFontSize * 1.25;
font-weight: bold;
}
#game-options-close-button:hover,
#game-options-close-button:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
color: #fff;
text-decoration: none;
cursor: pointer;
}
#game-options-left-panel fieldset {
padding: 2px;
margin: 2px;
padding: 2px;
margin: 2px;
}
#import-game-file-selector {
display: none;
display: none;
}

View File

@@ -4,19 +4,31 @@
* Styling for the Red Pill screen (the BitNode selection UI)
*/
#red-pill-container {
position: fixed;
position: fixed;
}
.bitnode {
color: #00f;
}
&.level-0 {
color: red;
}
.bitnode-destroyed {
color: #f00;
}
&.level-1 {
color: yellow;
}
.bitnode:hover,
.bitnode-destroyed:hover {
&.level-2 {
color: #48d1cc;
}
&.level-3 {
color: blue;
}
&.unimplemented {
color: gray;
}
&:hover {
color: #fff;
}
}

View File

@@ -1,28 +1,33 @@
/**
/**
* Styling for the Re-Sleeving Page
*/
@import "theme";
.resleeve-container {
border: 1px solid white;
margin: 4px;
width: 75%;
#resleeve-container {
position: fixed;
padding: 6px;
}
p {
font-size: $defaultFontSize * 0.8125;
}
.resleeve-elem {
border: 1px solid white;
margin: 4px;
width: 75%;
p {
font-size: $defaultFontSize * 0.8125;
}
}
.resleeve-panel {
display: inline-block;
margin: 0px;
padding: 2px;
display: inline-block;
margin: 0;
padding: 2px;
}
.resleeve-aug-selector {
font-size: $defaultFontSize * 0.8125;
font-size: $defaultFontSize * 0.8125;
option {
font-size: $defaultFontSize * 0.8125;
}
option {
font-size: $defaultFontSize * 0.8125;
}
}

View File

@@ -6,118 +6,102 @@
*/
#script-editor-container {
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;
background-color: transparent;
}
/* This temp element is used for auto adjusting filename field */
.tmp-element {
visibility: hidden;
white-space: pre;
visibility: hidden;
white-space: pre;
}
#script-editor-container {
position: fixed;
padding-top: 10px;
position: fixed;
padding-top: 10px;
}
#script-editor-buttons-wrapper {
width: 100%;
padding-right: 0;
margin-right: 0;
width: 100%;
padding-right: 0;
margin-right: 0;
}
#script-editor-wrapper {
height: 100%;
width: 70%;
background: transparent;
height: 100%;
width: 70%;
background: transparent;
}
#script-editor-filename-wrapper {
background-color: #555;
margin-left: 6px;
margin-right: 0;
padding-left: 6px;
width: 100%;
border: 2px solid var(--my-highlight-color);
background-color: #555;
margin-right: 0;
padding-left: 6px;
width: 100%;
border: 2px solid var(--my-highlight-color);
}
#script-editor-filename-tag {
display: inline-block;
padding-top: 10px;
padding-bottom: 0;
float: center;
background-color: #555;
color: #fff;
display: inline-block;
padding-top: 10px;
padding-bottom: 0;
float: center;
background-color: #555;
color: #fff;
}
#script-editor-filename {
$boxShadowArgs: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
@include boxShadow($boxShadowArgs);
$boxShadowArgs: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
@include boxShadow($boxShadowArgs);
background-color: #555;
display: inline-block;
float: center;
resize: none;
color: #fff;
margin: 4px;
padding: 2px;
border: 2px solid var(--my-highlight-color);
background-color: #555;
border: 2px solid var(--my-highlight-color);
color: #fff;
display: inline-block;
float: center;
margin: 4px;
padding: 2px;
resize: none;
width: 60%;
}
#script-editor-status {
float: left;
color: #fff;
float: left;
color: #fff;
}
#script-editor-options-panel {
position: absolute;
right: 9%;
bottom: 15%;
border: 2px solid #fff;
width: 19%;
background-color: #444;
padding: 2px;
overflow: auto;
z-index: 1;
color: #fff;
max-height: 50%;
position: absolute;
right: 9%;
bottom: 15%;
border: 2px solid #fff;
width: 19%;
background-color: #444;
padding: 2px;
overflow: auto;
z-index: 1;
color: #fff;
max-height: 50%;
}
#script-editor-options-panel fieldset {
margin-top: 8px;
margin-bottom: 8px;
padding: 2px;
font-size: $defaultFontSize * 0.75;
margin-top: 8px;
margin-bottom: 8px;
padding: 2px;
font-size: $defaultFontSize * 0.75;
input {
margin: 2px;
}
input {
margin: 2px;
}
}
/* Specific overrides for Ace Editor */
.ace_line,
.ace_line * {
background-color: transparent;
margin: 0;
padding: 0;
.editor-options-container {
display: flex;
flex-flow: column;
}
.ace_text-input {
font-size: $defaultFontSize;
background-color: transparent;
.editor-options-line {
display: flex;
flex: row nowrap;
align-items: center;
justify-content: start;
}
/* Specified overrides for Code mirror Editor are defined in codemirror-override.scss */

View File

@@ -3,27 +3,28 @@
*/
@import "theme";
.sleeve-container {
border: 1px solid white;
margin: 4px;
width: 75%;
#sleeves-container {
position: fixed;
padding: 6px;
}
p {
font-size: $defaultFontSize * 0.875;
}
.sleeve-elem {
border: 1px solid white;
margin: 4px;
display: block;
}
.sleeves-page-info {
display: "block";
width: 75%;
display: "block";
width: 75%;
}
.sleeve-panel {
display: inline-block;
margin: 0px;
padding: 2px;
display: inline-block;
margin: 0;
padding: 2px;
select {
display: block;
}
select {
display: block;
}
}

View File

@@ -1,66 +1,99 @@
@import "theme";
#stock-market-container {
position: fixed;
padding: 6px;
position: fixed;
padding: 6px;
p {
font-size: $defaultFontSize * 0.8125;
}
a {
font-size: $defaultFontSize * 0.875;
}
h2 {
margin-top: 10px;
margin-left: 10px;
display: block;
}
p {
font-size: $defaultFontSize * 0.8125;
}
a {
font-size: $defaultFontSize * 0.875;
}
}
#stock-market-list li {
button {
font-size: $defaultFontSize;
}
}
.stock-market-info-and-purchases {
> h2 {
display: block;
margin-top: 10px;
margin-left: 10px;
}
#stock-market-container p {
padding: 6px;
margin: 6px;
> p {
display: block;
margin-left: 10px;
width: 70%;
}
> a,
> button {
margin: 10px;
}
}
#stock-market-container a {
margin: 10px;
#stock-market-list {
list-style: none;
li {
button {
font-size: $defaultFontSize;
}
}
}
#stock-market-watchlist-filter {
width: 50%;
margin-left: 10px;
display: block;
margin: 5px 5px 5px 10px;
padding: 4px;
width: 50%;
}
.stock-market-input {
display: inline-block;
padding: 4px;
margin: 2px;
background-color: #000;
border: 1px solid #fff;
color: var(--my-font-color);
display: inline-block;
padding: 4px;
margin: 2px;
background-color: #000;
border: 1px solid #fff;
color: var(--my-font-color);
}
.stock-market-price-movement-warning {
border: 1px solid white;
color: red;
margin: 2px;
padding: 2px;
}
.stock-market-position-text {
color: #fff;
display: block;
p {
color: #fff;
display: inline-block;
margin: 4px;
}
h3 {
margin: 4px;
}
}
.stock-market-order-list {
overflow-y: auto;
max-height: 100px;
overflow-y: auto;
max-height: 100px;
li {
color: #fff;
padding: 4px;
}
}
.stock-market-order-cancel-btn {
background-color: #000;
border: 1px solid #fff;
color: var(--my-font-color);
margin: 2px;
padding: 0;
background-color: #000;
border: 1px solid #fff;
color: var(--my-font-color);
margin: 2px;
padding: 0;
}

View File

@@ -4,39 +4,46 @@
@import "reset";
:root {
--my-font-color: #6f3;
--my-background-color: #000;
--my-highlight-color: #fff;
--my-prompt-color: #f92672;
--my-font-color: #6f3;
--my-background-color: #000;
--my-highlight-color: #fff;
--my-prompt-color: #f92672;
}
body {
background-color: var(--my-background-color);
background-color: var(--my-background-color);
}
p,
pre,
h2,
.text {
color: var(--my-font-color);
h3,
h4,
.text,
td {
color: var(--my-font-color);
}
h1 {
font-size: $defaultFontSize * 1.375;
color: var(--my-font-color);
font-size: $defaultFontSize * 1.375;
color: var(--my-font-color);
}
ul {
padding: 2px;
list-style-type: none;
padding: 2px;
list-style-type: none;
}
li {
list-style-type: none;
list-style-type: none;
}
br {
@extend .noselect;
}
#entire-game-container {
background-color: transparent;
background-color: transparent;
}
/* Disable border highlight on elements */
@@ -45,294 +52,452 @@ textarea:focus,
button:focus,
td:focus,
tr:focus {
outline: none;
outline: none;
}
/* Make html links ("a" elements) nice looking buttons with this class */
a:link,
a:visited {
color: #fff;
color: #fff;
}
.dropdown {
color: #fff;
background-color: #000;
color: #fff;
background-color: #000;
}
.text-input {
color: #fff;
background-color: #000;
border-style: solid;
border-width: 1px;
border-color: white;
color: #fff;
background-color: #000;
border-style: solid;
border-width: 1px;
border-color: white;
}
/* Notification icon (for create program right now only) */
#create-program-tab {
position: relative;
position: relative;
}
#create-program-notification {
font-size: $defaultFontSize * 0.625;
position: absolute; /* Position the badge within the relatively positioned button */
top: 0;
right: 0;
font-size: $defaultFontSize * 0.625;
position: absolute; /* Position the badge within the relatively positioned button */
top: 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 {
background-color: #fa3e3e;
color: #fff;
border-radius: 2px;
padding: 1px 3px;
background-color: #fa3e3e;
color: #fff;
border-radius: 2px;
padding: 1px 3px;
}
.notification-off {
background-color: #333;
color: #333;
border-radius: 0;
padding: 0;
background-color: #333;
color: #333;
border-radius: 0;
padding: 0;
}
/* help tip. Question mark that opens popup with info/details */
.help-tip {
background-color: black;
border: 1px solid #fff;
border-radius: 5px;
color: #fff;
content: '?';
display: inline-block;
margin-left: 3px;
padding: 1px;
background-color: black;
border: 1px solid #fff;
border-radius: 5px;
color: #fff;
content: "?";
display: inline-block;
margin-left: 3px;
padding: 1px;
}
.help-tip-big {
content: '?';
padding: 3px;
margin-left: 3px;
color: #fff;
border: 1px solid #fff;
border-radius: 8px;
display: inline-block;
content: "?";
padding: 3px;
margin-left: 3px;
color: #fff;
border: 1px solid #fff;
border-radius: 8px;
display: inline-block;
}
.help-tip:hover,
.help-tip-big:hover {
background-color: #888;
background-color: #888;
}
.help-tip:active,
.help-tip-big:active {
@include boxShadow(inset 0 1px 4px rgba(0, 0, 0, 0.6));
@include boxShadow(inset 0 1px 4px rgba(0, 0, 0, 0.6));
}
/* Flashing button (Red) */
@-webkit-keyframes glowing {
0% { background-color: #b20000; -webkit-box-shadow: 0 0 3px #b20000; }
50% { background-color: #f00; -webkit-box-shadow: 0 0 40px #f00; }
100% { background-color: #b20000; -webkit-box-shadow: 0 0 3px #b20000; }
0% {
background-color: #b20000;
-webkit-box-shadow: 0 0 3px #b20000;
}
50% {
background-color: #f00;
-webkit-box-shadow: 0 0 40px #f00;
}
100% {
background-color: #b20000;
-webkit-box-shadow: 0 0 3px #b20000;
}
}
@-moz-keyframes glowing {
0% { background-color: #b20000; -moz-box-shadow: 0 0 3px #b20000; }
50% { background-color: #f00; -moz-box-shadow: 0 0 40px #f00; }
100% { background-color: #b20000; -moz-box-shadow: 0 0 3px #b20000; }
0% {
background-color: #b20000;
-moz-box-shadow: 0 0 3px #b20000;
}
50% {
background-color: #f00;
-moz-box-shadow: 0 0 40px #f00;
}
100% {
background-color: #b20000;
-moz-box-shadow: 0 0 3px #b20000;
}
}
@-o-keyframes glowing {
0% { background-color: #b20000; box-shadow: 0 0 3px #b20000; }
50% { background-color: #f00; box-shadow: 0 0 40px #f00; }
100% { background-color: #b20000; box-shadow: 0 0 3px #b20000; }
0% {
background-color: #b20000;
box-shadow: 0 0 3px #b20000;
}
50% {
background-color: #f00;
box-shadow: 0 0 40px #f00;
}
100% {
background-color: #b20000;
box-shadow: 0 0 3px #b20000;
}
}
@keyframes glowing {
0% { background-color: #b20000; box-shadow: 0 0 3px #b20000; }
50% { background-color: #f00; box-shadow: 0 0 40px #f00; }
100% { background-color: #b20000; box-shadow: 0 0 3px #b20000; }
0% {
background-color: #b20000;
box-shadow: 0 0 3px #b20000;
}
50% {
background-color: #f00;
box-shadow: 0 0 40px #f00;
}
100% {
background-color: #b20000;
box-shadow: 0 0 3px #b20000;
}
}
.flashing-button {
-webkit-animation: glowing 1500ms infinite;
-moz-animation: glowing 1500ms infinite;
-o-animation: glowing 1500ms infinite;
animation: glowing 1500ms infinite;
-webkit-animation: glowing 1500ms infinite;
-moz-animation: glowing 1500ms infinite;
-o-animation: glowing 1500ms infinite;
animation: glowing 1500ms infinite;
}
/* Blinking Cursor */
/* ----- blinking cursor animation ----- */
.typed-cursor {
opacity: 1;
-webkit-animation: blink 0.95s infinite;
-moz-animation: blink 0.95s infinite;
-ms-animation: blink 0.95s infinite;
-o-animation: blink 0.95s infinite;
animation: blink 0.95s infinite;
opacity: 1;
-webkit-animation: blink 0.95s infinite;
-moz-animation: blink 0.95s infinite;
-ms-animation: blink 0.95s infinite;
-o-animation: blink 0.95s infinite;
animation: blink 0.95s infinite;
}
@-keyframes blink{
0% { opacity: 1; }
50% { opacity: 0; }
100% { opacity: 1; }
@-keyframes blink {
0% {
opacity: 1;
}
50% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-webkit-keyframes blink{
0% { opacity: 1; }
50% { opacity: 0; }
100% { opacity: 1; }
@-webkit-keyframes blink {
0% {
opacity: 1;
}
50% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-moz-keyframes blink{
0% { opacity: 1; }
50% { opacity: 0; }
100% { opacity: 1; }
@-moz-keyframes blink {
0% {
opacity: 1;
}
50% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-ms-keyframes blink{
0% { opacity: 1; }
50% { opacity: 0; }
100% { opacity: 1; }
@-ms-keyframes blink {
0% {
opacity: 1;
}
50% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-o-keyframes blink{
0% { opacity: 1; }
50% { opacity: 0; }
100% { opacity: 1; }
@-o-keyframes blink {
0% {
opacity: 1;
}
50% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/* Status text */
@-webkit-keyframes status-text {
from {
opacity: 1;
}
to {
opacity: 0;
}
from {
opacity: 1;
}
to {
opacity: 0;
}
}
.status-text {
display: inline-block;
position: fixed;
z-index: 2;
-webkit-animation: status-text 3s 1;
z-index: 2;
-webkit-animation: status-text 3s 1;
}
#status-text-container {
background-color: transparent;
background-color: transparent;
position: absolute;
top: 0;
left: 50%;
}
#status-text {
background-color: transparent;
bottom: 0;
color: #fff;
display: none;
font-size: $defaultFontSize * 1.25;
margin-right: 14px;
opacity: 0;
padding: 4px;
right: 0;
top: 0;
width: auto;
background-color: transparent;
bottom: 0;
color: #fff;
display: none;
font-size: $defaultFontSize * 1.25;
margin-right: 14px;
opacity: 0;
padding: 4px;
right: 0;
top: 0;
width: auto;
}
/* Scan analyze links from AutoLink */
.scan-analyze-link {
cursor: pointer;
color: #fff;
text-decoration: underline;
cursor: pointer;
color: #fff;
text-decoration: underline;
&:hover {
text-decoration: none;
}
&:hover {
text-decoration: none;
}
}
/* Accordion menus (Header with collapsible panel) */
.accordion-header {
background-color: #444;
font-size: $defaultFontSize * 1.25;
color: #fff;
margin: 6px 6px 0 6px;
padding: 4px 6px;
cursor: pointer;
width: 80%;
text-align: left;
border: none;
outline: none;
position: relative;
background-color: #444;
color: #fff;
font-size: $defaultFontSize * 1.25;
margin: 6px 6px 0 6px;
padding: 4px 6px;
cursor: pointer;
width: 80%;
text-align: left;
border: none;
outline: none;
position: relative;
&.active,
&:hover {
background-color: #555;
}
&.active,
&:hover {
background-color: #555;
}
&.active:hover {
background-color: #666;
}
&.active:hover {
background-color: #666;
}
&:after {
content: '\02795'; /* "plus" sign (+) */
font-size: $defaultFontSize * 0.875;
float: right;
color: transparent;
text-shadow: 0 0 0 #fff;
position: absolute;
bottom: 5px;
right: 6px;
}
&:after {
content: "\02795"; /* "plus" sign (+) */
font-size: $defaultFontSize * 0.875;
float: right;
color: transparent;
text-shadow: 0 0 0 #fff;
position: absolute;
bottom: 5px;
right: 6px;
}
&.active:after {
content: "\2796"; /* "minus" sign (-) */
}
&.active:after {
content: "\2796"; /* "minus" sign (-) */
}
}
.accordion-panel {
margin: 0 6px 6px 6px;
padding: 0 6px 6px 6px;
width: 75%;
margin-left: 5%;
display: none;
background-color: #555;
overflow-y: auto;
overflow-x: none;
margin: 0 6px 6px 6px;
padding: 0 6px 6px 6px;
width: 75%;
margin-left: 5%;
display: none;
background-color: #555;
overflow-y: auto;
overflow-x: none;
div, ul, p, ul > li {
background-color: #555;
}
div,
ul,
p,
ul > li {
background-color: #555;
}
}
/* override the global <span> styling */
#active-scripts-total-production-active,
#active-scripts-total-prod-aug-total,
#active-scripts-total-prod-aug-avg {
margin: 0;
padding: 0;
margin: 0;
padding: 0;
}
/* Helper Classes */
.hacker-green {
color: $hacker-green;
color: $hacker-green;
}
.money-gold {
color: $money-gold;
color: $money-gold;
}
.light-yellow {
color: $light-yellow;
color: $light-yellow;
}
.unbuyable {
color: #66cfbc;
}
.failure {
color: $alert-red;
text-shadow: 0 0 0 $alert-red;
color: $alert-red;
text-shadow: 0 0 0 $alert-red;
}
.success {
color: $success-green;
text-shadow: 0 0 0 $success-green;
color: $success-green;
text-shadow: 0 0 0 $success-green;
}
.physical-yellow {
color: $my-stat-physical;
color: $my-stat-physical;
}
.charisma-purple {
color: $my-stat-cha-color;
color: $my-stat-cha-color;
}
.reputation {
color: $light-yellow;
}
.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;
}

View File

@@ -1,72 +1,72 @@
@import "theme";
#terminal-container {
position: fixed;
margin-left: 10%;
height: 100%;
width: 99%;
overflow: auto;
overflow-y: scroll;
position: fixed;
margin-left: 10%;
height: 100%;
width: 99%;
overflow: auto;
overflow-y: scroll;
}
#terminal {
padding-top: 10px;
padding-left: 10px;
height: auto;
width: 70%;
font-size: $defaultFontSize;
overflow: auto;
overflow-y: scroll;
background-color: var(--my-background-color);
table-layout: fixed;
padding-top: 10px;
padding-left: 10px;
height: auto;
width: 70%;
font-size: $defaultFontSize;
overflow: auto;
overflow-y: scroll;
background-color: var(--my-background-color);
table-layout: fixed;
.prompt {
color: var(--my-prompt-color);
margin: 0;
padding: 0;
}
.prompt {
color: var(--my-prompt-color);
margin: 0;
padding: 0;
}
}
#terminal-input {
background-color: var(--my-background-color);
color: var(--my-font-color);
transition: height 1s;
background-color: var(--my-background-color);
color: var(--my-font-color);
transition: height 1s;
}
.terminal-input {
display: inline-block;
padding: 0 !important;
margin: 0 !important;
border: 0;
background-color: var(--my-background-color);
font-size: $defaultFontSize;
outline: none;
color: var(--my-font-color);
display: inline-block;
padding: 0 !important;
margin: 0 !important;
border: 0;
background-color: var(--my-background-color);
font-size: $defaultFontSize;
outline: none;
color: var(--my-font-color);
}
.terminal-line {
width: 70%;
word-wrap: break-word;
hyphens: auto;
-webkit-hyphens: auto;
-moz-hyphens: auto;
width: 70%;
word-wrap: break-word;
hyphens: auto;
-webkit-hyphens: auto;
-moz-hyphens: auto;
}
#terminal-input-td {
display: flex;
display: flex;
}
#terminal-input-td textarea {
overflow: hidden;
resize: none;
height: auto;
overflow: hidden;
resize: none;
height: auto;
}
#terminal-input-header {
white-space: pre;
white-space: pre;
}
#terminal-input-text-box {
margin-left: 2px;
flex: 1 1 auto;
margin-left: 2px;
flex: 1 1 auto;
}

View File

@@ -4,67 +4,10 @@
/* Tool tips (when hovering over an element */
.tooltip {
display: inline-block;
position: relative;
display: inline-block;
position: relative;
.tooltiptext {
visibility: hidden;
width: 300px;
background-color: var(--my-background-color);
border: 2px solid var(--my-highlight-color);
color: #fff;
text-align: center;
padding: 4px;
left: 101%;
pointer-events: none;
position: absolute;
z-index: 99;
}
/* Positioned to left of element rather than right */
.tooltiptextleft {
visibility: hidden;
width: 300px;
background-color: var(--my-background-color);
border: 2px solid var(--my-highlight-color);
color: #fff;
text-align: center;
padding: 4px;
top: 50%;
left: 50%;
transform: translate(-100%, -100%);
/* Backwards compatibility */
-webkit-transform: translate(-100%, -100%);
-moz-transform: translate(-100%, -100%);
-o-transform: translate(-100%, -100%);
-ms-transform: translate(-100%, -100%);
position: absolute;
z-index: 99;
}
/* Tooltip goes below cursor instead of above */
.tooltiptextlow {
visibility: hidden;
width: 300px;
background-color: var(--my-background-color);
border: 2px solid var(--my-highlight-color);
color: #fff;
text-align: center;
padding: 4px;
left: 101%;
pointer-events: none;
position: absolute;
z-index: 99;
bottom: 25%;
}
}
/* Same thing as a normal tooltip except its a bit higher */
.tooltip .tooltiptexthigh {
.tooltiptext {
visibility: hidden;
width: 300px;
background-color: var(--my-background-color);
@@ -73,15 +16,114 @@
text-align: center;
padding: 4px;
left: 101%;
bottom: -25%;
pointer-events: none;
position: absolute;
z-index: 99;
}
/* Positioned to left of element rather than right */
.tooltiptextleft {
visibility: hidden;
width: 300px;
background-color: var(--my-background-color);
border: 2px solid var(--my-highlight-color);
color: #fff;
text-align: center;
padding: 4px;
top: 50%;
left: 50%;
transform: translate(-100%, -100%);
/* Backwards compatibility */
-webkit-transform: translate(-100%, -100%);
-moz-transform: translate(-100%, -100%);
-o-transform: translate(-100%, -100%);
-ms-transform: translate(-100%, -100%);
position: absolute;
z-index: 99;
}
/* Tooltip goes below cursor instead of above */
.tooltiptextlow {
visibility: hidden;
width: 300px;
background-color: var(--my-background-color);
border: 2px solid var(--my-highlight-color);
color: #fff;
text-align: center;
padding: 4px;
left: 101%;
pointer-events: none;
position: absolute;
z-index: 99;
bottom: 25%;
}
}
/* Same thing as a normal tooltip except its a bit higher */
.tooltip .tooltiptexthigh {
visibility: hidden;
width: 300px;
background-color: var(--my-background-color);
border: 2px solid var(--my-highlight-color);
color: #fff;
text-align: center;
padding: 4px;
left: 101%;
bottom: -25%;
position: absolute;
z-index: 99;
}
.tooltip:hover .tooltiptext,
.tooltip:hover .tooltiptexthigh,
.tooltip:hover .tooltiptextleft,
.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;
}

View File

@@ -1,39 +1,68 @@
/* required LIB STYLES */
/* .Treant se automatski dodaje na svaki chart conatiner */
.Treant { position: relative; overflow: hidden; padding: 0 !important; }
.Treant {
position: relative;
overflow: hidden;
padding: 0 !important;
}
.Treant > .node,
.Treant > .pseudo { position: absolute; display: block; visibility: hidden; }
.Treant > .pseudo {
position: absolute;
display: block;
visibility: hidden;
}
.Treant.Treant-loaded .node,
.Treant.Treant-loaded .pseudo { visibility: visible; }
.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 .collapsed .collapse-switch { background-color: #868DEE; }
.Treant > .node img { border: none; float: left; }
.Treant.Treant-loaded .pseudo {
visibility: visible;
}
.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 .collapsed .collapse-switch {
background-color: #868dee;
}
.Treant > .node img {
border: none;
float: left;
}
.Treant > .node {
cursor: pointer;
padding: 4px;
min-width: 60px;
text-align: center;
border: 2px solid #E8E8E3;
border-radius: 2px;
box-shadow: 1px 1px 1px rgba(0,0,0,.5);
font-size: 12px;
cursor: pointer;
padding: 4px;
min-width: 60px;
text-align: center;
border: 2px solid #e8e8e3;
border-radius: 2px;
box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
font-size: 12px;
}
.Treant > .researched {
background-color: #666;
font-size: 16px;
background-color: #666;
font-size: 16px;
}
.Treant > .locked > div {
color: red;
pointer-events: none;
color: red;
pointer-events: none;
}
.Treant > .node > div {
font-size: 12px;
font-size: 12px;
}
.Treant > .unlocked:hover {
background-color: #666;
background-color: #666;
}

View File

@@ -3,49 +3,49 @@
/* Both Work in progress and BitNode stuff */
.generic-fullscreen-container {
color: var(--my-font-color);
width: 99%;
height: 100%;
overflow-y: hidden;
color: var(--my-font-color);
width: 99%;
height: 100%;
overflow-y: hidden;
}
.generic-fullscreen-container-scroll {
height: 100%;
width: 100%;
overflow: auto;
padding-right: 20px;
height: 100%;
width: 100%;
overflow: auto;
padding-right: 20px;
}
#work-in-progress-container {
position: fixed;
position: fixed;
}
#work-in-progress-text {
color: var(--my-font-color);
width: 70%;
margin: 10px;
color: var(--my-font-color);
width: 70%;
margin: 10px;
}
#work-in-progress-cancel-button {
@include borderRadius(12px);
@include boxShadow(1px 1px 3px #000);
.work-button {
@include borderRadius(12px);
@include boxShadow(1px 1px 3px #000);
color: #aaa;
float: left;
font-size: $defaultFontSize * 1.25;
font-weight: bold;
margin: 10px;
padding: 5px;
border: 3px solid #fff;
color: #aaa;
float: left;
font-size: $defaultFontSize * 1.25;
font-weight: bold;
margin: 10px;
padding: 5px;
border: 3px solid #fff;
}
#work-in-progress-cancel-button:hover,
#work-in-progress-cancel-button:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
.work-button:hover,
.work-button:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
#cinematic-text-container {
position: fixed;
position: fixed;
}

8
cypress.json Normal file
View File

@@ -0,0 +1,8 @@
{
"baseUrl": "http://localhost:8000",
"fixturesFolder": false,
"trashAssetsBeforeRuns": true,
"screenshotsFolder": ".cypress/screenshots",
"videosFolder": ".cypress/videos",
"videoUploadOnPasses": false
}

View File

@@ -0,0 +1,51 @@
export {};
describe("netscript", () => {
it("creates and runs a NetScript 2.0 script", () => {
cy.findByRole("button", { name: "Exit Tutorial" }).click();
cy.findByText("Got it!").click();
cy.findByRole("textbox").type("connect n00dles{enter}");
cy.findByText(/connected to n00dles/i);
cy.findByRole("textbox").type("run NUKE.exe{enter}");
cy.findByText(/gained root access/i);
cy.findByRole("textbox").type("home{enter}");
cy.findByText(/connected to home/i);
cy.findByRole("textbox").type("nano script.js{enter}");
// monaco can take a bit
cy.findByRole("code", { timeout: 15_000 }).type("{selectall}{del}").type(`export const main = async (ns) => {{}
while(true) {{}
await ns.hack("n00dles");`);
cy.findByText("RAM: 1.70GB");
cy.findByRole("button", { name: /Save & Close/i }).click();
cy.findByRole("textbox").type("run script.js{enter}");
cy.findByText(/Running script with 1 thread/);
cy.findByRole("textbox").type("ps{enter}");
cy.findByText(/\(PID - 1\) script.js/);
});
it("errors and shows a dialog box when static RAM !== dynamic RAM", () => {
cy.findByRole("button", { name: "Exit Tutorial" }).click();
cy.findByText("Got it!").click();
cy.findByRole("textbox").type("nano script.js{enter}");
// monaco can take a bit
cy.findByRole("code", { timeout: 15_000 }).type("{selectall}{del}").type(`export const main = async (ns) => {{}
const command = "hack";
ns[command]("n00dles");`);
cy.findByText("RAM: 1.60GB");
cy.findByRole("button", { name: /Save & Close/i }).click();
cy.findByRole("textbox").type("run script.js{enter}");
cy.findByText(/Dynamic RAM usage calculated to be greater than initial RAM usage on fn: hack./i);
});
});

View File

@@ -0,0 +1,95 @@
export {};
describe("tutorial", () => {
it("completes the tutorial", () => {
cy.findByText(/dark, dystopian future/);
cy.findByRole("button", { name: "Next" }).click();
cy.findByText(/heading to the Stats page/);
cy.findByRole("button", { name: "Stats" }).click();
cy.findByText(/lot of important information/);
cy.findByRole("button", { name: "Next" }).click();
cy.findByText(/head to your computer's terminal/);
cy.findByRole("button", { name: "Terminal" }).click();
cy.findByText(/is used to interface/);
cy.findByRole("button", { name: "Next" }).click();
cy.findByText(/Let's try it out/i);
cy.findByRole("textbox").type("help{enter}");
cy.findByText(/displays a list of all available/i);
cy.findByRole("textbox").type("ls{enter}");
cy.findByText(/is a basic command that shows files/i);
cy.findByRole("textbox").type("scan{enter}");
cy.findByText(/that's great and all/i);
cy.findByRole("textbox").type("scan-analyze{enter}");
cy.findByText(/this command shows more detailed information/i);
cy.findByRole("textbox").type("scan-analyze 2{enter}");
cy.findByText(/now you can see information/i);
cy.findByRole("textbox").type("connect n00dles{enter}");
cy.findByText(/currency has become digital/i);
cy.findByRole("textbox").type("analyze{enter}");
cy.findByText(/For this server, the required hacking skill/i);
cy.findByText(/Required number of open ports for NUKE/i);
cy.findByRole("textbox").type("run NUKE.exe{enter}");
cy.findByText(/gained root access to n00dles/i);
cy.findByRole("textbox").type("hack{enter}");
cy.findByText(/now attempting to hack the server/i);
cy.findByRole("button", { name: "Next" }).click();
cy.findByText(/hacking exp/i);
cy.findByRole("textbox", { timeout: 15_000 }).should("not.be.disabled").type("nano n00dles.script{enter}");
// monaco can take a bit
cy.findByRole("code", { timeout: 15_000 }).type("{selectall}{del}").type("while(true) {{}{enter}hack('n00dles');");
cy.findByRole("button", { name: /Save & Close/i }).click();
cy.findByText(/now we'll run the script/i);
cy.findByRole("textbox").type("free{enter}");
cy.findByText(/We have 4GB of free RAM on this machine/i);
cy.findByRole("textbox").type("run n00dles.script{enter}");
cy.findByText(/Your script is now running/i);
cy.findByRole("button", { name: "Active Scripts" }).click();
cy.findByText(/This page displays information about all of your scripts/i);
cy.findByRole("button", { name: "Terminal" }).click();
cy.findByText(/each active script contains logs/i);
cy.findByRole("textbox").type("tail n00dles.script{enter}");
cy.findByText(/The log for this script won't show much/i);
cy.findByRole("button", { name: "Next" }).click();
cy.findByText(/Hacking is not the only way to earn money/i);
cy.findByRole("button", { name: "Hacknet" }).click();
cy.findByText(/Here you can purchase new Hacknet Nodes/i);
cy.findByRole("button", { name: /Purchase Hacknet Node/ }).click();
cy.findByText(/You just purchased a Hacknet Node!/i);
cy.findByRole("button", { name: "City" }).click();
cy.findByText(/This page lists all of the different locations/i);
cy.findByRole("button", { name: "Tutorial" }).click();
cy.findByText(/a lot of different documentation about the game/i);
cy.findByRole("button", { name: "Finish Tutorial" }).click();
cy.findByText("Got it!").click();
cy.findByText(/Tutorial \(AKA Links to Documentation\)/i);
});
});

22
cypress/plugins/index.js Normal file
View File

@@ -0,0 +1,22 @@
/// <reference types="cypress" />
// ***********************************************************
// This example plugins/index.js can be used to load plugins
//
// You can change the location of this file or turn off loading
// the plugins file with the 'pluginsFile' configuration option.
//
// You can read more here:
// https://on.cypress.io/plugins-guide
// ***********************************************************
// This function is called when a project is opened or re-opened (e.g. due to
// the project's config changing)
/**
* @type {Cypress.PluginConfig}
*/
// eslint-disable-next-line no-unused-vars
module.exports = (on, config) => {
// `on` is used to hook into various events Cypress emits
// `config` is the resolved Cypress config
};

View File

@@ -0,0 +1 @@
import "@testing-library/cypress/add-commands";

View File

@@ -0,0 +1,9 @@
export {};
beforeEach(() => {
cy.visit("/");
cy.clearLocalStorage();
cy.window().then((win) => {
win.indexedDB.deleteDatabase("bitburnerSave");
});
});

21
cypress/support/index.js Normal file
View File

@@ -0,0 +1,21 @@
// ***********************************************************
// This example support/index.js is processed and
// loaded automatically before your test files.
//
// This is a great place to put global configuration and
// behavior that modifies Cypress.
//
// You can change the location of this file or turn off
// automatically serving support files with the
// 'supportFile' configuration option.
//
// You can read more here:
// https://on.cypress.io/configuration
// ***********************************************************
// Import commands.js using ES2015 syntax:
import "./globalHooks";
import "./commands";
// Alternatively you can use CommonJS syntax:
// require('./commands')

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
View File

@@ -0,0 +1,2 @@
!function(n){function t(t){for(var e,i,f=t[0],c=t[1],l=t[2],a=0,s=[];a<f.length;a++)i=f[a],Object.prototype.hasOwnProperty.call(u,i)&&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(p&&p(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={2: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 p=c;r.push([905,0]),o()}({905:function(n,t,o){"use strict";o.r(t);o(906),o(908),o(910),o(912),o(914),o(916),o(918),o(920),o(922),o(924),o(926),o(928),o(930),o(932),o(934),o(936),o(938),o(940),o(942),o(944),o(946),o(948),o(950),o(952),o(954),o(956),o(958),o(960),o(962),o(964),o(966),o(968),o(970)},908:function(n,t,o){},910:function(n,t,o){},912:function(n,t,o){},914:function(n,t,o){},916:function(n,t,o){},918:function(n,t,o){},920:function(n,t,o){},922:function(n,t,o){},924:function(n,t,o){},926:function(n,t,o){},928:function(n,t,o){},930:function(n,t,o){},932:function(n,t,o){},934:function(n,t,o){},936:function(n,t,o){},938:function(n,t,o){},940:function(n,t,o){},942:function(n,t,o){},944:function(n,t,o){},946:function(n,t,o){},948:function(n,t,o){},950:function(n,t,o){},952:function(n,t,o){},954:function(n,t,o){},956:function(n,t,o){},958:function(n,t,o){},960:function(n,t,o){},962:function(n,t,o){},964:function(n,t,o){},966:function(n,t,o){},968:function(n,t,o){},970:function(n,t,o){}});
//# sourceMappingURL=engineStyle.bundle.js.map

File diff suppressed because it is too large Load Diff

731
dist/vendor.bundle.js vendored

File diff suppressed because one or more lines are too long

5527
dist/vendor.css vendored

File diff suppressed because one or more lines are too long

View File

@@ -56,8 +56,3 @@ through destroying BitNodes is:
* Source-Files
* Scripts on the home computer
BitNode Details
^^^^^^^^^^^^^^^
TODO

View File

@@ -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.
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
earn ((N/100)^2 * 100)% of the experience.
@@ -80,6 +80,19 @@ when you normally install Augmentations.
The cost of purchasing an Augmentation for a Duplicate Sleeve is **not** affected
by how many Augmentations you have purchased for yourself, and vice versa.
Memory
~~~~~~
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
switch BitNodes its synchronization will initially be set to 10, rather than 1.
Memory can only be increased by purchasing upgrades from The Covenant. Just like
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.
Re-sleeving
^^^^^^^^^^^
Re-sleeving is the process of digitizing and transferring your consciousness into a

View File

@@ -15,73 +15,53 @@ of level 3.
List of all Source-Files
^^^^^^^^^^^^^^^^^^^^^^^^
+------------------------------------+-------------------------------------------------------------------------------------+
| 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% |
| 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%. |
+------------------------------------+-------------------------------------------------------------------------------------+
| BitNode-2: Rise of the Underworld | * Increases the player's crime success rate, crime money, and |
| | charisma multipliers by 24%/36%/42% |
| BitNode-2: Rise of the Underworld | * Lets the player create Gangs in other BitNodes (although some |
| | 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 |
| | BitNodes will disable this mechanic) |
| | * Increases the player's charisma and company salary multipliers by 8%/12%/14% |
| | BitNodes will disable this mechanic). |
| | * 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. |
| | * 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` |
| | * Unlocks :js:func:`getBitNodeMultipliers` Netscript function |
| | * Increases all of the player's hacking-related multipliers by 8%/12%/14% |
| BitNode-5: Artificial Intelligence | * Unlocks :ref:`gameplay_intelligence`. |
| | * Unlocks :js:func:`getBitNodeMultipliers` and :js:func:`getServer` |
| | 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 |
| | 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 |
| | * Increases all of the player's Bladeburner multipliers by 8%/12%/14% |
| 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%. |
+------------------------------------+-------------------------------------------------------------------------------------+
| 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 |
| | :ref:`TIX API <netscript_tixapi>` |
| | * Level 2 grants permanent access to shorting stocks |
| | * Level 3 grants permanent access to use limit/stop orders |
| | :ref:`TIX API <netscript_tixapi>`. |
| | * Level 2 grants permanent access to shorting stocks. |
| | * 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 |
| | * Allows the player to access the :ref:`netscript_sleeveapi` in other BitNodes |
| BitNode-10: Digital Carbon | * Each level of this grants a Duplicate Sleeve. |
| | * 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 |
| | 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 |
| | 24%/36%/42% |
| | 32%/48%/56%. |
+------------------------------------+-------------------------------------------------------------------------------------+
| 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%. |
| | * This affect is multiplicative with itself. This means that level N of this |
| | Source-File will result in a multiplier of 1.01^N (or 0.99^N for multipliers |
| | that decrease) |
+------------------------------------+-------------------------------------------------------------------------------------+
| | |
+------------------------------------+-------------------------------------------------------------------------------------+
| | |
+------------------------------------+-------------------------------------------------------------------------------------+
| | |
+------------------------------------+-------------------------------------------------------------------------------------+
| | |
+------------------------------------+-------------------------------------------------------------------------------------+
| | |
+------------------------------------+-------------------------------------------------------------------------------------+
| | |
+------------------------------------+-------------------------------------------------------------------------------------+
| | |
+------------------------------------+-------------------------------------------------------------------------------------+
| | |
+------------------------------------+-------------------------------------------------------------------------------------+
| | |
+------------------------------------+-------------------------------------------------------------------------------------+
| | |
+------------------------------------+-------------------------------------------------------------------------------------+
| | |
+------------------------------------+-------------------------------------------------------------------------------------+
| | |
| BitNode-12: The Recursion | * There is no maximum level for this Source-File. |
| | * Lets the player start with Neuroflux Governor equal to the level of this |
| | Source-File. |
+------------------------------------+-------------------------------------------------------------------------------------+

View File

@@ -11,7 +11,7 @@ user's physical and mental faculties.
Augmentations provide persistent upgrades in the form of multipliers.
These multipliers apply to a wide variety of things such as stats,
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
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@@ -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
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
marks that are part of the actual string solution should be included.
* 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. |
| | | |
| | | 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 |
@@ -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. |
| | | |
| | | NOTE: Numbers in an expression cannot have leading 0's |
| | | |
| | | Examples: |
| | | Input: digits = "123", target = 6 |
| | | Output: ["1+2+3", "1*2*3"] |
| | | Output: [1+2+3, 1*2*3] |
| | | |
| | | Input: digits = "105", target = 5 |
| | | Output: ["1*0+5", "10-5"] |
| | | Output: [1*0+5, 10-5] |
+------------------------------------+------------------------------------------------------------------------------------------+

View File

@@ -35,7 +35,7 @@ List of Factions and their Requirements
| Early Game | Faction Name | Requirements | Joining this Faction prevents |
| Factions | | | you from joining: |
+ +----------------+-----------------------------------------+-------------------------------+
| | CyberSec | * Hack CSEC Manually | |
| | CyberSec | * Install a backdoor on the CSEC server | |
+ +----------------+-----------------------------------------+-------------------------------+
| | Tian Di Hui | * $1m | |
| | | * Hacking Level 50 | |
@@ -74,14 +74,17 @@ List of Factions and their Requirements
| | | | * New Tokyo |
| | | | * Ishima |
+---------------------+----------------+-----------------------------------------+-------------------------------+
| Hacking | NiteSec | * Hack avmnite-02h manually | |
| Groups | | * Home Computer RAM of at least 32GB | |
| Hacking | NiteSec | * Install a backdoor on the avmnite-02h | |
| Groups | | server | |
| | | | |
+ +----------------+-----------------------------------------+-------------------------------+
| | The Black Hand | * Hack I.I.I.I manually | |
| | | * Home Computer RAM of at least 64GB | |
| | The Black Hand | * Install a backdoor on the I.I.I.I | |
| | | server | |
| | | | |
+ +----------------+-----------------------------------------+-------------------------------+
| | Bitrunners | * Hack run4theh111z manually | |
| | | * Home Computer RAM of at least 128GB | |
| | Bitrunners | * Install a backdoor on the run4theh111z| |
| | | server | |
| | | | |
+---------------------+----------------+-----------------------------------------+-------------------------------+
| Megacorporations | ECorp | * Have 200k reputation with | |
| | | the Corporation | |
@@ -112,7 +115,8 @@ List of Factions and their Requirements
+ +----------------+-----------------------------------------+-------------------------------+
| | Fulcrum Secret | * Have 250k reputation with | |
| | Technologies | the Corporation | |
| | | * Hack fulcrumassets manually | |
| | | * Install a backdoor on the | |
| | | fulcrumassets server | |
+---------------------+----------------+-----------------------------------------+-------------------------------+
| Criminal | Slum Snakes | * All Combat Stats of 30 | |
| Organizations | | * -9 Karma | |

View File

@@ -14,29 +14,46 @@ these for money or for faction reputation. To try and infiltrate a company,
visit a company through the 'World' menu. There will be an option that
says 'Infiltrate Company'.
When infiltrating a company, you must progress through clearance levels in
the facility. Every clearance level has some form of security that
you must get past. There are several forms of security, ranging from
high-tech security systems to armed guards. For each form of security,
there are a variety of options that you can choose to try and bypass
the security. Examples include hacking the security, engaging in combat,
assassination, or sneaking past the security. The chance to succeed for
each option is determined in part by your stats. So, for example,
trying to hack the security system relies on your hacking skill,
whereas trying to sneak past the security relies on your agility level.
When infiltrating a company you will be presented with short active challenges.
None of the challenges use the mouse.
The facility has a 'security level' that affects your chance of success
when trying to get past a clearance level. Every time you advance to the
next clearance level, the facility's security level will increase by a
fixed percentage. Furthermore the options you choose and whether you
succeed or fail will affect the security level as well. For example,
if you try to kill a security guard and fail, the security level will
increase by a lot. If you choose to sneak past security and succeed,
the security level will not increase at all.
The difficulty at the top lowers with better combat stats. It is not recommended
to attempt infiltrations above mid-normal.
Every 5 clearance levels, you will steal classified company secrets that
can be sold for money or faction reputation. However, in order to sell
these secrets you must successfully escape the facility using the
'Escape' option. Furthermore, companies have a max clearance level.
If you reach the max clearance level you will automatically escape the
facility with all of your stolen secrets.
* Most use spacebar as "action"
* Some use WASD or arrows interchangeably.
* A few others use the rest of the keyboard.
** Slash when his guard is down! **
Press space when the guard is attacking you.
** Close the brackets **
Enter all the matching brackets in reverse order.
** Type it backward **
Type the words that are written backward.
** Say something nice about the guard. **
Use the arrows to find a compliment for the guard.
** Enter the Code! **
Match the arrows as they appears.
** Match the symbols! **
Move the cursor to the matching symbol and press space to confirm.
** Remember all the mines! **
At first the cursor cannot be moved, remember the positions of the X.
Then move the cursor and press space to mark the mines on the board.
** Cut the wires **
Follow the instructions and press the numbers 1 through 9 to cut the appropriate
wires.

View File

@@ -124,6 +124,6 @@ Gain experience by:
* Committing certain crimes
* Infiltration
* Working out at a gym
* Studying at a university
* Working a relevant job at a company
* Doing Field work for a Faction

View File

@@ -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.
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.
Fundamentals
------------
The Stock Market is not as simple as "buy at price X and sell at price Y". The following
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
^^^^^^^^^^^^^^^^^^^^^^^^
@@ -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'
a stock.
NOTE: Shorting stocks is not available immediately, and must be unlocked later in the
game.
.. note:: Shorting stocks is not available immediately, and must be unlocked later in the
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
^^^^^^^^^^^
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.
Note that Limit Orders and Stop Orders are not available immediately, and must be unlocked
later in the game.
.. note:: Limit Orders and Stop Orders are not available immediately, and must be unlocked
later in the game.
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
@@ -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 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.

View File

@@ -16,6 +16,85 @@ the terminal and enter::
nano .fconf
.. _terminal_filesystem:
Filesystem (Directories)
------------------------
The Terminal contains a **very** basic filesystem that allows you to store and
organize your files into different directories. Note that this is **not** a true
filesystem implementation. Instead, it is done almost entirely using string manipulation.
For this reason, many of the nice & useful features you'd find in a real
filesystem do not exist.
Here are the Terminal commands you'll commonly use when dealing with the filesystem.
* :ref:`ls_terminal_command`
* :ref:`cd_terminal_command`
* :ref:`mv_terminal_command`
Directories
^^^^^^^^^^^
In order to create a directory, simply name a file using a full absolute Linux-style path::
/scripts/myScript.js
This will automatically create a "directory" called :code:`scripts`. This will also work
for subdirectories::
/scripts/hacking/helpers/myHelperScripts.script
Files in the root directory do not need to begin with a forward slash::
thisIsAFileInTheRootDirectory.txt
Note that there is no way to manually create or remove directories. The creation and
deletion of directories is automatically handled as you name/rename/delete
files.
Absolute vs Relative Paths
^^^^^^^^^^^^^^^^^^^^^^^^^^
Many Terminal commands accept absolute both absolute and relative paths for specifying a
file.
An absolute path specifies the location of the file from the root directory (/).
Any path that begins with the forward slash is an absolute path::
$ nano /scripts/myScript.js
$ cat /serverList.txt
A relative path specifies the location of the file relative to the current working directory.
Any path that does **not** begin with a forward slash is a relative path. Note that the
Linux-style dot symbols will work for relative paths::
. (a single dot) - represents the current directory
.. (two dots) - represents the parent directory
$ cd ..
$ nano ../scripts/myScript.js
$ nano ../../helper.js
Netscript
^^^^^^^^^
Note that in order to reference a file, :ref:`netscript` functions require the
**full** absolute file path. For example
.. code:: javascript
run("/scripts/hacking/helpers.myHelperScripts.script");
rm("/logs/myHackingLogs.txt");
rm("thisIsAFileInTheRootDirectory.txt");
.. note:: A full file path **must** begin with a forward slash (/) if that file
is not in the root directory.
Missing Features
^^^^^^^^^^^^^^^^
These features that are typically in Linux filesystems have not yet been added to the game:
* Tab autocompletion does not work with relative paths
* :code:`mv` only accepts full filepaths for the destination argument. It does not accept directories
Commands
--------
@@ -69,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
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
^^^
@@ -98,6 +185,25 @@ Display a message (.msg), literature (.lit), or text (.txt) file::
$ cat foo.lit
$ cat servers.txt
.. _cd_terminal_command:
cd
^^
$ cd [dir]
Change to the specified directory.
See :ref:`terminal_filesystem` for details on directories.
Note that this command works even for directories that don't exist. If you change
to a directory that doesn't exist, it will not be created. A directory is only created
once there is a file in it::
$ cd scripts/hacking
$ cd /logs
$ cd ..
check
^^^^^
@@ -214,9 +320,12 @@ kill
^^^^
$ kill [script name] [args...]
$ kill [pid]
Kill the script specified by the script name and arguments. Each argument must
be separated by a space. Remember that a running script is uniquely identified
Kill the script specified by the script filename and arguments OR by its PID.
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
was ran with the following arguments::
@@ -226,35 +335,42 @@ Then to kill this script the same arguments would have to be used::
$ kill foo.script 50e3 sigma-cosmetics
Note that after issuing the 'kill' command for a script, it may take a few seconds for
the script to actually stop running.
If you are killing the script using its PID, then the PID argument must be numeric.
killall
^^^^^^^
Kills all scripts on the current server.
.. _ls_terminal_command:
ls
^^
$ ls [| grep pattern]
$ ls [dir] [| grep pattern]
Prints files on the current server to the Terminal screen.
Prints files and directories on the current server to the Terminal screen.
If this command is run with no arguments, then it prints all files on the current
server to the Terminal screen. The files will be displayed in alphabetical
order.
If this command is run with no arguments, then it prints all files and directories on the current
server to the Terminal screen. Directories will be printed first in alphabetical order,
followed by the files (also in alphabetical order).
The '| grep pattern' is an optional parameter that can be used to only display files
whose filenames match the specified pattern. For example, if you wanted to only display
files with the .script extension, you could use::
The :code:`dir` optional parameter allows you to specify the directory for which to display
files.
The :code:`| grep pattern` optional parameter allows you to only display files and directories
with a certain pattern in their names.
Examples::
// List files/directories with the '.script' extension in the current directory
$ ls | grep .script
Alternatively, if you wanted to display all files with the word *purchase* in the filename,
you could use::
// List files/directories with the '.js' extension in the root directory
$ ls / | grep .js
$ ls | grep purchase
// List files/directories with the word 'purchase' in the name, in the :code:`scripts` directory
$ ls scripts | grep purchase
lscpu
@@ -282,6 +398,28 @@ The first example above will print the amount of RAM needed to run 'foo.script'
with a single thread. The second example above will print the amount of RAM needed
to run 'foo.script' with 50 threads.
.. _mv_terminal_command:
mv
^^
$ mv [source] [destination]
Move the source file to the specified destination in the filesystem.
See :ref:`terminal_filesystem` for more details about the Terminal's filesystem.
This command only works for scripts and text files (.txt). It cannot, however, be used
to convert from script to text file, or vice versa.
This function can also be used to rename files.
.. note:: Unlike the Linux :code:`mv` command, the *destination* argument must be the
full filepath. It cannot be a directory.
Examples::
$ mv hacking.script scripts/hacking.script
$ mv myScript.js myOldScript.js
nano
^^^^
@@ -383,6 +521,8 @@ sudov
Prints whether or not you have root access to the current server.
.. _tail_terminal_command:
tail
^^^^
@@ -456,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.
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::
$ wget https://raw.githubusercontent.com/danielyxie/bitburner/master/README.md game_readme.txt

File diff suppressed because it is too large Load Diff

View File

@@ -64,9 +64,9 @@ documentation_title = '{0} Documentation'.format(project)
# built documents.
#
# The short X.Y version.
version = '0.45'
version = '0.53'
# The full version, including alpha/beta/rc tags.
release = '0.45.0'
release = '0.53.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

View File

@@ -2,10 +2,11 @@ Guides & Tips
=============
Getting Started Guide for Intermediate Programmers
What BitNode should I do?
Beginners FAQ
.. toctree::
:maxdepth: 3
Getting Started Guide for Beginner Programmers <guidesandtips/gettingstartedguideforbeginnerprogrammers>
What BitNode should I do?<guidesandtips/recommendedbitnodeorder>

View File

@@ -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.
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
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
using the :code:`BruteSSH.exe` program we created earlier. In |Terminal|::
$ run BruteSSH.exe
$ run NUKE.exe
$ hack
$ backdoor
Keep hacking the server until you are successful. After you successfully hack it, you should
receive a faction invitation from |CyberSec| shortly afterwards. Accept it. If you accidentally
After you successfully install the backdoor, you should receive a faction
invitation from |CyberSec| shortly afterwards. Accept it. If you accidentally
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
accept the invitation.
@@ -860,7 +860,7 @@ Random Tips
.. Substitution definitions
.. |Alpha Enterprises| replace:: :code:`Alpha Enterprises`
.. |Augmentations tab| replace:: :code:`Augmentations` tab
.. |AutoLink| replace:: :code:`NUKE.exe`
.. |AutoLink| replace:: :code:`AutoLink.exe`
.. |BruteSSH| replace:: :code:`BruteSSH.exe`
.. |City tab| replace:: :code:`City` tab
.. |CyberSec| replace:: :code:`CyberSec`

View 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.

View File

@@ -5,8 +5,9 @@
Welcome to Bitburner's documentation!
=====================================
Bitburner is a cyberpunk-themed `incremental game <https://en.wikipedia.org/wiki/Incremental_game>`_ that is currently in the
early beta stage of development. The game `can be played here <https://danielyxie.github.io/bitburner/>`_.
Bitburner is a programming-based `incremental game <https://en.wikipedia.org/wiki/Incremental_game>`_
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?
------------------
@@ -26,6 +27,7 @@ secrets that you've been searching for.
Script Editors <scripteditors>
Game Frozen or Stuck? <gamefrozen>
Guides & Tips <guidesandtips>
Tools & Resources <toolsandresources>
Changelog <changelog>
Donate <https://paypal.me/danielyxie>

View File

@@ -30,4 +30,5 @@ to reach out to the developer!
Gang API <netscript/netscriptgangapi>
Coding Contract API <netscript/netscriptcodingcontractapi>
Sleeve API <netscript/netscriptsleeveapi>
Formulas API <netscript/netscriptformulasapi>
Miscellaneous <netscript/netscriptmisc>

View File

@@ -3,14 +3,22 @@ getBitNodeMultipliers() Netscript Function
.. js:function:: getBitNodeMultipliers()
Returns an object containing the current BitNode multipliers. This function requires Source-File 5 in order
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.
:RAM cost: 4 GB
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>`_
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
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.
Example::

View File

@@ -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])

View 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
}

View File

@@ -1,13 +1,17 @@
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 GB
:RAM cost: 0.05 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");

View File

@@ -1,13 +1,16 @@
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
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.

View File

@@ -5,4 +5,13 @@ clearLog() Netscript Function
: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'));
}

View File

@@ -3,12 +3,12 @@ deleteServer() Netscript Function
.. js:function:: deleteServer(hostname)
:param string hostname: Hostname of the server to delete
: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 string. This function will not delete a server that still has scripts running on it.
Returns true if successful, and false otherwise.
The ``hostname`` argument can be any data type, but it will be converted to
a string. Whitespace is automatically removed from the string. This function
will not delete a server that still has scripts running on it.

View File

@@ -1,16 +1,11 @@
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
:param string functionName: Name of function for which to disable logging.
Disables logging for the given function. Logging can be disabled for
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

View File

@@ -1,10 +1,12 @@
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
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')
:param string functionName: Name of function for which to enable logging.
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')``

View File

@@ -1,34 +1,40 @@
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
Run a script as a separate process on a specified server. This is similar to the *run* function except
that it can be used to run a script on any server, instead of just the current server.
:param string script: Filename of script to execute.
: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.
However, running this function with a negative *numThreads* argument will cause a runtime error.
.. warning:: Running this function with a ``numThreads`` argument of 0 or
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 following example will try to run *generic-hack.script* on the *foodnstuff* server::
The simplest way to use the :doc:`exec<exec>` command is to call it with
just the script name and the target server. The following example will try
to run ``generic-hack.script`` on the ``foodnstuff`` server::
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);
This last example will try to run the script *foo.script* on the *foodnstuff* server with 5 threads. It will also pass
the number 1 and the string "test" in as arguments to the script::
This last example will try to run the script ``foo.script`` on the
``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");

View File

@@ -5,4 +5,13 @@ exit() Netscript Function
: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.

View File

@@ -1,25 +1,29 @@
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
Returns a boolean indicating whether the specified file exists on the target server. The filename
for scripts is case-sensitive, but for other types of files it is not. For example, *fileExists("brutessh.exe")*
will work fine, even though the actual program is named "BruteSSH.exe".
:param string filename: Filename of file to check.
:param string hostname:
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
running the script that calls this function) for the file.
The filename for scripts is case-sensitive, but for other types of files it
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");
fileExists("ftpcrack.exe");
Examples:
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.
.. code-block:: javascript
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.

View 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}
*/

View File

@@ -1,13 +1,17 @@
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 GB
:RAM cost: 0.05 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");

View File

@@ -4,5 +4,10 @@ getFavorToDonate() Netscript Function
.. js:function:: getFavorToDonate()
: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

View File

@@ -1,13 +1,21 @@
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
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.
:returns: seconds it takes to execute :doc:`grow<grow>` on that server.
The function takes in an optional *hackLvl* parameter that can be specified
to see what the grow time would be at different hacking levels.
The function takes in an optional ``hackLvl`` parameter that can be
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``.

View File

@@ -1,13 +1,20 @@
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
:param string hostname: Hostname of target server.
: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
to see what the hack time would be at different hacking levels.
Example:
.. 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`.

View File

@@ -4,5 +4,10 @@ getHackingLevel() Netscript Function
.. js:function:: getHackingLevel()
: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

View File

@@ -4,9 +4,11 @@ getHackingMultipliers() Netscript Function
.. js:function:: getHackingMultipliers()
: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
returned in decimal forms, not percentages (e.g. 1.5 instead of 150%). The object has the following structure::
Structure::
{
chance: Player's hacking chance multiplier,
@@ -15,7 +17,9 @@ getHackingMultipliers() Netscript Function
growth: Player's hacking growth multiplier
}
Example of how this can be used::
Example:
.. code-block:: javascript
mults = getHackingMultipliers();
print(mults.chance);

View File

@@ -4,9 +4,11 @@ getHacknetMultipliers() Netscript Function
.. js:function:: getHacknetMultipliers()
: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
returned in decimal forms, not percentages (e.g. 1.5 instead of 150%). The object has the following structure::
Structure::
{
production: Player's hacknet production multiplier,
@@ -16,7 +18,9 @@ getHacknetMultipliers() Netscript Function
levelCost: Player's hacknet level cost multiplier
}
Example of how this can be used::
Example:
.. code-block:: javascript
mults = getHacknetMultipliers();
print(mults.production);

Some files were not shown because too many files have changed in this diff Show More