Compare commits

...

558 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
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
b2ac383b69 Merge pull request #909 from danielyxie/dev
When you hotfix you need to build
2021-04-29 13:41:48 -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
753 changed files with 107854 additions and 87888 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

@@ -3,6 +3,4 @@ doc/build/
dist/
tests/*.bundle.*
src/ThirdParty/*
src/ScriptEditor/CodeMirrorNetscriptMode.js
src/ScriptEditor/CodeMirrorNetscriptLint.js
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

5
.gitignore vendored
View File

@@ -1,3 +1,4 @@
.vscode
Changelog.txt
Netburner.txt
/doc/build
@@ -6,3 +7,7 @@ Netburner.txt
/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,9 +1,11 @@
# 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.
@@ -16,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.

View File

@@ -1,7 +1,7 @@
Deploying a new version
-----------------------
## Deploying a new version
Update the following
- `src/Constants.ts` `Version` and `LatestUpdate`
- `package.json` `version`
- `doc/source/conf.py` `version` and `release`
@@ -9,15 +9,13 @@ Update the following
- post to discord
- post to reddit.com/r/Bitburner
Deploying `dev` to the Beta Branch
----------------------------------
## Deploying `dev` to the Beta Branch
TODO
Development Workflow Best Practices
-----------------------------------
## 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`
- 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 */

View File

@@ -1,126 +1,132 @@
@import "theme";
.active-scripts-list {
list-style-type: none;
list-style-type: none;
}
#active-scripts-container {
position: fixed;
padding-top: 10px;
position: fixed;
padding-top: 10px;
> p {
width: 70%;
margin: 6px;
padding: 4px;
}
> p {
width: 70%;
margin: 6px;
padding: 4px;
}
.accordion-header {
> pre {
color: white;
}
.accordion-header {
> pre {
color: white;
}
}
}
.active-scripts-server-header {
background-color: #444;
font-size: $defaultFontSize * 1.25;
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;
margin: 6px 6px 0 6px;
padding: 6px;
cursor: pointer;
width: 60%;
text-align: left;
border: none;
outline: none;
float: right;
margin-left: 5px;
}
&:after {
content: '\02795'; /* "plus" sign (+) */
font-size: $defaultFontSize * 0.8125;
color: #fff;
float: right;
margin-left: 5px;
}
&.active, &:hover {
background-color: #555;
}
&.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;
}
&:after {
content: "\2796"; /* "minus" sign (-) */
font-size: $defaultFontSize * 0.8125;
color: #fff;
float: right;
margin-left: 5px;
}
&:hover {
background-color: #666;
}
&: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;
margin: 0 6px 6px 6px;
padding: 0 6px 6px 6px;
width: 55%;
margin-left: 5%;
display: none;
div, ul, ul > li {
background-color: #555;
}
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;
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;
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%;
}
pre,
h2,
ul,
li {
background-color: #555;
width: auto;
color: #fff;
margin-left: 5%;
}
}

View File

@@ -6,26 +6,25 @@
@import "theme";
#augmentations-container {
position: fixed;
padding-top: 10px;
position: fixed;
padding-top: 10px;
}
#augmentations-content {
> p {
font-size: $defaultFontSize * 0.875;
width: 70%;
}
> p {
font-size: $defaultFontSize * 0.875;
width: 70%;
}
}
.augmentations-list {
button,
div {
color: var(--my-font-color);
text-decoration: none;
}
button {
padding: 4px;
}
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,83 +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;
}
}
/**
@@ -94,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? */
}

View File

@@ -1,24 +1,24 @@
.casino-card {
padding: 10px;
border: solid 1px #808080;
background-color: white;
display: inline-block;
border-radius: 10px;
font-size: 14pt;
text-align: center;
margin: 3px;
font-weight: bold;
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:15pt;
font-family: sans-serif;
font-size: 20px;
font-family: sans-serif;
}
.casino-card.red {
color: red;
color: red;
}
.casino-card.black {
color: black;
color: black;
}

View File

@@ -6,90 +6,117 @@
*/
#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;
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-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-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 0 0 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: 0;
margin-right: 0;
}
.remove-exp-button {
margin-left:0;
margin-left: 0;
}
.exp-input {
margin-right: 0;
margin-left:0;
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: 0;
margin-right: 0;
}
.touch-left {
margin-left: 0;
margin-left: 0;
}
.touch-sides {
margin-left: 0;
margin-right: 0;
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

View File

@@ -6,70 +6,70 @@
*/
#hacknet-nodes-container {
position: fixed;
padding: 10px;
position: fixed;
padding: 10px;
}
.hacknet-general-info {
margin: 10px;
width: 70vw;
margin: 10px;
width: 70vw;
}
#hacknet-nodes-container li {
float: left;
overflow: hidden;
white-space: nowrap;
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);
&.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);
}
margin: 6px;
padding: 7px;
width: 35vw;
border: 2px solid var(--my-highlight-color);
}
}
#hacknet-nodes-list {
list-style: none;
width: 82vw;
list-style: none;
width: 82vw;
}
#hacknet-nodes-money {
margin: 10px;
float: left;
margin: 10px;
float: left;
}
#hacknet-nodes-money-multipliers-div {
display: inline-block;
width: 70vw;
display: inline-block;
width: 70vw;
}
#hacknet-nodes-multipliers {
float: right;
float: right;
}
#hacknet-nodes-purchase-button {
display: inline-block;
display: inline-block;
}
.hacknet-node-container {
display: inline-table;
display: inline-table;
.row {
display: table-row;
height: 30px;
.row {
display: table-row;
height: 30px;
p {
display: table-cell;
}
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;
}
.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,183 +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;
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%;
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+ */
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;
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;
position: fixed;
margin: 5px;
width: 70%;
}

View File

@@ -1,5 +1,5 @@
#milestones-container {
position: fixed;
padding: 6px;
width: 60%;
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; /* 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%;
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,31 +4,31 @@
* Styling for the Red Pill screen (the BitNode selection UI)
*/
#red-pill-container {
position: fixed;
position: fixed;
}
.bitnode {
&.level-0 {
color: red;
}
&.level-0 {
color: red;
}
&.level-1 {
color: yellow;
}
&.level-1 {
color: yellow;
}
&.level-2 {
color: #48d1cc;
}
&.level-2 {
color: #48d1cc;
}
&.level-3 {
color: blue;
}
&.level-3 {
color: blue;
}
&.unimplemented {
color: gray;
}
&.unimplemented {
color: gray;
}
&:hover {
color: #fff;
}
&:hover {
color: #fff;
}
}

View File

@@ -3,26 +3,31 @@
*/
@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: 0;
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,119 +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;
border: 2px solid var(--my-highlight-color);
color: #fff;
display: inline-block;
float: center;
margin: 4px;
padding: 2px;
resize: none;
width: 60%;
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: 0;
padding: 2px;
display: inline-block;
margin: 0;
padding: 2px;
select {
display: block;
}
select {
display: block;
}
}

View File

@@ -1,98 +1,99 @@
@import "theme";
#stock-market-container {
position: fixed;
padding: 6px;
position: fixed;
padding: 6px;
p {
font-size: $defaultFontSize * 0.8125;
}
p {
font-size: $defaultFontSize * 0.8125;
}
a {
font-size: $defaultFontSize * 0.875;
}
a {
font-size: $defaultFontSize * 0.875;
}
}
.stock-market-info-and-purchases {
> h2 {
display: block;
margin-top: 10px;
margin-left: 10px;
}
> h2 {
display: block;
margin-top: 10px;
margin-left: 10px;
}
> p {
display: block;
margin-left: 10px;
width: 70%;
}
> p {
display: block;
margin-left: 10px;
width: 70%;
}
> a, > button {
margin: 10px;
}
> a,
> button {
margin: 10px;
}
}
#stock-market-list {
list-style: none;
list-style: none;
li {
button {
font-size: $defaultFontSize;
}
li {
button {
font-size: $defaultFontSize;
}
}
}
#stock-market-watchlist-filter {
display: block;
margin: 5px 5px 5px 10px;
padding: 4px;
width: 50%;
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;
border: 1px solid white;
color: red;
margin: 2px;
padding: 2px;
}
.stock-market-position-text {
color: #fff;
display: block;
p {
color: #fff;
display: block;
display: inline-block;
margin: 4px;
}
p {
color: #fff;
display: inline-block;
margin: 4px;
}
h3 {
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;
}
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,40 +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,
h3,
h4,
.text,
td {
color: var(--my-font-color);
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 */
@@ -46,379 +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;
position: relative;
}
#factions-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;
}
#augmentations-tab {
position: relative;
position: relative;
}
#augmentations-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;
}
.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 {
z-index: 2;
-webkit-animation: status-text 3s 1;
z-index: 2;
-webkit-animation: status-text 3s 1;
}
#status-text-container {
background-color: transparent;
position:absolute;
top:0;
left:50%;
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;
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;
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;
color: $light-yellow;
}
.smallfont {
font-size: $defaultFontSize * 0.8125;
font-size: $defaultFontSize * 0.8125;
}
.samefont {
font-size: inherit;
font-size: inherit;
}
.noscrollbar {
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
-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;
display: none;
}
input[type=checkbox] {
filter: invert(1) sepia(1) hue-rotate(41deg) brightness(100%) saturate(10);
input[type="checkbox"] {
filter: invert(1) sepia(1) hue-rotate(41deg) brightness(100%) saturate(10);
}
.optionCheckbox {
margin: 5px;
float: right;
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;
-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;
-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;
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;
-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,57 +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;
position: relative;
display: inline-block;
}
.copy_tooltip_copied {
color: #fff;
transition: color 0.3s;
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);
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;
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;
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,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')

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +1,2 @@
!function(n){function t(t){for(var e,i,f=t[0],c=t[1],l=t[2],p=0,s=[];p<f.length;p++)i=f[p],u[i]&&s.push(u[i][0]),u[i]=0;for(e in c)Object.prototype.hasOwnProperty.call(c,e)&&(n[e]=c[e]);for(a&&a(t);s.length;)s.shift()();return r.push.apply(r,l||[]),o()}function o(){for(var n,t=0;t<r.length;t++){for(var o=r[t],e=!0,f=1;f<o.length;f++){var c=o[f];0!==u[c]&&(e=!1)}e&&(r.splice(t--,1),n=i(i.s=o[0]))}return n}var e={},u={1:0},r=[];function i(t){if(e[t])return e[t].exports;var o=e[t]={i:t,l:!1,exports:{}};return n[t].call(o.exports,o,o.exports,i),o.l=!0,o.exports}i.m=n,i.c=e,i.d=function(n,t,o){i.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:o})},i.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},i.t=function(n,t){if(1&t&&(n=i(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var e in n)i.d(o,e,function(t){return n[t]}.bind(null,e));return o},i.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return i.d(t,"a",t),t},i.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},i.p="";var f=window.webpackJsonp=window.webpackJsonp||[],c=f.push.bind(f);f.push=t,f=f.slice();for(var l=0;l<f.length;l++)t(f[l]);var a=c;r.push([840,0]),o()}({779:function(n,t,o){},781:function(n,t,o){},783:function(n,t,o){},785:function(n,t,o){},787:function(n,t,o){},789:function(n,t,o){},791:function(n,t,o){},793:function(n,t,o){},795:function(n,t,o){},797:function(n,t,o){},799:function(n,t,o){},801:function(n,t,o){},803:function(n,t,o){},805:function(n,t,o){},807:function(n,t,o){},809:function(n,t,o){},811:function(n,t,o){},813:function(n,t,o){},815:function(n,t,o){},817:function(n,t,o){},819:function(n,t,o){},821:function(n,t,o){},823:function(n,t,o){},825:function(n,t,o){},827:function(n,t,o){},829:function(n,t,o){},831:function(n,t,o){},833:function(n,t,o){},835:function(n,t,o){},837:function(n,t,o){},840:function(n,t,o){"use strict";o.r(t);o(839),o(837),o(835),o(833),o(831),o(829),o(827),o(825),o(823),o(821),o(819),o(817),o(815),o(813),o(811),o(809),o(807),o(805),o(803),o(801),o(799),o(797),o(795),o(793),o(791),o(789),o(787),o(785),o(783),o(781),o(779)}});
!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

2027
dist/engineStyle.css vendored

File diff suppressed because it is too large Load Diff

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

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

@@ -76,15 +76,15 @@ List of Factions and their Requirements
+---------------------+----------------+-----------------------------------------+-------------------------------+
| Hacking | NiteSec | * Install a backdoor on the avmnite-02h | |
| Groups | | server | |
| | | * Home Computer RAM of at least 32GB | |
| | | | |
+ +----------------+-----------------------------------------+-------------------------------+
| | The Black Hand | * Install a backdoor on the I.I.I.I | |
| | | server | |
| | | * Home Computer RAM of at least 64GB | |
| | | | |
+ +----------------+-----------------------------------------+-------------------------------+
| | Bitrunners | * Install a backdoor on the run4theh111z| |
| | | server | |
| | | * Home Computer RAM of at least 128GB | |
| | | | |
+---------------------+----------------+-----------------------------------------+-------------------------------+
| Megacorporations | ECorp | * Have 200k reputation with | |
| | | the Corporation | |

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

@@ -3,8 +3,504 @@
Changelog
=========
v0.51.7 - 2021-04-28 n00dles
----------------------------
v0.53.0 - 2021-09-09 Way too many things. (hydroflame & community)
-------------------------------------------
** Dev? **
* The entire codebase has been run through a code prettifier, hurray for consistency. (@threehams)
* Lots of test. (@threehams)
* Massive improvements to build speed. (@threehams)
* Dev notes: This won't affect any players but is immensely useful for me.
** Hacknet **
* Converted to ts/react
** Resleeving **
* Converted to ts/react
** Sleeves **
* Converted to ts/react. The ui should also have a better feel.
* Fixed a bug that allowed players to recover shock much faster than intended.
** BN10 **
* You have access to Sleeves right away
* In BN10 Sleeves start with 75 shock and 25 sync.
** MathJax **
* Several tooltips have been updated to display the relevant formula in Mathjax, e.g. Favor and reputation
** Corporation **
* Completely rewritten in React. Paving the way for bigger change.
* Smart Supply is now smarter and won't deadlock the warehouse. It is also more configurable.
* Several UI fixes.
** Bladeburner **
* Action count is no longer decided when joining the Bladeburners. Experiences for all players should be more similar.
** Factions **
* No factions have home computer ram requirement. This caused some confusion for new players.
** Gang **
* Made it clear when there's a new equipment coming up.
** Netscript **
* getActionCountRemaining now returns Infinity for bladeburner general actions. (@brubsy)
* getActionEstimatedSuccessChance now returns 100% for Diplomacy and Hyperbolic Regeneration Chamber. (@brubsy)
* disableLog('ALL') now disables all logs individually, meaning you can re-enable the ones you want after. (@Cass)
* getPlayer returns numPeopleKilled.
* Dynamic RAM calculation errors have a better error message.
* Hide some functions from autocomplete.
* Added getAugmentationPrice, getAugmentationRepReq, deprecated getAugmentationCost. (@TempFound)
* Fixed bug where some crime API would return "assassinate" when that's not accepted in other functions.
** Coding Contract **
* Spiralize Matrix is easier to read.
** Misc. **
* The world map is now used in sleeve travel and bladeburner travel.
* noselect a bunch of stuff.
* Ascii maps letters are more contrasting
* Updated documentation for infiltration.
* Most money costs in the game will turn grey/cyan when you don't have enough money.
* Donation textbox has better look & feel.
* Tech vendors ram & cores buttons have better look and feels.
* cores cost modified to be a formula instead of a semi-random array of numbers.
* Tech vendors now give a hint about where to get bigger servers.
* logboxes now displays whitespaces exactly. (@Cass)
* nerf noodle bar
v0.52.9 - 2021-08-27 Less lag! (hydroflame & community)
-------------------------------------------
** Active Scripts page **
* Now less laggy, has pagination.
** File diagnostic **
* Added a popup found under options that shows the files you own and how
large they are. This help find bugs and leftover massive logs files.
** Corporation **
* Added safeguard against a very specific bug that causes NaN money. I'm
still not sure what the root cause is but it should prevent corp from
breaking.
** Netscript **
* tprintf is a new function that doesn't print the filename.
** Misc. **
* Infiltration kills you if you try to automate it. (@threehams)
* Fix beautify button not working
* Added bladeburner_analysis_mult to getPlayer() (@brubsby)
* Fixed joining bladeburner via netscript functions. (@omuretsu)
* All bladeburner actions are click-to-copy
* nerf noodle bar
v0.52.8 - 2021-08-23 Fixing the previous patch tbh ROUND 2 (hydroflame)
-------------------------------------------
** Script editor **
* Correctly reloads old script when clicking "Script Editor"
* No longer jumps to the end of the text for no reason.
** Hash upgrades **
* Fixed an issue where the default option would say ecorp but was really
foodnstuff
** Misc. **
* The "Delete all active script" button under the options has a clearer
description.
* Removed some debug console.log
* nerf noodle bar
v0.52.7 - 2021-08-21 Fixing the previous patch tbh (hydroflame)
-------------------------------------------
** Netscript **
* API BREAKING CHANGE: getActionEstimatedSuccessChance now returns a pair of
value to reflect the UI changes. I'm very sorry.
** Bladeburner **
* General actions now display time required.
* Recruitment now displays success chance.
* All other success chance now display a range instead of a single value
The real value is guaranteed to be within that range.
** Misc. **
* Fix tutorial not working after Monaco upate
* Fix logbox logs not taking up the whole logbox
* Fix script editor shortcut (ctrl+b)
* Fix Corporation popup appearing in the wrong order, hiding one of them
* Fix error when loading Corp
* Fix logbox dragging (smoother now)
* Fix logbox name collision
* Fix logbox allowing to open the same box multiple times
* Fix netscript write.
* nerf noodle bar
v0.52.6 - 2021-08-21 Logboxes and VS-code (hydroflame)
-------------------------------------------
** Text Editor **
* Ace and Codemirror have been removed in favor of monaco (web version of
vs-code). The options are a bit lackluster but more will be added as
feedback comes.
** Log boxes **
* Multiple log boxes can be opened at once. They can be moved around the
screen. (but the movement behavior is a bit weird.)
** Misc. **
* Job promotion now correctly updates the UI.
* Milestones now call the faction CyberSec instead of CSEC
* Can no longer create file that break the filesystem.
* Remove dollar sign in blade contract UI element
* nerf noodle bar
v0.52.5 - 2021-08-19 CPU cores are useful!? (hydroflame)
-------------------------------------------
** Terminal **
* When executing 'run SCRIPT' any script can now add '--tail' to
automatically bring up the logs.
** Netscript **
* The 'flags' function now works with single letter flags but they only take
one dash.
* Fix several broken bladeburner netscript functions.
* Fix gang.getMemberInformation returning inconsistent data after the gang
rework.
** CPU Cores **
* CPU Cores on the home computer now provide a bonus to grow() money gain
and makes weaken lower more security. Only for scripts running on 'home'
** Misc. **
* Fix weird scrolling in the new Bladeburner React console.
* nerf noodle bar
v0.52.4 - 2021-08-19 Bladeburner in React (hydroflame)
-------------------------------------------
** Bladeburner **
* The entire UI was rebuild in React. It should be more responsive
** Hacknet **
* Displays how many time each hash upgrade was bought.
* Displays cummulative effect of the upgrade.
* Removed "Close" button from hash upgrade menu.
** Misc. **
* More popup/modals have dark background, can be dismissed by clicking
outside, or by pressing escape.
* Small reword in the guide.
* Fix several typos in the bladeburner documentation.
* Linting (no one cares except the dev)
* nerf noodle bar
v0.52.3 - 2021-08-15 Gangs were OP (hydroflame)
-------------------------------------------
** Gang **
* Significant rework. Ascension is now based on exp gained.
* All upgrades give exp bonuses.
* Maximum gang members reduced to 12.
* Respect required to recruit sharply increased.
* Rewritten in React, the UI should be smoother and less laggy now.
** Infiltration **
* Now isTrusted protected.
** Misc. **
* Many UI element are now "noselect" protected.
* Fixed an issue where you could join the same faction twice via script and
UI simultaneously.
* Factions list screen converted to React.
* nerf noodle bar
v0.52.2 - 2021-08-15 Oh yeah, BN11 is a thing (drunk hydroflame tbh)
-------------------------------------------
** Source-Files **
* Source-File 11 now also provides a small reduction to the price increase
multiplier.
** Augmentations **
* New Augmentation offered by Aevum, themed around 777 and offers some basic
programs.
* Augmentation descriptions are now more concise and consistent.
** Misc. **
* nerf noodle bar
v0.52.1 - 2021-08-10 bugfixing (hydroflame & community)
-------------------------------------------
**Misc.**
* Fix game crash/corruption when quitting a job while working for it unfocused.
* Fix typo in corporation Market Data.
* Fix typo in docs for hackPercent.
* The tutorial encourages the players to connect to home before creating `n00dles.script`
* The dark web `buy` command now accepts `-1` (one) and `--list` instead of just
`-l`. Helps some confused players.
* Character overview screen no longer hidden on the corporation screen.
* Infiltration difficulty display is now more explicit (It's a big arrow instead
of just one word.)
* Fix wrong ram value in tutorial. (@MageKing17)
* Plenty of augmentation description cleanup (@Kwazygloo)
* Plenty of typo/description fixed (@MageKing17)
* Cleanup description of singularity function on readthedocs (@PurePandemonium)
* Fix bug when autolinking a server while backdooring (@schroederIT)
* nerf noodle bar
v0.52.0 - 2021-06-13 Infiltration 2.0 (hydroflame & community)
--------------------------------------------------------------
**Infiltration**
* Completely reworked. Not the same mechanic at all.
**Terminal**
* tail is smarter. It automatically assume the only possible options in some
cases.
**Intelligence**
* Now available when starting BN5 instead of after beating it for the first
time.
* Nerf the effect of intelligence on reputation gain.
**Augmentation**
* Added a new augmentation, the 'Unstable Circadian Modulator', whose
gimmick is that its stats are randomized every hour.
**Netscript**
* 'getPlayer' is not a singularity function anymore.
* 'hacknetNodes.constants' returns the correct values.
* 'createGang' has been added.
* 'inGang' has been added.
**Tutorial**
* Updated the tutorial. Made it look cleaner, fixed typos, etc.
**Misc.**
* Fix many typos in literature (@kwazygloo)
* Fix being able to unfocus from gym and university.
* Fix being able to do hacking missions while unfocused.
* Fix many typos in Augmentation descriptions (@kwazygloo)
* More numbers handle absurdly large values. (@Tesseract1234567890)
* Fix many typos (@Tesseract1234567890)
* Fixed an issue that caused a UI desync when sleeves were set to workout
stats other than strength at the gym.
* Fix weird alignment of donation text box and button. (@Tesseract1234567890)
* Fixed an issue where reputation could be transfered to new jobs when unfocused.
* Empty stack traces should no longer appear.
* Purchasing anything with Infinity money doesn't result in NaN.
* nerf noodle bar
v0.51.10 - 2021-05-31 Focus Mark, Focus! (hydroflame)
-----------------------------------------------------
**Focus**
* You can now use the terminal and write scripts while working for factions
but you will gain reputation at a slower rate.
**SF -1**
* Added a new SF -1: Bypass
**Gang**
* "Vigilante justice"/"Ethical hacking" now reduces wanted level by a very
small percentage as well an absolute value.
**Netscript**
* 'tFormat' now has a second argument to display with millisecond precision.
* 'purchaseSleeveAug' can no longer purchase the same aug over and over for
the same sleeve.
* fix typo in logging for 'getServerSecurityLevel'
* Fixed some weird issue where very rarely you would get 0 exp from 'grow'
* 'getActionTime' now returns correct values for Diplomacy and Regeneration.
**Corporations**
* Fixed an exploit where you could get nearly infinite corporation funds by
entering negative numbers in textboxes.
* Fixed an exploit where shares could be sold again by clicking the
"sell share" button via scripts.
**Documentation**
* typo fix in purchaseTor
* typo fix in basicgameplay/stats
**Misc.**
* Very large number will no longer appear as "$NaNt"
* Hash capacity now displays in the "big number" format.
* nerf noodle bar
v0.51.9 - 2021-05-17 offline progress and exports! (hydroflame & community)
---------------------------------------------------------------
**Alias**
* several commands can be included in 1 alias. Recursive alias now work to
a depth of 10. (@Dawe)
**Offline**
* Offline money gain has been reworked (it is more generous)
* If you're not working anywhere and go offline the game will work for you
at all your factions evenly.
**Export**
* Exporting now gives +1 favor to all joined factions every 24h.
**Corp**
* Self-fund with an invalid name no longer takes away 150b anyway.
* Can no longer export negative amount
**Bladeburner**
* No longer waste overflowing time.
**Text Editors**
* All settings will now be saved and loaded correctly.
**Terminal**
* 'scan' now works for servers that are more than 21 character long.
**Misc.**
* ls now correctly lists all files.
* importing auto save+reloads (@Dawe)
* Fix a bug where .fconf could not be created
* Fix formatting inconsistencies for some logs of netscript functions.
* Fix a bug where Cashroot starter kit would appear as [object Object] in
confirmation dialog.
* Fix some ram not displayed as 0.00GB
* Fix error message throw undefined variable error
* City hall now has some generic text if you can't create a corp yet.
* Deleting a file without extension now returns an appropriate error message.
* Fixed an issue where bladeburner would miscalculate the cost of hospitalization.
* It is now possible to suppress bladeburner "action stopped" popup.
* Updated several dependencies (big who cares, I know)
* ls no longer prints lingering newline.
* Money earned/spent by sleeves is now tracked under Character>Money
* nerf noodle bar
v0.51.8 - 2021-05-07 It was there all along (hydroflame & community)
--------------------------------------------------------
**Servers**
* Update n00dles metadata
**Netscript**
* 'hashGainRate' use the correct 'usedRam' and 'maxRam'
* Fix 'setActionAutolevel' logging.
* Fix 'setActionLevel' not working at all.
* Add 'installBackdoor' singularity function.
**Hacknet**
* Fix Hacknet Servers total production always displaying 0
**Documentation**
* Updated guide to no longer recommend BN12.
* Fix documentation for maxNumNodes (@ModdedGamers)
* Fix typo in 'sourcefiles.rst'
* Fix typo in 'recommendedbitnodeorder.rst'
* Fix 'getServer' documentation missing 'server' argument.
* Fix missing ram cost in 'getData.rst'
* Fix basic formulas examples.
* Fix typo in BN11 description.
* Fix formatting issue in Bladeburner (@Pimgd)
**Misc.**
* Fix negative money being displayed in full.
* Fix Hacking Missions not working.
* Fix Corporation tree not rendering.
* Fix script being needlessly recompiled. This should save real ram (not game ram)
* w0r1d_d43m0n can be backdoored
* Coding Contracts title is click-to-copy (@Rodeth)
* Covenant memory upgrade works better.
* Fix Neuroflux not being correctly calculated when entering BN with SF12.
* Delete Active Script now delete all active scripts, not just home.
* Now you can 'cd' in directories that only contain '.txt' files.
* Fix 'analyze' always saying players had root access
* Passive faction rep no longer builds for special factions.
* Donation option no longer appears for special factions.
* Rephrased some milestones.
* donation textbox now accepts money in the format '1b' and the like (@Dawe)
* Fix being able to join hated factions simultaneously. (@Dawe)
* 'ls' now displays files in multiple column. (Helps players with many files)
* Bladeburner multiplers now appear under Character>Stats and
Character>Augmentation when they are relevant.
* Fix missing functions syntax highlight in codemirror.
* Fix infiltration number formatting.
* script income transfers to parent on death. This helps keep track of
income for scripts that spawn short lived scripts.
* nerf noodle bar
v0.51.7 - 2021-04-28 n00dles (hydroflame & community)
-----------------------------------------
**Tutorial servers**
@@ -59,9 +555,10 @@ v0.51.7 - 2021-04-28 n00dles
* Money amount under 1000 dont display 3 decimal anymore.
* Fix nextSourceFile flag miscalculation on the bitverse (for Bn12)
* Faction invite text says "Decide later"/"Join!" instead of "No"/"Yes"
* nerf noodle bar
v0.51.6 - 2021-04-28 Backdoor! (Community)
v0.51.6 - 2021-04-28 Backdoor! (hydroflame & community)
------------------------------------------
**Backdoor**
@@ -109,6 +606,7 @@ v0.51.6 - 2021-04-28 Backdoor! (Community)
* so many documentation and typos fixes (@Pimgd)
* A corruption visual effect has been added to location with servers that
have backdoor installed. (@dewint)
* nerf noodle bar
v0.51.5 - 2021-04-20 Flags! (hydroflame)
@@ -133,6 +631,7 @@ v0.51.5 - 2021-04-20 Flags! (hydroflame)
* Souce-File typo fix
* Fix 'while you were away' screen.
* Bladeburner team size can no longer be set to negative amounts.
* nerf noodle bar
v0.51.4 - 2021-04-19 Manual hacking is fun (hydroflame)
-------------------------------------------------------
@@ -168,6 +667,7 @@ v0.51.4 - 2021-04-19 Manual hacking is fun (hydroflame)
* The text editor now remembers the location of your cursor and restores it.
* skills are recalculated instantly.
* Fix typo in Operation Zero description.
* nerf noodle bar
v0.51.3 - 2021-04-16 Y'all broke it on the first day (hydroflame)
-----------------------------------------------------------------
@@ -209,6 +709,7 @@ v0.51.3 - 2021-04-16 Y'all broke it on the first day (hydroflame)
* Hacknet node names is easier to handle for screen readers.
* Money spent on classes is now tracked independently of work money.
* running coding contract from the terminal will display its name.
* nerf noodle bar
v0.51.2 - 2021-04-09 Vegas, Baby! (hydroflame)
----------------------------------------------
@@ -223,6 +724,7 @@ v0.51.2 - 2021-04-09 Vegas, Baby! (hydroflame)
* Link to discord added under options
* 'getMemberInformation' doc updated, oops
* tech vendor now handle max ram and cores.
* nerf noodle bar
v0.51.1 - 2021-04-06 Bugfixes because the author of the last patch sucks (it's hydroflame)
------------------------------------------------------------------------------------------
@@ -254,6 +756,7 @@ v0.51.1 - 2021-04-06 Bugfixes because the author of the last patch sucks (it's h
* 'fl1ght.exe' will no longer suggest the combat path. Related faction
requirements unchanged.
* nerf noodle bar
v0.51.0 - 2021-03-31 Formulas (hydroflame)
------------------------------------------
@@ -280,6 +783,10 @@ v0.51.0 - 2021-03-31 Formulas (hydroflame)
* Certain UI elements are now 'click-to-copy'
** Misc. **
* nerf noodle bar
v0.50.2 - 2021-03-25 Everyone asked for this one. (hydroflame)
--------------------------------------------------------------
@@ -297,6 +804,7 @@ v0.50.2 - 2021-03-25 Everyone asked for this one. (hydroflame)
* New shortcut, Alt + b, brings you to bladeburner
* New shortcut, Alt + g, brings you to gang
* nerf noodle bar
v0.50.1 - 2021-03-22 (hydroflame)
---------------------------------
@@ -319,6 +827,7 @@ v0.50.1 - 2021-03-22 (hydroflame)
**Misc.**
* Minor spacing in stats tables.
* nerf noodle bar
v0.50.0 - 2021-03-20 Intelligence (hydroflame)
----------------------------------------------
@@ -339,6 +848,7 @@ v0.50.0 - 2021-03-20 Intelligence (hydroflame)
* number formatting
* remove wiki button in Hacking Missions.
* Fix NaN displayed when very very large numbers are reached.
* nerf noodle bar
v0.49.2 - 2021-03-13 (hydroflame)
---------------------------------
@@ -376,6 +886,7 @@ v0.49.2 - 2021-03-13 (hydroflame)
**Misc.**
* Fix issue where the effective stats under Character>Stats were being calculated.
* nerf noodle bar
v0.49.0 - 2021-03-11 Source-File -1 (hydroflame)
------------------------------------------------
@@ -403,6 +914,7 @@ v0.49.0 - 2021-03-11 Source-File -1 (hydroflame)
* Minor formatting under Hacking>Active Scripts
* option menu colors now match the rest of the game, kinda.
* nerf noodle bar
v0.48.0 - ASCII - 2021-03-07 (hydroflame)
@@ -450,6 +962,7 @@ v0.48.0 - ASCII - 2021-03-07 (hydroflame)
has bought but not installed
* Character>Factions has a badge indicating how many factions have pending
invites.
* nerf noodle bar
v0.47.2 - 7/15/2019
-------------------

View File

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

View File

@@ -636,7 +636,7 @@ This tells me that I can reach :code:`CSEC` by going through :code:`iron-gym`::
from CSEC once you hit 50 hacking, you cannot actually pass their test
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|::

View File

@@ -323,7 +323,7 @@ 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
Each level of this Source-File also grants you a Duplicate Sleeve.
Difficulty
Hard
@@ -373,9 +373,10 @@ Description
Source-File
:Max Level: Infinity
Each level of Source-File 12 will increase all of your multipliers by 1%. This effect
is multiplicative with itself. In other words, level N of this Source-File will result
in a multiplier of 1.01^N (or 0.99^N for multipliers that decrease)
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.
@@ -396,27 +397,22 @@ For fast progression
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. Repeat **BitNode-12: The Recursion** several times. This BitNode will be extremely easy the
first few times you tackle it, and its Source-File raises all multipliers. Furthermore,
its effect stacks multiplicatively with itself and other Source-Files/Augmentations,
which gets better as time goes on
3. Do **BitNode-5: Artificial Intelligence** once or twice. The intelligence stat it unlocks
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.
4. (Optional) Consider doing **BitNode-4: The Singularity**. Its Source-File does not directly make you
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.
5. Do **BitNode-3: Corporatocracy** once to unlock the Corporation mechanic. This mechanic
4. Do **BitNode-3: Corporatocracy** once to unlock the Corporation mechanic. This mechanic
has high profit potential.
6. Do **BitNode-6: Bladeburners** once to unlock the Bladeburners mechanic. The Bladeburner
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).
7. Do **BitNode-9: Hacktocracy** to unlock the Hacknet Server mechanic. You can
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

View File

@@ -5,13 +5,16 @@ getBitNodeMultipliers() Netscript Function
:RAM cost: 4 GB
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.
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

View File

@@ -1,9 +1,10 @@
getServer() Netscript Function
==========================================
.. js:function:: getServer()
.. js:function:: getServer([hostname])
:RAM cost: 4 GB
: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.

View File

@@ -7,8 +7,8 @@ brutessh() Netscript Function
:param string hostname: Hostname of the target server.
Runs the BruteSSH.exe program on the target server. BruteSSH.exe must exist
on your home computer.
Runs the ``BruteSSH.exe`` program on the target server. ``BruteSSH.exe``
must exist on your home computer.
Examples:

View File

@@ -9,9 +9,3 @@ disableLog() Netscript Function
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

@@ -19,9 +19,8 @@ exec() Netscript Function
the :doc:`run<run>` function except that it can be used to run a script on any
server, instead of just the current server.
.. warning:: Running this function with a ``numThreads`` argument of 0 will return 0 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 :doc:`exec<exec>` command is to call it with
just the script name and the target server. The following example will try

View File

@@ -6,3 +6,12 @@ exit() Netscript Function
:RAM cost: 0 GB
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

@@ -7,17 +7,22 @@ flags() Netscript Function
:param data array of pairs of strings: Flags definition.
:returns: Object containing all the flags that were parsed or default.
The flag definition is an array of pairs of values, the first value is the
name of the flag, the 2nd value is the default value for that flag.
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.
contains the special field '_', which contains all arguments that were not
flags.
Example:
.. code-block:: javascript
/* example.script
// 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
@@ -25,16 +30,17 @@ flags() Netscript Function
['help', false], // a default boolean means this flag is a boolean
]);
tprint(data);
*/
/*
[home ~/]> run example.script
{"_":[],"delay":0,"server":"foodnstuff"}
{"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":false}
[home ~/]> run example.script --delay 3000
{"_":[],"server":"foodnstuff","delay":3000}
{"_":[],"server":"foodnstuff","exclude":[],"help":false,"delay":3000}
[home ~/]> run example.script --delay 3000 --server harakiri-sushi
{"_":[],"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"],"delay":3000,"server":"harakiri-sushi"}
{"_":["hello","world"],"exclude":[],"help":false,"delay":3000,"server":"harakiri-sushi"}
[home ~/]> run example.script --delay 3000 --server harakiri-sushi hello world --exclude a --exclude b
{"_":["hello","world"],"delay":3000,"server":"harakiri-sushi","exclude":["a","b"]}
{"_":["hello","world"],"help":false,"delay":3000,"server":"harakiri-sushi","exclude":["a","b"]}
[home ~/]> run example.script --help
{"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":true}
*/

View File

@@ -10,7 +10,6 @@ ftpcrack() Netscript Function
Runs the ``FTPCrack.exe`` program on the target server. ``FTPCrack.exe``
must exist on your home computer.
Examples:
.. code-block:: javascript

View File

@@ -10,4 +10,4 @@ getFavorToDonate() Netscript Function
.. code-block:: javascript
getFavorToDonate() // returns: 150
getFavorToDonate() // returns: 150

View File

@@ -6,14 +6,11 @@ getGrowTime() Netscript Function
:RAM cost: 0.05 GB
:param string hostname: Hostname of target server.
:param number hackLvl: Optional hacking level for the calculation. Defaults
to player's current hacking level.
:returns: seconds it takes to execute :doc:`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.
Example:
.. code-block:: javascript

View File

@@ -5,8 +5,6 @@ getHackTime() Netscript Function
:RAM cost: 0.05 GB
:param string hostname: Hostname of target server.
:param number hackLvl: Optional hacking level for the calculation. Defaults
to player's current hacking level.
:returns: seconds it takes to execute :doc:`hack<hack>` on that server.
The function takes in an optional ``hackLvl`` parameter that can be

View File

@@ -10,4 +10,4 @@ getHackingLevel() Netscript Function
.. code-block:: javascript
getHackingLevel(); // returns: 124
getHackingLevel(); // returns: 124

View File

@@ -11,4 +11,3 @@ getHostname() Netscript Function
.. code-block:: javascript
getHostname(); // returns: "foodnstuff"

View File

@@ -0,0 +1,101 @@
getPlayer() Netscript Function
==============================
.. js:function:: getPlayer()
:RAM cost: 0.5 GB
The result of this function can be passed to the :doc:`formulas API<../netscriptformulasapi>`.
Returns an object with the Player's stats. The object has the following properties::
{
hacking_skill: Current Hacking skill level
hp: Current health points
max_hp: Maximum health points
strength: Current Strength skill level
defense: Current Defense skill level
dexterity: Current Dexterity skill level
agility: Current Agility skill level
charisma: Current Charisma skill level
intelligence: Current Intelligence skill level (from BitNode-5)
hacking_chance_mult: Hacking Chance multiplier (from Source-Files and Augments)
hacking_speed_mult: Hacking Speed multiplier (from Source-Files and Augments)
hacking_money_mult: Hacking Money multiplier (from Source-Files and Augments)
hacking_grow_mult: Hacking Growth multiplier (from Source-Files and Augments)
hacking_exp: Current Hacking experience points
strength_exp: Current Strength experience points
defense_exp: Current Defense experience points
dexterity_exp: Current Dexterity experience points
agility_exp: Current Agility experience points
charisma_exp: Current Charisma experience points
hacking_mult: Hacking Level multiplier (from Source-Files and Augments)
strength_mult: Strength Level multiplier (from Source-Files and Augments)
defense_mult: Defense Level multiplier (from Source-Files and Augments)
dexterity_mult: Dexterity Level multiplier (from Source-Files and Augments)
agility_mult: Agility Level multiplier (from Source-Files and Augments)
charisma_mult: Charisma Level multiplier (from Source-Files and Augments)
hacking_exp_mult: Hacking Experience multiplier (from Source-Files and Augments)
strength_exp_mult: Strength Experience multiplier (from Source-Files and Augments)
defense_exp_mult: Defense Experience multiplier (from Source-Files and Augments)
dexterity_exp_mult: Dexterity Experience multiplier (from Source-Files and Augments)
agility_exp_mult: Agility Experience multiplier (from Source-Files and Augments)
charisma_exp_mult: Charisma Experience multiplier (from Source-Files and Augments)
company_rep_mult: Company reputation gain multiplier (from Source-Files and Augments)
faction_rep_mult: Faction reputation gain multiplier (from Source-Files and Augments)
money: Current money
city: Name of city you are currently in
location: Name of the last location visited
crime_money_mult: Crime money multiplier (from Source-Files and Augments)
crime_success_mult: Crime success multiplier (from Source-Files and Augments)
isWorking: Boolean indicating whether the player is currently performing work
workType: Name of the kind of work the player is performing
currentWorkFactionName: Name of the faction the player is currently working for
currentWorkFactionDescription: Description of the kind of work the player is currently doing
workHackExpGainRate: Amount of Hacking experience the player will gain every cycle (fifth of a second)
workStrExpGainRate: Amount of Strength experience the player will gain every cycle
workDefExpGainRate: Amount of Defense experience the player will gain every cycle
workDexExpGainRate: Amount of Dexterity experience the player will gain every cycle
workAgiExpGainRate: Amount of Agility experience the player will gain every cycle
workChaExpGainRate: Amount of Charisma experience the player will gain every cycle
workRepGainRate: Amount of Reputation the player will gain every cycle
workMoneyGainRate: Amount of Money the player will gain every cycle
workMoneyLossRate: Amount of Money the player will lose every cycle
workHackExpGained: Total Hacking experience gained while working thus far
workStrExpGained: Total Strength experience gained while working thus far
workDefExpGained: Total Defense experience gained while working thus far
workDexExpGained: Total Dexterity experience gained while working thus far
workAgiExpGained: Total Agility experience gained while working thus far
workChaExpGained: Total Charisma experience gained while working thus far
workRepGained: Total Reputation gained while working thus far
workMoneyGained: Total Money gained while working thus far
createProgramName: Name of the program the player is currently creating
createProgramReqLvl: Hacking skill required to make that program
className: Name of the class the player is currently studying
crimeType: Name of the crime the player last started
work_money_mult: Salary multiplier (from Source-Files and Augments)
hacknet_node_money_mult: Hacknet Node production multiplier (from Source-Files and Augments)
hacknet_node_purchase_cost_mult: Hacknet Node purchase cost multiplier (from Source-Files and Augments)
hacknet_node_ram_cost_mult: Hacknet Node RAM upgrade cost multiplier (from Source-Files and Augments)
hacknet_node_core_cost_mult: Hacknet Node Core purchase cost multiplier (from Source-Files and Augments)
hacknet_node_level_cost_mult: Hacknet Node level upgrade cost multiplier (from Source-Files and Augments)
hasWseAccount: Boolean indicating whether the player has a WSE Account
hasTixApiAccess: Boolean indicating whether the player has TIX API Access
has4SData: Boolean indicating whether the player has 4S Market Data Access
has4SDataTixApi: Boolean indicating whether the player has 4S Market Data TIX API Access
bladeburner_max_stamina_mult: Bladeburner Max Stamina multiplier (from Source-Files and Augments)
bladeburner_stamina_gain_mult: Bladeburner Stamina Gain multiplier (from Source-Files and Augments)
bladeburner_success_chance_mult: Bladeburner Success Chance multiplier (from Source-Files and Augments)
bitNodeN: Current BitNode number
totalPlaytime: Total amount of time the game has been running, in milliseconds
playtimeSinceLastAug: Milliseconds since the last time Augmentations were installed
playtimeSinceLastBitnode: Milliseconds since this BitNode was started
jobs: A mapping of companies the player works for to the title of the player's job at that company
factions: An array of factions the player is currently a member of
tor: Boolean indicating whether or not you have a tor router
}
Example::
player = getPlayer();
print('My charisma level is: ' + player.charisma);

View File

@@ -10,4 +10,4 @@ getPurchasedServerLimit() Netscript Function
.. code-block:: javascript
getPurchasedServerLimit() // returns: 25
getPurchasedServerLimit() // returns: 25

View File

@@ -10,4 +10,4 @@ getPurchasedServerMaxRam() Netscript Function
.. code-block:: javascript
getPurchasedServerMaxRam(); // returns: 1048576
getPurchasedServerMaxRam(); // returns: 1048576

View File

@@ -4,7 +4,7 @@ getRunningScript() Netscript Function
.. js:function:: getRunningScript()
:RAM cost: 0.3 GB
:returns: Script object or null if not found
:returns: Script object or null if not found.
The object has the following properties:
@@ -64,8 +64,8 @@ getRunningScript() Netscript Function
.. js:function:: getRunningScript(pid)
:RAM cost: 0.3 GB
:param number pid: PID of the script
:returns: Script object or null if not found
:param number pid: PID of the script.
:returns: Script object or null if not found.
Examples:
@@ -73,13 +73,13 @@ getRunningScript() Netscript Function
getRunningScript(42); // get the script with pid 42.
.. js:function:: getRunningScript(fn, hostname[, args])
.. js:function:: getRunningScript(fn, hostname[, args...])
:RAM cost: 0.3 GB
:param number fn: filename of the target script
:param number hostname: hostname of the server running the script
:param number args: arguments to the script.
:returns: Script object or null if not found
:param number fn: Filename of the target script.
:param number hostname: Hostname of the server running the script.
:param number args...: Arguments that the script is running with.
:returns: Script object or null if not found.
Examples:

View File

@@ -15,4 +15,3 @@ getScriptExpGain() Netscript Function
.. note:: A script is uniquely identified by both its name and its
arguments.

View File

@@ -16,4 +16,4 @@ getScriptIncome() Netscript Function
scripts since you last installed Augmentations.
.. note:: A script is uniquely identified by both its name and its
arguments.
arguments.

View File

@@ -9,8 +9,8 @@ getScriptLogs() Netscript Function
:param args...: Arguments to identify which scripts to get logs for
:returns: Array of string, each line being a logged line. Chronological.
.. note:: There is a maximum number of lines that a script stores in its logs.
This is configurable in the game's options.
.. note:: There is a maximum number of lines that a script stores in its logs.
This is configurable in the game's options.
If the function is called with no arguments, it will return the current
script's logs.

View File

@@ -7,10 +7,10 @@ getServerGrowth() Netscript Function
:param string hostname: Hostname of target server.
:returns: Server growth parameter.
The growth parameter is a number between 1 and 100 affects the percentage by
which the server's money is increased when using the :doc:`grow<grow>`
function. A higher growth parameter will result in a higher percentage
increase.
The growth parameter is a number, typically between 1 and 100, that affects
the percentage by which the server's money is increased when using the
:doc:`grow<grow>` function. A higher growth parameter will result in a
higher percentage increase.
Example:

View File

@@ -5,10 +5,10 @@ getServerMaxMoney() Netscript Function
:RAM cost: 0.1 GB
:param string hostname: Hostname of target server.
:returns: Maximum amount of money that can be available on a server.
:returns: Maximum amount of money that can be available on a server.
Example:
.. code-block:: javascript
getServerMaxMoney('foodnstuff'); // returns: 4000000
getServerMaxMoney('foodnstuff'); // returns: 50000000

View File

@@ -0,0 +1,15 @@
getServerMaxRam() Netscript Function
====================================
.. js:function:: getServerMaxRam(hostname)
:RAM cost: 0.05 GB
:param string hostname: Hostname of target server.
:returns: Total ram available on that server. In GB.
Example:
.. code-block:: javascript
maxRam = getServerMaxRam("helios"); // returns: 16
print("helios has "+maxRam + "GB");

View File

@@ -16,4 +16,4 @@ getServerMoneyAvailable() Netscript Function
.. code-block:: javascript
getServerMoneyAvailable("foodnstuff"); // returns: 120000
getServerMoneyAvailable("home"); // returns: 1000
getServerMoneyAvailable("home"); // returns: 1000

View File

@@ -3,10 +3,14 @@ getServerRam() Netscript Function
.. js:function:: getServerRam(hostname)
.. warning:: This function is deprecated. It still functions, but new
scripts should prefer :doc:`getServerMaxRam<getServerMaxRam>`
and :doc:`getServerUsedRam<getServerUsedRam>` instead.
:RAM cost: 0.1 GB
:param string hostname: Hostname of target server.
:returns: An array of 2 number, first number is the total RAM, second the
used RAM.
:returns: An array of 2 numbers; the first number is the total RAM, and the
second is the used RAM.
Returns an array with two elements that gives information about a server's memory (RAM). The first
element in the array is the amount of RAM that the server has total (in GB). The second element in

View File

@@ -11,4 +11,4 @@ getServerRequiredHackingLevel() Netscript Function
.. code-block:: javascript
getServerRequiredHackingLevel("foodnstuff"); // returns: 5
getServerRequiredHackingLevel("foodnstuff"); // returns: 5

View File

@@ -11,4 +11,4 @@ getServerSecurityLevel() Netscript Function
.. code-block:: javascript
getServerSecurityLevel("foodnstuff"); // returns: 3.45
getServerSecurityLevel("foodnstuff"); // returns: 3.45

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