Compare commits

..

2623 Commits

Author SHA1 Message Date
Olivier Gagnon
27b64c4674 allbuild commit 0133945c 2022-10-17 16:16:59 -04:00
Olivier Gagnon
0133945c8b add eslint strict 2022-10-16 14:32:01 -04:00
Olivier Gagnon
c3b2c6396c lint and made a some code more robust to older save file 2022-10-16 14:25:42 -04:00
Olivier Gagnon
6c84d64e67 rm unecessary return type 2022-10-13 01:07:10 -04:00
Olivier Gagnon
4c4f050214 simplify get money source 2022-10-13 00:55:57 -04:00
Olivier Gagnon
8ff840edfa getBitnodeM takes 2 arg 2022-10-13 00:51:53 -04:00
Olivier Gagnon
ae5fc168bf Add getMoneySources 2022-10-13 00:10:59 -04:00
hydroflame
d0fe28f8fb Merge pull request #4220 from cptpiepmatz/fix-nano-not-opening-root-script-if-in-dir
UI: Fixed `nano` not correctly opening a script in root of a server if `cd`'d into a directory
2022-10-12 23:58:59 -04:00
hydroflame
14914eb190 Merge pull request #4229 from borisflagell/wxsQDSSQF
SLEEVE: Fix #4194 Bladeburner Contract in Sleeve were not giving proper reward.
2022-10-12 23:54:15 -04:00
hydroflame
93769c7089 Merge pull request #4224 from quacksouls/doc-scan
DOC: `ns.scan()`: typo fixes and add 2 examples
2022-10-12 23:52:34 -04:00
hydroflame
aa39728f67 Merge pull request #4230 from borisflagell/SoA_RepCost
SOA: Fix #3884 Implement unused SoARepMult constant to SoA's augmentations price + linked UI modification
2022-10-12 23:52:14 -04:00
hydroflame
50bc41bf5b Merge pull request #4231 from borisflagell/TypoRepReq#3811
API: Fix #3811 Update NetscriptDefinitions.d.ts
2022-10-12 23:51:39 -04:00
hydroflame
c1ab4e82f2 Merge pull request #4232 from borisflagell/UI_reputation_color
UI: Fix #3719 Inconsistent colors of reputation gains on Install Augmentations screen
2022-10-12 23:51:23 -04:00
hydroflame
74a1b9b180 Merge pull request #4234 from Jakob002/Jakob002-patch-1
MISC: Fixed typo in Literatures.ts
2022-10-12 23:51:10 -04:00
hydroflame
68e90b8e6e Merge pull request #4236 from Snarling/typeFix
NETSCRIPT: Fix internal typechecking of functions
2022-10-12 23:50:22 -04:00
hydroflame
70fa66c3e8 Merge pull request #4237 from Jakob002/Jakob002-patch-2
MISC: message formatting
2022-10-12 23:46:53 -04:00
omuretsu
e192ad53ec Actually format + lint 2022-10-12 10:18:56 -04:00
Jakob002
c2ed9067e0 MISC: message formatting
Replaced someArray.toString() with someArray.join(", "). This will return "foo, bar, baz" (with spaces) instead of "foo,bar,baz" (no spaces).
2022-10-12 15:16:10 +02:00
omuretsu
7a384d53f4 typefix netscriptFunctions (see desc)
* Types for InternalFunction and ExternalFunction have been modified to actually typecheck ns functions against docs.
* Internal functions are required to use unknown for any params on the inner function.
* Return types for internal function inner-function must match the respective external function.
* Added new typecheck assertion function for asserting dynamic object types, to allow unknownifying params that were previously hardcoded objec structures.
* Because type assertion for parameter types and return types is enforced by InternalAPI, removed all duplicate type declarations on NetscriptFunction params and returns.
2022-10-12 08:49:27 -04:00
Jakob002
fc50625dcf Fixed typo in Literatures.ts 2022-10-12 08:47:03 +02:00
omuretsu
41b6f0b87b add hoop before exposing 2022-10-11 21:02:04 -04:00
omuretsu
7d07f44b3e move to global scope 2022-10-11 20:01:10 -04:00
omuretsu
84b99c569a extra printRaw function 2022-10-11 16:07:45 -04:00
borisflagell
b3f2fe5e02 Update PlayerMultipliers.tsx 2022-10-11 19:22:06 +03:00
borisflagell
def2cb281b Update AugmentationsPage.tsx 2022-10-11 19:03:58 +03:00
borisflagell
b2886ba623 Update NetscriptDefinitions.d.ts 2022-10-11 18:45:38 +03:00
borisflagell
6c625a5ca3 Update AugmentationsPage.tsx 2022-10-11 18:30:41 +03:00
borisflagell
5c1777a6d4 Update AugmentationsPage.tsx
Tooltip's text refining
2022-10-11 18:29:17 +03:00
borisflagell
125cd04383 Fix #3884
Fix #3884
2022-10-11 18:12:06 +03:00
borisflagell
bbe6421b06 Update Bladeburner.tsx
Prettier
2022-10-11 15:33:55 +03:00
borisflagell
f3becee15b Fix Bladeburner Contract in Sleeve 2022-10-11 15:25:16 +03:00
Duck McSouls
b03288a700 DOC: ns.scan(): add 2 examples
The first example shows how to use `ns.scan()` without passing an argument.  The second example uses `ns.scan()` by passing the hostname of a target server.  Both examples can be written more succinctly by using the `forEach()` method of array, but for the purposes of illustration the `for` loop should be easier for beginners to read.
2022-10-11 18:48:47 +11:00
Olivier Gagnon
1d5d839cd9 allbuild commit 73bcf087 2022-10-11 01:07:40 -04:00
Olivier Gagnon
73bcf0870f doc 2022-10-11 01:06:26 -04:00
hydroflame
1cf7b28ac8 Merge pull request #4225 from quacksouls/doc-sleeve-crime
DOC: `ns.sleeve.setToCommitCrime()`: add list of crimes a sleeve can commit
2022-10-11 00:58:58 -04:00
Duck McSouls
afe6a837c3 DOC: ns.sleeve.setToCommitCrime(): add 1 example
An example on how to set a sleeve to commit a crime.  The example shows that sleeves are indexed from 0.
2022-10-10 20:49:33 +11:00
Duck McSouls
c728c550f5 DOC: ns.sleeve.setToCommitCrime(): add all crimes a sleeve can commit
Add a list of crimes that a sleeve can commit.  Update the parameter documentation to refer to this list.
2022-10-10 13:18:00 +11:00
Duck McSouls
304b7645b0 DOC: ns.sleeve.setToCommitCrime(): starting index of sleeves
Document the index of the first sleeve.  Sleeves are indexed starting from zero, i.e. 0.  Increment by 1 to get the index of the next sleeve.  And so on.
2022-10-10 12:47:20 +11:00
Olivier Gagnon
7089122b3b more ranbling 2022-10-09 19:55:46 -04:00
Olivier Gagnon
ce649379a2 rambling 2022-10-09 19:53:48 -04:00
Duck McSouls
67f5d60116 DOC: ns.scan(): typo fixes
Some typographical fixes in the documentation of the function `ns.scan()`.  The function returns an array, not a string.
2022-10-10 09:55:31 +11:00
Olivier Gagnon
f803355335 fix doc 2022-10-09 18:48:58 -04:00
hydroflame
f8d977f7f8 Merge pull request #4222 from danielyxie/alias
MISC: Make the main player object an alias, makes it easier to import
2022-10-09 18:46:20 -04:00
Olivier Gagnon
7a89c0a1bb regen doc 2022-10-09 18:46:13 -04:00
Olivier Gagnon
cbb7f58231 Make the main player object an alias, makes it easier to import 2022-10-09 18:42:14 -04:00
Tim Hesse
7121b456f4 fix: nano does not open root script if cd'd into a dir 2022-10-09 14:49:18 +02:00
Olivier Gagnon
3c03ac4f18 fix fileExists not finding coding contrafcts 2022-10-09 02:57:43 -04:00
Olivier Gagnon
f4668b21ca functions to generate dummy contracts 2022-10-09 02:56:11 -04:00
Olivier Gagnon
5d4b72e1d1 Added some purchased server functions 2022-10-09 02:32:13 -04:00
Olivier Gagnon
0fdf74ceeb typo 2022-10-09 01:32:44 -04:00
Olivier Gagnon
f6f023eeb4 Fix tons of typos 2022-10-09 01:25:31 -04:00
hydroflame
f8a3a046de Merge pull request #4156 from G4mingJon4s/contractFix
Coding Contract: Saving and reloading no longer generates extra coding contracts.
2022-10-09 00:31:42 -04:00
hydroflame
608ea0ba59 Merge pull request #4196 from connertennery/4125
INFILTRATION: Slash minigame fixed so attacking when the guard is preparing doesn't cause failure, fixed indicator when player has Might of Ares augmentation
2022-10-09 00:29:59 -04:00
hydroflame
87ad634859 Merge pull request #4201 from stalefishies/has-augmentation-fix
MISC: Fix bug in person.hasAugmentation
2022-10-09 00:27:05 -04:00
hydroflame
b0ba0b30b5 Merge pull request #4211 from fdellwing/patch-2
FACTION: Include BN multiplier in faction donation
2022-10-09 00:26:16 -04:00
hydroflame
0e26515c81 Merge pull request #4213 from borisflagell/SleeveZOE
STANEK: Reapply aug's multiplier to sleeve when applying Stanek gift to them
2022-10-09 00:25:52 -04:00
hydroflame
c930487c21 Merge pull request #4215 from borisflagell/crime-sleeve
SLEEVE: Fixes 2 issues in Sleeve's implementation of crime work
2022-10-09 00:25:13 -04:00
hydroflame
a5b2512269 Merge pull request #4205 from Snarling/ramTestFix
TESTS: Refined ram calculation tests
2022-10-09 00:23:04 -04:00
hydroflame
b4d6ead5d2 Merge pull request #4206 from quacksouls/doc-exec
DOC: `ns.exec()`: typo fixes and clean presentation
2022-10-09 00:22:54 -04:00
hydroflame
ed0a28d292 Merge pull request #4207 from quacksouls/doc-prettier
DOC: no trailing whitespace
2022-10-09 00:22:25 -04:00
hydroflame
0fda588735 Merge pull request #4212 from quacksouls/doc-gang
DOC: gang task: typo fix
2022-10-09 00:21:50 -04:00
borisflagell
6d86852969 FIX crime by sleeve
Bitnode multiplier was applied twice in th UI.
Sleeve's multiplier weren't applied (neither in UI, nor engine).
2022-10-08 17:19:20 +03:00
borisflagell
08b6c7a177 Fix #4195
Whenever StanekGift updated Sleeve's mult,
all mult were reset to default value (1.0 usually).
then stanek mult were merged.
but aug's mults never were.

=> Added a small loop to StanekGift updateMults() which reapply Aug's mult.
2022-10-08 15:28:51 +03:00
Duck McSouls
1d739f295c DOC: gang task: typo fix
The current version `black mail` should be `blackmail` because the description is referring to the crime of blackmail.
2022-10-08 14:21:30 +11:00
Fabian Dellwing
ea39e5e1f4 Include BN multiplier in faction donation 2022-10-07 21:28:19 +02:00
Duck McSouls
351d769122 DOC: no trailing whitespace
Remove some trailing whitespaces in `src/ScriptEditor/NetscriptDefinitions.d.ts` because `npm run format` complains about them.  The trailing whitespaces were introduced in one of my earlier patches.  Sorry about this :-(
2022-10-06 23:29:06 +11:00
Duck McSouls
e3ace9f6d5 DOC: ns.exec(): break example comments into multiple lines
The comment of each example is so long that, in the generated documentation for `ns.exec()` shown at

https://github.com/danielyxie/bitburner/blob/dev/markdown/bitburner.ns.exec.md

you must use the horizontal scrollbar to read the whole comment.  Even if you maximize the browser window, you must still use the horizontal scrollbar to read the whole comment.  Tested on Brave, Chrome, Firefox, and Opera.  Fix this by limiting each line of comment to at most 90 characters.
2022-10-06 22:56:01 +11:00
Duck McSouls
5edcdaad81 DOC: ns.exec(): typo fixes
Some typographical fixes in the documentation of `ns.exec()`.  Link to the function `ns.run()`.  Currently, the line `* * @example` causes API Extractor to output an asterisk (i.e. `*`) between the two code examples.  The function `ns.exec()` calls the function `runScriptFromScript()` from `src/NetscriptWorker.ts`, which uses the floor function to round down the number of threads.
2022-10-06 22:34:00 +11:00
Snarling
0310a98237 Lint+format fix? 2022-10-05 15:29:56 -04:00
Snarling
068533cd2f format, lint, more enums, revert fn rename 2022-10-05 14:52:48 -04:00
Snarling
a78a84c5b5 Make ram checks more robust
* Instead of hardcoded categories, automatically walk through all layers of ns, check for their associated costs, and check that ingame static and dynamic costs match the expected assigned costs.
2022-10-05 13:14:24 -04:00
Snarling
8bb88a5080 Better RamCost testing (see desc)
* RamCostGenerator will have an error if ramcosts are defined for nonexistent functions, in addition to error if not all functions have ram costs defined
* Removed a few random blank comment lines in NetscriptDefinitions.d.ts
* RamCalculation.test.ts checks exact expected static and dynamic ram usage from (almost) every function, based on defined RamCosts in RamCostGenerator.
2022-10-05 10:42:07 -04:00
Staszek Welsh
ad8c7b7ffe Fix change in behaviour of person.hasAugmentation 2022-10-04 22:55:35 +01:00
Conner Tennery
40e8e82b6d Merge branch 'dev' into 4125 2022-10-04 09:39:12 -07:00
hydroflame
01f6c6cb7a Update CONTRIBUTING.md 2022-10-04 12:00:07 -04:00
hydroflame
5c942b6229 Update PULL_REQUEST_TEMPLATE 2022-10-04 11:59:28 -04:00
hydroflame
4d1e72bf7a Merge pull request #4172 from Snarling/IPs-fix
CCT: Generate IPs contract type accepts properly formatted js array
2022-10-04 11:58:26 -04:00
Snarling
e71e5988cb unify static and dynamic ram tests 2022-10-04 11:56:36 -04:00
hydroflame
075daf6fac Merge pull request #4175 from mycroftjr/patch-2
BLADEBURNER: Make Datamancer apply to Tracking
2022-10-04 11:47:46 -04:00
hydroflame
5b699fa19f Merge pull request #4188 from quacksouls/doc-stock
DOC: `stock.getPrice()`: typo fixes and update examples
2022-10-04 11:47:24 -04:00
hydroflame
2b8ced4fff Merge pull request #4182 from OverlordQ/patch-1
MISC: Remove spurious console spam
2022-10-04 11:45:09 -04:00
hydroflame
774c3ef402 Merge pull request #4185 from quacksouls/doc-print
DOC: `print()` and friends: typo fixes and examples
2022-10-04 11:45:01 -04:00
hydroflame
c4571efdbf Merge pull request #4190 from Snarling/testFixes
TESTS: Fixed tests for PRs and converted tests to TS.
2022-10-04 11:44:29 -04:00
hydroflame
b216d88207 Merge pull request #4186 from quacksouls/ns-format
NETSCRIPT: format fixes
2022-10-04 11:43:03 -04:00
hydroflame
29e2883203 Merge pull request #4183 from bdaoust28/dev
DOC: Reformatted v2.1.0 changelog rst
2022-10-04 11:42:44 -04:00
hydroflame
96000644e3 Merge pull request #4198 from quacksouls/doc-README
DOC: typo fixes in top-level README
2022-10-04 11:40:19 -04:00
Snarling
361466b7fa unasync trywriteport 2022-10-04 07:59:50 -04:00
Snarling
aa80cf6451 See description
Reverted ToastVariant back to an enum internally. Still exposed to player as just possible strings.
Changed all 1-line documentation comments to actually be 1-line. Moved some because they were not providing documentation for the thing they were trying to.
2022-10-04 06:40:10 -04:00
Duck McSouls
e0ca2e57fe DOC: typo fixes in top-level README
A bunch of typographical fixes in the README file at the root of the source tree.
2022-10-04 05:24:50 +11:00
Snarling
50f14b4f58 Commit1 2022-10-03 12:12:16 -04:00
Conner Tennery
0d6b6b404d fix "Slash when his guard is down!" actually means "Slash when he's attacking!" Also the Might of Ares timer is wrong. #4125
- Added ignoreAugment_WKSharmonizer to GameTimer to allow for strict, unmodified timers
- Changed SlashGame failure check
- Changed `timeUntilAttacking` value so the progress bar in SlashGame is accurate
2022-10-03 01:42:17 -07:00
Duck McSouls
01e7ce2a05 DOC: stock.getPrice(): a simple example
Fixes #4184. The hard-coded stock symbol `"FISG"` should be `"FSIG"`.
2022-10-02 11:39:54 +11:00
Snarling
ab56d18e1e group initializers 2022-10-01 15:49:23 -04:00
Snarling
94a8c7ca64 attempt2
For some reason only 3/9 tests running locally
2022-10-01 15:28:48 -04:00
Snarling
3addda7173 format and lint 2022-10-01 15:15:36 -04:00
Snarling
9774235404 initial test fix attempt 2022-10-01 15:03:47 -04:00
Duck McSouls
4cf270138d DOC: stock.getPrice(): typo fix in examples
Fixes #4184.  The hard-coded stock symbol `"FISG"` should be `"FSIG"`.  The updated examples do not use a hard-coded stock symbol.  The documentation is updated to explain under which circumstances a player can run the function `stock.getPrice()`.
2022-10-01 10:07:20 +10:00
Duck McSouls
5e14d07d9a DOC: stock.getPrice(): typo fixes
Some typographical fixes for the documentation of `stock.getPrice()`.  The line for RAM cost should be separated by a blank line from the sentence about the definition of a stock's price.  Otherwise `npm run doc` would cram those information together onto one line.
2022-10-01 09:59:44 +10:00
Duck McSouls
d8ef63cfe9 NETSCRIPT: format fixes
The command `npm run format` reports some formatting issues under `src/ScriptEditor`.  Fix the reported formatting issues.
2022-09-30 14:47:33 +10:00
Duck McSouls
0488f6e7b3 DOC: print() and friends: some examples
Some examples for how to use `print()` and related functions.  Use cross-referencing to reduce duplicate examples.
2022-09-30 14:22:49 +10:00
Duck McSouls
ebdeb15d5a DOC: print() and friends: typo fixes
Some typographical fixes.  In the generated documentation for `tprintf()`, the documentation for the parameter `values` is missing because `@param msg` should be `@param values`.
2022-09-30 14:19:19 +10:00
bdaoust28
eb07eef7be Update changelog.rst
Now human readable
2022-09-29 15:07:42 -07:00
OverlordQ
046ba80935 Update killWorkerScript.ts
Remove spurious console debugging line
2022-09-29 08:20:49 -04:00
hydroflame
5e4a393495 Merge pull request #4180 from Snarling/growthAnalyzeSecurityFix
NETSCRIPT: growthAnalyzeSecurity no longer fails if the optional cores parameter was omitted
2022-09-29 01:09:21 -03:00
Snarling
b682d441e3 better fix for cores check 2022-09-29 00:02:33 -04:00
Snarling
17be0911b2 fix growthAnalyzeSecurity 2022-09-28 23:59:58 -04:00
Olivier Gagnon
cb064ce8d7 fix new save file not loading 2022-09-28 23:35:01 -04:00
hydroflame
a8b1aebfae Merge pull request #4176 from Hoekstraa/patch-2
DOC: Add link to official server in Remote API documentation
2022-09-28 12:17:49 -03:00
Alt
033a3a817e Add link to the TS template. 2022-09-28 09:51:10 +02:00
MycroftJr
c7d85e1d42 Make Datamancer apply to Tracking
Makes the Datamancer skill for Bladeburner apply to the Population Estimate change of the Tracking contract. If this was not desired, then the description of Datamancer needs to be made more accurate :D
2022-09-27 22:08:14 -07:00
Snarling
a1f90d77ce Prettier fix 2022-09-27 19:58:14 -04:00
Snarling
73e314aa31 Add quotation marks to expected answer
Matches the way an array of strings is denoted in js
2022-09-27 19:52:25 -04:00
Snarling
aba6de1514 Allow IPs to have quotes around them 2022-09-27 19:41:00 -04:00
Olivier Gagnon
444c74ccd9 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-09-27 17:37:36 -04:00
Olivier Gagnon
fbf5009cdb comment out unnamedaug2 2022-09-27 17:37:32 -04:00
hydroflame
7ce1adddce Merge pull request #4151 from LJNeon/script-editor-fix
UI: Remove extra / from open script tab when files are in a folder
2022-09-27 17:50:32 -03:00
hydroflame
a1df9db493 Merge pull request #4160 from quacksouls/cct-name
CCT: no special characters in file names of Coding Contracts
2022-09-27 17:50:08 -03:00
hydroflame
d37adb21bf Merge pull request #4157 from quacksouls/contrib-guide
DOC: contributor's guide: typo fixes and consistent presentation
2022-09-27 17:49:48 -03:00
hydroflame
30363e0280 Merge pull request #4155 from Mughur/corp
CORP: fixed wrongly named division type
2022-09-27 17:49:09 -03:00
hydroflame
54b9d4f994 Merge pull request #4149 from Shiiyu/lj-is-asleep
MISC: Remove unused import in AugmentationCreator.tsx
2022-09-27 17:48:43 -03:00
hydroflame
49a460af00 Merge pull request #4161 from Snarling/cityFix
UI: Fix possible React error 300 in ASCII version of city screen
2022-09-27 17:47:54 -03:00
hydroflame
d010705c61 Merge pull request #4165 from Snarling/bladeburnerFix
SLEEVE: Can no longer use API to assign sleeves to bladeburner tasks before player is member
2022-09-27 17:47:46 -03:00
Snarling
582c9f40e2 Merge branch 'dev' into cityFix 2022-09-27 16:38:39 -04:00
Snarling
a4b7128e6c Sleeve bladeburner fix 2022-09-27 16:36:37 -04:00
hydroflame
be553f3548 Merge pull request #4122 from Snarling/PassAroundLess
CODEBASE: Remove redundant code
2022-09-27 17:27:10 -03:00
Snarling
16fac67257 fix broken rebase 2022-09-27 16:23:53 -04:00
Snarling
25be5c2990 Remove unused augmentationStats interface
All augmentations have all multipliers
2022-09-27 16:20:26 -04:00
Snarling
3d4d02a573 remove unnecessary function 2022-09-27 16:15:11 -04:00
Snarling
38063f62a7 build fix, lint, remove some instanceof checks 2022-09-27 16:09:32 -04:00
Snarling
81412db02e format & lint fix 2022-09-27 16:09:32 -04:00
Snarling
b364cdf734 Rebase fix, move hasAugmentation to Person 2022-09-27 16:08:52 -04:00
Snarling
8a9515f154 More classes as types 2022-09-27 16:08:16 -04:00
Snarling
0dbe80a841 Player is now a Person
Use correct class inheritance, use class as type and remove IPlayer
2022-09-27 16:07:58 -04:00
Snarling
bc2bdbe137 revert unnecessary file rename 2022-09-27 16:03:36 -04:00
Snarling
5f0758d04c Fix lit files, reallow html alerts 2022-09-27 16:03:36 -04:00
Snarling
c5f2b959f6 commit1 2022-09-27 16:02:09 -04:00
Snarling
3a139518d8 unified errors 2022-09-27 15:53:45 -04:00
Snarling
0e67fbee21 Unify error handling 2022-09-27 15:51:25 -04:00
Snarling
ba1a10b4f7 Unify error handling 2022-09-27 15:46:34 -04:00
Snarling
88505e9378 stray lint fix 2022-09-27 15:35:42 -04:00
Snarling
e5e6b05be0 format+lint+build fix 2022-09-27 15:35:42 -04:00
Snarling
37d9b0c78d Fix gang faction type 2022-09-27 15:35:42 -04:00
Snarling
6e3a6be106 Remove some redundant typing 2022-09-27 15:35:42 -04:00
Snarling
db835862d7 format 2022-09-27 15:35:42 -04:00
Snarling
bc7c15ad77 corp: classes are types 2022-09-27 15:35:42 -04:00
Snarling
557bc12562 More classes as types 2022-09-27 15:35:42 -04:00
Snarling
2213d06159 Using bladeburner and action classes as types 2022-09-27 15:35:41 -04:00
Snarling
c510e47885 Player is now a Person
Use correct class inheritance, use class as type and remove IPlayer
2022-09-27 15:35:41 -04:00
Snarling
475a8812bb findSleevePurchasableAugs as a class member 2022-09-27 15:35:41 -04:00
Snarling
dcd9023b93 Remove more unused interfaces 2022-09-27 15:35:41 -04:00
Snarling
e578bd7681 Remove IPlayer interface
Use PlayerObject instead when referring to the type of "The Player."
2022-09-27 15:35:41 -04:00
Snarling
21a2d49de7 Finish removing player passing 2022-09-27 15:35:41 -04:00
Snarling
c864fd7edf revert unnecessary file rename 2022-09-27 15:35:41 -04:00
Snarling
dc59a10e19 Fix lit files, reallow html alerts 2022-09-27 15:35:40 -04:00
Snarling
88e2cdf09c Remove more execute-on-import code 2022-09-27 15:35:40 -04:00
Snarling
1ac57d2e48 Fix use-before-defined import issue 2022-09-27 15:35:40 -04:00
Snarling
91a69d7d8f format & lint 2022-09-27 15:35:40 -04:00
Snarling
c9ee938bc6 fix previous commit 2022-09-27 15:35:40 -04:00
Snarling
a21b1029d7 No more player/router context 2022-09-27 15:35:40 -04:00
Snarling
83d357e758 commit1 2022-09-27 15:35:40 -04:00
Snarling
cc2246213f Add more error types 2022-09-27 15:35:39 -04:00
Snarling
824d8db653 simplify/dehardcode failOnHacknetServer 2022-09-27 15:35:39 -04:00
Snarling
83c62bbc63 silent fail for tabcompletion compile error 2022-09-27 15:35:39 -04:00
Snarling
7d37736058 unified errors 2022-09-27 15:35:39 -04:00
Snarling
8d0347577d Less hardcoding 2022-09-27 15:34:48 -04:00
Snarling
b8496b4c2c remove duplicate handling 2022-09-27 15:34:48 -04:00
Snarling
74be61cbdd remove unnecessary return 2022-09-27 15:34:48 -04:00
Snarling
caf1a99c1d More reliable error message for ScriptDeaths 2022-09-27 15:34:48 -04:00
Snarling
ad356cf28f format/lint 2022-09-27 15:34:48 -04:00
Snarling
572c68738f Unify error handling 2022-09-27 15:34:47 -04:00
Snarling
5798c4c7d3 Unify error handling 2022-09-27 15:32:09 -04:00
Olivier Gagnon
8dd507883a allbuild commit 8f4636cb 2022-09-27 13:41:30 -04:00
hydroflame
8f4636cbb4 Merge pull request #4166 from Snarling/ns1wrapfix
NETSCRIPT: NS1 wrapper no longer fails to properly wrap some functions
2022-09-27 14:36:27 -03:00
Olivier Gagnon
c94f6c1758 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-09-27 13:35:56 -04:00
Olivier Gagnon
2fc17423ff Improve the robustness of the tutorial. 2022-09-27 13:35:51 -04:00
Snarling
21f7b7ad06 Fix ns1 Wrapper 2022-09-27 00:03:16 -04:00
Mughur
c462da9147 Double checking small fixes would be a good idea 2022-09-27 05:02:12 +03:00
G4mingJon4s
fd9bdb3b65 Readded randomness for lower values of chances 2022-09-26 19:19:03 +02:00
Snarling
d55d7a05be Revert "Fix ram usage of scp-overwritten files"
This reverts commit 3dbc848098.
2022-09-26 10:44:57 -04:00
Snarling
21c919c030 Fix react error in ASCIICity 2022-09-26 10:39:09 -04:00
Duck McSouls
819e102fe1 CCT: no special characters in file names of Coding Contracts
Fixes #4067.  The file name of a Coding Contract follows the format contract-xxx-rewardName.cct.  The part `xxx` means a sequence of random decimal digits.  The part `rewardName` can be an empty string if the player is not part of any faction nor is working for a company.  However, if the player is working for a company or faction whose name has a special character, then the special character would also appear in the generated file name.  We only want alphanumeric characters throughout the whole file name.
2022-09-27 00:01:21 +10:00
Snarling
3dbc848098 Fix ram usage of scp-overwritten files 2022-09-26 09:31:49 -04:00
Duck McSouls
c90696c967 DOC: how to fork and clone; consistent shell presentation
Add to the contributor's guide various ways to clone and fork the code repository.  These methods are: (1) web browser; (2) GitHub Desktop; and (3) command line.  Be consistent in how shell commands are presented.
2022-09-26 09:51:38 +10:00
Duck McSouls
9428d5e04b DOC: typo fixes in contributor's guide
A bunch of typographical fixes in the guide to contribution.  Ensure the presentation is consistent throughout the guide.
2022-09-26 09:50:31 +10:00
Duck McSouls
31a7aa74eb DOC: full stop for complete sentences
Items in most lists look and feel like complete sentences.  Insert a period for each complete sentence.
2022-09-25 22:03:03 +10:00
G4mingJon4s
a1ff3a2058 Fix for #4111 2022-09-25 12:37:20 +02:00
Duck McSouls
8d00bc61cf DOC: fix broken URLs
Fix 2 broken URLs in the guide on contribution.  Each link is meant to point to the dev branch of the project because new contributions should be based on that branch.
2022-09-25 15:37:28 +10:00
Mughur
1ee292bde9 CORP: fixed wrongly named division type
"Computer" division type was erroneously named "Hardware"
2022-09-25 06:19:18 +03:00
LJNeon
a464563e1c chore(ScriptEditor): Remove extra / from files in a folder 2022-09-23 19:23:54 -07:00
Shiiyu
2682bda9dd fix: fix StringHelperFunctions test 2022-09-23 18:13:33 -04:00
Shiiyu
02d3c0e188 chore: 🔥 remove unused import 2022-09-23 17:59:41 -04:00
hydroflame
69eda4340e Merge pull request #4146 from LJNeon/office-size-fix
CORPORATION: Don't show repeat office size upgrade button
2022-09-23 16:20:48 -03:00
Olivier Gagnon
c6da513eea allbuild commit a3c92dd0 2022-09-23 15:03:38 -04:00
Olivier Gagnon
a3c92dd04d Wrap up v2.1.0 2022-09-23 15:00:20 -04:00
LJNeon
4aed5da4ee feat(corp): don't show repeat office size upgrade button 2022-09-23 11:38:58 -07:00
Olivier Gagnon
f43d232928 upgrade version number. 2022-09-23 12:52:30 -04:00
Olivier Gagnon
6390f3618e Added few augs 2022-09-23 12:05:16 -04:00
Olivier Gagnon
fb197be206 Fix hostname generation being weird about dash 0 added 2022-09-23 12:04:21 -04:00
hydroflame
8170fa09a9 Merge pull request #3792 from borisflagell/patch-1
DOC: Update bitburner.sleeve.settobladeburneraction.md
2022-09-23 12:59:37 -03:00
hydroflame
cbe31fa63f Merge pull request #4135 from Mughur/corp
CORPORATION: FIX #3880, #3876, #3322 and #3138 Bunch of corporation fixes
2022-09-23 12:35:11 -03:00
hydroflame
8a694c4c1e Merge pull request #4136 from quacksouls/typo
DOC: Some typo fixes in Netscript functions
2022-09-23 12:32:57 -03:00
hydroflame
2cce14a95b Merge pull request #4139 from Mughur/Sleeve
MISC: crime gains, sleeve gang augs and faq
2022-09-23 12:32:15 -03:00
hydroflame
1b329df398 Merge pull request #4141 from LJNeon/tformat-fix
API: Remove incorrectly placed 's' in ns.tFormat()
2022-09-23 12:30:18 -03:00
hydroflame
ea49e75f7a Merge pull request #4140 from Hoekstraa/patch-1
CONTRIBUTIONS: Modify PR template
2022-09-23 12:29:53 -03:00
hydroflame
ddda0f92c1 Merge pull request #4137 from quacksouls/cct-prob
CCT: inconsistent probability for generation between online and offline
2022-09-23 12:27:14 -03:00
LJNeon
b1c5ddb211 chore(ns.tFormat): Remove incorrectly placed 's' 2022-09-23 07:59:50 -07:00
Alt
90e116a268 Modify PR template 2022-09-23 15:38:15 +02:00
Mughur
5e0d284cf0 updated sleeve FAQ 2022-09-23 16:01:53 +03:00
Mughur
a389974314 Sleeves now only get actual gang's augs 2022-09-23 15:52:04 +03:00
Mughur
33b304bff5 Crime gains now properly affected by player mults 2022-09-23 15:17:48 +03:00
Duck McSouls
5f47536d54 CCT: inconsistent probability for generation between online and offline
Fixes #4110.  While online, there is 25% chance for a Coding Contract to appear.  The same should apply when a player loads the game after being offline for a period of time.  Currently, loading the game after being offline would give a generation probability of less than 25%.  The mismatch between offline and online gives an unfair advantage to having the game running for an extended period of time.
2022-09-23 21:38:27 +10:00
Duck McSouls
0a644aed58 Typo fix in ns.singularity.workForFaction()
Abbreviation of "you are" is "you're".  Also place a full stop at the end to complete the sentence.  Fixes #4118.
2022-09-23 20:32:53 +10:00
Mughur
d99d37f191 Bunch of corporation fixes 2022-09-23 13:13:33 +03:00
Duck McSouls
98d43acf9f Missing capitalization in ns.gang.ascendMember()
The return description of the function ns.gang.ascendMember() has a missing capitalization.  Fixes #4091.
2022-09-23 20:06:36 +10:00
Duck McSouls
b31c64fb9f Missing capitalization in ns.gang.getAscensionResult()
The return description for the function ns.gang.getAscensionResult() has a missing capitalization. Fixes #4090.
2022-09-23 20:03:46 +10:00
Duck McSouls
b0f1e7a997 Typo fix for focus parameter of ns.singularity.commitCrime()
The focus parameter of the function ns.singularity.commitCrime() relates to committing a crime, not creating a program.  Fixes #4127.
2022-09-23 20:01:21 +10:00
hydroflame
b8f8246294 Merge pull request #4134 from Shiiyu/dev
MISC: FIX #3649 Preventing server starting security level from going above 100
2022-09-23 03:42:09 -03:00
Shiiyu
e1bff8bcb1 fix: 🐛 fix server minimum difficulty changing when server starting difficulty is capped 2022-09-23 02:39:58 -04:00
Shiiyu
cf11612abc style: 🎨 fix - forgot to run format first 2022-09-23 02:07:32 -04:00
Olivier Gagnon
66e80b2efa Added more info about blood program, change some aug descriptions 2022-09-23 01:13:37 -04:00
Shiiyu
ecaa906682 fix: 🐛 fix server starting security going above 100 2022-09-23 00:42:47 -04:00
hydroflame
2a43b90ed3 Merge pull request #4039 from ezylot/patch-1
GANG: Added weight to GangMemberTask construction call
2022-09-23 01:15:29 -03:00
hydroflame
4d40338e0a Merge pull request #4132 from danielyxie/fix-2962
UI: FIX #2962 Add a setting to display middle time unit in Time Elapsed String
2022-09-23 01:14:15 -03:00
Olivier Gagnon
fde4e7ac38 fix 2962 2022-09-23 00:13:06 -04:00
hydroflame
944ee71ab9 Merge pull request #4065 from Snarling/sleeveBladeContractFix
SLEEVES: FIX #4063 fix crash when player tries to assign more than 3 sleeves to Bladeburner contracts
2022-09-23 00:59:46 -03:00
hydroflame
c396f7fb87 Merge pull request #4064 from quacksouls/dev
DOC: Fix #4033 Why use Coding Contract API
2022-09-23 00:58:59 -03:00
hydroflame
5101b345ec Merge pull request #4069 from Mughur/corp
API: Corp functions now return copy of constant arrays instead of the original
2022-09-23 00:58:32 -03:00
hydroflame
ee67aa90f9 Merge pull request #4131 from Mughur/valuation
CORPORATION: Gave investors some economics classes
2022-09-23 00:58:06 -03:00
hydroflame
ed14f2a4d7 Merge pull request #4072 from Snarling/exitExits
NETSCRIPT: FIX #2376 ns.exit now exits immediately
2022-09-23 00:57:15 -03:00
hydroflame
b139d689a5 Merge pull request #4103 from G4mingJon4s/dev
Fix for #2442 and #2795.
2022-09-23 00:56:40 -03:00
Olivier Gagnon
2a0dd6b6f8 Minor improvements to Netscript Port loading and unloading 2022-09-22 23:55:16 -04:00
hydroflame
0044761fd3 Merge pull request #4073 from Hoekstraa/unlimited-ports
API: More ports (previously max 20, now practically unlimited)
2022-09-23 00:51:50 -03:00
hydroflame
1917e21537 Merge pull request #4080 from njalooo/patch-1
DOCUMENTATION: Fixed Argument order for scp()
2022-09-23 00:47:11 -03:00
hydroflame
a8e640e309 Merge pull request #4084 from Rasmoh/expose_exports
CORPORATION API: FIX #3655 Expose exports from Material
2022-09-23 00:46:28 -03:00
Olivier Gagnon
4f64d3eeb1 use triple equal 2022-09-22 23:45:00 -04:00
hydroflame
9f922de50d Merge pull request #4101 from Kelenius/UnhardcodeBBAndCorpDisabling
UI: Bitnode stats now show if BB/Corporation are disabled
2022-09-23 00:43:19 -03:00
hydroflame
23c889bafd Merge pull request #4074 from phyzical/hotfix/4058
CORP API: Fix up param order for limitProductProduction to match docs
2022-09-23 00:36:24 -03:00
hydroflame
5d6eed2b4d Merge pull request #4082 from Snarling/tailRamExploitFix
SCRIPTS: FIX #4081 Rerunning a script from tail window recalculates ram usage
2022-09-23 00:35:26 -03:00
hydroflame
e65a00daef Merge pull request #4088 from Kelenius/BladeburnerUIExtraLinesRemoval
UI: Removed three empty lines from BB status screen
2022-09-23 00:34:47 -03:00
hydroflame
e647ebb00f Merge pull request #4085 from hex7cd/bn7-descr-fix
UI: Add missing space to BN7 description
2022-09-23 00:34:37 -03:00
hydroflame
ac1a057d35 Merge pull request #4087 from phyzical/feature/add-back-api-export
API BACKUP: add singularity function for exporting game save back
2022-09-23 00:34:23 -03:00
hydroflame
e49bd3d091 Merge branch 'dev' into feature/add-back-api-export 2022-09-23 00:34:19 -03:00
hydroflame
34534ac282 Merge pull request #4093 from coderanger/sleeve-heal
SLEEVES: FIX #3819 Allow using the regeneration chamber with sleeves to heal them.
2022-09-23 00:33:16 -03:00
hydroflame
c449680256 Merge pull request #4104 from Mughur/dev
MISC: multiple hasAugmentation checks didn't check if the augment was installed
2022-09-23 00:32:16 -03:00
hydroflame
a30e922d56 Merge pull request #4105 from geggleto/fix-import-for-jest-test
Fix Jest CI Error
2022-09-23 00:31:17 -03:00
hydroflame
7749b17a45 Merge pull request #4120 from SilverNexus/dev
UI: FIX #4106 Fix incorrect experience display in Crime UI.
2022-09-23 00:31:00 -03:00
Mughur
d4c06eba24 Change corporatio valuation calculations 2022-09-23 05:05:18 +03:00
hydroflame
cc78d62b26 Merge pull request #4121 from phyzical/bugfix/4096
API FIX: getCrimeStats use bitnode multipliers in the output of crime stats
2022-09-22 18:22:54 -03:00
hydroflame
bc08e8e64e Merge pull request #4117 from Lagicrus/infil
MISC: Adds Shadows of Anarchy
2022-09-22 18:19:35 -03:00
phyzical
4175960fc6 use bitnode multiplers in the output of crime stats 2022-09-20 17:56:05 +08:00
SilverNexus
10a2f180ce Fix #4106 -- Crime EXP is exactly One Fifth? 2022-09-19 20:23:26 -04:00
Lagicrus
26ee7d9e36 Adds Shadows of Anarchy 2022-09-19 15:55:53 +01:00
Mughur
4c5adc8dfb More hasAugmentation fixes 2022-09-14 21:21:49 +03:00
Mughur
75c738cdb0 Fixed NMI aug having effect before installing 2022-09-14 20:54:03 +03:00
Glenn Eggleton
19ad9be8aa add raw-loader to jest config 2022-09-14 13:05:55 -04:00
Glenn Eggleton
fcdc7ecee1 fix import statement, add jetbrains gitignore 2022-09-14 11:20:56 -04:00
G4mingJon4s
22a35af6b6 Added hover style change for better recognition 2022-09-14 15:59:55 +02:00
Mughur
4b859131b4 TRP message is sent only after installing 2022-09-14 16:14:32 +03:00
Mughur
d16576f3a7 TRP message is sent only after installing 2022-09-14 15:49:50 +03:00
G4mingJon4s
c29b4cfda9 Fixes #2795, adding better underlines for links 2022-09-13 20:09:58 +02:00
G4mingJon4s
015fb46703 Fix for #2442, allowing going forward in tutorial 2022-09-13 17:58:47 +02:00
Kelenius
5350e1c3e9 Unhardcoded BN8 BB check; show if corp/BB are disabled in BN stats 2022-09-12 17:48:52 +03:00
Noah Kantrowitz
e4961f452e ✏️ Copy paste typo. 2022-09-10 17:52:06 -07:00
Noah Kantrowitz
232dcab5cd Reset sleeves to max HP when starting a new node. 2022-09-10 17:44:50 -07:00
Noah Kantrowitz
596a04515d Allow using the regeneration chamber with sleeves to heal them.
This also allows using sleeves to generate stamina faster even if at full HP.
2022-09-10 17:39:40 -07:00
Kelenius
aeedcad96d Removed three empty lines from BB status screen 2022-09-07 13:12:40 +03:00
phyzical
ca2f1a62a5 add singularity function for exporting game save 2022-09-07 16:11:51 +08:00
Simon Schuck
0ffde31712 Add missing space to BN7 description
Before: allows you to access Bladeburnersfunctionality through
After: allows you to access Bladeburners functionality through
2022-09-06 06:27:33 +02:00
Rasmoh
cc0fd197c5 Expose exports from Material 2022-09-05 17:25:32 -07:00
Snarling
a600e05c0d Fix typo 2022-09-05 08:29:03 -04:00
Snarling
51d019c16c Decache Ram on Tail Run 2022-09-05 08:19:24 -04:00
njalooo
8fa89d5f81 Fixed typo in Argument order.
As it can be seen in the examples, i've found after testing, that the source must be specified after the destination.
2022-09-05 13:52:30 +02:00
Zoë Hoekstra
c7573cd97b Remove unused imports. 2022-09-02 19:19:00 +02:00
Zoë Hoekstra
335eab0f14 tryWritePort now also uses helper function 2022-09-02 19:14:56 +02:00
quacksouls
c12c47007b Merge branch 'danielyxie:dev' into dev 2022-09-02 22:03:13 +10:00
phyzical
2a8ddb8147 fix up param order to match docs
hotfix/4058

File List:
src/NetscriptFunctions/Corporation.ts
2022-09-02 11:58:12 +08:00
Zoë Hoekstra
d6e5b45db1 Delete now outdated comment 2022-09-01 16:53:58 +02:00
Zoë Hoekstra
10a1c2f00d Lower limit to MAX_SAFE_INTEGER 2022-09-01 16:33:31 +02:00
Zoë Hoekstra
55df97d3d5 Format 2022-09-01 16:27:31 +02:00
Zoë Hoekstra
ec81fb60c3 Create ports on demand. Increase max to infinity. 2022-09-01 16:13:10 +02:00
Snarling
137f58c36d actually exitOnExit 2022-09-01 08:37:59 -04:00
Snarling
1be015898c exitExits 2022-09-01 08:23:31 -04:00
Olivier Gagnon
2592c6ccd8 allbuild commit 87054f61 2022-08-31 12:26:02 -04:00
Mughur
c467a49a38 corp functions now return copy instead of original 2022-08-31 12:05:36 +03:00
Snarling
e8c8bb76ff Don't let sleeve start invalid contract 2022-08-30 09:26:24 -04:00
Duck McSouls
05fefe237e Why use the Coding Contract API
Suggest that a player might want to use the Coding Contract API to automate the process of solving a contract.  Also note the cost of using functions in the API.  This addresses issue #4033.
2022-08-30 12:29:57 +10:00
Olivier Gagnon
87054f6104 allbuild commit 2675fd23 2022-08-29 18:16:10 -04:00
Olivier Gagnon
2675fd23ec fix stack trace missing in some errors 2022-08-29 18:14:54 -04:00
Olivier Gagnon
c9a0998cc1 Improve wrong arg user message and add ui.windowSize 2022-08-29 18:07:17 -04:00
Olivier Gagnon
a2fad677d3 allbuild commit 759de855 2022-08-29 17:03:16 -04:00
Olivier Gagnon
759de85559 Fix unique key problem with ascii elements 2022-08-29 16:59:38 -04:00
Olivier Gagnon
c88ac1c26e fix some stuff with the timestamp settings 2022-08-29 16:47:51 -04:00
Olivier Gagnon
e57fee00d2 fix some stuff with the timestamp settings 2022-08-29 16:45:07 -04:00
Olivier Gagnon
3fe6a6e19d fix settings unfocusing on every key stroke 2022-08-29 16:36:08 -04:00
Olivier Gagnon
fb372bef54 fix documentation for remote api 2022-08-29 15:57:37 -04:00
Olivier Gagnon
b5a2319df7 Refactor game options into separate components 2022-08-29 15:56:38 -04:00
Olivier Gagnon
66e3a9a78b allbuild commit f07a29c7 2022-08-29 15:28:10 -04:00
Olivier Gagnon
f07a29c73b fix dynamic ram miscalc not triggering 2022-08-29 15:26:34 -04:00
Olivier Gagnon
04f811276a allbuild commit a0475cc6 2022-08-29 10:35:30 -04:00
hydroflame
a0475cc630 Merge pull request #4049 from MPJ-K/dev
NETSCRIPT: FIX #3963 Prevent bladeburner.setActionLevel from setting invalid action levels
2022-08-29 11:20:28 -03:00
hydroflame
69f6ca364f Merge pull request #4040 from Mughur/dev
DOCS, UI: update docs a bit more, amending some BN and SF texts
2022-08-29 11:20:10 -03:00
hydroflame
44ab53653f Merge pull request #4041 from Mughur/sleeve
SLEEVE: FIX #4022, #4024, #4025, #3998
2022-08-29 11:18:01 -03:00
hydroflame
c2796e164a Merge pull request #4052 from Snarling/ns1wrapper
NETSCRIPT: FIX #4037 ns1 wraps deeper layers correctly.
2022-08-29 11:14:32 -03:00
Olivier Gagnon
0942b7b6ee minor fix in instance calculation 2022-08-29 10:06:20 -04:00
hydroflame
2f7463d092 Merge pull request #4062 from Snarling/sleevesQuitToo
SLEEVES: FIX #4051 Sleeves no longer crash when player quits company sleeve was working
2022-08-29 11:05:27 -03:00
hydroflame
6fc729ddfb Merge pull request #4060 from ezylot/patch-2
INFILTRATION: Corrected ns formula for infiltration rewards
2022-08-29 11:04:11 -03:00
hydroflame
d37c44d108 Merge pull request #4053 from quacksouls/dev
DOC: typo fix in description of Caesar cipher
2022-08-29 10:57:45 -03:00
hydroflame
de12893da6 Merge pull request #4056 from Snarling/dynamicRamCheckFix
NETSCRIPT: FIX #4055 Fix dynamic ram check
2022-08-29 10:57:33 -03:00
hydroflame
4ae9c95237 Merge pull request #4059 from Hoekstraa/rfa-netscriptdefinitions
RFA: NetscriptDefinitions retains export strings
2022-08-29 10:56:59 -03:00
Snarling
9d942f3393 sleevesActuallyQuitToo 2022-08-29 04:12:02 -04:00
Snarling
c2af87a769 sleevesQuitToo 2022-08-29 04:02:38 -04:00
Florian Schöffl
282dc28c8d INFILTRATION: Corrected ns formula for infiltration rewards
In commit 
7c5097ee83 the author extracted the functionality for infiltration rewards into a NS function and made it accessible via formulas.

The exposed function does however not use the same input parameters as the Victory screen after infiltration since he uses the difficulty and not the starting difficulty.

Difficulty is clamped to [0;3], so the formulas api showed for high difficulty servers a vastly lower result.
2022-08-29 02:35:39 +02:00
Zoë Hoekstra
793255aecd Remove replacement of "export " to "" 2022-08-28 22:39:01 +02:00
Snarling
185549e7e4 fix dynamic ram check 2022-08-28 07:44:41 -04:00
Mughur
cf09057836 BB action rewards now tied to who does the action 2022-08-28 13:20:27 +03:00
Mughur
ce5d777f59 Merge branch 'danielyxie:dev' into sleeve 2022-08-28 10:47:49 +03:00
Mughur
1724f0e3ff Merge branch 'danielyxie:dev' into dev 2022-08-28 10:47:40 +03:00
Duck McSouls
6e744b2e76 Typo fix in description of Caesar cipher.
Fix a typographical error in the description of Caesar cipher.  The description is in the documentation on coding contracts.
2022-08-28 14:47:50 +10:00
Snarling
ef1f376c09 format, lint, remove unused "running" property on ws 2022-08-27 22:32:48 -04:00
Snarling
6f36e9cdc5 Fix/Unify NS1 wrapper 2022-08-27 20:56:12 -04:00
Olivier Gagnon
3ee55b2918 allbuild commit 1fdc36b1 2022-08-26 17:51:48 -04:00
Olivier Gagnon
1fdc36b1e7 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-08-26 17:49:54 -04:00
Olivier Gagnon
5f41226c21 Fix scp and write in ns1 2022-08-26 17:49:27 -04:00
MPJ / Quadryo
197081dd3e Fix #3963
Adds a previously missing `throw` to allow `bladeburner.setActionLevel()` to properly produce errors and prevent invalid action levels from being set.
2022-08-26 20:59:26 +02:00
hydroflame
a5fb280be8 Merge pull request #4048 from Kelenius/CrimeWorkUISucChanceAndFix
UI: Improvements to crime work UI
2022-08-26 15:10:49 -03:00
Kelenius
e16140fe9c Improvements to crime work UI 2022-08-26 21:03:30 +03:00
hydroflame
554f6d15d8 Merge pull request #4044 from Hoekstraa/rfa-type-fix
RFA: Fix type of RFAMessages with non-String results
2022-08-26 14:18:46 -03:00
Zoë Hoekstra
45c15c9953 Extract result type and correct it for getAllFiles 2022-08-26 11:31:37 +02:00
Zoë Hoekstra
ceb4a05289 Fix type of RFAMessages with non-String results 2022-08-26 11:17:47 +02:00
Mughur
7b7858d8e3 Only the wanted commits this time 2022-08-26 12:03:25 +03:00
Mughur
e361866ab8 Merge branch 'danielyxie:dev' into sleeve 2022-08-26 00:35:05 +03:00
Mughur
9d1b48e076 Fixing my previous mistakes 2022-08-26 00:30:27 +03:00
hydroflame
2463fc2012 Merge pull request #4028 from Snarling/scpAndWriteDocFix
NETSCRIPT: Update netscript definition file for scp, write, read, and flags
2022-08-25 16:37:07 -03:00
hydroflame
e554a6ac13 Merge pull request #4027 from Snarling/ANSIFix
TERMINAL: Fix ansi display bugs
2022-08-25 16:35:44 -03:00
hydroflame
f03d015a8a Merge pull request #4036 from quacksouls/dev
NETSCRIPT: Typo fixes in CodingContract, Hacknet, Singularity APIs
2022-08-25 16:35:12 -03:00
Mughur
a6d4ef4147 sleeve.getTask() retuns which crime name 2022-08-25 20:28:05 +03:00
Mughur
1a1decf5fd sleeve BB contracts now properly give money 2022-08-25 20:06:19 +03:00
Mughur
bf33734def Sleeve shock goes down, but not to negative 2022-08-25 18:49:01 +03:00
Mughur
2e4e7fadfc fix Sleeve UI gains 2022-08-25 18:19:14 +03:00
Mughur
c5cbbb2fbd fix sleeve bb 2022-08-25 17:23:14 +03:00
Mughur
42a03894e5 Update doc/source/guidesandtips/recommendedbitnodeorder.rst
Co-authored-by: Kelenius <kelenius@ya.ru>
2022-08-25 15:16:49 +03:00
Mughur
fa9f34aba2 update docs a bit more 2022-08-25 14:47:31 +03:00
Florian Schöffl
0c93764ef8 Added weight to GangMemberTask construction call
Added hackWeight: 100 to GangMember Task construction call to prevent error messages from the constructor checks. 
Since we only compare with roughlyIs() this will have no impact on functionality
2022-08-25 11:08:33 +02:00
Duck McSouls
84eabad6ac Typo fixes in CodingContract, Hacknet, and Singularity.
Fix some typographical errors in the CodingContract, Hacknet, and Singularity APIs.  I have yet to look over other APIs, but I don't want to make the patch any larger than it currently is.
2022-08-25 10:52:24 +10:00
Snarling
d1aa114e29 Fix build error / additional type for flags 2022-08-24 20:28:38 -04:00
Snarling
650db2dee7 Add type fix for flags 2022-08-24 19:09:18 -04:00
Snarling
bba9317ef6 incorporate read changes 2022-08-24 18:42:42 -04:00
hydroflame
ccbca5c38c Merge pull request #4035 from dhosborne/dev
Removed console.log line
2022-08-24 19:38:01 -03:00
MycroftJr
1135508683 fix ns.read return type 2022-08-24 18:36:50 -04:00
Derek H Osborne
6e02a70eea Removed console.log line 2022-08-24 17:22:16 -05:00
Olivier Gagnon
08f8c2b434 allbuild commit e593216e 2022-08-24 10:16:08 -04:00
hydroflame
e593216e77 Merge pull request #4032 from alainbryden/patch-1
Coding Contracts: Don't stringify answer if already a string
2022-08-24 11:14:42 -03:00
Alain Bryden
359def2b61 Don't stringify answer if already a string 2022-08-24 11:09:35 -03:00
hydroflame
839703090b Merge pull request #4029 from quacksouls/dev
NETSCRIPT: Fix a typo in doc of Singularity.travelToCity()
2022-08-24 01:14:32 -03:00
Duck McSouls
d38ef01a94 A typo fix.
Fix a typographical error.  From a first time contributor.
2022-08-24 13:57:42 +10:00
Snarling
4d47785f28 Fix ns documentation for scp and write 2022-08-23 22:06:05 -04:00
Snarling
d8c1ac9176 lint 2022-08-23 18:27:37 -04:00
Snarling
2d8900408d Fix Ansi bugs 2022-08-23 17:54:13 -04:00
Olivier Gagnon
076d79ed5a Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-08-23 17:51:34 -04:00
Olivier Gagnon
3d8616b3a7 Did some changes of the remote api and added documentation 2022-08-23 17:50:31 -04:00
hydroflame
821253363f Merge pull request #4026 from Snarling/debounceUpdateRam
SCRIPT EDITOR: Debounce updateRAM calls.
2022-08-23 17:43:17 -03:00
Snarling
445e365959 debounce updateRAM 2022-08-23 16:38:30 -04:00
Olivier Gagnon
efeb37fa52 allbuild commit 89aa23f4 2022-08-23 16:02:55 -04:00
Olivier Gagnon
89aa23f4b3 Add dummy function to generate a mock server or player for formulas stuff 2022-08-23 16:01:34 -04:00
hydroflame
895944aa19 Merge pull request #3972 from Hoekstraa/rfa
RFA: New Remote File API addition for transmitting files to the game
2022-08-23 16:09:29 -03:00
Olivier Gagnon
a41a6db520 allbuild commit f825cc0b 2022-08-23 12:48:51 -04:00
Olivier Gagnon
f825cc0bfd regen doc 2022-08-23 12:46:38 -04:00
Olivier Gagnon
7cb48f4612 fix compile error 2022-08-23 12:04:09 -04:00
hydroflame
d1c4f299ba Merge pull request #3931 from Aerophia/dev
API: FIX #3860 destroyW0r1dD43m0n now properly gives achievements and FIX #3890 favor now properly syncs across pages and the Donate achievement is now given correctly
2022-08-23 13:01:20 -03:00
hydroflame
fe3e34408d Merge branch 'dev' into dev 2022-08-23 13:01:13 -03:00
hydroflame
604596b907 Merge pull request #3480 from Undeemiss/corp-new-shares
CORPORATION: Limit shareholder priority on newly issued shares
2022-08-23 12:55:09 -03:00
hydroflame
fa099c22ab Merge pull request #3954 from Snarling/contractFix
CONTRACTS: FIX #3755 change input handling for contract attempts
2022-08-23 12:44:27 -03:00
hydroflame
486ab7aad8 Merge branch 'dev' into contractFix 2022-08-23 12:44:21 -03:00
Olivier Gagnon
23342f6dcc regen doc 2022-08-23 11:33:29 -04:00
hydroflame
1d1890497f Merge pull request #3949 from phyzical/hotfix/test-fixes
MISC: test fixes/md updates
2022-08-23 12:32:14 -03:00
hydroflame
d6f4b3c8a5 Merge branch 'dev' into hotfix/test-fixes 2022-08-23 12:31:28 -03:00
Olivier Gagnon
0e569344e7 rm console log 2022-08-23 11:28:40 -04:00
hydroflame
67be694b68 Merge pull request #3978 from Snarling/atExitFix
NETSCRIPT: FIX #2931 atExit now allows synchronous ns functions
2022-08-23 12:27:43 -03:00
hydroflame
d553a1d2f4 Merge pull request #3981 from Snarling/B&AFix
FILES: FIX #3979 Allow characters & and ' in filenames
2022-08-23 12:25:55 -03:00
hydroflame
849046df3a Merge pull request #3985 from Snarling/synchronize
NETSCRIPT: ns.scp and ns.write are now synchronous + fix exec race condition
2022-08-23 12:25:24 -03:00
hydroflame
46f5640dcd Merge pull request #3976 from Snarling/ScriptEditorResponsiveness
UI: FIX #3975, #3882 Script Editor more responsive on resize, and fix dirty file indicator
2022-08-23 12:12:21 -03:00
hydroflame
fc7eb72fc0 Merge pull request #3980 from phyzical/hotfix/3977
CORP FIX: dont take research points for something already researched via api
2022-08-23 12:11:15 -03:00
hydroflame
6969ff52c7 Merge pull request #4010 from Risenafis/fix-create-corp
NETSCRIPT: Correct missing ! for boolean coercion in Corporation.createCorporation().
2022-08-23 12:10:49 -03:00
hydroflame
3e3177d7bd Merge pull request #4001 from Mughur/dev
MISC: Sleeve crime gain bitnode multiplier fix
2022-08-23 12:10:27 -03:00
hydroflame
1d3eb2ffb5 Merge pull request #4000 from MageKing17/patch-2
NETSCRIPT: Correct missing `!` for boolean coercion in `singularity.workForCompany()`.
2022-08-23 12:09:49 -03:00
hydroflame
ed76c5e15d Merge pull request #4019 from MageKing17/patch-4
API: All the player sub-objects need to be copied for `getPlayer`.
2022-08-23 12:07:34 -03:00
hydroflame
01b5ba1be5 Merge pull request #4012 from MageKing17/patch-3
DOCS: Correct documentation for `run()` with 0 threads.
2022-08-23 12:07:19 -03:00
hydroflame
cc29de7969 Merge pull request #4002 from RollerKnobster/hotfix/3992-toast-handle-null-duration
NETSCRIPT: fix #3992 allow null duration in toast ns function
2022-08-23 12:06:56 -03:00
hydroflame
7269919aa9 Merge pull request #4023 from Snarling/companyWorkSingFix
WORK: Add singularity check for finishing company work
2022-08-23 12:05:44 -03:00
hydroflame
9eb6568519 Merge pull request #4007 from Snarling/stockCtx
NETSCRIPT: Normalized Stock API logging
2022-08-23 12:05:29 -03:00
Snarling
d4c7edf351 Fix fullscreen pages 2022-08-23 02:37:53 -04:00
Snarling
c626377904 Add singularity check for finishing company work 2022-08-22 20:16:45 -04:00
MageKing17
80aafc7d48 All the player sub-objects need to be copied.
Not just `mults`. Also, `hacking_chance_mult` still being at the base level appears to be a mistake.
2022-08-21 12:22:58 -07:00
MageKing17
0a4c64a8fa Correct documentation for run() with 0 threads.
For consistency, the same phrasing has been applied to the documentation for `exec()` and `spawn()`.
2022-08-20 18:47:37 -07:00
hydroflame
61b07b6e57 Merge pull request #4013 from danielyxie/dev
Update some doc
2022-08-20 22:38:01 -03:00
hydroflame
853e9c2e4f Merge pull request #4008 from Mughur/working-on-it
DOCS: Some doc updates
2022-08-20 22:37:35 -03:00
Snarling
5466ab3f69 format+lint 2022-08-20 19:16:11 -04:00
Snarling
7578860ce7 remove more prop chaining 2022-08-20 19:14:54 -04:00
Snarling
0f15431b5f remove unused eventEmitterForUiReset 2022-08-20 19:08:05 -04:00
Snarling
97961d6896 Reduce prop chaining 2022-08-20 18:52:18 -04:00
Snarling
9d5cf89f68 Remove prop chain for cancelOrder + format 2022-08-20 18:40:21 -04:00
Risenafis
b224321222 fix selfFund was reversed 2022-08-20 23:37:39 +09:00
Mughur
12231b6ad3 Some doc updates 2022-08-20 12:03:47 +03:00
Mughur
898cfde531 Some more doc updates 2022-08-20 11:52:43 +03:00
Mughur
6784b518d0 Some docs updates 2022-08-20 11:12:11 +03:00
Snarling
2aca8476b6 cancelOrder Params
Why is this defined in so many places
2022-08-19 19:49:09 -04:00
Snarling
4001b4cbb0 refactor stock for ctx instead of workerScript 2022-08-19 19:32:30 -04:00
Snarling
1dc1a7ed6f lint 2022-08-19 18:36:24 -04:00
Snarling
823cdf70ca Fix compile race conditions 2022-08-19 18:21:31 -04:00
Roman Ivaniuk
5c0c130b4b 3992 Fix: handle null duration in toast ns function
extend SnackbarEvents typing to allow null in third argument
also remove typos in Electron.tsx init functions comments
2022-08-19 14:38:46 +03:00
Mughur
84e2ae78c3 Sleeve crime gain bitnode multiplier fix 2022-08-19 10:03:20 +03:00
MageKing17
28d7284323 Correct missing ! for boolean coercion.
`singularity.workForCompany()` was negating its `_focus` argument, unlike similar functions, which used double-negation to coerce to boolean. This was almost certainly a typo, since before PR-#3967 it used `_ctx.helper.boolean()` without negation, just like the other singularity functions.
2022-08-18 22:04:11 -07:00
MageKing17
1b8993a3dc Replace "stock.short" with "stock.shortStock".
This was preventing `disableLog("ALL")` from stopping these log messages, since that's not the function's name now.
2022-08-18 13:29:21 -07:00
hydroflame
dcdf8f7752 Merge pull request #3997 from danielyxie/dev
trying to fix int problems
2022-08-18 14:42:47 -03:00
Olivier Gagnon
9c579e294a allbuild commit 3067703c 2022-08-18 13:41:58 -04:00
Olivier Gagnon
3067703c63 Trying to fix int bug 2022-08-18 13:40:39 -04:00
hydroflame
bccf4e772c Merge pull request #3996 from danielyxie/dev
Fix broken ns filesnames
2022-08-18 13:38:30 -03:00
Olivier Gagnon
67994ba1bc allbuild commit a88f14cd 2022-08-18 12:37:35 -04:00
Olivier Gagnon
a88f14cd16 Fix broken ns filenames 2022-08-18 12:36:30 -04:00
hydroflame
22a820028e Merge pull request #3986 from BugiDev/patch-1
DOC: FIX DOCS TYPO IN terminal.rst
2022-08-18 13:23:00 -03:00
Snarling
07e9cb9277 refactor scp function 2022-08-17 20:31:26 -04:00
Snarling
f6a8d5d337 synchronize scp and write 2022-08-17 18:55:12 -04:00
Bogdan Begovic
15bf5f8868 Fixed a typo in terminal.rst 2022-08-17 23:37:04 +02:00
Snarling
95a1c18139 synchronize write and scp 2022-08-17 17:11:59 -04:00
hydroflame
99c82ce340 Merge pull request #3983 from danielyxie/dev
new formula functions
2022-08-17 15:37:56 -03:00
Olivier Gagnon
f727335d1e allbuild commit a8bef50e 2022-08-17 14:34:00 -04:00
Olivier Gagnon
a8bef50ef5 Added a few formulas to calculate work gains 2022-08-17 14:32:52 -04:00
hydroflame
867cf92dfe Merge pull request #3982 from danielyxie/dev
v2.0.0
2022-08-17 09:50:41 -03:00
Olivier Gagnon
3217f53717 doc 2022-08-17 08:50:05 -04:00
Snarling
9e2e459cc2 Allow & and ' in filenames 2022-08-17 08:14:15 -04:00
phyzical
016dbe67d9 add an early out if already researched
hotfix/3977

File List:
src/Corporation/Actions.ts
2022-08-17 17:46:18 +08:00
Snarling
32afaae3e2 Improve atExit error message 2022-08-16 20:37:50 -04:00
Snarling
0c358c588e ns.atExit errors more readable, allows ns functions 2022-08-16 20:16:57 -04:00
Snarling
e6f9f9ed75 const openScripts (format) 2022-08-16 15:19:33 -04:00
Snarling
57fa1b743a const openScripts 2022-08-16 15:17:44 -04:00
Snarling
8cbb8aac2e Remove unnecessary assignments & spreads 2022-08-16 12:24:50 -04:00
Olivier Gagnon
ba5b0be7f4 allbuild commit 69934257 2022-08-16 12:15:11 -04:00
Olivier Gagnon
699342572c fix some save file not loading properly 2022-08-16 12:14:12 -04:00
Olivier Gagnon
5d3ed2e0c5 allbuild commit 07538d65 2022-08-16 12:01:42 -04:00
Snarling
fbee07ffd7 Fix dirty indicator 2022-08-16 10:41:40 -04:00
Snarling
fd3ff76976 Improve ScriptEditor responsiveness 2022-08-16 02:32:25 -04:00
Olivier Gagnon
07538d6509 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-08-15 09:41:46 -04:00
Olivier Gagnon
10eff210e9 allbuild commit f78c0d6a 2022-08-15 09:39:33 -04:00
Olivier Gagnon
f78c0d6a6d Fix intelligence bugf 2022-08-15 09:38:10 -04:00
hydroflame
2abc5687e1 Merge pull request #3967 from Snarling/performance
NETSCRIPT: Improve real life CPU and memory performance of scripts.
2022-08-15 10:26:53 -03:00
Zoë Hoekstra
765cfd0c9a Clear interval when functional connectionBauble gets unmounted 2022-08-11 19:48:14 +02:00
Zoë Hoekstra
a6ee9a8c76 Format 2022-08-11 19:48:14 +02:00
Zoë Hoekstra
725fb05bb3 Replace ConnectionBauble Class Component with Functional one 2022-08-11 19:48:14 +02:00
Zoë Hoekstra
88d8f13847 Cleanup + lint/format 2022-08-11 19:48:13 +02:00
Zoë Hoekstra
2628dc1ae8 Start RFA connection on gamestart, test connection on bauble creation immediately 2022-08-11 19:48:13 +02:00
Zoë Hoekstra
5fc67c328b Add setting UI for port/reconnect, swap wrong API handlers 2022-08-11 19:48:12 +02:00
Zoë Hoekstra
d20f621b47 Add RFA backend 2022-08-11 19:48:12 +02:00
Snarling
f1f7be6adc Remove unused types 2022-08-10 10:02:41 -04:00
Snarling
b433c366d7 performance update 2022-08-09 19:10:55 -04:00
Snarling
28d9c70796 format&lint 2022-08-09 19:04:05 -04:00
Snarling
c6cb4ca033 Type correctness 2022-08-09 19:02:33 -04:00
Snarling
ea7c2c4981 fixing other commits after rebase 2022-08-09 18:25:02 -04:00
Snarling
648b7e84bf Some cleanup 2022-08-09 18:09:26 -04:00
Snarling
931ea730a5 Move entire ns object to top-level 2022-08-09 18:09:26 -04:00
Snarling
589b9df2a7 remove console.logging from roughlyIs 2022-08-09 18:09:26 -04:00
Snarling
01e63b10a1 move ctx.log to NetscriptHelpers 2022-08-09 18:09:26 -04:00
Snarling
8f8d9a1d23 format+lint 2022-08-09 18:09:25 -04:00
Snarling
c18286b996 revert package-lock.json 2022-08-09 18:09:25 -04:00
Snarling
92abed613d Revert main bundle js map? 2022-08-09 18:09:25 -04:00
Snarling
c7ee92bd71 Revert change to tsworker? 2022-08-09 18:09:25 -04:00
Snarling
208495e269 Initial commit 2022-08-09 18:09:24 -04:00
Snarling
3a2e676c9b Move error functionality to new wrapper 2022-08-09 18:09:24 -04:00
hydroflame
74f3d6507f Merge pull request #3942 from Mughur/dev
API: add corp get<constant> functions, UI: fix coffee hover text
2022-08-09 12:04:03 -03:00
hydroflame
b19f6c5f82 Merge pull request #3970 from phyzical/feature/prompt-error-support
FIX: Prompt Add user friendly message to avoid throwing recovery screen for invalid choices
2022-08-09 12:02:40 -03:00
hydroflame
a4ca891a82 Merge pull request #3946 from faangbait/patch-1
Remove "based" from positive adjectives in infil
2022-08-09 12:01:50 -03:00
hydroflame
383c48c02e Merge pull request #3948 from phyzical/hotfix/3938
HOTFIX: Fix infil definitions.d.ts
2022-08-09 12:00:28 -03:00
hydroflame
c5487a0265 Merge pull request #3964 from Snarling/argsFix
SCRIPTS: FIX #3962 The correct script will be closed even if the player modifies args (v2.0)
2022-08-09 11:59:02 -03:00
hydroflame
a3378d5a08 Merge pull request #3966 from mihilt/fix/fix-somethings
TUTORIAL: Fix #3965 Corrected tutorial text
2022-08-09 11:58:07 -03:00
mihilt
c07f525d4a fix: undo a wrong correction 2022-08-09 18:48:53 +09:00
phyzical
3465f12f1d Add auser friendly message to avoid throwing recovery screen
feature/prompt-error-support

File List:
src/ui/React/PromptManager.tsx
2022-08-09 15:57:36 +08:00
mihilt
f8252a30e2 fix: fix some errors
- fix RAM size correctly
- fix terminal username correctly
2022-08-08 21:17:34 +09:00
Snarling
09322bd54a lint 2022-08-07 21:56:48 -04:00
Snarling
1af97ec5aa fix running/worker script comparison 2022-08-07 11:40:42 -04:00
Snarling
9f6ccc94b1 format & lint 2022-08-02 11:32:04 -04:00
Snarling
47d51391e3 fix typechecking and documentation for attempt 2022-08-02 11:30:28 -04:00
Snarling
b700b0246b Fix contract input handling 2022-08-02 11:11:49 -04:00
phyzical
9b6b9a795b remove redundant tests
hotfix/test-fixes

File List:
test/jest/Netscript/DynamicRamCalculation.test.js
test/jest/Netscript/StaticRamCalculation.test.js
2022-08-01 16:44:49 +08:00
phyzical
2be7029b50 update mds, add missing deprecation notice
hotfix/test-fixes

File List:
dist/bitburner.d.ts
markdown/bitburner.singularity.md
2022-08-01 16:44:19 +08:00
phyzical
46c7cef25f remove redundant mds
hotfix/test-fixes

File List:
markdown/bitburner.singularity.getcharacterinformation.md
markdown/bitburner.singularity.getstats.md
markdown/bitburner.tix.short.md
2022-08-01 16:43:38 +08:00
phyzical
f441d390e1 left over code from old infil implementation
hotfix/3938

File List:
src/ScriptEditor/NetscriptDefinitions.d.ts
2022-08-01 16:09:47 +08:00
faangbait
2b9d62d8ce Remove "based" from positive adjectives in infil
Slang term that's had three opposite meanings in my lifetime alone.
2022-07-31 15:17:06 -05:00
Mughur
451bd0fb54 add missing corp researches to constant 2022-07-30 19:08:17 +03:00
Mughur
a88f36e2f4 add corp get functions, fix coffee hover text 2022-07-30 18:57:33 +03:00
Olivier Gagnon
39cf0cb57f allbuild commit 8e859d84 2022-07-29 17:05:56 -04:00
Olivier Gagnon
8e859d84b7 allbuild commit 07c7f064 2022-07-29 16:29:15 -04:00
Olivier Gagnon
07c7f0641a allbuild commit c8440ef2 2022-07-28 14:35:55 -04:00
Olivier Gagnon
c8440ef268 allbuild commit 2b4a1bb7 2022-07-28 11:37:28 -04:00
Olivier Gagnon
2b4a1bb7db allbuild commit 72a75fe7 2022-07-28 03:11:05 -04:00
hydroflame
72a75fe7b7 Merge pull request #3935 from danielyxie/sleeve-work
API: rework sleeve work
2022-07-28 03:09:12 -04:00
Olivier Gagnon
3b35b07860 remove unused fields on sleeves 2022-07-28 03:08:39 -04:00
Olivier Gagnon
4549b0d467 finish sleeve rework 2022-07-28 02:46:34 -04:00
Olivier Gagnon
ebe953b498 work on sleeve new work system 2022-07-27 20:37:32 -04:00
Olivier Gagnon
315b2adf30 Make invalid hostname better 2022-07-27 00:59:43 -04:00
Olivier Gagnon
7f72d77428 clean some sleeve stuff 2022-07-27 00:50:21 -04:00
Olivier Gagnon
65400dd215 v2apibreak work on .script better 2022-07-27 00:28:32 -04:00
Olivier Gagnon
32bd629317 lint 2022-07-27 00:08:07 -04:00
Olivier Gagnon
326d9fd7ef Move player skills and exp to their struct 2022-07-26 23:54:17 -04:00
Olivier Gagnon
3e4f26ac0a allbuild commit e6d14eff 2022-07-26 15:30:12 -04:00
Olivier Gagnon
e6d14eff68 preparation for v2 launch 2022-07-26 15:09:11 -04:00
Olivier Gagnon
214b2645ad allbuild commit 8afacee9 2022-07-26 10:41:04 -04:00
Olivier Gagnon
8afacee9e5 allbuild commit 6b43ecaf 2022-07-26 08:26:52 -04:00
Olivier Gagnon
6b43ecafb1 fix sleeve not being able to buy augs 2022-07-26 08:25:18 -04:00
Olivier Gagnon
18c3572423 removed the ability to bribe for shares 2022-07-26 08:20:22 -04:00
Olivier Gagnon
ebae95dd4a Fix grafting times 2022-07-26 08:12:59 -04:00
Olivier Gagnon
faa3e212f3 fix a bunch of small v2 related bugs 2022-07-26 08:08:51 -04:00
Aerophia
2799031687 Update AugmentationsPage.tsx 2022-07-25 19:00:04 -05:00
Aerophia
6aa9b24173 Update AugmentationsPage.tsx 2022-07-25 18:57:28 -05:00
Aerophia
954710bf54 Update AugmentationsPage.tsx 2022-07-25 18:53:34 -05:00
Aerophia
d0938bba06 Update AugmentationsPage.tsx 2022-07-25 18:49:08 -05:00
Aerophia
5cc54a8a34 Add files via upload 2022-07-25 18:40:00 -05:00
Aerophia
9d034253fc Merge pull request #1 from Aerophia/Aerophia-patch-1
Add files via upload
2022-07-25 18:36:54 -05:00
Aerophia
7474e50fe8 Add files via upload 2022-07-25 18:35:43 -05:00
Aerophia
7c8c94d808 Add files via upload 2022-07-22 12:32:10 -05:00
Aerophia
c2ffb09514 Update Singularity.ts 2022-07-22 12:28:51 -05:00
Aerophia
1f918011dc Update Singularity.ts 2022-07-22 12:16:48 -05:00
Aerophia
2ad978d8f4 Create Singularity.ts 2022-07-22 12:09:36 -05:00
Aerophia
dad4fcc25e Update Singularity.ts 2022-07-22 12:09:01 -05:00
Aerophia
2907128291 Update Singularity.ts 2022-07-22 12:07:23 -05:00
Aerophia
757711ce5b Update Singularity.ts 2022-07-22 10:29:40 -05:00
Olivier Gagnon
5d2b81053d allbuild commit c37d7845 2022-07-21 19:38:44 -04:00
Olivier Gagnon
c37d78457c Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-07-21 19:37:09 -04:00
Olivier Gagnon
1d46adbce1 allbuild commit fc0fef59 2022-07-21 19:37:05 -04:00
hydroflame
9e25833796 Merge pull request #3606 from RevanProdigalKnight/feature/enhanced-terminal-argument-parsing
MISC: #3596 Enhanced terminal command parsing
2022-07-21 18:36:54 -04:00
Olivier Gagnon
fc0fef598b Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-07-21 18:27:27 -04:00
Olivier Gagnon
631d6ef04a fix few bugs 2022-07-21 18:27:23 -04:00
hydroflame
e76b5628c5 Merge pull request #3725 from borisflagell/FIX#3366
UI: Fix #3366 Sleeve UI would sometimes displays the wrong stat while working out.
2022-07-21 16:17:14 -04:00
hydroflame
b66d7e7d51 Merge branch 'dev' into FIX#3366 2022-07-21 16:17:08 -04:00
Olivier Gagnon
590bc37db0 Fix typo in net def 2022-07-21 15:33:50 -04:00
Olivier Gagnon
7f20dc2ee8 fix getPossibleInfiltrations not returning enough info and fix donation saying Invalid input before unlocking 2022-07-21 15:32:54 -04:00
Olivier Gagnon
5c551348ed fix some React errors 2022-07-21 15:24:03 -04:00
Olivier Gagnon
2d522ea1e6 allbuild commit e9254edf 2022-07-21 15:09:55 -04:00
Olivier Gagnon
e9254edf5d crime consume all their time at once 2022-07-21 14:36:29 -04:00
Olivier Gagnon
e55a3f39d4 allbuild commit 6498a720 2022-07-21 02:54:12 -04:00
Olivier Gagnon
6498a720bb Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-07-21 02:42:52 -04:00
Olivier Gagnon
693baf26df add sleeve aug price and rep function 2022-07-21 02:42:48 -04:00
hydroflame
74a8ce1a76 Merge pull request #3759 from Markus-D-M/contracts_encryption
MISC Two new encryption themed contracts - caesar and vigenere
2022-07-21 02:33:52 -04:00
hydroflame
45d6644ddd Merge pull request #3921 from danielyxie/dependabot/npm_and_yarn/terser-4.8.1
Bump terser from 4.8.0 to 4.8.1
2022-07-21 02:31:33 -04:00
hydroflame
68ecc9613c Merge pull request #3739 from borisflagell/FIX#3732-v2
API: FIX#3732  Cannot assign two sleeve on "Take on contracts" regardless of contract type.
2022-07-21 02:31:12 -04:00
hydroflame
8f7bbaf62c Merge pull request #3723 from borisflagell/FIX#3132
UI: Fixes #3132 several Sleeve can no longer works concurrently in the same company
2022-07-21 02:27:59 -04:00
hydroflame
2fd3451780 Merge pull request #3724 from borisflagell/FIX#3661
API: Fix #3661 Add missing memory property to Sleeve API
2022-07-21 02:26:55 -04:00
hydroflame
10af7ddac7 Merge pull request #3700 from Daniel-Barbera/dev
UI: FIX #3514 Clear recently killed tab on BN end event
2022-07-21 02:19:26 -04:00
dependabot[bot]
ac617ab90e Bump terser from 4.8.0 to 4.8.1
Bumps [terser](https://github.com/terser/terser) from 4.8.0 to 4.8.1.
- [Release notes](https://github.com/terser/terser/releases)
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/commits)

---
updated-dependencies:
- dependency-name: terser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-21 06:18:12 +00:00
hydroflame
dd7b5c4316 Merge pull request #3901 from danielyxie/work
VERSION: v2.0.0
2022-07-21 02:16:53 -04:00
hydroflame
a48ae726ba Merge pull request #3778 from s2ks/hamming
CODINGCONTRACT: HammingCodes description and implementation fixes
2022-07-21 02:16:35 -04:00
hydroflame
3b5d78792b Merge pull request #3760 from nickofolas/fix/corporation-nformat
CORPORATION: Fix #3261 Industry overview number formatting
2022-07-21 02:15:46 -04:00
hydroflame
5d3955de50 Merge pull request #3795 from borisflagell/FIX#3794
SLEEVE: FIX #3794 Sleeve were getting less shocked when hospitalized (was positive, should have detrimental)
2022-07-21 02:15:17 -04:00
hydroflame
a513a842e3 Merge pull request #3797 from Ansopedian/dev
BUGFIX: Singularity.goToLocation support for non-city-specific locations
2022-07-21 02:14:42 -04:00
Olivier Gagnon
43b8cfec5c fix test suite 2022-07-21 02:13:47 -04:00
Olivier Gagnon
d01fd55bde lint fmt 2022-07-21 01:58:47 -04:00
hydroflame
2772511525 Merge pull request #3779 from borisflagell/CorpoNumeral
CORPORATION: Add big number format support in some Corporation's modal
2022-07-21 01:42:35 -04:00
hydroflame
afb4ce9af9 Merge pull request #3808 from danielyxie/dependabot/npm_and_yarn/eventsource-1.1.1
Bump eventsource from 1.1.0 to 1.1.1
2022-07-21 01:39:26 -04:00
hydroflame
0d95533470 Merge pull request #3810 from Undeemiss/multi-hash-sell
BLADEBURNER: Add batch functionality to NS spendHashes API
2022-07-21 01:39:02 -04:00
hydroflame
9946a2a667 Merge pull request #3841 from crimsonhawk47/fix-ip-exists-function
BUGFIX: Fix #3803 Servers can no longer have duplicate IPs
2022-07-21 01:33:35 -04:00
hydroflame
ab674980bd Merge pull request #3852 from TheCrazyT/dev
BLADEBURNER: FIX reduce redundant code in Bladeburner.tsx
2022-07-21 01:32:44 -04:00
hydroflame
cd87c0a6bb Merge pull request #3862 from danielyxie/dependabot/npm_and_yarn/jsdom-16.5.0
Bump jsdom from 15.2.1 to 16.5.0
2022-07-21 01:29:24 -04:00
hydroflame
d2c92c4116 Merge pull request #3881 from evil-tim/ctrl-c-bash-hotkey
UI: Fix #3854 ctrl+c does not clear terminal input
2022-07-21 01:27:03 -04:00
Olivier Gagnon
207e55c7b8 add colon x to vim mode 2022-07-21 01:25:43 -04:00
Olivier Gagnon
ec17cfdaf3 merge corp not async 2022-07-20 17:27:11 -04:00
Olivier Gagnon
ef42ee7232 few more api break 2022-07-20 17:03:08 -04:00
hydroflame
32cf57c794 Merge pull request #3812 from stalefishies/corp-remove-async
CORPORATION: (BREAKING) Remove async
2022-07-20 17:02:52 -04:00
Staszek Welsh
75a9151e74 Merge branch 'dev' into corp-remove-async 2022-07-20 21:12:27 +01:00
Olivier Gagnon
94aa547459 more api break sad 2022-07-20 15:14:26 -04:00
hydroflame
17c2f06ae0 Merge pull request #3802 from stalefishies/corp-dividends
CORPORATION: (BREAKING) Dividend fixes and exposing dividends info via scripts
2022-07-20 15:08:41 -04:00
Olivier Gagnon
4f86bc644c fix faction work not working correctly 2022-07-20 15:08:04 -04:00
Olivier Gagnon
c9b9c2c55b merge dev 2022-07-20 12:16:42 -04:00
Olivier Gagnon
8312710b0d fix contracts 2022-07-20 11:50:26 -04:00
Olivier Gagnon
894929efdb fix ustring issue 2022-07-20 11:41:02 -04:00
Olivier Gagnon
e0a24cf381 fix args not beign passed to scripts 2022-07-20 11:34:49 -04:00
Olivier Gagnon
28b9c821d2 fix few as any 2022-07-20 02:36:21 -04:00
Olivier Gagnon
49f6fda1e4 remove last colon any for now 2022-07-20 01:48:54 -04:00
Olivier Gagnon
0e74b1a5d6 remove last colon any for now 2022-07-20 01:37:41 -04:00
Olivier Gagnon
b4e5829cf8 rm unused arg 2022-07-20 01:21:07 -04:00
Olivier Gagnon
4518eabc29 Remove some any and add getAugmentationBasePrice 2022-07-20 01:20:11 -04:00
Olivier Gagnon
ceb9fa1249 fix more any 2022-07-20 01:13:06 -04:00
Olivier Gagnon
71d8e35bb5 more anys 2022-07-19 23:26:21 -04:00
Olivier Gagnon
30291f7899 build fix for player in formulas 2022-07-19 23:05:46 -04:00
Olivier Gagnon
f220965a73 more anys 2022-07-19 22:54:38 -04:00
Olivier Gagnon
ce2ebf576e fix an any 2022-07-19 22:44:45 -04:00
Olivier Gagnon
83c26903c0 add argument for commitCrime focus 2022-07-19 22:30:07 -04:00
Olivier Gagnon
810f3a87b9 rm more anys 2022-07-19 21:53:43 -04:00
Olivier Gagnon
249242a0a3 build work fix 2022-07-19 21:44:37 -04:00
Olivier Gagnon
26986c2d3e fix work crashing when installing 2022-07-19 21:42:54 -04:00
Olivier Gagnon
96654d4c0a rm some anys 2022-07-19 21:38:50 -04:00
Olivier Gagnon
dfadfe6eb2 working with monaco anys 2022-07-19 20:10:30 -04:00
Olivier Gagnon
0c07dddb36 fix a bunch of any in NetDef 2022-07-19 19:20:14 -04:00
Olivier Gagnon
0848d2fdaa fix 2 any 2022-07-19 19:08:22 -04:00
Olivier Gagnon
70d5390e4d most anys in NetFunc 2022-07-19 19:04:06 -04:00
Olivier Gagnon
7dacf947bd one more 2022-07-19 18:30:59 -04:00
Olivier Gagnon
c3a10d5d95 fix more anys 2022-07-19 18:25:06 -04:00
Olivier Gagnon
2442402af5 fix more anys 2022-07-19 16:46:03 -04:00
Olivier Gagnon
ee105329d8 build 2022-07-19 14:31:14 -04:00
Olivier Gagnon
22c6a10eae rm console log 2022-07-19 14:29:01 -04:00
Olivier Gagnon
bb8af88b77 prep v2 2022-07-19 14:21:12 -04:00
Olivier Gagnon
b409e58447 fix exp not loading, kinda 2022-07-19 13:09:56 -04:00
Olivier Gagnon
c977a9def7 tidy up eslint.js 2022-07-19 12:19:32 -04:00
Olivier Gagnon
2f029e94b4 remove unused lint rules 2022-07-19 11:43:29 -04:00
Olivier Gagnon
ae982c58bd remove unused lint rules 2022-07-19 11:43:10 -04:00
Olivier Gagnon
a9d5ff9bc9 lint 2022-07-18 03:31:17 -04:00
Olivier Gagnon
7455b80466 fix any in CotMG helper 2022-07-18 03:26:07 -04:00
Olivier Gagnon
55c5190986 fix any in BaseServer 2022-07-18 03:20:11 -04:00
Olivier Gagnon
8773b8e18d fix any in determineAllPossibilitesForTabCompletions 2022-07-18 03:19:10 -04:00
Olivier Gagnon
6afeb6972f fix any in IBladeburner 2022-07-18 03:16:36 -04:00
Olivier Gagnon
ceed844523 fix any in Console 2022-07-18 03:13:31 -04:00
Olivier Gagnon
9057bcc8fb fix any in StatsElement 2022-07-18 03:11:49 -04:00
Olivier Gagnon
fbd6b1b28c fix any in NetscriptPorts 2022-07-18 03:09:19 -04:00
Olivier Gagnon
7195c1b540 fix any in AllServers 2022-07-18 03:06:17 -04:00
Olivier Gagnon
691770fa9b fix any in SkillPage 2022-07-18 03:04:58 -04:00
Olivier Gagnon
40ad1a4758 fix any in SkillElem 2022-07-18 03:03:07 -04:00
Olivier Gagnon
91ca43707a fix any in INetscriptHelper 2022-07-18 03:01:55 -04:00
Olivier Gagnon
610bcd6315 fix any in NetscriptPort 2022-07-18 03:00:51 -04:00
Olivier Gagnon
5c3ecb9a23 fix any in PromptManager 2022-07-18 02:59:04 -04:00
Olivier Gagnon
aacdde8082 fix any in StatsTable 2022-07-18 02:57:11 -04:00
Olivier Gagnon
97c5332a59 fix any in LogBoxManager 2022-07-18 02:53:01 -04:00
Olivier Gagnon
ae54092334 fix any in CharacterStats 2022-07-18 02:47:11 -04:00
Olivier Gagnon
88d9a76b04 yet another any 2022-07-18 02:43:59 -04:00
Olivier Gagnon
e9788536ed yet another any 2022-07-18 02:36:51 -04:00
Olivier Gagnon
5f229c9c67 yet another any 2022-07-18 02:33:21 -04:00
Olivier Gagnon
97105b8e76 rm another any 2022-07-18 02:31:09 -04:00
Olivier Gagnon
1b90b42881 rm more any 2022-07-18 02:28:21 -04:00
hydroflame
49a1b2acf1 Merge pull request #3730 from borisflagell/obs_dump
MISC: Yet another batch of obsolete issue.
2022-07-18 01:52:23 -04:00
hydroflame
62414e6bb2 Merge pull request #3900 from oddiz/dev
DOC: Added a link from "Source-Files" page to "How to destroy a Bitnode"
2022-07-17 14:04:19 -04:00
hydroflame
b33a878ccc Merge pull request #3915 from danielyxie/dev
Fix getInfiltrationLocations
2022-07-16 17:26:12 -04:00
Olivier Gagnon
e1e433cbe2 allbuild commit cfcdc254 2022-07-16 17:25:33 -04:00
hydroflame
cfcdc254c9 Merge pull request #3907 from oddiz/patch-1
GANG: Removed a console.log
2022-07-16 17:23:19 -04:00
hydroflame
c5518d9d02 Merge pull request #3910 from faangbait/patch-1
fix for #3909
2022-07-16 17:23:07 -04:00
hydroflame
736bb2877a Merge pull request #3914 from danielyxie/dev
Fix expr
2022-07-16 01:25:26 -04:00
Olivier Gagnon
ced37e3731 allbuild commit 6b18bfb1 2022-07-16 01:18:56 -04:00
hydroflame
eb7f381fba Merge pull request #3913 from danielyxie/dev
doc
2022-07-15 23:47:43 -04:00
Olivier Gagnon
6b18bfb145 doc 2022-07-15 23:47:19 -04:00
hydroflame
91d9ebbedc Merge pull request #3912 from danielyxie/dev
Add blade bulk purchase
2022-07-15 23:46:17 -04:00
Olivier Gagnon
79ea0a8e9d allbuild commit f339e49a 2022-07-15 23:44:02 -04:00
hydroflame
f339e49aa7 Merge pull request #3787 from Undeemiss/bladeburner-multi-upgrade
BLADEBURNER: Added bulk upgrades to upgradeSkill NS API
2022-07-15 23:40:55 -04:00
Olivier Gagnon
5b8eea66d4 rm some any 2022-07-15 23:34:27 -04:00
faangbait
3b59f07f88 fix for #3909
#3909 

I can't compile electron right now, but I think this ought to fix it.
2022-07-15 10:20:30 -05:00
Kaan Şarkaya
854bfcd29a GANG: Removed console.log
As a player who relies on debug console for script output, this console.log is pretty annoying since it prints frequently.
2022-07-15 13:10:57 +03:00
Olivier Gagnon
59e55de9ca fix all function being async lmao 2022-07-15 02:11:06 -04:00
Olivier Gagnon
1d4d86719e rm any 2022-07-15 01:58:00 -04:00
Olivier Gagnon
4bee746576 rm any 2022-07-15 01:51:30 -04:00
Olivier Gagnon
86c0913bd3 rm some any 2022-07-14 23:03:54 -04:00
Olivier Gagnon
8fe824e8cd allbuild commit c9432e4c 2022-07-14 22:02:49 -04:00
hydroflame
683959e22d Merge pull request #3906 from danielyxie/dev
Fix extra spaing in tail window
2022-07-14 22:00:32 -04:00
Olivier Gagnon
e58456cd6b allbuild commit 0b22e87e 2022-07-14 21:59:23 -04:00
Olivier Gagnon
c9432e4cd7 rm any 2022-07-14 21:54:49 -04:00
Olivier Gagnon
a0994a088c rm any 2022-07-14 19:09:21 -04:00
Olivier Gagnon
6a11998427 nuke more any 2022-07-14 19:07:10 -04:00
Olivier Gagnon
dd7ceeefdd rm a any 2022-07-14 19:02:59 -04:00
Olivier Gagnon
6b630753f0 nuke some use of any 2022-07-14 19:00:10 -04:00
Olivier Gagnon
5629c16def extract multipliers in its own type 2022-07-14 18:43:33 -04:00
Olivier Gagnon
0550bc188c refactor some stuff 2022-07-14 17:43:08 -04:00
Olivier Gagnon
a5088f1136 Merge branch 'dev' into work 2022-07-14 16:43:26 -04:00
hydroflame
a4e1d4872d Merge pull request #3904 from danielyxie/dev
Merge fixes to main
2022-07-14 16:41:30 -04:00
Olivier Gagnon
0b22e87e30 Merge branch 'master' into dev 2022-07-14 16:41:11 -04:00
Olivier Gagnon
1a10cdfb81 allbuild commit 686ca3e3 2022-07-14 16:37:18 -04:00
hydroflame
686ca3e31e Merge pull request #3903 from danielyxie/ansii-logbox
TAILBOX: Now displays ANSII colors.
2022-07-14 16:35:21 -04:00
Olivier Gagnon
00ddeb751c Make tail box display ANSII colors 2022-07-14 16:34:42 -04:00
Olivier Gagnon
ad098e1f05 refactor ANSII colors into it's own component 2022-07-14 16:25:20 -04:00
Olivier Gagnon
28956d8fd6 make crime unfocusable 2022-07-14 15:53:42 -04:00
Olivier Gagnon
fac6633347 remove so many fields and values used by the old system 2022-07-12 23:13:40 -04:00
Olivier Gagnon
598e47766e convert company work to new work system 2022-07-12 22:43:03 -04:00
oddiz
a9386e9a4f link added to sourcefiles doc 2022-07-12 17:33:23 +03:00
Olivier Gagnon
2d73f546b0 lint and remove unused var 2022-07-12 01:59:23 -04:00
Olivier Gagnon
f7805c4a51 convert faction work to new work system 2022-07-12 01:54:19 -04:00
Olivier Gagnon
e86a42716c lint 2022-07-11 15:58:23 -04:00
Olivier Gagnon
606f1bf6c4 create program and grafting done 2022-07-10 01:37:36 -04:00
s2ks
b27e7d00fe format 2022-07-08 01:37:42 +02:00
s2ks
063da8aa60 fetch latest from upstream 2022-07-08 01:35:20 +02:00
Olivier Gagnon
647392626e convert taking class ot new work system 2022-07-07 17:28:23 -04:00
Olivier Gagnon
24b6eb4d56 make workinprogress crime 2 digit precision 2022-07-07 02:03:02 -04:00
Olivier Gagnon
3ee7d593d0 Convert crime to new work model 2022-07-07 02:00:23 -04:00
James Villegas
6d8a3e192b Update ctrl+c hotkey to print current text to terminal without executing it to mimic real terminal behavior 2022-07-07 08:11:34 +08:00
hydroflame
7d263e4223 Merge pull request #3889 from stalefishies/purchase-aug-fix
MISC: Add faction membership check to singularity.purchaseAugmentation
2022-07-06 15:35:53 -04:00
hydroflame
f706b48db8 Merge pull request #3872 from ilkecan/add-options-shortcut
UI: Add a keyboard shortcut to switch to Options page
2022-07-06 14:39:25 -04:00
hydroflame
fb31903966 Merge pull request #3873 from ilkecan/createProgram-cancel-message
createProgram: FIX #3846 Return correct message
2022-07-06 14:38:38 -04:00
hydroflame
e5ecf1b502 Merge pull request #3793 from Nezrahm/dev
HACKNET: Make hashnet perfectly convert overflow
2022-07-06 14:38:13 -04:00
hydroflame
4f617e7d3d Merge pull request #3818 from ApamNapat/fixed_some_typos_and_style_issues
MISC: Fixed some typos and style issues
2022-07-06 14:35:31 -04:00
hydroflame
b067e05738 Merge pull request #3813 from stalefishies/doc-fix
DOCUMENTATION: FIX #2602 Remove incorrect info from getHackTime and friends
2022-07-06 14:33:40 -04:00
hydroflame
2a3b591eb7 Merge pull request #3786 from Vic1970/doco_typos
DOCUMENTATION: Corrections to Sleeve Documentation (Sleeves.rst) for consistency and typos.
2022-07-06 14:32:41 -04:00
hydroflame
eeb01b77d6 Merge pull request #3834 from stalefishies/types-fix
MISC: FIX #3831 Fix NS declarations with incorrect script arg types
2022-07-06 14:31:44 -04:00
hydroflame
c8075ba809 Merge pull request #3858 from douweschulte/dev
Small docs and help updates
2022-07-06 14:30:05 -04:00
hydroflame
9f6ba6c802 Merge pull request #3864 from marcowesii/patch-1
DOCUMENTATION: arguments documentation example for ns2 scripts
2022-07-06 14:28:42 -04:00
hydroflame
ee9cdee512 Merge pull request #3866 from ilkecan/parameterize-script-extension
TUTORIAL: Remove the hardcoded script extension
2022-07-06 14:26:40 -04:00
hydroflame
a9d078752a Merge pull request #3891 from va2dos/patch-1
Documentation: Added BN13 to list of source files (sourcefiles.rst)
2022-07-06 14:26:17 -04:00
hydroflame
b55318706a Merge pull request #3893 from danielyxie/dev
2 recovery fix
2022-07-06 12:43:23 -04:00
Olivier Gagnon
11483db71d allbuild commit b5927847 2022-07-06 12:39:48 -04:00
Olivier Gagnon
b592784712 update donation counter 2022-07-06 12:38:11 -04:00
hydroflame
0d5ce06d4d Merge pull request #3697 from borisflagell/#3669
STANEK: FIX #3669 Clearing stanek grid using API could crash the page.
2022-07-06 12:37:15 -04:00
hydroflame
904f45f610 Merge pull request #3847 from Snarling/QuitWorkFix
COMPANY: FIX #3837, #3830 corrected backwards logic in quitJob function
2022-07-06 12:35:14 -04:00
sebastien lapratte
a29788c260 Update sourcefiles.rst 2022-07-04 21:01:45 -04:00
Staszek Welsh
395b583905 Add faction membership check to singularity.purchaseAugmentation 2022-07-04 23:44:58 +01:00
James Villegas
6c026e6d5c Ignore ctrl+c bash hotkey if user has selected text to allow copying 2022-07-03 12:18:47 +08:00
James Villegas
9efb209ea3 Implement ctrl+c bash hotkey to clear current input 2022-07-03 11:49:45 +08:00
Snarling
9cb58898f2 Add ilkecan fix for part time work 2022-06-29 15:03:34 -04:00
ilkecan
adda3d68cd createProgram: Return correct message
It doesn't return completion message upon cancellation anymore.
2022-06-29 02:01:01 +00:00
ilkecan
9f8c567d4c Add a keyboard shortcut to switch to Options page 2022-06-29 00:33:39 +00:00
ilkecan
44118c8a72 Remove the hardcoded script name 2022-06-28 23:48:07 +00:00
ilkecan
415ae8ee59 Remove the hardcoded tutorial script extension
Parameterized it according to the chosen NS version.
2022-06-26 20:33:01 +00:00
dependabot[bot]
7a60df17b6 Bump jsdom from 15.2.1 to 16.5.0
Bumps [jsdom](https://github.com/jsdom/jsdom) from 15.2.1 to 16.5.0.
- [Release notes](https://github.com/jsdom/jsdom/releases)
- [Changelog](https://github.com/jsdom/jsdom/blob/master/Changelog.md)
- [Commits](https://github.com/jsdom/jsdom/compare/15.2.1...16.5.0)

---
updated-dependencies:
- dependency-name: jsdom
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-25 01:32:13 +00:00
Douwe Schulte
934a72b94c Fix Nitpick: scan-analyze description displays with an html tag when doing help #3843 2022-06-22 14:06:05 +02:00
Douwe Schulte
d472c1239b Missing link to used library in tprintf 2022-06-22 12:37:46 +02:00
marcowesii
a4b7f69307 example for ns2 arguments from terminal
example for ns2 arguments from terminal because args array seems to not be used anymore
2022-06-19 18:59:15 +02:00
TheCrazyT
6f7981ff25 Merge branch 'dev' into dev 2022-06-18 22:10:38 +02:00
TheCrazyT
d052d40612 reduce redundant code in Bladeburner.tsx 2022-06-18 21:40:33 +02:00
Snarling
7acb83ba77 Fix backwards logic on quitJob 2022-06-16 07:44:32 -04:00
Gabriel Hawk
60c6536f8e npm format 2022-06-13 01:13:36 -05:00
Gabriel Hawk
1e2e42af75 ipExists acceses server list correctly 2022-06-13 01:07:21 -05:00
Staszek Welsh
d2d76d40e0 npm run format 2022-06-10 20:03:43 +01:00
Staszek Welsh
ecc56213bc Fix function declarations with incorrect script arg types 2022-06-10 19:54:11 +01:00
BB
de01ae20b9 Fixed some typos and style issues 2022-06-07 15:26:33 +02:00
Staszek Welsh
53743ecb7d Change UI arrows 2022-06-03 22:16:03 +01:00
Staszek Welsh
6c73ea44ef Remove potentially spoilery comments about Hacknet Servers from ns docs 2022-06-03 02:20:35 +01:00
Staszek Welsh
144a56e6e0 Remove incorrect doc comment about second arguments for getHackTime and friends 2022-06-03 02:18:06 +01:00
Staszek Welsh
052aa33f0c Remove debug console.logs 2022-06-03 00:27:05 +01:00
Staszek Welsh
eb71097006 Fix bug where NaNs can leak into product creation productivities 2022-06-03 00:19:43 +01:00
Staszek Welsh
02b07bb332 Fix relevant linter errors and run formatter 2022-06-02 22:54:50 +01:00
Staszek Welsh
b29c8e0039 Stop potential exploit where you switch employees around right before a product finishes 2022-06-02 22:11:34 +01:00
Staszek Welsh
1ed19168f6 Use nicer arrows and alignment in office UI 2022-06-02 17:47:31 +01:00
Staszek Welsh
333975ecf6 Move buy coffee button to office UI section 2022-06-02 14:49:52 +01:00
Staszek Welsh
ba7b76369b Remove industry upgrades
There are only two industry upgrades, one of which is buying coffee
which is not an upgrade, and for the office not the industry. Moving
that to the office leaves just hiring AdVerts, which is better as an
explicitly named set of methods.
2022-06-02 02:43:22 +01:00
Staszek Welsh
18a80d3fe9 Stop potential exploit where you could cheat at coffee/party prices 2022-06-02 00:07:34 +01:00
Staszek Welsh
9ffec86b58 Make buy coffee UI reflect if we're buying coffee 2022-06-02 00:00:30 +01:00
Staszek Welsh
fe83ca0f3f Make throw party UI reflect if we're throwing a party 2022-06-01 23:45:29 +01:00
Staszek Welsh
04efd899a0 Remove async from buyCoffee and throwParty 2022-06-01 23:36:15 +01:00
Staszek Welsh
ffaa38d086 Unify code paths for buying coffee and throwing parties 2022-06-01 23:26:32 +01:00
Staszek Welsh
1ba5902e1e Stop auto employee buttons moving around when the numbers change 2022-06-01 18:34:24 +01:00
Staszek Welsh
7d3a43f7b5 Remove async from employee assignment functions 2022-06-01 18:18:53 +01:00
Staszek Welsh
b9356ea782 Only switch employee jobs at the start of corp cycles 2022-06-01 18:11:33 +01:00
Staszek Welsh
df98bcc748 Remove unnecessary check in corporation.unlock 2022-06-01 13:03:32 +01:00
Staszek Welsh
eb46e4d156 Rename getDividends to getCycleDividends for clarity 2022-06-01 12:59:45 +01:00
Undeemiss
6ba171b0c3 Unknown-ify count parameters 2022-05-31 21:27:04 -05:00
Undeemiss
1bbb0610ab Fix bug where player not refunded hashes for invalid server targets 2022-05-31 21:20:13 -05:00
Undeemiss
620e6986aa Remove unnecessary refund for nonexistent hash upgrades 2022-05-31 21:15:29 -05:00
Undeemiss
f0dc532513 Add optional count parameter to hashCost and spendHashes 2022-05-31 21:13:03 -05:00
dependabot[bot]
d0d4812cc8 Bump eventsource from 1.1.0 to 1.1.1
Bumps [eventsource](https://github.com/EventSource/eventsource) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/EventSource/eventsource/releases)
- [Changelog](https://github.com/EventSource/eventsource/blob/master/HISTORY.md)
- [Commits](https://github.com/EventSource/eventsource/compare/v1.1.0...v1.1.1)

---
updated-dependencies:
- dependency-name: eventsource
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-31 23:54:43 +00:00
Staszek Welsh
4a3558098c Fix error check in issueDividends expecting 0-100 when it actually takes 0-1 2022-05-30 22:31:51 +01:00
Staszek Welsh
74e4a32f13 Fix shareholder earnings in UI being per cycle instead of per sec 2022-05-30 22:24:52 +01:00
Staszek Welsh
c117b55df9 Expose dividend info through ns.corporation.getCorporation() 2022-05-30 22:21:27 +01:00
Staszek Welsh
e28fe3e31d Use stored corporation.dividendTax in the dividend tax calculation 2022-05-30 22:05:05 +01:00
Staszek Welsh
8d474a7610 Change corporation.dividendPercentage to corporation.dividendRate 2022-05-30 21:45:36 +01:00
Ansopedian
d319b3f982 added singularity.goToLocation support for non-city-specific locations 2022-05-30 14:23:06 +02:00
borisflagell
2f1d47b466 SLEEVE: FIX #3794 2022-05-29 21:17:04 +02:00
Nezrahm
178015a140 Make hashnet perfectly convert overflow 2022-05-29 20:10:25 +02:00
Undeemiss
a0bff34761 Refactored the internal calculateCost function for readability 2022-05-29 11:35:28 -05:00
Undeemiss
06acc423ae Added count to NS cost function, input checking, fixed documentation
Also changed upgradeSkill back to returning a bool instead of a
number.
2022-05-29 11:13:49 -05:00
borisflagell
e5b372438c Update bitburner.sleeve.settobladeburneraction.md
Slight correction to the sleeveNumber description. Was referencing Gym Workout -> Now reference performing Action
2022-05-29 13:50:08 +02:00
Undeemiss
f8f3c099e0 Formatted/linted (There are some errors, but they aren't mine afaik) 2022-05-28 21:35:20 -05:00
Undeemiss
8b026f606b Fixed off-by-one error in the fast calculateCost function
The off-by-one error was in the original sum, so it's not obvious
in the simplified version of the sum. Fixing this greatly improved
the accuracy of the simple calculation for small counts, but I'm
leaving the recursive mode in. Maybe I'll lower the threshold,
though. 100 isn't a terribly small number.
2022-05-28 21:26:11 -05:00
Undeemiss
8d9e077b66 calculateCost now works more accurately for count<=100 2022-05-28 21:06:25 -05:00
Undeemiss
908d5e9570 Proof-of-concept, handling purchases of 1e150 lvls at once
Threw something together with a formula that should, for large
purchases, be roughly the same cost as normal. The formula change
may cause noticeable deviation from expected costs for low numbers
of upgrades, though, so I plan to fix that by having high
quantities handled differently than low ones if necessary.
2022-05-28 20:37:33 -05:00
Vic1970
174190fdef Update sleeves.rst
Minor corrections to sleeves documentation to reflect game behaviour regarding purchase of additional duplicate sleeves and memory for sleeves.
2022-05-29 08:36:58 +10:00
Undeemiss
709fc3ab63 Began attempting to implement a multi-upgrade function for bb 2022-05-28 14:12:07 -05:00
s2ks
3a55e3b9ad Merge branch 'dev' into hamming 2022-05-28 15:31:46 +02:00
s2ks
f066c0f01e correct size calculation 2022-05-28 15:27:32 +02:00
borisflagell
2332138fbd Updated Modal to use new NumberInput Component 2022-05-28 03:15:23 +02:00
borisflagell
6be884a9ad prettier 2022-05-28 02:50:04 +02:00
borisflagell
c6b6ad1ab9 Corporation: Add big number format support in some modal corp
Add big number format support. to the following Corporation's modal :
-BuybackShare
-BribeFaction
-GoPublicModal
-IssueNewShare
-MakeProduct
-SellSahares
2022-05-28 02:50:04 +02:00
hydroflame
6f017bf4f6 Merge pull request #3781 from danielyxie/number-component
MISC: Create NumberInput component which allows accepting the same kind of input everywhere.
2022-05-27 20:43:49 -04:00
Olivier Gagnon
b8750d1058 Make a new InputComponent that can be re-used everywhere to make all text accept the same kind of input 2022-05-27 20:41:14 -04:00
s2ks
c88d3bcf85 format 2022-05-27 22:37:32 +02:00
s2ks
bcc53c48a7 be clear about the form the answer should come in 2022-05-27 22:31:42 +02:00
s2ks
aa321e3305 re-implement HammingEncode/Decode added HammingEncodeProperly
to generate valid hamming codes for "HammingCodes: Encoded Binary to
Integer"
2022-05-27 21:42:39 +02:00
s2ks
4b37603ea5 Attempt to clear up some ambiguity in the descriptions
of the "HammingCodes" coding contracts as well as having the
"HammingCodes: Encoded Binary to Integer" coding contract generate valid
Hamming codes.
2022-05-27 21:36:03 +02:00
borisflagell
c5b68610a1 fix typo in thrown error message 2022-05-27 17:59:37 +02:00
hydroflame
605dd87e90 Merge pull request #3771 from borisflagell/BladeBurnerAPIGetBonusTime
API: Lightweight FIX - in-game API doc Gang & Bladeburner getBonusTime() referenced wrong time unit
2022-05-26 19:08:36 -04:00
borisflagell
eed6f355fb Update NetscriptDefinitions.d.ts
Fix two instance of in-game API doc referencing the wrong time unit.
2022-05-26 23:39:57 +02:00
Markus-D-M
30687ce74e Typo 2022-05-26 21:08:28 +02:00
Olivier Gagnon
f70297c829 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-05-26 12:59:09 -04:00
Olivier Gagnon
f2721fefd2 Bladeburner final op no longer directly sends you to the bitverse but instead makes a button appear that sends you there 2022-05-26 12:59:05 -04:00
Markus-D-M
1d06273858 Specify api data + Adding description to doc. 2022-05-26 09:40:05 +02:00
Markus-D-M
ec95730a81 Merge branch 'dev' into contracts_encryption 2022-05-26 09:09:34 +02:00
hydroflame
394b2fca5d Merge pull request #3768 from jeek/dev
Reduce Fulcrum Rep Requirement
2022-05-26 02:14:25 -04:00
T.J. Eckman
734f1167df Restore Fulcrum Rep Requirement to Default
Instead of setting it specifically to 200e3, removed the argument entirely so it will use the default, which currently happens to be 200e3.
2022-05-26 01:12:40 -04:00
T.J. Eckman
2defd1887d Reduce Fulcrum Rep Requirement 2022-05-26 01:00:56 -04:00
Olivier Gagnon
4e10e190cb allbuild commit 00adc2ff 2022-05-26 00:57:25 -04:00
Olivier Gagnon
00adc2ffa2 allbuild commit ddf4ab26 2022-05-26 00:34:30 -04:00
Olivier Gagnon
ddf4ab2672 dont generate coding contract offline because SF1.1 2022-05-25 20:49:11 -04:00
Olivier Gagnon
f29e546961 allbuild commit 6a2e5b06 2022-05-25 20:39:25 -04:00
Olivier Gagnon
6a2e5b06ad fix manualHack 2022-05-25 20:19:42 -04:00
Olivier Gagnon
0dff3e22bc allbuild commit 7bc9177a 2022-05-25 19:04:22 -04:00
hydroflame
7bc9177ab4 Merge pull request #3766 from jeek/dev
Speed up assigning of employees currently without a job.
2022-05-25 19:01:54 -04:00
T.J. Eckman
e14a61e8ae Merge pull request #1 from jeek/corpturboassign
Unassigned Employees Boost
2022-05-25 18:56:06 -04:00
T.J. Eckman
cfb0967634 Unassigned Employees Boost
Speed up assigning of employees currently without a job.
2022-05-25 18:55:34 -04:00
hydroflame
535812a0fc Merge pull request #3764 from danielyxie/dev
Remove the infinite loop safety net completely
2022-05-25 18:40:57 -04:00
Olivier Gagnon
216055b3e0 allbuild commit b60f3da8 2022-05-25 18:38:01 -04:00
hydroflame
3ba8e59a9b Merge pull request #3761 from danielyxie/dev
Fix .script crashing :(((
2022-05-25 16:10:19 -04:00
Olivier Gagnon
b60f3da80e allbuild commit cb7f3b17 2022-05-25 16:05:03 -04:00
Olivier Gagnon
cb7f3b17be fix ns1 scripts 2022-05-25 16:01:28 -04:00
Markus-D-M
51ba358464 Update codingcontracttypes.ts
prettier
2022-05-25 21:41:58 +02:00
Markus-D-M
699d792e5b Update codingcontracttypes.ts
two encryption contracts
2022-05-25 21:41:58 +02:00
Olivier Gagnon
ca2e22506b more lint 2022-05-25 15:40:57 -04:00
nickofolas
8630ff3741 Use big number format for industry overview 2022-05-25 14:26:14 -05:00
Olivier Gagnon
c1650e332b lint fixes 2022-05-25 15:08:48 -04:00
Olivier Gagnon
76ccb0ba36 lint 2022-05-25 11:43:43 -04:00
Olivier Gagnon
6fef46d5df Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-05-25 11:16:01 -04:00
Olivier Gagnon
bd6705419c lint 2022-05-25 11:15:34 -04:00
hydroflame
315c949ca2 Merge pull request #3753 from phyzical/feature/3737
MISC: Remove progMult from product create as it is redundant
2022-05-25 11:14:39 -04:00
Olivier Gagnon
63b0b22f92 Fix tor router from anywhere 2022-05-25 11:14:06 -04:00
hydroflame
bef953bf59 Merge pull request #3758 from danielyxie/api-wrap
Fix a few bugs related to api wrapping
2022-05-25 11:12:38 -04:00
Olivier Gagnon
4dd7afac9d allbuild commit 252b0a30 2022-05-25 11:10:25 -04:00
hydroflame
edef7729a2 Merge pull request #3756 from phyzical/bugfix/fix-tests
FIX: tests
2022-05-25 10:49:08 -04:00
hydroflame
0856680bab Merge pull request #3754 from phyzical/bugfix/fix-dev-build
BUGFIX: fix compliation error in dev
2022-05-25 10:48:45 -04:00
phyzical
bc5377ba74 fix tests
bugfix/fix-tests

File List:
src/Terminal/determineAllPossibilitiesForTabCompletion.ts
test/jest/Terminal/Directory.test.js
2022-05-25 19:03:58 +08:00
phyzical
bec40e5274 fix compliation error in dev
bugfix/fix-dev-build

File List:
src/NetscriptFunctions.ts
2022-05-25 17:20:32 +08:00
phyzical
2e7e5ad917 remove progMult as it is redundant
feature/3737

File List:
src/Corporation/Product.ts
2022-05-25 17:09:36 +08:00
hydroflame
31fe43715e Merge pull request #3743 from fdellwing/patch-1
MISC: Fix #3742 manualHack() should use correct BitNode Multiplier
2022-05-24 20:22:01 -04:00
hydroflame
467e307c05 Merge pull request #3748 from danielyxie/api-wrap
MISC: API Wrapping blocked
2022-05-24 20:19:52 -04:00
Olivier Gagnon
252b0a3018 allbuild commit 972abcbd 2022-05-24 20:19:26 -04:00
Olivier Gagnon
972abcbdc8 Wrap all the API 2022-05-24 20:16:39 -04:00
Olivier Gagnon
ae38b11ede made static ram cost typecheck that it's missing no property. 2022-05-24 18:34:00 -04:00
Olivier Gagnon
0da2e74d12 more work on wrapping formulas 2022-05-24 17:51:48 -04:00
Olivier Gagnon
324f752d8a Wrap formulas but doesn't compile 2022-05-24 17:29:44 -04:00
hydroflame
16b0970b27 Merge pull request #3746 from danielyxie/dev
Update infinite loop safety net mechanism
2022-05-24 17:10:00 -04:00
Olivier Gagnon
79e7c47b4d Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-05-24 16:57:39 -04:00
Olivier Gagnon
ce61f06319 allbuild commit 8159dad5 2022-05-24 16:57:25 -04:00
Fabian Dellwing
4d41d2deaf Fix #3742 2022-05-24 18:28:10 +02:00
Daniel Barbera
f4e28d7bc1 Merge branch 'dev' of https://github.com/danielyxie/bitburner into dev 2022-05-24 18:00:49 +02:00
hydroflame
682b12d05a Merge pull request #3731 from xRalic/offlinecontracts
MISC: FIX #2709: Generate contracts while offline
2022-05-24 11:44:46 -04:00
hydroflame
8ea33c67fc Merge pull request #3740 from xRalic/fixBadContracts
MISC: FIX #3711 Generate contracts only on network
2022-05-24 11:44:05 -04:00
Daniel Barbera
27e9cd53e1 #3514: Clear recently killed tab on BN end event 2022-05-24 17:05:25 +02:00
Daniel Barbera
761d0cb03e Remove logging 2022-05-24 17:03:17 +02:00
Daniel Barbera
e7a9273c80 #2709: Generate contracts while offline 2022-05-24 17:03:17 +02:00
Daniel Barbera
37e32ee0f8 #3711: Generate contracts only on network 2022-05-24 16:26:40 +02:00
borisflagell
0abd760d35 API FIX:#3732 Cannot assign two sleeve on "Take on contracts" regardless of contract type.
ns.sleeve.setToBladeburnerAction() was not testing the contract value.
2022-05-24 15:38:05 +02:00
borisflagell
682d689e55 fix lint error
removed unused import
(fixing commit issue)
2022-05-24 15:10:05 +02:00
borisflagell
9091441389 Prettier
(fixing commit issue)
2022-05-24 15:09:43 +02:00
borisflagell
ff75097149 API: Fix #3661 Add missing memory property to Sleeve API
fixes #3661

Add the missing memory stat to NS.SleeveSkills Interface.
Update ns.Sleeve.GetSleeveStats accordingly.
(fixing commit issue)
2022-05-24 15:09:22 +02:00
borisflagell
8af4fb1d5a UI: Fix #3366 Sleeve UI would sometime display the stat in TaskSelector while working out.
fixes #3366

 Sleeve.gymStatType will now be constrainded to the following values by Sleeve.workoutAtGym() :
"none" , "str", "def", "dex", "agi". (could previously be anything inputted by player through API)
Sleeve.updateGainTaskRate() and TaskSelector.tasks's initializer block will now use a switch, expecting one of those value, instead of reevaluating the string.

(fixing commit issue)
2022-05-24 15:08:47 +02:00
hydroflame
cb4fd4cf90 Merge pull request #3722 from borisflagell/FIX#2884
API: FIX#2884 Add the missing className property to Sleeve'sAPI
2022-05-24 08:48:35 -04:00
hydroflame
1884d88840 Merge pull request #3738 from danielyxie/dev
Improve inf loop message
2022-05-24 08:33:49 -04:00
Olivier Gagnon
8159dad5fa allbuild commit de644247 2022-05-24 08:12:49 -04:00
borisflagell
3299cf9aae Revert "AAAAAAAAAAARRG!"
This reverts commit 1d050ec091.
2022-05-23 23:27:51 +02:00
borisflagell
1d050ec091 AAAAAAAAAAARRG!
AAAAAAAAAAAAAAAAAAAAAAAAAAhh!
2022-05-23 23:27:45 +02:00
borisflagell
08d8f405c0 UI: Fixes #3132 several Sleeve can no longer works concurrently in the same company
fixes #3132
fixes #3394

Fixed the faulty possibleJob() logic in Sleeve/UI/TaskSelector
2022-05-23 19:31:46 +02:00
borisflagell
051393fac9 API: FIX#2884 Add the missing className property to Sleeve'sAPI
fixes #2884.
2022-05-23 19:20:33 +02:00
hydroflame
27bf6cba39 Merge pull request #3703 from borisflagell/ADD#3376
UI: FIX #3376 Add a Total Profit line on Corporation Overview
2022-05-23 12:21:55 -04:00
hydroflame
55ce05e3f4 Merge pull request #3706 from nickofolas/fix/log-box-wrap
LOGS: Fix text wrap in log boxes
2022-05-23 12:21:38 -04:00
hydroflame
570c6d6b32 Merge pull request #3702 from borisflagell/FIX#3508
BLADEBURNER: FIX #3508 Add GetActionCurrentTime() to Bitburner API
2022-05-23 12:21:27 -04:00
hydroflame
d5f3d2fbf4 Merge pull request #3705 from nickofolas/improvement/address-feedback
AUGMENTATIONS: Address some feedback regarding the new UI
2022-05-23 12:19:17 -04:00
hydroflame
a7f8b71d67 Merge pull request #3692 from borisflagell/closing-outdated-issues
MISC: Another batch of depreciated issue
2022-05-23 12:18:58 -04:00
hydroflame
f2d9eb8c08 Merge pull request #3721 from borisflagell/FIX#3720
INFILTRATION: FIX#3720 SoA reputation exploit on Infiltration/Victory screen
2022-05-23 12:16:25 -04:00
hydroflame
d7abbb1885 Merge pull request #3715 from PathToLife/patch-2
UI: FIX #3714 Add tprintf to RamCostGenerator
2022-05-23 12:16:03 -04:00
hydroflame
ad1fadd976 Merge pull request #3712 from SebassNoob/english-fixes-patch
MISC: fix augmentation typos, sentence structure and grammar
2022-05-23 12:15:48 -04:00
borisflagell
ec0350984c INFILTRATION: FIX#3720
On Infiltration's reward screen, when trading for rep :
SoA reward are not longer given out when select "none" in the faction's dropdownmenu.
2022-05-23 17:31:28 +02:00
borisflagell
c582e9c099 fix the new function description in in-game-doc 2022-05-23 13:31:34 +02:00
PathToLife
3f1cb27ec1 Add tprintf to RamCostGenerator 2022-05-23 19:57:23 +12:00
hydroflame
e4903f27f8 Merge pull request #3693 from borisflagell/FIX2555
MISC: FIX #2555 ManualHackMoney Bitnode multiplier being "orphaned"
2022-05-22 21:36:01 -04:00
hydroflame
9a2c743d66 Merge pull request #3710 from danielyxie/dev
Fix blade error
2022-05-22 20:49:07 -04:00
Olivier Gagnon
de64424740 allbuild commit 837cceba 2022-05-22 20:44:40 -04:00
hydroflame
837cceba5b Merge pull request #3694 from borisflagell/FIX2721
WORK: FIX #2721 Singularity faction work logging.
2022-05-22 20:38:49 -04:00
hydroflame
9f73f9b392 Merge pull request #3698 from borisflagell/#3685
BLADEBURNER: FIX #3685 Error being thrown when finishing a BlackOps
2022-05-22 20:37:30 -04:00
nickofolas
012edd3b2a Fix log box wrap 2022-05-22 11:54:05 -05:00
nickofolas
d1656c0567 Color reqs and increase density 2022-05-22 11:12:30 -05:00
SebassNoob
774eced317 grammar 2022-05-23 00:05:40 +08:00
SebassNoob
cd8f0cdbda more ss fixes 2022-05-23 00:03:51 +08:00
SebassNoob
0bc486afcd fix typos, grammar and sentence structure 2022-05-22 23:51:12 +08:00
borisflagell
5bc1d293ca prettier 2022-05-22 11:59:14 +02:00
borisflagell
82a001c962 UI: FIX #3376 Add a Total Profit line on Corporation Overview
Add a Total Profit line on Corporation Overview.

Feels a bit like a low added-value bloat.
But division did use that pattern already, so I guess it can count as streamlining.
2022-05-22 11:52:45 +02:00
borisflagell
d44d71712f Prettier 2022-05-22 06:40:32 +02:00
borisflagell
8e0af049d9 BLADEBURNER: FIX #3508 Add GetActionCurrentTime() to Bitburner API
Add GetActionCurrentTime() to Bitburner API.
Slightly tweak BItburner.resetAction() to also reset time counters.
2022-05-22 06:40:08 +02:00
nickofolas
ea2f412ef1 Initial densification of Augments list 2022-05-21 19:40:27 -05:00
nickofolas
5f9fb117b0 Remove info icon, show stats on name hover 2022-05-21 18:37:27 -05:00
borisflagell
3ee37bfde5 BLADEBURNER: FIX #3685 Error being thrown when finishing a BlackOps
fixes #3685 - Bladeburner.action property was reset before being used for the last time in Bladeburner.processAction().

Moving
const action = this.getActionObject(this.action);
before the call to
const retValue = this.completeAction(player, player, this.action);
2022-05-22 01:16:20 +02:00
borisflagell
5b4addbb21 Prettier & slight fix
Streamlined DummyGrid to behave like Grid.

Fixed a bad practice issue with ActiveFragmentSummary that displayed an error message in the webbrowser devtool console.
2022-05-22 01:08:53 +02:00
borisflagell
ce5fdb00af STANEK: FIX #3669 Clearing stanek grid using API could crash the page.
Fix #3669 - Query the "activegrid" at each re-rerendering of the Stanek Page. Rather than using React useState and passing it as Props.

Tested with :
ns.clearLog()
ns.tail()
await ns.sleep(2000)

ns.print("Clearing gift")
await ns.sleep(1000);
ns.stanek.clearGift()
2022-05-22 00:57:30 +02:00
borisflagell
8e94878380 WORK: FIX #2721 Singularity faction work logging.
fixes #2721

Player's faction-work-related property were reset to 0 before the singularity's log message was formatted.

I anticipate (really) minor conflict with Work System rework PR.
2022-05-21 23:18:12 +02:00
borisflagell
12ec35823e MISC: FIX #2555 ManualHackMoney Bitnode multiplier being orphaned
Apply the BitnodeMultipliers.ManualHackMoney to money gained via Terminal's hack program.
2022-05-21 22:53:31 +02:00
borisflagell
67ba9b24e4 Revert "Closing obsolete issue ticket"
This reverts commit 69e9bbe166.
2022-05-21 21:15:27 +02:00
borisflagell
69e9bbe166 Closing obsolete issue ticket
Already done :
close #3534 - Could not reproduces - neither in dev build or 1.6.4. Probably fixed already. No action taken.
close #3029 - Re-Sleeving has been completly scrapped and replaced by grafting. Issue can be closed.
close #1385 - Sleeve's Augmentation modal work fine now.
close #3084 - Could not reproduce. Apprently fixed already as part of issue 2808 and 2938.
close #2885 - Possible duplicate issue of 2908. Probably related with issues just above. Cannot reproduce anymore.
close #2808 - Already fixed by 2938.

Not-an-issue :

Discarded suggestion :
close #3566 - Contributors pointed out that it would go against the philosophy of the game. The player can handle it at their level.
fix #3656 - Hydro stated current behaviour was intentional.

Feel free to contribute in comment.
2022-05-21 21:14:51 +02:00
hydroflame
b2659318c8 Merge pull request #3691 from steven-r/fix-3690
MISC: FIX 3690 Add missing function to RamCostGenerator
2022-05-21 12:44:19 -04:00
Stephen Reindl
35978689f9 Fix #3690 by adding missing function RamCostGenerator 2022-05-21 17:24:20 +02:00
hydroflame
b10f11b390 Merge pull request #3682 from nickofolas/fix/unavailable-augs-color
AUGMENTATIONS: Use disabled text color for non-buyable augs
2022-05-20 23:53:34 -04:00
hydroflame
5dcdbf81eb Merge pull request #3683 from danielyxie/dev
Fix 'mv'
2022-05-20 23:52:08 -04:00
Olivier Gagnon
3699b3aa25 allbuild commit b71418b0 2022-05-20 23:50:28 -04:00
nickofolas
38c1388735 Use disabled color for non-buyable augs 2022-05-20 19:39:19 -05:00
Olivier Gagnon
b71418b08f allbuild commit 8d204138 2022-05-20 18:25:45 -04:00
hydroflame
8d2041389e Merge pull request #3680 from danielyxie/sleeve-blade
SLEEVE: Can now perform bladeburner actions
2022-05-20 18:23:00 -04:00
Olivier Gagnon
0d437e5b73 lint 2022-05-20 18:20:04 -04:00
Olivier Gagnon
27a8582df8 balance infiltrate synthoids 2022-05-20 18:18:42 -04:00
Olivier Gagnon
34b099c050 rm reviver from person 2022-05-20 17:44:20 -04:00
Olivier Gagnon
58478f7858 Merge branch 'dev' into sleeve-blade 2022-05-20 17:37:02 -04:00
hydroflame
858e7eab24 Merge pull request #3681 from danielyxie/dev
Fix sing tor
2022-05-20 17:36:50 -04:00
Olivier Gagnon
5f03378411 allbuild commit 1d1099cd 2022-05-20 17:31:24 -04:00
Olivier Gagnon
1d1099cd9e fix sing purchaseTor 2022-05-20 17:28:59 -04:00
Olivier Gagnon
42dcbf889e fix typo 2022-05-20 17:28:21 -04:00
hydroflame
212dbb0bb8 Merge pull request #3679 from danielyxie/dev
Fix dark web migration?
2022-05-20 16:11:00 -04:00
Olivier Gagnon
fd7593f13d allbuild commit 1c3d4fe1 2022-05-20 16:07:07 -04:00
Olivier Gagnon
7eb4494ac1 fix mc 2022-05-20 15:58:33 -04:00
Olivier Gagnon
1c3d4fe1b5 re-merge 3575 2022-05-20 15:46:45 -04:00
Olivier Gagnon
3574f5df3f re-merge 3576 2022-05-20 15:44:49 -04:00
Olivier Gagnon
413dbfdf85 allbuild commit f5efdfa8 2022-05-20 15:36:53 -04:00
hydroflame
41b9a858de Merge pull request #3678 from danielyxie/dev
v1.7.0
2022-05-20 15:21:21 -04:00
Olivier Gagnon
f5efdfa807 allbuild commit 4cc518f3 2022-05-20 15:19:36 -04:00
Olivier Gagnon
4cc518f377 fix lint 2022-05-19 02:49:49 -04:00
Olivier Gagnon
40d53c2d1b Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-05-19 02:48:58 -04:00
Olivier Gagnon
c2b4a5b52a Update codebase for stanek 2022-05-19 02:48:50 -04:00
hydroflame
084a29dfe4 Merge pull request #3474 from Hoekstraa/mvfix
UI: FIX #3473 'mv' now says destination script is running instead of returning an error
2022-05-19 02:16:33 -04:00
hydroflame
4c33ad444b Merge pull request #3644 from taralx/patch-1
MISC: fix typing conflict between jest and cypress
2022-05-19 02:13:11 -04:00
hydroflame
e6ce9a9c03 Merge pull request #3622 from borisflagell/#1754---stanek
UI: FIX #1754  Stanek effect summary & slight tweak.
2022-05-19 02:12:50 -04:00
hydroflame
18cb1bd4f9 Merge pull request #3653 from Dane-Horn/3651-valid-folder-names-are-not-valid
TERMINAL: FIX #3651 Make directory name regex more flexible
2022-05-19 02:10:38 -04:00
Olivier Gagnon
9af553f63c Fix 2022-05-19 02:09:00 -04:00
Olivier Gagnon
ca1a2aad33 fix conflicts 2022-05-19 01:43:54 -04:00
hydroflame
2cb02bf445 Merge pull request #3660 from Undeemiss/stanek-error
STANEK: Stanek NS functions correctly throw errors when stanek not installed
2022-05-19 01:40:48 -04:00
hydroflame
a6048cdd84 Merge pull request #3627 from danielyxie/wrap-api
MISC: Wrap most of the API in the new api wrapper
2022-05-19 01:37:11 -04:00
hydroflame
b80e2d5fd1 Merge branch 'dev' into wrap-api 2022-05-19 01:37:06 -04:00
Olivier Gagnon
fda3f02d73 Fix stanek leaking classes 2022-05-19 01:34:36 -04:00
hydroflame
8f3fc22ae6 Merge pull request #3654 from nickofolas/improvement/grafting-sorting
GRAFTING: Implement sorting options
2022-05-19 01:19:37 -04:00
hydroflame
0ba0ccff4f Merge pull request #3662 from nickofolas/fix/bn-mults-agility-mult
UI: Fix Agility BitNode multiplier not appearing in UI
2022-05-19 01:18:14 -04:00
hydroflame
6aac4de458 Merge pull request #3673 from nickofolas/fix/stanek-entropy
STANEK: Properly reapply entropy in Stanek's Gift
2022-05-19 01:18:03 -04:00
nickofolas
18120362cd Reapply entropy properly in stanek 2022-05-18 17:32:37 -05:00
hydroflame
f86eae5276 Merge pull request #3624 from danielyxie/infinite-loop-safety
MISC: Implemented infinite loop safety net.
2022-05-18 15:35:12 -04:00
hydroflame
034de7f03b Merge pull request #3665 from Undeemiss/close-more-issues
MISC: Closing more GitHub issues I missed last time
2022-05-18 15:33:47 -04:00
hydroflame
71f24e3077 Merge pull request #3666 from Undeemiss/ns-close-tail
MISC: Added NS function closeTail to close tail windows
2022-05-18 15:31:55 -04:00
Olivier Gagnon
5c417e9b4d allbuild commit 0121fee6 2022-05-18 11:06:43 -04:00
Undeemiss
b3aa0578fb Minor refactor 2022-05-17 15:54:05 -05:00
Undeemiss
d52e1f44b4 Removed my stupid comment lol (sorry!) 2022-05-17 15:26:26 -05:00
Undeemiss
c01cf85d27 Formatted and linted 2022-05-17 15:25:27 -05:00
Undeemiss
b18c18e19a Updated documentation of closeTail to reflect last commit 2022-05-17 15:22:37 -05:00
Undeemiss
8903cd2a8b Removed closePid(fn, host, ...args) and fixed closePid(pid) 2022-05-17 15:19:35 -05:00
Undeemiss
e17fe6f618 closeTail(fn, host, ...args) can now close dead script tails
closeTail(pid) still cannot
2022-05-17 14:46:30 -05:00
Undeemiss
2b9d408b55 First attempt at an implementation; requires script be running 2022-05-17 13:45:30 -05:00
Undeemiss
e6ac4ef248 Creating dummy branch 2022-05-16 19:23:36 -05:00
Undeemiss
5526355a43 Set up the skeleton of an ns.closeTail function 2022-05-16 19:15:38 -05:00
nickofolas
b37c03003a Add missing Agility BN mult to UI 2022-05-15 21:23:05 -05:00
Undeemiss
58be301d06 Fixed broken stanek error 2022-05-15 20:06:52 -05:00
Dane Horn
28dad4dd30 expand Directory tests 2022-05-15 09:43:40 +02:00
Dane Horn
1a9d3ee998 clean up regex and adjust tests to new criteria 2022-05-15 09:43:40 +02:00
Dane Horn
0988ec8226 adjust regex for directory name
new regex allows for more flexible folder names, while still disallowing '.' and '..'
2022-05-15 09:43:40 +02:00
Olivier Gagnon
0121fee6e4 ideas 2022-05-14 16:11:37 -04:00
hydroflame
319798b85c Merge pull request #3640 from Undeemiss/close-issues
MISC: Close some GitHub issues that do not need action
2022-05-14 11:54:24 -04:00
hydroflame
6e1c650813 Merge pull request #3652 from nickofolas/fix/bn-mult-rep-cost
AUGMENTATIONS: Fix Augmentation rep req not being properly influenced by BitNode multipliers
2022-05-14 11:03:17 -04:00
nickofolas
685c93b06d Add sorting buttons to grafting UI 2022-05-14 09:15:01 -05:00
RevanProdigalKnight
8e092939ce Fix indentation 2022-05-13 21:44:32 -06:00
RevanProdigalKnight
7a6809f66c Simplify quoted string argument parsing 2022-05-13 21:39:20 -06:00
nickofolas
2a73c27a2c Fix AugmentationRepCost BN mult not being applied 2022-05-13 19:02:32 -05:00
hydroflame
4993a02421 Merge pull request #3626 from nickofolas/improvement/bitnode-multipliers
UI: Refactors, redesigns, and new section to stats page
2022-05-13 14:33:01 -04:00
nickofolas
0122ce56b6 Display multipliers as a percentage 2022-05-13 12:00:19 -05:00
nickofolas
430d1dad9d Merge branch 'dev' of github.com:danielyxie/bitburner into improvement/bitnode-multipliers 2022-05-13 11:55:55 -05:00
hydroflame
abd66ad977 Merge pull request #3616 from jaype87/dev
UI: Sort and color Graft Augmentation list
2022-05-13 11:08:04 -04:00
hydroflame
e3a0ae0407 Merge pull request #3617 from phyzical/hotfix/fix-augmentation-costs-rsponse
BUGFIX: getAugmentationCost response backwards
2022-05-13 11:07:48 -04:00
hydroflame
88b7b141f7 Merge pull request #3618 from Hoekstraa/clearTerminal
API: Terminal screen can now be cleared from within scripts with ns.ui.clearTerminal()
2022-05-13 11:07:25 -04:00
hydroflame
386dac4be2 Merge pull request #3619 from Snarling/usedRamFix
MISC: FIX #3593 Float errors can no longer prevent full usage of a server's available ram.
2022-05-13 11:06:49 -04:00
hydroflame
a8a302fc0a Merge pull request #3641 from nickofolas/fix/log-box-ellipsis
UI: Minor improvements to log boxes
2022-05-13 11:06:05 -04:00
hydroflame
09c0e00b02 Merge pull request #3637 from Undeemiss/stanek-booster-charge-fix
STANEK: Fix #3196 Charging booster fragments throws an error
2022-05-13 11:05:42 -04:00
hydroflame
a8be6d3443 Merge pull request #3633 from Dane-Horn/2829-remove-defeated-npc-gangs-from-terr
UI: FIX #2829 Remove defeated NPC gangs from territory page
2022-05-13 11:05:27 -04:00
hydroflame
a6916bfaa9 Merge pull request #3647 from Vic1970/contributor-Vic1970
BLADEBURNER:  fixes #3648 : Automate console command capitalisation inconsistent
2022-05-13 11:04:35 -04:00
hydroflame
4024f6e10f Merge pull request #3634 from Dane-Horn/2741-shift-in-typing-infiltration
UI: FIX #2741 Allow using modifier keys inside the typing infiltration
2022-05-13 11:04:11 -04:00
hydroflame
dfb552ae73 Merge pull request #3639 from Undeemiss/blade-simulacrum-install-check
BLADEBURNER: Fix #3594 Blade's Simulacrum worked without being installed
2022-05-13 11:03:52 -04:00
hydroflame
47b4914386 Merge pull request #3638 from Undeemiss/breaking-corporation-softcap-capitalization
MISC: Fix #3125 BREAKING Renamed BN mult CorporationSoftCap to CorporationSoftcap
2022-05-13 11:03:36 -04:00
hydroflame
23ac3d6288 Merge pull request #3642 from nickofolas/fix/options-sliders
OPTIONS: Fix sliders not sliding correctly
2022-05-13 11:02:51 -04:00
Vic1970
636d081abc Update Bladeburner.tsx
add string case conversion to allow capitalised action types in automate command.
2022-05-12 11:01:26 +10:00
hydroflame
d70d91b7b1 Merge pull request #3646 from Undeemiss/contract-already-solved-check
CODINGCONTRACT: Fix #3391 Double contract reward exploit
2022-05-11 20:49:07 -04:00
Undeemiss
831b2262de Reran format and lint 2022-05-11 16:06:05 -05:00
Undeemiss
a23c55c760 Added a check to prevent doubling coding contract rewards 2022-05-11 15:51:54 -05:00
Olivier Gagnon
f5f5879fc3 allbuild commit c799b291 2022-05-11 14:57:27 -04:00
hydroflame
c799b2918b Merge pull request #3620 from nickofolas/fix/modal-z-index
UI: Fix z-index of modals overriding everything
2022-05-11 14:54:04 -04:00
borisflagell
7a6bcfc513 slight tweak to the no fragment use case
Removed the "non currently" message displayed when the played got no fragment.
2022-05-11 20:18:05 +02:00
borisflagell
5542d43fb9 Added support of duplicate fragment
Fragments sharing the same effect will now be merged in the summary.
2022-05-11 20:13:03 +02:00
JP Sugarbroad
01529a8347 fix typing conflict between jest and cypress
Cypress and Jest both define "expect", but they come from different
libraries (Cypress uses Chai, Jest uses its own thing). So we can't
include both of them in the tsconfig.json. Conveniently, however, we
don't need any of the test code to be part of the main project, so
it suffices to give these things their own tsconfig.json files.

That being done, adding "jest" to the global types lets us remove all
those imports.
2022-05-10 22:26:54 -07:00
hydroflame
ce888b757a Merge pull request #3632 from trambelus/patch-1
Fix infiltration rep BN mult calculation
2022-05-10 00:40:12 -04:00
nickofolas
770312b9df Remove redundant arrow function 2022-05-09 19:34:36 -05:00
nickofolas
8baafe438d Fix options sliders not sliding 2022-05-09 19:32:32 -05:00
nickofolas
dd949697df Fix handle position 2022-05-09 19:26:20 -05:00
nickofolas
d4e97d786c Various log box improvements 2022-05-09 18:15:23 -05:00
nickofolas
bc9bce0d2c Tweaks to classes 2022-05-09 17:50:45 -05:00
Undeemiss
c2f381cc6e Fix compilation error
I must have missed this file in the commit while having it changed
in my working directory, because the game compiled fine when I was
testing initially but not when I switched branches and came back.
2022-05-09 16:15:11 -05:00
Undeemiss
6748017dd8 Require Blade's Simulacrum be installed in order to take effect
The check for when an action is started was not set to ignore a
purchased but not yet installed Blade's Simulacrum. That is fixed
here.
2022-05-09 15:17:42 -05:00
Undeemiss
a1754da9f6 Random comment added to my coding contract so I can PR this branch 2022-05-09 15:04:09 -05:00
Undeemiss
b00301f4e1 Renamed BN mult CorporationSoftCap to CorporationSoftcap
Replaced all instances of "CorporationSoftCap" in src/ with
"CorporationSoftcap". If files outside of src/ must be changed, I
do not know what those would be.
2022-05-09 14:45:19 -05:00
Undeemiss
8a68633d9c Throw an error when trying to charge stanek booster fragments 2022-05-09 14:29:42 -05:00
Dane Horn
a778015a21 formatting 2022-05-09 09:56:44 +02:00
Dane Horn
1675a2811c ignore ctrl and alt keypresses 2022-05-09 09:55:41 +02:00
Dane Horn
05f2f267b1 reorder 0 territory gangs to the back of the list and reduce opacity 2022-05-09 08:11:22 +02:00
nickofolas
ebc6b52af5 Properly show stats with a BitNode mult of 0 2022-05-08 20:45:00 -05:00
Dane Horn
86b29237eb add new function to detect key presses that can be ignored 2022-05-08 23:59:00 +02:00
Dane Horn
a64c271175 initial approach removing gangs with <= 0 territory 2022-05-08 22:59:36 +02:00
Alt
a6d578eb2e Edit RAM cost in comment to equal actual RAM usage 2022-05-08 22:53:34 +02:00
rderfler
b683bc0340 fmt 2022-05-08 14:14:05 -04:00
Trambelus
6d63d6f44a Fix infiltration rep BN mult calculation 2022-05-08 04:23:32 -04:00
Olivier Gagnon
c6806caca2 Wrap most of the API 2022-05-07 19:08:07 -04:00
nickofolas
dd0ff1b614 Fix check for player gang access 2022-05-07 17:51:02 -05:00
nickofolas
1147df8c75 Format 2022-05-07 17:34:50 -05:00
nickofolas
ce500f9bfa Update SF description to reflect changes 2022-05-07 17:20:45 -05:00
nickofolas
d1498598a9 Fix conditional rendering of BN mults element 2022-05-07 17:16:47 -05:00
nickofolas
6d1a3bb47a Fix naming inconsistencies 2022-05-07 16:54:55 -05:00
nickofolas
05f6e079cd Fix hack money BN mult in PlayerMultipliers 2022-05-07 16:52:46 -05:00
nickofolas
c688e20876 Refactor character stats table 2022-05-07 16:51:34 -05:00
Olivier Gagnon
fb08139903 Implemented infinite loop safety net. 2022-05-07 17:43:45 -04:00
nickofolas
5d89f17e4a Tweak max SF level code 2022-05-07 16:28:01 -05:00
nickofolas
d43ec1d501 Fix computation of BN level 2022-05-07 16:19:31 -05:00
nickofolas
1f8c5164d7 Update BN Mults UI and add section to Stats 2022-05-07 15:52:10 -05:00
nickofolas
b1f945ff8e Refactor CharacterStats a bit 2022-05-07 14:48:26 -05:00
nickofolas
ef29baf563 Refactor PlayerMultipliers.tsx 2022-05-07 12:46:04 -05:00
nickofolas
81912d7876 Fix defaultMultipliers being changed 2022-05-07 10:14:01 -05:00
borisflagell
cc6089092f Fix Test error on Tooltip import (hopefully) 2022-05-07 15:35:27 +02:00
borisflagell
705a56f3bd prettier
Add a summary to the stanek page

Tweak UI

Ran Prettier & lint, added a margin to a stanek page element

revert shit
2022-05-07 15:14:51 +02:00
rderfler
30521468fc Merge dev 2022-05-06 22:44:37 -04:00
rderfler
77073836cb Merge remote-tracking branch 'upstream/dev' into dev 2022-05-06 22:44:24 -04:00
nickofolas
3e9bcea9e4 Fix modal z-index 2022-05-06 11:35:23 -05:00
Snarling
fe1dd11269 Only mention number of threads if != 1
Fixes confusion mentioned here: https://discord.com/channels/415207508303544321/921120989000114257/971233305020231722
2022-05-06 09:15:48 -04:00
Snarling
99a0337a14 Dirty fix for available ram float errors
1MB added to available ram when checking if available is sufficient. All actual ram values in game are a multiple of 50MB so an extra 1MB can't ever allow additional script load to be ran.
2022-05-06 08:56:19 -04:00
Zoë Hoekstra
65889079b6 Add log entry when ui.clearTerminal() is ran 2022-05-06 12:41:02 +02:00
Zoë Hoekstra
472c9778df Add ns.ui.clearTerminal for 0.2 GB 2022-05-06 12:29:21 +02:00
phyzical
10c67ab363 refactor resulted in it being backwards 2022-05-06 16:35:07 +08:00
Olivier Gagnon
b46718d188 allbuild commit 22b6d0d5 2022-05-06 01:59:04 -04:00
hydroflame
22b6d0d5a0 Merge pull request #3613 from nickofolas/fix/nfg-level-application
AUGMENTATIONS: Fix NeuroFlux being applied improperly and migrate broken saves
2022-05-06 01:56:13 -04:00
jaype87
1a8e31ed09 fix formating 2022-05-06 01:06:53 +02:00
jaype87
5378e8cc38 sort and color grafting list 2022-05-06 00:44:05 +02:00
hydroflame
4ba7df8d72 Merge pull request #3614 from nickofolas/improvement/purchased-aug-color
AUGMENTATIONS: Tweak a couple small UI elements
2022-05-05 14:45:14 -04:00
nickofolas
449ec4dee2 Add faction name to top of augs page 2022-05-05 09:23:10 -05:00
nickofolas
6d9dcfe81f Merge branch 'dev' of github.com:danielyxie/bitburner into fix/nfg-level-application 2022-05-05 08:34:26 -05:00
nickofolas
73f26e2ae3 Reapply boosts in migration 2022-05-05 01:02:05 -05:00
nickofolas
0d72c363b5 Make it more obvious when augmentations are owned 2022-05-04 20:26:55 -05:00
nickofolas
965d5c7c20 Add migration for broken saves 2022-05-04 20:16:23 -05:00
nickofolas
78104b40ad Fix missing logic for applying NFG 2022-05-04 20:07:12 -05:00
hydroflame
2db2b78745 Merge pull request #3612 from nickofolas/improvement/refactor-work-type
WORK: Refactor work types to use `enum`s instead of constants
2022-05-04 20:20:26 -04:00
nickofolas
30d1fe29d7 Format 2022-05-04 15:04:01 -05:00
nickofolas
7d75093989 Init work types with new None member 2022-05-04 15:03:02 -05:00
nickofolas
59982370cb Implement CrimeType enum 2022-05-04 14:48:49 -05:00
nickofolas
13ca783647 Merge branch 'dev' of github.com:danielyxie/bitburner into improvement/refactor-work-type 2022-05-04 14:19:58 -05:00
nickofolas
f45200b25e Implement ClassType and FactionWorkType enums 2022-05-04 14:18:12 -05:00
Olivier Gagnon
032c440eae allbuild commit bcbda22a 2022-05-04 15:06:58 -04:00
hydroflame
bcbda22acc Merge pull request #3611 from nickofolas/improvement/work-in-progress-ui
UI: Refactor and redesign WorkInProgress interface
2022-05-04 15:04:52 -04:00
nickofolas
4a8e99b170 Refactor WorkType to an enum 2022-05-04 13:42:48 -05:00
nickofolas
cc5e89208e Convert WIP root to use switch statement 2022-05-04 12:44:48 -05:00
nickofolas
bcb6176952 Merge branch 'dev' into improvement/work-in-progress-ui 2022-05-04 12:28:33 -05:00
Olivier Gagnon
791c19c4fe allbuild commit 7f9e3775 2022-05-04 13:16:41 -04:00
hydroflame
7f9e37752a Merge pull request #3609 from nickofolas/fix/faction-aug-rep-check
AUGMENTATIONS: Fix reputation check for faction augs
2022-05-04 13:14:44 -04:00
nickofolas
2379233351 Fix faction augs cost check 2022-05-04 11:59:51 -05:00
Olivier Gagnon
d0ebf5e14e allbuild commit 36c7ef1a 2022-05-04 12:25:03 -04:00
Olivier Gagnon
36c7ef1ad7 support ASNI 2022-05-04 12:21:16 -04:00
hydroflame
f6e689eead Merge pull request #3608 from danielyxie/revert-3518-patch-2
Revert "MISC: fix typing conflict between jest and cypress"
2022-05-04 12:14:38 -04:00
hydroflame
c5bc47abf0 Revert "MISC: fix typing conflict between jest and cypress" 2022-05-04 12:14:31 -04:00
hydroflame
9818a397bc Merge pull request #2989 from phyzical/bugfix/2958
UI: FIX #2228,#2958 Fix tab highlights and highlight files not on home.
2022-05-04 12:10:43 -04:00
hydroflame
a88d79ef0a Merge pull request #3486 from phyzical/bugfix/3485
UI FIX #3485 - Allow bulk purchasing when smart supply is enabled
2022-05-04 12:10:00 -04:00
hydroflame
3d13735730 Merge pull request #3518 from taralx/patch-2
MISC: fix typing conflict between jest and cypress
2022-05-04 12:09:41 -04:00
hydroflame
d43904ff5c Merge pull request #3532 from borisflagell/UI-FIX-#2256-
UI: FIX #2256 Hacknet server's upgrade tooltip  were not handling RAM…
2022-05-04 12:09:27 -04:00
hydroflame
44641fee07 Merge pull request #3544 from phyzical/feature/refactor-augmentation
REFACTOR:  augmentation cost, rep cost and level to be calculated in place
2022-05-04 12:08:24 -04:00
hydroflame
fc3d89e51f Merge pull request #3552 from Snarling/jobSwitchFix
COMPANY: Fix #3551 Applying for a new  job will not change active employer if player is performing company work
2022-05-04 12:08:03 -04:00
hydroflame
d96faf7225 Merge pull request #3565 from nickofolas/fix/isSpecial-filter
AUGMENTATIONS: Fix `isSpecial` filter in helper (Removes NeuroFlux, Stanek's Gift, etc from gangs)
2022-05-04 12:02:47 -04:00
hydroflame
5d4241b120 Merge pull request #3568 from nickofolas/fix/grafting-stop-work
GRAFTING: Fix Grafting not being handled in singularity stop work
2022-05-04 12:02:29 -04:00
hydroflame
6ffeb9c78d Merge pull request #3569 from Undeemiss/aug-names-cleanup
MISC: Remove comments that describe nonexistent augs
2022-05-04 12:02:08 -04:00
hydroflame
105ced26bf Merge pull request #3570 from DavidGrinberg/dev
CORPORATIONS: Expose makeProducts on NSDivision interface
2022-05-04 12:01:33 -04:00
hydroflame
103befe209 Merge pull request #3571 from Undeemiss/bb-point-achvmnt-name
MISC: Correct BB Skill point achievement name
2022-05-04 12:00:20 -04:00
hydroflame
a3fe965771 Merge pull request #3572 from Undeemiss/exception-typo
MISC: Fixed typo in exceptionAlert.ts
2022-05-04 11:58:27 -04:00
hydroflame
b0c9475b57 Merge pull request #3574 from DavidGrinberg/expose-material-sell-cost
CORPORATIONS: Expose sales cost on NSMaterial interface
2022-05-04 11:58:12 -04:00
Olivier Gagnon
5e9b3b0c4f Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-05-04 11:57:44 -04:00
hydroflame
bffa166fc3 Merge pull request #3577 from phyzical/feature/WEB-3567
FEATURE: added logic to allow quitJob to be called from singularity
2022-05-04 11:57:39 -04:00
hydroflame
70ae38360f Merge pull request #3578 from phyzical/bugfix/3527
BUGFIX: make bonustime for gang in miliseconds
2022-05-04 11:56:15 -04:00
Olivier Gagnon
100e81c8ab Update documentation for employee 2022-05-04 11:56:04 -04:00
hydroflame
7e5ab8d9a6 Merge pull request #3581 from stalefishies/compression-contract-fix
BUGFIX: Handle edge case in LZ compression code and fix docs
2022-05-04 11:53:29 -04:00
hydroflame
375a537344 Merge pull request #3584 from notacompsciguy/patch-1
MISC: Fixed typos in game options
2022-05-04 11:53:12 -04:00
hydroflame
8b0ab7842d Merge pull request #3587 from nickofolas/improvement/infiltration-ui
INFILTRATION: Update gameplay UI
2022-05-04 11:52:02 -04:00
hydroflame
3f3e6a6261 Merge pull request #3590 from nzdjb/dev
MISC: Correct typos in getScriptRam docs.
2022-05-04 11:51:17 -04:00
Olivier Gagnon
4056956c2a fix documentation for getDarkwebPrograms 2022-05-04 11:51:03 -04:00
hydroflame
8705199714 Merge pull request #3601 from phyzical/bugfix/3598
BUGFIX: sleeve stale object refence during augmentation
2022-05-04 11:49:53 -04:00
hydroflame
be9f67b38a Merge pull request #3605 from Hoekstraa/key-to-keycode
UI: FIX #3592 Sidebar and bash shortcuts now work on MacOS with US-like layouts
2022-05-04 11:49:17 -04:00
hydroflame
55392a4db7 Merge pull request #3607 from Hoekstraa/killall-safeguard
API: Add safeguard to ns.killall(), preventing killing itself by default
2022-05-04 11:48:14 -04:00
Olivier Gagnon
84564100e9 increase donation counter 2022-05-04 11:47:11 -04:00
hydroflame
9f18e114d6 Merge pull request #3586 from danielyxie/better-ns-tutorial
MISC: Make tutorial explain ns1 vs ns2 better
2022-05-04 11:46:49 -04:00
Zoë Hoekstra
5dee4980e0 Add safeguard toggle to ns.killall() 2022-05-04 17:11:08 +02:00
RevanProdigalKnight
286ab64d67 Ran formatter 2022-05-04 08:32:55 -06:00
RevanProdigalKnight
8d5f80de26 Fixes linter/build errors from editing last night in GitHub 2022-05-04 08:27:52 -06:00
RevanProdigalKnight
df30771744 Add =
Adds the equal sign (`=`) for use in `src/Terminal/Parser.ts`
2022-05-04 00:47:58 -06:00
RevanProdigalKnight
36db849ff1 Upgrade terminal ParseCommand function
Adds ability to parse arbitrarily-nested strings into single arguments (see comments on lines 48, 64, 76)
Adds ability to parse additional number formats, e.g.: hexadecimal (0x0A), octal (018), and binary (0b1101)
Combines arguments separated with escaped spaces into single string arguments, e.g.: "echo Hello\ World!" -> ["echo", "Hello World!"]
2022-05-04 00:46:15 -06:00
nickofolas
b8cb5f0991 Remove elapsed from crime WIP 2022-05-03 15:27:41 -05:00
Zoë Hoekstra
016a9a873f Add keycode table and switch to event.code in select places 2022-05-03 15:59:46 +02:00
phyzical
0767043166 added logic to avoid stale object reference on sleeve during augmentation 2022-05-03 19:22:05 +08:00
nickofolas
e8a08424af Fix typo 2022-05-02 17:57:50 -05:00
nickofolas
73d08973f9 Render faction money gain conditionally 2022-05-02 17:56:02 -05:00
nickofolas
d942d27a85 Reduce component usage in sleeve element 2022-05-02 17:49:10 -05:00
nickofolas
57673ae281 Add new progress bar to sleeve UI 2022-05-02 17:48:49 -05:00
nickofolas
e859759ebd First pass on work in progress root 2022-05-02 17:31:40 -05:00
nickofolas
4c15b77d21 Update StatsRow 2022-05-02 17:05:25 -05:00
nickofolas
35fa6dcca1 Basic WorkInfo implementation 2022-05-02 16:34:17 -05:00
nickofolas
05078ffb08 Move ProgressBar component 2022-05-02 15:36:21 -05:00
nickofolas
762acfb7b5 Simplify conditionals 2022-05-02 11:38:20 -05:00
nzdjb
a3162eec0e docs: Correct typos in getScriptRam docs. 2022-05-01 12:57:38 +12:00
nickofolas
d4f3128829 Adjust infil root height so it isn't scrollable 2022-04-30 15:59:31 -05:00
nickofolas
9ea62981de Update intro ul alignment 2022-04-30 15:11:34 -05:00
rderfler
e12bb6cf4b Make lint happy 2022-04-30 15:31:36 -04:00
rderfler
2f320d00a2 Merge branch 'danielyxie:dev' into dev 2022-04-30 15:26:18 -04:00
rderfler
7cf21629a7 Address review
Add ns function setToBladeburnerAction
Formatting updates
fix sleeves using player stamina
Correct supporting sleeve causing error
2022-04-30 15:25:36 -04:00
nickofolas
def89832cb Fix slash game Aug ending game early 2022-04-30 00:28:00 -05:00
nickofolas
437cd66ffe Update Minesweeper game UI 2022-04-30 00:27:49 -05:00
hydroflame
0b74e2c65f Update src/ui/InteractiveTutorial/InteractiveTutorialRoot.tsx
Co-authored-by: nickofolas <60761231+nickofolas@users.noreply.github.com>
2022-04-29 18:26:58 -04:00
nickofolas
1bcb0099f4 Update grid matching game 2022-04-29 17:01:38 -05:00
nickofolas
c3a3cca9ae Update Intro 2022-04-29 17:00:13 -05:00
nickofolas
2f12484f9e Update intro arrows 2022-04-29 16:59:38 -05:00
Olivier Gagnon
f10de908d4 Make tutorial explain ns1 vs ns2 better 2022-04-29 17:54:59 -04:00
nickofolas
47abdffb1c Merge branch 'dev' of github.com:danielyxie/bitburner into improvement/infiltration-ui 2022-04-29 16:51:10 -05:00
nickofolas
c613021e8f Better centering and change arrows 2022-04-29 15:56:34 -05:00
Alexander Tsao
ee57e5be11 Minor grammatical fixes in GameOptions
Updated grammar in explainer text for "Force kill all scripts" and "Diagnose files."
2022-04-28 20:55:42 -04:00
Staszek Welsh
55d9810727 Handle edge case in LZ compression code and fix docs 2022-04-28 19:50:17 +01:00
phyzical
bd2d5396a6 prettier 2022-04-28 19:22:37 +08:00
phyzical
facab1d264 make bonustime for gang in miliseconds 2022-04-28 19:20:53 +08:00
phyzical
711955c112 added logic to allow quitJob to be called from singularity 2022-04-28 19:05:56 +08:00
phyzical
033154a32d linting 2022-04-28 18:02:50 +08:00
David Grinberg
b2abec7424 Expose sales cost on NSMaterial interface 2022-04-27 22:37:19 -04:00
Undeemiss
138a945707 Fixed typo in exceptionAlert.ts 2022-04-27 18:45:25 -05:00
Undeemiss
584bc095c1 Fixes bb skill point achievement name ingame
Corrects "You should really spent those." to
"You should really spend those."

I don't think it does anything to the steam achievement name
because I don't know how to test that.
2022-04-27 17:14:56 -05:00
DavidGrinberg
828629b713 Update src/NetscriptFunctions/Corporation.ts
Co-authored-by: Jack <phyzicaly@hotmail.com>
2022-04-27 09:37:02 -04:00
phyzical
af8284381c merge base 2022-04-27 19:00:42 +08:00
David Grinberg
d7ac7f8399 Expose makeProducts on NSDivision interface 2022-04-27 00:55:15 -04:00
Undeemiss
7fab3d8b30 Remove comments that describe nonexistent augs 2022-04-26 23:41:58 -05:00
nickofolas
a87bfb0de6 Handle grafting in singularity stop work 2022-04-26 20:11:41 -05:00
nickofolas
ed711c5d5c Fix isSpecial check letting augs slip through 2022-04-26 10:52:58 -05:00
hydroflame
9c805dabb8 Merge pull request #3540 from taralx/patch-1
MISC: add better typing to Electron.tsx
2022-04-26 11:17:36 -04:00
hydroflame
d0d700077a Merge pull request #3545 from nickofolas/improvement/purchase-augs-ui
UI: Redesign purchasable Augmentations
2022-04-26 11:16:13 -04:00
hydroflame
a9c2faaab1 Merge pull request #3537 from Undeemiss/breaking-contract-capitalization
CODINGCONTRACT: FIX #3484 BREAKING Fixed capitalization in contract name
2022-04-26 11:15:42 -04:00
hydroflame
44475aaac9 Merge branch 'dev' into breaking-contract-capitalization 2022-04-26 11:15:37 -04:00
hydroflame
633d8b582b Merge pull request #3562 from nickofolas/fix/infiltration-rep-reward
INFILTRATION: Fix rep reward being substantially higher than intended
2022-04-26 11:11:59 -04:00
hydroflame
0db65f64ac Merge pull request #3564 from phyzical/bugfix/mark-soa-as-special
REFACTOR: augmentation isSpecial adjustments
2022-04-26 11:11:48 -04:00
phyzical
a7a725de22 merge dev 2022-04-26 20:58:39 +08:00
phyzical
8a9a206895 one more lint 2022-04-26 20:52:57 +08:00
phyzical
21a105eb49 linting 2022-04-26 20:49:12 +08:00
phyzical
510a2c2ff7 augmentation isSpecial adjustments
* adjust faction helper to not longer require blacklisting, instead rely on isSpecial
* added neruflux and TRP as special augs
* made SOA augs special
2022-04-26 20:44:09 +08:00
JP Sugarbroad
6b7be9f87b fix typing conflict between jest and cypress
Cypress and Jest both define "expect", but they come from different
libraries (Cypress uses Chai, Jest uses its own thing). So we can't
include both of them in the tsconfig.json. Conveniently, however, we
don't need any of the test code to be part of the main project, so
it suffices to give cypress its own tsconfig.json file.

That being done, adding "jest" to the global types lets us remove all
those imports.
2022-04-25 22:10:27 -07:00
Undeemiss
8e4ac7be6b Save migration for old contract names
Rename old "HammingCodes: Integer to encoded Binary" contracts to
"HammingCodes: Integer to Encoded Binary" on file load if the save
is old.
2022-04-25 20:12:46 -05:00
nickofolas
4cae862fd2 Fix Infiltration victory rep 2022-04-25 19:39:59 -05:00
rderfler
47ce4f4927 Merge branch 'dev' of https://github.com/rderfler/bitburner into dev 2022-04-25 15:48:42 -04:00
rderfler
46c6884c89 Make Infiltrate synthoids a little more clear
By adding a short description
2022-04-25 15:48:02 -04:00
nickofolas
09458b39e6 Merge branch 'dev' into improvement/purchase-augs-ui 2022-04-25 13:35:58 -05:00
rderfler
f187343fa1 Merge branch 'danielyxie:dev' into dev 2022-04-25 14:08:38 -04:00
rderfler
d345188cce Address blackops error
Address blackops error by removing incorrect check for type
2022-04-25 13:57:54 -04:00
hydroflame
686f458064 Merge pull request #3561 from danielyxie/dev
Keeping up to date.
2022-04-25 13:52:20 -04:00
Olivier Gagnon
ee4201c957 allbuild commit ad938b15 2022-04-25 13:50:52 -04:00
Olivier Gagnon
ad938b1525 casino roulette actually advances the seed now. 2022-04-25 13:46:09 -04:00
rderfler
5f46775950 Cant stop wont stop studying
Correct merge, and known bug that prevents stopping studying
2022-04-25 13:41:43 -04:00
Olivier Gagnon
75de6c665d Moved window.print redefining at top level to prevent naming collision 2022-04-25 13:37:24 -04:00
Olivier Gagnon
2be1d5ff15 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-04-25 13:37:09 -04:00
rderfler
e381e857a5 Merge remote-tracking branch 'upstream/dev' into dev 2022-04-25 13:32:38 -04:00
Olivier Gagnon
58555c0baf remove pre-defined print in .js files. 2022-04-25 13:29:59 -04:00
nickofolas
9f001b25d2 Merge branch 'dev' into improvement/purchase-augs-ui 2022-04-25 12:11:51 -05:00
hydroflame
2c08eec40c Merge pull request #3560 from PSEUDOSTAGE/patch-1
DOCUMENTATION: Clarify definition for installAugmentations()
2022-04-25 13:11:19 -04:00
PSEUDOSTAGE
ab388777b5 Clarify definition for installAugmentations()
Adds the sentence, "If you do not own uninstalled Augmentations then the game will not reset." to the description for installAugmentations().
2022-04-25 13:02:49 -04:00
hydroflame
41932928af Merge pull request #3559 from stalefishies/compression-contract-docs
DOCUMENTATION: Add descriptions for compression contracts
2022-04-25 12:32:10 -04:00
hydroflame
11da3106ec Merge pull request #3557 from nickofolas/fix/sleeve-gangs-crash
SLEEVES: Fix issues with Sleeve UI crashing when Sleeve task faction becomes gang faction
2022-04-25 12:03:43 -04:00
Olivier Gagnon
5dae3314e6 upgrade blood donations 2022-04-25 12:03:00 -04:00
Olivier Gagnon
bab57fb4de make gang button a component 2022-04-25 12:02:37 -04:00
Staszek Welsh
26bcdde9cb Fix typo in import 2022-04-25 17:02:17 +01:00
Staszek Welsh
eed95cfa10 Added descriptions for the following contracts:
* Compression I: RLE Compression
 * Compression II: LZ Decompression
 * Compression III: LZ Compression
2022-04-25 16:48:33 +01:00
hydroflame
6e9f33470b Merge pull request #3528 from borisflagell/FIX-#3415-Manage-Gang-button-improvements.-
UI: FIX #3415 Tweak Manage Gang button visibility
2022-04-25 11:27:45 -04:00
hydroflame
471cbc2040 Merge pull request #3548 from Snarling/TailButtonFix
UI: Positioning improved for tail titlebar buttons, and tail window has minimum size constraints.
2022-04-25 11:27:27 -04:00
hydroflame
8e222fd58e Merge pull request #3539 from nickofolas/fix/ns-aug-graft-time
API: Fix inconsistent return value in `ns.grafting.getAugmentationGraftTime`
2022-04-25 11:27:09 -04:00
hydroflame
91223072dd Merge pull request #3541 from stalefishies/compression-contracts
CODINGCONTRACT: Three new compression contracts
2022-04-25 11:26:22 -04:00
hydroflame
063d4b6e8d Merge pull request #3542 from stalefishies/contract-docs
DOCUMENTATION: Add new coding contract descriptions
2022-04-25 11:25:51 -04:00
hydroflame
c7582a354f Merge pull request #3547 from borisflagell/Hashnet-server-increase-max-money
UI: lightweight description update on "increase maximum money" hash spending option.
2022-04-25 11:24:17 -04:00
hydroflame
6a8f1ae60c Merge pull request #3558 from borisflagell/UI-FIX-grafting-allowing-to-go-in-debt-
UI: FIX #3313 Streamline the GraftingRoot page by making it rerender.
2022-04-25 11:24:03 -04:00
hydroflame
cd84d3e0db Merge pull request #3550 from nickofolas/fix/flume-bitverse-level
BITNODE: FIX #3546 BitVerse now shows proper BN level when accessed via flume
2022-04-25 11:23:42 -04:00
hydroflame
f1d7e021b3 Merge pull request #3555 from nickofolas/fix/infil-aug-check
INFILTRATION: Fix phyzical WKS aug effects being applied before aug is installed
2022-04-25 11:22:39 -04:00
nickofolas
d36f7bb480 Fix some console warnings 2022-04-24 23:08:37 -05:00
borisflagell
684f4126e5 Update GraftingRoot.tsx
Fixes #3313

Add rerendering to the GraftingRoot page. => Graft button will now dynamically enable/disable when player's money update above/below aug's price.
2022-04-25 05:36:45 +02:00
nickofolas
e11a8fddd8 Use lg Container width 2022-04-24 22:06:40 -05:00
nickofolas
79d6d77f98 Add task UI guard 2022-04-24 20:38:07 -05:00
nickofolas
d576d5e063 Reset Sleeve task if faction becomes gang 2022-04-24 20:25:09 -05:00
nickofolas
d0c48585bc Clean up code 2022-04-24 18:51:30 -05:00
nickofolas
ae8b6d088e Update Victory 2022-04-24 18:49:46 -05:00
nickofolas
b772d5157e Update Countdown 2022-04-24 18:18:39 -05:00
nickofolas
d616010f74 Update Intro 2022-04-24 18:13:15 -05:00
nickofolas
433e05bcf8 Improve slash game aug timer accuracy 2022-04-24 18:02:49 -05:00
nickofolas
fe330f9f9f Update root 2022-04-24 16:51:00 -05:00
nickofolas
16d47543c4 Update Game Timer 2022-04-24 16:50:51 -05:00
nickofolas
320d6943de Update Wire Cutting Game 2022-04-24 16:50:19 -05:00
nickofolas
13d7f6d4e9 Update Minesweeper Game 2022-04-24 14:58:59 -05:00
nickofolas
b3879e386f Update Cyberpunk2077 Game 2022-04-24 14:57:18 -05:00
nickofolas
4bf6acf95c Update Cheat Code Game 2022-04-24 14:54:43 -05:00
nickofolas
2d90d41b4e Update Bribe Game 2022-04-24 14:52:58 -05:00
nickofolas
082b4abe71 Update Backward Game 2022-04-24 14:50:55 -05:00
nickofolas
43e2fc8d87 Update Bracket Game 2022-04-24 14:43:19 -05:00
nickofolas
0396e4066c Update Slash Game 2022-04-24 14:38:45 -05:00
nickofolas
217f6d1e57 Update basic Game code 2022-04-24 14:38:39 -05:00
nickofolas
c03b2d5227 Fix phyzical WKS effects being applied when queued 2022-04-24 11:29:45 -05:00
Snarling
9fec222c61 Revert change in startWork
Original change was committed accidentally. PR is focused only on applyForWork.
2022-04-24 06:57:31 -04:00
Snarling
bb5cc82226 Update LogBoxManager.tsx 2022-04-24 04:49:31 -04:00
hydroflame
ab034f6f1a Merge pull request #3549 from nickofolas/fix/infiltration-games
INFILTRATION: Fix minigame cycle
2022-04-24 02:40:30 -04:00
Snarling
ac719dc0d2 Update PlayerObjectGeneralMethods.tsx 2022-04-23 23:55:47 -04:00
Snarling
759c57b29a applyForJob streamline and fix logic 2022-04-23 23:48:01 -04:00
Snarling
4e64d6df5b Add minimum constraints for tail resize 2022-04-23 19:51:39 -04:00
nickofolas
4ac2d82e14 Fix BN level on flume 2022-04-23 18:50:39 -05:00
nickofolas
b076a6489a Fix infiltrations only using wirecutting game 2022-04-23 18:44:04 -05:00
Snarling
f05df0659d Improve tail window buttons 2022-04-23 16:48:48 -04:00
nickofolas
fb654dd5a1 Truncate Aug price multiplier more 2022-04-23 12:20:05 -05:00
nickofolas
f676e8bc9b Fix rep and favor alignment for SoA 2022-04-23 11:29:55 -05:00
nickofolas
c6cb70a117 Fix displayed Aug cost for sleeves 2022-04-23 10:49:20 -05:00
borisflagell
90dc8bbc3a Streamlining GangKarmaRequirement constant
As suggested by phyzical :

The GangKarmaRequirement const was declared locally in the PlayerObjectGangMethod.ts file.

It's now part of the GangConstants object in the gang/data/constant.ts file.

Allowing it to be referenced in the FactionRoot.tsx tooltip.
2022-04-23 15:55:15 +02:00
borisflagell
ff3493e184 Update src/PersonObjects/Player/PlayerObjectGangMethods.ts
Co-authored-by: ApamNapat <ApamNapat@users.noreply.github.com>
2022-04-23 15:39:19 +02:00
borisflagell
ad4c84be93 Update HacknetServerElem.tsx
Prettier pass
2022-04-23 15:18:43 +02:00
borisflagell
1d3483c8c1 Update HacknetServerElem.tsx
OCD at work : putting the undimmed value above dimmed one for constency sake.
2022-04-23 15:17:24 +02:00
borisflagell
d4f8f2d035 Update HacknetServerElem.tsx
Prettier pass.
Lint test : no warning, no error.
2022-04-23 15:01:24 +02:00
borisflagell
08a7f82e73 Update HacknetServerElem.tsx
Added some contrast between real and theoric displayed hashrate. As suggested by phyzical & nickofolas.
2022-04-23 14:59:46 +02:00
borisflagell
2461e41a79 Update HashUpgradesMetadata.tsx
removing an unecessarily added space.
2022-04-23 14:17:12 +02:00
borisflagell
bf91789be9 Update HashUpgradesMetadata.tsx
Nevermind, I'm retarded. 10e12 is 10t. as e12 is already 1t by itself.
2022-04-23 14:15:53 +02:00
borisflagell
978351df26 Update HashUpgradesMetadata.tsx
Update "Increase maximum money" description to document a change made in v0.56.0 : adding a soft cap on max money increase above the $1t mark.

(well, the changelog did actually say above 10t, but current source code use 10e12...)
2022-04-23 14:06:29 +02:00
nickofolas
e6df46e520 Fix spelling 2022-04-22 23:27:05 -05:00
nickofolas
46613a07cb Change rotate method to work in chrome 2022-04-22 22:58:03 -05:00
phyzical
15dca70afd one more conflict with hydros changes to SOA 2022-04-23 10:47:19 +08:00
phyzical
00bb387036 few regressions from hydros changes 2022-04-23 10:34:41 +08:00
phyzical
cdfbda1379 merge dev 2022-04-23 10:26:51 +08:00
nickofolas
304151f910 Fix TRP being listed as graftable 2022-04-22 19:59:27 -05:00
nickofolas
a7d980c2dd Polish sleeve aug modal and faction aug page 2022-04-22 19:48:40 -05:00
nickofolas
b193953b98 Augs prereqs now include all augs in succession 2022-04-22 19:18:35 -05:00
nickofolas
cb34afbe5b Remove old sleeve owned augs grid 2022-04-22 18:21:58 -05:00
nickofolas
fd6c5fa1dc Implement display for owned augs 2022-04-22 18:20:50 -05:00
nickofolas
60bfc6d2a7 First round of modal fixes 2022-04-22 18:02:26 -05:00
nickofolas
bb78326dd9 Skip pre-reqs and exclusives in sleeve modal 2022-04-22 17:09:14 -05:00
nickofolas
46e5738f0a Change exclusive aug icon 2022-04-22 17:04:14 -05:00
nickofolas
4d1f5c657a Check isSpecial for exclusive aug tooltip 2022-04-22 16:58:06 -05:00
nickofolas
de78060ff9 Update sleeve modal width 2022-04-22 16:51:42 -05:00
nickofolas
f6a9eb746a Move elements around for clarity 2022-04-22 16:51:36 -05:00
nickofolas
ec53a80551 Update after merge 2022-04-22 16:47:12 -05:00
nickofolas
7347aac225 Merge branch 'dev' of github.com:danielyxie/bitburner into improvement/purchase-augs-ui 2022-04-22 16:45:15 -05:00
hydroflame
69781359d5 Merge pull request #3543 from danielyxie/infiltrators
INFILTRATION: New faction, Shadows of Anarchy, provides various augs to help infiltrations.
2022-04-22 17:37:17 -04:00
hydroflame
ab0d37c990 Merge branch 'dev' into infiltrators 2022-04-22 17:33:35 -04:00
Olivier Gagnon
de05245e2a lint 2022-04-22 17:31:46 -04:00
Olivier Gagnon
bc890c31c5 lint 2022-04-22 17:20:01 -04:00
Olivier Gagnon
f6e5f719d1 infiltration API fixes. 2022-04-22 17:12:14 -04:00
nickofolas
e77654158b Redesign the redesign 2022-04-22 15:14:34 -05:00
Olivier Gagnon
9fdfb77dd4 Update infiltrators 2022-04-22 15:30:49 -04:00
nickofolas
f12a117f06 Further design updates 2022-04-22 13:21:20 -05:00
nickofolas
7853144b18 Initial changes to purchaseable augs 2022-04-22 12:50:51 -05:00
Staszek Welsh
86034bddce Add new coding contract descriptions to docs
Add descriptions for the following contracts:

 * HammingCodes: Integer to Encoded Binary
 * HammingCodes: Encoded Binary to Integer
 * Proper 2-Coloring of a Graph
2022-04-22 18:43:34 +01:00
Staszek Welsh
174d17a5e2 Add compression coding contracts
Add three new contracts:

 * Compression I: RLE Encoding
 * Compression II: LZ Decoding
 * Compression III: LZ Encoding

as well as associated utility functions
2022-04-22 17:31:52 +01:00
nickofolas
bececf7a6f Move purchaseable aug files around 2022-04-22 11:19:47 -05:00
JP Sugarbroad
c6327ee682 add better typing to Electron.tsx 2022-04-21 23:50:49 -07:00
nickofolas
8b34d2776a Implement standardized grafting time calcs 2022-04-21 21:48:18 -05:00
Undeemiss
b7f78b11dd BREAKING: Capitalized the E in the hamming code encoding contract 2022-04-21 21:38:04 -05:00
nickofolas
304e7e69d5 Implement graft time calc helper function 2022-04-21 21:31:43 -05:00
hydroflame
5490d8c837 Merge pull request #3533 from Undeemiss/minor-typo-on-old-doc
DOCUMENTATION: FIX #3516 "cannot" misspelled as "cannnot"
2022-04-21 17:08:29 -04:00
Undeemiss
11f65fdcba Fixed typo of "cannot" as "cannnot" 2022-04-21 15:24:36 -05:00
borisflagell
a7045a2343 Update HacknetServerElem.tsx
Actually ran prettier this time.
Apparently fixed my lint install : no error, no warning.
2022-04-21 19:20:16 +02:00
borisflagell
421e7b8c74 Update FactionRoot.tsx
Run Prettier

Manually fixed trailing space for lint test
2022-04-21 18:51:04 +02:00
borisflagell
4fa65322fe Update HacknetServerElem.tsx
Run prettier.
Run lint : no error. One warning about typescript versionning.
2022-04-21 18:37:47 +02:00
borisflagell
ceac0090cf UI: FIX #2256 Hacknet server's upgrade tooltip were not handling RAM usage correctly.
Fix #2256 by using the correct formula to calculate the hashrate increase.

Slightly revamp tooltip to display both theoric and effective increase.
Add a discreet tooltip to the Production line which display details about hashrate and ram usage.

Tested by running two script by intermittence on a loop on the hacknet server.
Value displayed stay coherent all along.
2022-04-21 18:19:04 +02:00
hydroflame
9b6b9e96cd Merge pull request #3531 from Undeemiss/2-coloring-description
CODINGCONTRACT: Updated description of 2-coloring contract
2022-04-21 11:50:05 -04:00
Undeemiss
dabf7098db Reworded "plotting functions" as simply "plotting" 2022-04-21 10:40:21 -05:00
Undeemiss
399f8614e8 Formatted and linted; I forgot to last commit 2022-04-21 10:35:14 -05:00
Undeemiss
f482e0c4a9 Updated description of 2-coloring contract
Fixed a couple of incorrect statements in the 2-coloring contract
description, as well as rephrasing some things for clarity.
2022-04-21 10:32:57 -05:00
hydroflame
b7e319f360 Merge pull request #3530 from Undeemiss/2-coloring-contract
CODINGCONTRACT: New "Proper 2-Coloring of a Graph" contract
2022-04-21 00:48:46 -04:00
hydroflame
11fef3825c Merge pull request #3519 from taralx/patch-3
MISC: Adjust deps to current usage
2022-04-21 00:32:34 -04:00
Undeemiss
6685e8dc46 Added a description for the 2-coloring contract 2022-04-20 22:06:32 -05:00
Undeemiss
8d026e4f10 Randomized the order of the edges as well as the vertices
Previously, edge order would stay constant while vertex order was
shuffled. This way, there is even less opportunity for a player to
reverse-engineer the initial bipartite graph.
2022-04-20 21:23:55 -05:00
Undeemiss
951221578a Implemented no solution case of 2-coloring contract checker
Implemented a greedy 2-coloring algorithm to check whether a given
graph is 2-colorable. The algorithm is only used if the player
provides "[]" as their answer; other answers will be checked using
the previously implemented validation code.
2022-04-20 20:54:07 -05:00
borisflagell
e05617d9d3 UI FIX #3415
fixes #3415
2022-04-21 00:18:15 +02:00
Undeemiss
bdfd102085 Partially implemented solver for 2-coloring contract
Implemented the case for the 2-coloring solver to validate that
entered colorings are proper. Still needs a case for when no
solution exists.
Also, changed the data from type [number, number][] to
[number, [number, number][]], so that the number of vertices in
the graph can be the first parameter.
2022-04-20 17:01:35 -05:00
hydroflame
80f037bfdb Merge pull request #3523 from taralx/patch-5
MISC: upgrade to eslint v8
2022-04-20 13:06:32 -04:00
hydroflame
307ec7961a Merge pull request #3524 from Snarling/realignAutocomplete
UI: FIX #3522 realigned autocomplete popup
2022-04-20 13:05:27 -04:00
hydroflame
84eb4379d8 Merge pull request #3525 from Snarling/GhostDirectoryFix
TERMINAL: FIX #3492 Allow cd .. even when destination directory is empty
2022-04-20 13:05:19 -04:00
Olivier Gagnon
070a68a3b0 allbuild commit 2922eb49 2022-04-20 12:28:24 -04:00
Snarling
3f53a1f090 Format+lint 2022-04-20 10:05:55 -04:00
Snarling
16e507127a Allow cd .. into empty directories 2022-04-20 10:03:51 -04:00
Snarling
5898e27529 Change alignment of autocomplete popper 2022-04-20 09:19:33 -04:00
phyzical
adbd6c3486 spelling mistakes and description updates 2022-04-20 20:12:43 +08:00
phyzical
8e1300d69d Merge branch 'dev' into feature/add-infiltration-faction
# Conflicts:
#	src/Netscript/RamCostGenerator.ts
2022-04-20 20:10:05 +08:00
Undeemiss
a97f864e14 Implemented generator for 2-coloring contract
Implemented the generator for a new contract type. For now, has
a description and solution checker designed only for testing. The
generator creates a bipartite graph with random edges, then
attempts to add one additional edge without regard for the partite
sets. It then randomizes the vertices of the graph to make reverse-
engineering the original partite sets impossible.

The shuffling algorithm is adapted from stack overflow code, but
really, what isn't?
2022-04-20 00:24:18 -05:00
hydroflame
4ea7a4d7a8 Merge pull request #3517 from taralx/patch-1
MISC: make jQuery use explicit
2022-04-19 22:31:30 -04:00
hydroflame
ee5a3ea52c Merge pull request #3521 from taralx/patch-4
MISC: update @types/numeral and fix type errors
2022-04-19 22:29:56 -04:00
hydroflame
db15744f5f Merge pull request #3513 from Undeemiss/join-stanek-api
STANEK: FIX #3282 Added NS function stanek.acceptGift
2022-04-19 22:29:10 -04:00
JP Sugarbroad
53d8807e78 upgrade to eslint v8
We need newer typescript parsers, which needs newer eslint.
2022-04-19 17:18:43 -07:00
JP Sugarbroad
d5be70e886 update @types/numeral and fix type errors 2022-04-19 17:07:51 -07:00
Olivier Gagnon
2922eb4923 Added bitnode difficulty descriptions on the bitverse. 2022-04-19 19:24:37 -04:00
JP Sugarbroad
9be9b26916 Adjust deps to current usage
depcheck is useful here. Has some false reports, but there are some
unused packages and some missing ones. Also I moved types to dev-
dependencies because we don't use them at runtime.
2022-04-19 16:20:35 -07:00
JP Sugarbroad
01d7ac6967 make jQuery use explicit 2022-04-19 16:14:16 -07:00
Olivier Gagnon
7674c7f693 rm console log 2022-04-19 17:21:22 -04:00
Olivier Gagnon
eb778aafa9 refactor bitnode multiplier code to have less side effect. 2022-04-19 17:17:08 -04:00
Undeemiss
6d55bfe795 Removed redundant check for whether the player is in CotMG 2022-04-19 13:39:56 -05:00
Undeemiss
707e643c7d Merge branch 'dev' of https://github.com/Undeemiss/bitburner into join-stanek-api 2022-04-19 13:38:14 -05:00
Undeemiss
b3e83dd976 Added check for aug status to stanek.acceptGift
Added a check to stanek.acceptGift for aug status. It's not
particularly elegant, but I copied the checks from the ui. Also
changed the way CotMG status is checked to be more robust.
2022-04-19 13:33:07 -05:00
Undeemiss
46a90e6271 Added ns function stanek.acceptGift
Added a new ns function stanek.acceptGift to the game, with a ram
cost of 2gb. The function attempts to join the CotMG and install
the gift, then returns true iff the player is in the CotMG and has
the gift installed.
2022-04-19 12:08:38 -05:00
hydroflame
657a9a9a96 Merge pull request #3511 from nickofolas/improvement/backup-color
UI: Change text color of Augmentations page backup button
2022-04-19 11:10:05 -04:00
hydroflame
d37a4eea38 Merge pull request #3510 from Risenafis/fix-covenant-icon
UI: Fix the achievement covenant icon was not shown
2022-04-19 11:09:52 -04:00
hydroflame
81a4f42bf0 Merge pull request #3512 from nickofolas/fix/stats-page-bn-level
MISC: Update logic for stats page BitNode level
2022-04-19 11:09:31 -04:00
nickofolas
75ce3f2346 Use same BN level logic as save name generator 2022-04-19 09:57:26 -05:00
nickofolas
aee413e2e3 Change text color of backup save button 2022-04-19 09:50:25 -05:00
Risenafis
bb978b9420 fix covenant achievement icon path 2022-04-19 22:03:20 +09:00
hydroflame
40febcf22e Merge pull request #3488 from Snarling/touchScreenTailFix
UI: FIX #3341 Enable touch-clicks in react-draggable
2022-04-18 20:52:09 -04:00
hydroflame
ae3c6194f1 Merge pull request #3505 from nickofolas/improvement/settings-ui
UI: Overhaul GameOptions UI
2022-04-18 20:51:50 -04:00
hydroflame
534d535c09 Merge pull request #3507 from Snarling/multipleJobsFix
WORK: FIX #3435 Quitting the active job now sets first remaining job as active
2022-04-18 20:51:41 -04:00
Snarling
bd07dea516 Fix quitting active job
When quitting active job, if there is another job, set the first remaining job as active.
2022-04-18 19:55:37 -04:00
nickofolas
af461d5e45 Merge branch 'dev' of github.com:danielyxie/bitburner into improvement/settings-ui 2022-04-18 12:04:46 -05:00
hydroflame
f43c3831be Merge pull request #3504 from danielyxie/dev
Fix script editor settings.
2022-04-18 12:53:15 -04:00
Olivier Gagnon
bc10d30d43 allbuild commit 00628a8c 2022-04-18 12:48:17 -04:00
hydroflame
00628a8c1c Merge pull request #3503 from nickofolas/fix/editor-theme-migration
EDITOR: FIX #3502 Editor theme migration crash
2022-04-18 12:45:49 -04:00
nickofolas
7054c9daef Fix editor theme migration 2022-04-18 11:44:00 -05:00
Olivier Gagnon
cae1a9a92c allbuild commit 3a467b94 2022-04-18 12:03:33 -04:00
hydroflame
3a467b945f Merge pull request #3500 from danielyxie/revert-3479-patch-1
Revert "MISC: HammingCodingContracts need rework"
2022-04-18 12:01:17 -04:00
hydroflame
b49b5ba269 Revert "MISC: HammingCodingContracts need rework" 2022-04-18 12:01:10 -04:00
hydroflame
d37e6df779 Merge pull request #3495 from danielyxie/dev
blood
2022-04-18 11:19:55 -04:00
Olivier Gagnon
0d7276b76f allbuild commit d5b296dd 2022-04-18 11:06:45 -04:00
Olivier Gagnon
d5b296ddc3 update donations 2022-04-18 11:04:40 -04:00
Olivier Gagnon
3286d85744 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-04-18 11:04:19 -04:00
hydroflame
2333630635 Merge pull request #3471 from MartinFournier/tools/validate-pr
TOOLING: Add GitHub action to validate PR titles
2022-04-18 11:03:52 -04:00
hydroflame
5d23926556 Merge pull request #3479 from Hedrauta/patch-1
MISC: HammingCodingContracts need rework
2022-04-18 11:03:41 -04:00
hydroflame
69feb790cb Merge pull request #3490 from DavidGrinberg/bugfix/3489
Singularity: Fix #3489 Disable checkTixApiAccess for purchase4SMarketData
2022-04-18 11:03:08 -04:00
hydroflame
30920bec09 Merge pull request #3483 from TheMas3212/fix/employee-leak
API: Fix leak of real Employee object in hireEmployee
2022-04-18 11:02:13 -04:00
hydroflame
4ef5f3a585 Merge pull request #3493 from Snarling/autocompleteFix
UI: FIX #3457 autocomplete suggestions no longer require hovering terminal input
2022-04-18 11:01:19 -04:00
Snarling
f466a880eb Fix style + Format/Lint 2022-04-18 07:55:59 -04:00
Snarling
02ccda197c WIP 2022-04-18 07:41:09 -04:00
David Grinberg
d934bb88ad Disable checkTixApiAccess for purchase4SMarketData
This restriction doesn't apply on UI. It doesn't make sense to apply it to singularity api
2022-04-17 22:35:31 -04:00
Snarling
425afc17dd Merge branch 'touchScreenTailFix' of https://github.com/Snarling/bitburner into touchScreenTailFix 2022-04-17 17:49:12 -04:00
Snarling
5c53b39edc Try to fix formatting? 2022-04-17 17:40:37 -04:00
Snarling
9850b56711 Update LogBoxManager.tsx
Fix prettier failure?
2022-04-17 17:23:14 -04:00
nickofolas
bb0a0148f7 Rearrange some settings 2022-04-17 15:36:19 -05:00
nickofolas
2d4251ca9b Sidebar dev links tweaks 2022-04-17 15:29:37 -05:00
nickofolas
359c967087 Doc 2022-04-17 15:27:42 -05:00
nickofolas
7f2ab4f27a Revert noList prop 2022-04-17 15:26:43 -05:00
nickofolas
4073050333 Rename enum 2022-04-17 15:09:47 -05:00
nickofolas
f222dc5277 Some polish 2022-04-17 15:08:58 -05:00
nickofolas
da18115b80 Sidebar updates 2022-04-17 15:08:40 -05:00
Snarling
2e7b7c9d86 Enable touch-clicks in react-draggable
Add onTouchEnd events for click functions inside react-draggable. Necessary because react-draggable prevents default click behavior.
2022-04-17 15:57:35 -04:00
nickofolas
9db90709fd Bulk of design overhaul 2022-04-17 12:51:14 -05:00
nickofolas
02d0d0df53 Options page component 2022-04-17 12:51:00 -05:00
nickofolas
3f46f14e63 Tabs enum 2022-04-17 12:50:43 -05:00
phyzical
c3946af666 moved the disabled button over to the buy material modal
to allow bulk purchasing while smart supply is on
2022-04-17 10:59:38 +08:00
TheMas3212
4cf0314766 Fix leak of real Employee object in hireEmployee 2022-04-17 05:16:42 +10:00
Undeemiss
f3bf872b23 Limit shareholder reservation on new shares relative to ownership
Updated the computations for issuing new corp shares so that
private investors cannot purchase a greater percentage of the
company than they already own. This change is an indirect buff
to corporations that elect not to use as many private investors
as possible.

Also updated UI elements to reflect the change. I'm not sure about
the wording I chose; I think it could be improved upon, but that
was the best I came up with.
2022-04-16 12:11:05 -05:00
H3draut3r
2d0cccfa3f HammingCodingContracts need rework 2022-04-16 18:30:38 +02:00
Zoë Hoekstra
43807fb757 Add code for handling when dest. script is running 2022-04-15 19:44:08 +02:00
Martin Fournier
f7fbee0688 doc: Add linked issues info in pr template 2022-04-15 11:00:04 -04:00
Martin Fournier
fbe81efef3 tools: Add GitHub action to validate PR titles
Ensures the pull request title matches a certain pattern.
If it does not match, warns the user by commenting on the PR & adding a label.
2022-04-15 10:59:53 -04:00
hydroflame
f790aa27ce Merge pull request #3469 from ActuallyCurtis/patch-1
CODINGCONTRACT: Typo & clarity fixes to description of Encoded Binary to Integer contract
2022-04-15 09:58:57 -04:00
hydroflame
0fda1ecabf Merge pull request #3470 from TheMas3212/misc/singularity-logging
API: replace a number of references to workerscript.log with _ctx.log
2022-04-15 09:58:25 -04:00
TheMas3212
7696f582eb replace a number of references to workerscript.log with _ctx.log that i
missed in Singularity.ts
2022-04-15 21:23:35 +10:00
ActuallyCurtis
4b3694d806 Typo fixes to Encoded Binary to Integer
Various capitalization and punctuation fixes
Changed "Note" to "NOTE" to match other coding contracts. 
Removed "encoded/decoded following hamming's rule" because I couldn't find references to hamming's rule (there are various things called Hamming's Rule, but they didn't seem relevant here). I believe that clause was just emphasizing that the binary string encoded as a hamming code, which we already know?
Rewrote the "return" text to include it should be a string. 
*NOTE 4 could be removed, or kept for redundancy's sake
*"So MAYBE there is an altered bit" is also redundant, since note 3 already says a 55% chance, which means "maybe." Left, but could be removed.
2022-04-15 00:34:50 -07:00
phyzical
82610c0c44 Merge branch 'feature/add-infiltration-faction' into feature/refactor-augmentation 2022-04-15 14:26:00 +08:00
phyzical
8db74f343a merge base 2022-04-15 14:25:13 +08:00
phyzical
1478e7a5b1 lint 2022-04-15 11:17:49 +08:00
phyzical
ec8437cadd freeze the cost to stop sneeky sneekers 2022-04-15 11:17:27 +08:00
phyzical
0bff9be8a7 missed one reference to making baseCost static 2022-04-15 11:14:16 +08:00
hydroflame
209c46310e Merge pull request #3466 from Undeemiss/nitesec-test-hostname
MESSAGES: Added the name of NiteSec's server to their .msg
2022-04-14 19:16:25 -04:00
Undeemiss
3dfb2afb58 Added the name of NiteSec's server to their .msg 2022-04-14 18:14:15 -05:00
Olivier Gagnon
6f4de879fa Increase donation count 2022-04-14 18:58:39 -04:00
hydroflame
23baae56cf Merge pull request #3465 from Undeemiss/lore-txts
Started collecting lore so that additions to it are simpler
2022-04-14 18:27:25 -04:00
hydroflame
6ce1bab5fe Merge pull request #3461 from Hoekstraa/3263
API: Add repFromDonation() to the Formula API
2022-04-14 18:26:38 -04:00
hydroflame
5493908167 Merge pull request #3463 from danielyxie/dependabot/npm_and_yarn/async-2.6.4
Bump async from 2.6.3 to 2.6.4
2022-04-14 18:14:49 -04:00
Undeemiss
7d4c10544e Started collecting lore so that additions to it are simpler
For now, a brief description of enders and the general concept of
bitnodes
2022-04-14 16:08:26 -05:00
rderfler
9e6e97d1fb fmt and merge upstream 2022-04-14 15:49:21 -04:00
rderfler
3cd8f8a223 merged from upstream 2022-04-14 15:47:00 -04:00
rderfler
332b803332 Fmt and lint 2022-04-14 15:28:13 -04:00
Olivier Gagnon
7685f52f8e fix import and make rainbow return the answer. 2022-04-14 15:23:49 -04:00
Olivier Gagnon
52e27e317e Added blood donation bonus 2022-04-14 15:17:46 -04:00
dependabot[bot]
4b2230cdc5 Bump async from 2.6.3 to 2.6.4
Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4.
- [Release notes](https://github.com/caolan/async/releases)
- [Changelog](https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md)
- [Commits](https://github.com/caolan/async/compare/v2.6.3...v2.6.4)

---
updated-dependencies:
- dependency-name: async
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-14 19:02:46 +00:00
Olivier Gagnon
afbfb46775 rm widget 2022-04-14 15:02:13 -04:00
Olivier Gagnon
69596f009f Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-04-14 15:01:47 -04:00
Olivier Gagnon
48d7385ac3 widget 2022-04-14 15:01:43 -04:00
Zoë Hoekstra
accb9f7e23 Add repFromDonation formula to the API 2022-04-14 20:01:31 +02:00
phyzical
db97125d22 remove level, base cost and rep requirment from base augmentation obj
* added in place calculations for cost and level of augmentations given player context
* removed redundant logic for dynamically calculating cost,rep and level against the augmentation object
* replaced references to startingCost to baseCost as it is now always whatever it started at
2022-04-15 01:39:38 +08:00
phyzical
c3a3994658 rename augmentation to static augmentation 2022-04-15 01:19:51 +08:00
hydroflame
18fafff91f Merge pull request #3460 from Undeemiss/stanek-collision
STANEK: FIX #3277 Can no longer overlap rotated fragments
2022-04-14 12:27:31 -04:00
Olivier Gagnon
f2d8d11d32 tempalte 2022-04-14 12:16:03 -04:00
Undeemiss
749b93608b Fixed Stanek fragment collision detection
Relaxed some overzealous short-circuiting to ensure fragments
on the Stanek's Gift board properly check for collisions.
2022-04-14 11:13:50 -05:00
Olivier Gagnon
69c5e42e30 remove redundant naming scheme 2022-04-14 12:13:01 -04:00
hydroflame
e3fc77c340 Merge pull request #3458 from TheMas3212/fix/2993-invalid-city-names
API: FIX #2993 sleeve.travel with invalid city names
2022-04-14 12:12:25 -04:00
TheMas3212
de3359dfad switch to checkEnum 2022-04-15 02:07:47 +10:00
TheMas3212
e07b92a408 fix 2993 sleeve.travel with invalid city names 2022-04-15 02:00:34 +10:00
rderfler
9d18118208 Format, but git forgot this last time 2022-04-14 12:00:17 -04:00
rderfler
3886e31a45 Format 2022-04-14 11:59:49 -04:00
rderfler
1239c7ad7f Merge branch 'dev' of https://github.com/rderfler/bitburner into dev 2022-04-14 11:57:19 -04:00
rderfler
0406272942 Clean up
linter
2022-04-14 11:57:01 -04:00
hydroflame
18a6477342 Merge pull request #3456 from TheMas3212/fix/3395
fix #3395 donating to special factions possible via singularity
2022-04-14 11:51:40 -04:00
rderfler
7c468663d4 Merge branch 'danielyxie:dev' into dev 2022-04-14 11:48:44 -04:00
rderfler
d1388a62aa Merge branch 'dev' of https://github.com/rderfler/bitburner into dev 2022-04-14 11:41:02 -04:00
rderfler
2613948bad Add bladeburner actions to sleeves
This adds bladeburner actions to sleeves. In addition this bulked out the IPerson functionality and updated bladeburner functions to be more sleeve compatible
2022-04-14 11:40:59 -04:00
TheMas3212
89baba2e24 fix #3395 donating to special factions possible via singularity 2022-04-15 01:32:18 +10:00
hydroflame
b1fc909411 Merge pull request #3455 from TheMas3212/fix/dram-tests
Fix test/jest/Netscript/DynamicRamCalculation.test.js
2022-04-14 11:15:32 -04:00
TheMas3212
68ddf1d588 Fix test/jest/Netscript/DynamicRamCalculation.test.js 2022-04-15 01:12:05 +10:00
hydroflame
1ce9f5d9d8 Merge pull request #3453 from Chris380/feature/clickable_lit_and_msg_files
Make .lit and .msg files clickable
2022-04-14 11:10:27 -04:00
hydroflame
0db3dc5feb Merge pull request #3454 from TheMas3212/fix/gang-singularity-work
Fix inconsistancy with trying to work for gang factions while running a gang
2022-04-14 11:09:50 -04:00
TheMas3212
a0cab9a163 Fix inconsistancy with trying to work for gang factions while running a gang 2022-04-15 00:35:51 +10:00
Chris380
bfa19eb7ba Make .lit and .msg files clickable 2022-04-14 16:23:45 +02:00
phyzical
07afda8fbb remove redundant var 2022-04-14 21:58:25 +08:00
phyzical
9c23fc89d1 merge base 2022-04-14 21:27:08 +08:00
Olivier Gagnon
8dab9f7871 fmt 2022-04-14 02:35:30 -04:00
hydroflame
ddee44df4a Merge pull request #3451 from danielyxie/dev
revert theme
2022-04-14 02:34:45 -04:00
Olivier Gagnon
caac9adf38 revert theme 2022-04-14 02:34:20 -04:00
hydroflame
9538d93d09 Merge pull request #3450 from danielyxie/dev
another dark theme?
2022-04-14 02:32:16 -04:00
Olivier Gagnon
156fc773e7 another dark theme? 2022-04-14 02:31:55 -04:00
hydroflame
a9eaea0568 Merge pull request #3449 from danielyxie/dev
basic doc no longer hacker themed
2022-04-14 02:25:44 -04:00
Olivier Gagnon
7e956b8a2a rm dark theme for doc 2022-04-14 02:25:12 -04:00
Olivier Gagnon
c8df4fff00 Change faction info display 2022-04-14 02:07:13 -04:00
Olivier Gagnon
957c07d9d2 rm the last of source file flags 2022-04-14 01:33:05 -04:00
Olivier Gagnon
62d15ff3a1 rm SourceFileFlags 2022-04-14 01:22:50 -04:00
Olivier Gagnon
eae4eb2a31 comment 2022-04-14 00:23:48 -04:00
Olivier Gagnon
d8382ec762 Corp upgrades are now defined types 2022-04-14 00:21:33 -04:00
Olivier Gagnon
a6ed2b9ed1 doc 2022-04-13 23:53:50 -04:00
Olivier Gagnon
0288e5c2ba Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-04-13 23:44:48 -04:00
hydroflame
6ea878cdfc Merge pull request #3446 from nickofolas/fix/assets
[Fix] Theme browser assets not loading
2022-04-13 23:42:09 -04:00
nickofolas
1c0724a692 Fix theme browser assets 2022-04-13 22:34:55 -05:00
Olivier Gagnon
494ad68c4c Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-04-13 19:33:12 -04:00
Olivier Gagnon
7c129f1050 revert corp nerf 2022-04-13 19:33:04 -04:00
hydroflame
89f73d88d1 Merge pull request #3443 from TheMas3212/fix/singularity-sf4-checks
fix b1tflum3 and destroyW0r1dD43m0n singularity functions to check for sf4
2022-04-13 19:06:53 -04:00
Olivier Gagnon
abdd8c48d1 nerf Wilson Analytics 2022-04-13 18:26:19 -04:00
Olivier Gagnon
76e539bbb8 bump corpo avg profit length 2022-04-13 18:14:16 -04:00
TheMas3212
775d93b693 fix b1tflum3 and destroyW0r1dD43m0n singularity functions to check for
sf4, also refactored the file slightly for consistency to make sure the
sf4 check is the first thing every function does
2022-04-14 08:13:28 +10:00
Olivier Gagnon
88ae27e84d nerf investors fraud 2022-04-13 18:08:35 -04:00
Olivier Gagnon
49164b5d36 branch 'dev' of github.com:danielyxie/bitburner into dev 2022-04-13 17:50:04 -04:00
Olivier Gagnon
9f3423bd46 save file migration 2022-04-13 17:50:01 -04:00
hydroflame
5e111df832 Merge pull request #3438 from nickofolas/feature/monaco-theme-editor
[Feature] Monaco Theme Editor
2022-04-13 17:43:59 -04:00
Olivier Gagnon
811ae1a751 more stanek doc 2022-04-13 17:40:11 -04:00
hydroflame
4dfa89f9ea Merge pull request #3441 from Undeemiss/stanek-examples
Corrected example grids found in Stanek help
2022-04-13 17:39:04 -04:00
hydroflame
e2296aa963 Merge branch 'dev' into stanek-examples 2022-04-13 17:38:59 -04:00
Olivier Gagnon
a98f28fe92 change stanek description 2022-04-13 17:38:34 -04:00
hydroflame
f1b2af7360 Merge pull request #3442 from nickofolas/fix/demo-stanek-grid
[Fix] Dummy Stanek grid width
2022-04-13 17:35:37 -04:00
Olivier Gagnon
9281cbe559 ns func to flume and destroy wd 2022-04-13 17:34:02 -04:00
nickofolas
4a0fb59e56 Fix dummy stanek width 2022-04-13 16:04:31 -05:00
Undeemiss
605851ddbd Corrected example grids found in stanek help
Updated the descriptions of all four example Stanek grids, updated
the contents of the third, and added spacing between the grids so
that it is clearer which grid each description refers to.
2022-04-13 15:46:09 -05:00
hydroflame
93eb5e2d78 Merge pull request #3247 from Savlik/dev
Accept valid JSON arrays in coding contracts
2022-04-13 16:29:26 -04:00
hydroflame
81e9d1d80f Merge pull request #3321 from phyzical/bugfix/corp-updates
Bugfix/corp updates
2022-04-13 16:20:29 -04:00
hydroflame
244bb5737e Merge branch 'dev' into bugfix/corp-updates 2022-04-13 16:20:22 -04:00
nickofolas
e69e45c283 Better imports 2022-04-13 14:52:30 -05:00
nickofolas
58c4861c56 lint 2022-04-13 14:45:26 -05:00
hydroflame
ab0f89cea1 Merge pull request #3436 from Undeemiss/duplicate-programs
Create program action no longer creates duplicates
2022-04-13 15:43:21 -04:00
nickofolas
567fcf8fb6 prettier 2022-04-13 14:42:07 -05:00
nickofolas
1f9414fd0e Resolve conflict 2022-04-13 14:32:30 -05:00
nickofolas
137539c1db Add missing newline at end of file 2022-04-13 14:32:30 -05:00
nickofolas
d1edbe9a43 Save data sanitization
- Run in `Editor.beforeMount`, as well as when the
options modal is closed
- Recursively validates all token colors and
replaces them with bright red if they're invalid
2022-04-13 14:32:30 -05:00
nickofolas
739ca27ab9 Add Paper styling to modal 2022-04-13 14:32:30 -05:00
nickofolas
6f60589779 Tie up loose ends
- Ensure that customTheme is redefined whenever the options modal
is closed, regardless of saved or not
- Reset the pending value for the theme editor whenever modal is clsoed
2022-04-13 14:32:30 -05:00
nickofolas
a66ed00998 Change global theme import rows to 10 and format 2022-04-13 14:32:30 -05:00
nickofolas
10513ba5bc Update label for common.accent 2022-04-13 14:32:30 -05:00
nickofolas
16cf227498 Implement Monaco theme editor 2022-04-13 14:32:30 -05:00
nickofolas
b3f37b2583 Add types token 2022-04-13 14:32:30 -05:00
nickofolas
881d4816cc Theme attribute cleanup 2022-04-13 14:32:30 -05:00
nickofolas
ec0f20b14f Framework for custom theme 2022-04-13 14:32:30 -05:00
nickofolas
4b521b2845 Fix trailing whitespace 2022-04-13 14:32:26 -05:00
Undeemiss
87936598e2 Create program action no longer creates duplicates 2022-04-13 13:03:10 -05:00
Olivier Gagnon
3336a6ff61 added openDevMeny 2022-04-13 13:47:48 -04:00
hydroflame
47846a22d3 Merge pull request #3434 from Undeemiss/format-lint
Reran npm format and lint to fix formatting
2022-04-13 13:43:45 -04:00
Undeemiss
80b61ea17e Reran npm format and lint to fix formatting 2022-04-13 12:19:58 -05:00
hydroflame
af95f0bfaf Merge pull request #3432 from danielyxie/dev
keeping up to date
2022-04-13 12:37:41 -04:00
Olivier Gagnon
b5e4d706b2 🔖 Build v1.6.4 2022-04-13 12:32:26 -04:00
Olivier Gagnon
fbb99c1712 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-04-13 12:24:04 -04:00
Olivier Gagnon
c76602a5df rm aug woned 2022-04-13 12:24:01 -04:00
hydroflame
96d76a84ba Merge pull request #3431 from Undeemiss/sing-connect-backdoor
Allowed ns.singularity.connect to connect to backdoored servers directly
2022-04-13 12:22:17 -04:00
Undeemiss
dfc2ca6669 Allowed ns.singularity.connect to connect to backdoored servers directly
Added some small comments for readability and added a new case to
ns.singularity.connect that allows connecting to backdoored servers
directly regardless of if the current server is adjacent to them.
2022-04-13 11:03:17 -05:00
hydroflame
0d11a18ca9 Merge pull request #3428 from Chris380/bugfix/2367_reject_cd_to_invalid_folders
Reject cd to invalid folders
2022-04-13 11:27:35 -04:00
hydroflame
cca8aa45d6 Merge pull request #3425 from Chris380/bugfix/3111_growthAnalyzeSecurity_thread_limit
Bugfix/3111 growthAnalyzeSecurity thread limit
2022-04-13 11:26:22 -04:00
Olivier Gagnon
a029aee404 fmtlint 2022-04-13 11:18:22 -04:00
hydroflame
e1405a1dd2 Merge pull request #3429 from nickofolas/feature/ns-grafting-get-augs
[Feature] Add `ns.grafting.getGraftableAugmentations` function
2022-04-13 11:17:31 -04:00
Olivier Gagnon
501b69bbc2 tighten messages types wth enums 2022-04-13 11:10:56 -04:00
Olivier Gagnon
c21223ca40 Added type declaration to Messages 2022-04-13 11:06:49 -04:00
hydroflame
3b5e877801 Merge pull request #3424 from Undeemiss/smarter-icarus
Reduced icarus.msg spam and added new truthgazer.msg
2022-04-13 11:06:26 -04:00
nickofolas
51e5d38c7b Add grafting API function to get graftable augs 2022-04-13 09:43:27 -05:00
chris380
d93ab92f69 Reject cd to invalid folders 2022-04-13 16:07:41 +02:00
Chris380
99923e0f62 Update src/NetscriptFunctions.ts
Co-authored-by: Nikolai Korolev <CrafterKolyan@mail.ru>
2022-04-13 15:58:43 +02:00
chris380
1dac3fea31 fixed formatting + import 2022-04-13 15:54:48 +02:00
Chris380
baa14f7b4d Update src/ScriptEditor/NetscriptDefinitions.d.ts
Co-authored-by: Nikolai Korolev <CrafterKolyan@mail.ru>
2022-04-13 15:48:44 +02:00
Chris380
04abb60708 Update src/ScriptEditor/NetscriptDefinitions.d.ts
Co-authored-by: Nikolai Korolev <CrafterKolyan@mail.ru>
2022-04-13 15:48:29 +02:00
Chris380
e0f4ec6594 Update src/NetscriptFunctions.ts
Co-authored-by: Nikolai Korolev <CrafterKolyan@mail.ru>
2022-04-13 15:47:31 +02:00
phyzical
7bb23f9a97 lint 2022-04-13 18:56:35 +08:00
phyzical
90d1c22aca changes all references to "heath reduction to damage reduction" 2022-04-13 18:54:13 +08:00
phyzical
7f288665d3 linting 2022-04-13 18:52:32 +08:00
phyzical
3eb9c4a2e2 regression fix 2022-04-13 18:52:01 +08:00
phyzical
6b48ff8f21 merge base 2022-04-13 18:50:42 +08:00
Jack
2f9ab67cd2 Merge branch 'dev' into bugfix/corp-updates 2022-04-13 16:35:18 +08:00
chris380
44c71347d7 formatting 2022-04-13 09:22:46 +02:00
chris380
355d2bd8f9 use minimum of given and maximum threads 2022-04-13 09:19:09 +02:00
chris380
4c113c19eb take into account max threads needed 2022-04-13 09:16:59 +02:00
Undeemiss
dfadfcea09 Smarter icarus.msg, new truthgazer.msg, fix long-standing message bug
Sorry for putting this all in one commit; it all happened at the same time
as a direct conscequence of trying to get icarus.msg to be smarter.
There's a compilation error on MessageHelpers.ts:24, but the game
seems to run fine so I'm committing and coming back to it later.
2022-04-13 01:53:22 -05:00
Olivier Gagnon
e1a56f9270 typos 2022-04-13 02:04:51 -04:00
hydroflame
b0c4d5b8f7 Merge pull request #3423 from HeinousTugboat/htugboat/toast-part-deux
Renames SnackbarVariant to ToastVariant, adds enum to ns
2022-04-13 01:57:31 -04:00
Alexander Jarman
dd6d4ec104 Merge branch 'dev' into htugboat/toast-part-deux 2022-04-13 01:55:13 -04:00
Heinous Tugboat
492c7012ea Renames SnackbarVariant to ToastVariant, adds enum to ns 2022-04-13 01:54:13 -04:00
Olivier Gagnon
d7822b389e 🔖 Build v1.6.3 2022-04-13 01:40:29 -04:00
Olivier Gagnon
aa447d3051 🔖 Build v1.6.1 2022-04-13 01:37:53 -04:00
Olivier Gagnon
f555c4567b update doc 2022-04-13 01:35:35 -04:00
hydroflame
ac53dbf168 Merge pull request #3232 from MartinFournier/feat/npm-version
Add `npm version` support to build releases
2022-04-13 01:24:59 -04:00
hydroflame
476e9df5bb Merge pull request #3422 from danielyxie/revert-2876-feature/monaco-theme-editor
Revert "[Feature] Script Editor Theme Customization"
2022-04-13 01:13:03 -04:00
hydroflame
03b05f53fe Revert "[Feature] Script Editor Theme Customization" 2022-04-13 01:12:56 -04:00
hydroflame
413576100a Merge pull request #2876 from nickofolas/feature/monaco-theme-editor
[Feature] Script Editor Theme Customization
2022-04-13 01:12:15 -04:00
Olivier Gagnon
729fdf7510 fk it 2022-04-13 01:00:00 -04:00
hydroflame
eee8d3e283 Merge pull request #3381 from HeinousTugboat/htugboat/toast-enum
Adds SnackbarVariant enum
2022-04-13 00:34:09 -04:00
hydroflame
92a46156a5 Merge pull request #3420 from anatoly-kussul/ci-pr-check-diff
ci check lint only on changed files
2022-04-13 00:29:44 -04:00
Olivier Gagnon
d895124267 lint 2022-04-13 00:27:43 -04:00
hydroflame
16dd31331d Merge pull request #3421 from Undeemiss/message-refactor
Removed redpillFlag and refactored MessageHelpers.ts
2022-04-13 00:27:14 -04:00
hydroflame
770a76e7e5 Merge pull request #2979 from phyzical/bugfix/2843
updated material dmd based on old tag
2022-04-13 00:24:29 -04:00
Olivier Gagnon
f1a3fb7d3e fix buying programs and writing them at the same time. 2022-04-13 00:21:51 -04:00
Undeemiss
f47f2239bd Added "Check Messages" button to dev menu 2022-04-12 22:29:06 -05:00
Undeemiss
64a5cd038e Formatted and linted 2022-04-12 20:56:21 -05:00
Undeemiss
e30e6ef47f Fixed reference to now-deleted setter for redpillFlag 2022-04-12 20:53:10 -05:00
Undeemiss
58bd2de8e5 Merge branch 'dev' of https://github.com/Undeemiss/bitburner into message-refactor 2022-04-12 20:49:50 -05:00
Anatoly Kussul
b3e9c1f96c ci format check fix 2022-04-13 04:49:08 +03:00
Undeemiss
0d26976f1a Refactored icarus.msg check 2022-04-12 20:47:00 -05:00
Anatoly Kussul
4b5d38c940 ci check lint only on changed files 2022-04-13 04:42:44 +03:00
Undeemiss
001e8f6d06 Removed redPillFlag and minor refactors to MessageHelpers.ts
Removed redPillFlag, replacing its use with appropriate UI checks.
converted MessageFilenames to enum and removed unnecessary type checks.
2022-04-12 20:32:01 -05:00
hydroflame
c7702d8511 Merge pull request #3338 from phyzical/feature/add-more-hotkeys-for-zoom
Add more hotkeys for zoom
2022-04-12 21:04:32 -04:00
Olivier Gagnon
eaf0098cc7 move singularity to its own namespace but still support the old. 2022-04-12 20:55:28 -04:00
hydroflame
c8c271a334 Merge pull request #3401 from TheMas3212/feat/wrap-singularity
Wrap Singularity API with wrapper
2022-04-12 20:53:55 -04:00
Olivier Gagnon
3e357ab9a7 Added demos in stanek 2022-04-12 20:23:03 -04:00
Olivier Gagnon
2b4b59b371 fmy 2022-04-12 19:10:58 -04:00
hydroflame
df3314c2f2 Merge pull request #3416 from Undeemiss/stanek-info
Added info button to Stanek's Gift page
2022-04-12 19:09:38 -04:00
Undeemiss
1c58f29fe9 Added info button to Stanek's Gift page
Added a small button that can be clicked to bring up a concise,
to the point description of how the Stanek's Gift mechanic works.
2022-04-12 17:54:42 -05:00
hydroflame
b017fd2300 Merge pull request #3000 from JonathanBeverley/corp-expose-things-in-ui
Expose product and material details in API match UI
2022-04-12 17:49:29 -04:00
hydroflame
997f20aa68 Merge pull request #3414 from danielyxie/dev
clean up root files.
2022-04-12 17:38:31 -04:00
Olivier Gagnon
1f08d1b361 allbuild commit 12c54023 2022-04-12 17:37:40 -04:00
hydroflame
12c54023db Merge pull request #3413 from danielyxie/fix-dev-building
Fix dev building
2022-04-12 17:35:42 -04:00
Olivier Gagnon
adcfbef1d0 do a build 2022-04-12 17:35:16 -04:00
Olivier Gagnon
2d2236bc71 rm some files and change webpack 2022-04-12 17:34:10 -04:00
hydroflame
95cbd79fa9 Merge pull request #3412 from danielyxie/stanek-improvements
few stanek improvements.
2022-04-12 17:19:43 -04:00
hydroflame
6ce05c5c49 Merge pull request #3411 from MartinFournier/hotfix/dist-build
Use ./dist instead of ./dist-dev in dev mode
2022-04-12 17:19:13 -04:00
Olivier Gagnon
de8b38b299 few stanek improvements. 2022-04-12 17:18:36 -04:00
Martin Fournier
54d9a1105e Remove unused files 2022-04-12 17:07:54 -04:00
Martin Fournier
3fc1d089c1 Use ./dist instead of ./dist-dev in dev mode 2022-04-12 17:07:30 -04:00
Olivier Gagnon
0ce2313ce8 allbuild commit 59bcf4d6 2022-04-12 15:38:28 -04:00
hydroflame
59bcf4d695 Merge pull request #3221 from MartinFournier/chore/move-bundle
Move main bundle output to ./dist subfolder
2022-04-12 15:35:26 -04:00
Olivier Gagnon
48ee6ac82e update browserlist 2022-04-12 14:59:53 -04:00
Olivier Gagnon
52e01fc026 fix a few things about getRecentScritps 2022-04-12 14:45:48 -04:00
hydroflame
a9b03f34ab Merge pull request #2699 from smolgumball/add-ns-getRecentScripts
ns: add `ns.getRecentScripts()` to return recently killed scripts
2022-04-12 14:23:13 -04:00
hydroflame
68abd27d2c Merge branch 'dev' into add-ns-getRecentScripts 2022-04-12 14:21:18 -04:00
Olivier Gagnon
219b9589cf update browserlist 2022-04-12 14:08:10 -04:00
Olivier Gagnon
8958046421 fix test 2022-04-12 14:06:24 -04:00
hydroflame
243cdceb8c Merge pull request #3390 from nickofolas/improvement/stats-augs-ui
[Improvement] Overhaul Stats and Augmentations UI
2022-04-12 13:43:09 -04:00
hydroflame
0513aed239 Merge pull request #3403 from Chris380/bugfix/2486_auto_complete_connect_backdoored_server
Bugfix/2486 auto complete for connect and backdoored server
2022-04-12 13:37:43 -04:00
hydroflame
aa1ab030a3 Merge pull request #3404 from Chris380/bugfix/3057_hashCost_example_code
Fixed hashCost() example code
2022-04-12 13:37:32 -04:00
Olivier Gagnon
864816bd22 fix unknown 2022-04-12 13:37:19 -04:00
hydroflame
c38ab9e65f Merge pull request #3405 from Chris380/bugfix/3111_hackAnalyzeSecurity_thread_limit
take into account max thread needed
2022-04-12 13:35:13 -04:00
hydroflame
a1a5a9428d Merge pull request #3406 from Risenafis/fix-hammingcodes-example
Fix HammingCodes description
2022-04-12 13:21:21 -04:00
Risenafis
e27994367d fix HammingCodes description 2022-04-13 01:13:21 +09:00
chris380
fa29d2d9a8 take into account max thread needed 2022-04-12 17:42:49 +02:00
chris380
a49f68b0de Fixed hashCost() example code 2022-04-12 16:23:05 +02:00
chris380
93f59f0df2 formatting updated 2022-04-12 15:11:38 +02:00
chris380
16720ec3b7 update connect help text 2022-04-12 15:08:04 +02:00
chris380
6a941d57ed Add backdoored servers to connect autocompletion 2022-04-12 15:03:45 +02:00
TheMas3212
b2689eaa5a Wrap Singularity API with wrapper
also refactored the RamCosts IMap as it didnt quite work properly due to
how the wrapper calculates function names
2022-04-12 16:51:10 +10:00
Olivier Gagnon
2d74b493ee Add sourceURL in comment to fill in stack trace 2022-04-11 21:46:17 -04:00
Olivier Gagnon
a11e2868df fmt 2022-04-11 21:45:55 -04:00
hydroflame
a17b81dff3 Merge pull request #2925 from Ornedan/necro-script-fix
Necro script fix
2022-04-11 21:36:07 -04:00
Olivier Gagnon
93e7083301 fix lint 2022-04-11 20:59:37 -04:00
hydroflame
674f3b0c9f Merge pull request #3318 from smmalis37/empjobs
Fix docs for employeeProd and add employeeJobs.
2022-04-11 20:48:17 -04:00
hydroflame
3f4d00a8c2 Merge pull request #3350 from phyzical/bugfix/3348
Fix for install augmentation stale objects bug
2022-04-11 20:05:46 -04:00
Olivier Gagnon
50b6fa2c0a fmt 2022-04-11 19:39:06 -04:00
hydroflame
1705ced516 Merge pull request #3400 from TheMas3212/fix/wrapper-doesnt-recurs
fix netscript function concurrency wrapper doesnt recurs
2022-04-11 19:37:21 -04:00
TheMas3212
433873c5e2 run formater 2022-04-12 08:27:53 +10:00
TheMas3212
8d5632eb3e fix netscript wrapper to wrap all functions, not just the top level 2022-04-12 08:20:34 +10:00
hydroflame
72fe3c6981 Merge pull request #3399 from TheMas3212/feat/update-lint-task
fix lint ci task and allow unused parameters with _ prefix
2022-04-11 14:55:15 -04:00
TheMas3212
b1b917c9a3 fix lint ci task and allow unused parameters with _ prefix 2022-04-12 04:50:30 +10:00
Olivier Gagnon
5cbeae9353 lint 2022-04-11 14:17:27 -04:00
hydroflame
34b68f6722 Merge pull request #3398 from danielyxie/dev
Sync main
2022-04-11 14:07:10 -04:00
Olivier Gagnon
3bccfb1de6 allbuild commit fc9e7244 2022-04-11 14:03:03 -04:00
hydroflame
fc9e7244aa Merge pull request #3197 from TheMas3212/feat/api-wrapper
Initial API Wrapper Work
2022-04-11 13:26:38 -04:00
hydroflame
1b87628a4d Merge pull request #3387 from nickofolas/improvement/grafting-tweaks
[Improvement] Small grafting tweaks based around Congruity aug, plus some general grafting fixes
2022-04-11 13:22:34 -04:00
hydroflame
92f04903f9 Merge pull request #3385 from anatoly-kussul/cct-array-jumping-game-2
New coding contract type: Array Jumping Game II
2022-04-11 13:21:36 -04:00
hydroflame
d5ad2118dd Merge pull request #3383 from anatoly-kussul/cct-total-ways-to-sum-2
New coding contract type: Total Ways to Sum II
2022-04-11 13:21:24 -04:00
hydroflame
03650344f4 Merge pull request #3379 from nickofolas/improvement/super-important-lore
[Improvement] Add super important lore tidbit to an Augmentation
2022-04-11 13:21:11 -04:00
hydroflame
eecc96c3cd Merge pull request #3380 from ApamNapat/make_charisma_spelling_consistent
Charisma is now spelled consistently with other mults
2022-04-11 13:21:01 -04:00
hydroflame
8f2adaf1b7 Merge pull request #3386 from phyzical/bugfix/add-missing-stockmarket-init
add call to missing stock market init when using the api
2022-04-11 13:18:25 -04:00
nickofolas
8da51b7e0a Replace references to crafting with grafting 2022-04-11 11:07:15 -05:00
hydroflame
99ad015d4b Merge pull request #3389 from ChrissiQ/fix-ui-style-corp-width
️  (Corp UI Accessibility) Limit tabs width to avoid stretching screen.
2022-04-11 11:59:45 -04:00
hydroflame
f8807c5612 Merge pull request #3392 from phyzical/bugfix/fix-bulk-purchase
fix for the bulk purchase
2022-04-11 11:59:27 -04:00
phyzical
e3da5e0e03 added the ability to cancel products when still being developed 2022-04-11 21:55:38 +08:00
phyzical
a66b5bfb69 fixes and pr comments 2022-04-11 21:54:50 +08:00
phyzical
1718b55c27 fix for the bulk purchase 2022-04-11 08:10:58 +08:00
Anatoly Kussul
0855532081 small pharsing changes 2022-04-11 00:11:46 +03:00
Anatoly Kussul
cb756808a2 added coments, removed possible infinite loop, changed problem phrasing 2022-04-11 00:01:52 +03:00
nickofolas
f6af85a38d Fix prettier 2022-04-10 15:57:34 -05:00
nickofolas
4de3caa56a Merge branch 'dev' of github.com:danielyxie/bitburner into improvement/grafting-tweaks 2022-04-10 13:42:41 -05:00
ChrissiQ
2111c2e3d7 ️ (Corp UI Accessibility) Limit tabs width to avoid stretching screen.
The rendering engine doesn't seem to respond properly to a limit of 65% for the tabs
area. Though the tab area visually appears to be limited, the parent container is
still using the full extended width of the tabs, causing page stretch. Using 65vw
instead of 65% for maxWidth causes the calculation to be based on the actual page
width so no stretching occurs.
2022-04-10 12:37:10 -06:00
hydroflame
d998ff9f9c Merge pull request #3384 from HeinousTugboat/htugboat/fix-sleeve-function-names
Updates sleeve functions so names match
2022-04-10 11:54:18 -04:00
phyzical
909e5e964f add call to missing stock market init when using the api 2022-04-10 18:19:45 +08:00
Anatoly Kussul
0538bf3299 New coding contract type: Array Jumping Game II 2022-04-10 02:47:40 +03:00
Heinous Tugboat
dd19d6451d Updates sleeve functions so names match 2022-04-09 18:40:01 -04:00
Anatoly Kussul
27180ebccb New coding contract type: Total Ways to Sum II 2022-04-09 22:38:42 +03:00
nickofolas
bf518836a5 Minor grafting tweaks around Congruity aug 2022-04-09 09:24:14 -05:00
nickofolas
4a0998c568 Fix DOM parse warnings 2022-04-09 09:06:32 -05:00
nickofolas
48895c8d2d Fix SF list selection 2022-04-09 08:41:03 -05:00
nickofolas
236a5cd645 Minor code improvements 2022-04-09 08:35:31 -05:00
TheMas3212
f53c90b21c Change Signature of InternalFunction
Mark properties of Wrapped NetscriptAPI as readonly
2022-04-09 15:15:45 +10:00
Heinous Tugboat
5b96cedd0c Adds SnackbarVariant enum 2022-04-08 23:46:19 -04:00
BB
29c1593263 Charisma is now spelled consistently with other mults 2022-04-09 01:45:38 +02:00
nickofolas
271173dca2 Fix consistency of purchased aug list 2022-04-08 16:58:21 -05:00
nickofolas
693ca7baba Change theme variable used for entropy color 2022-04-08 16:40:06 -05:00
nickofolas
7c9fc3248f Reduce purchased aug tooltip delay 2022-04-08 16:29:15 -05:00
nickofolas
34ca4d236b Add ability to clear queued augs from dev menu 2022-04-08 16:28:43 -05:00
nickofolas
101c34effa Overhaul PlayerMultipliers columns logic 2022-04-08 16:27:16 -05:00
nickofolas
f40af55f46 Change money stat color 2022-04-08 16:10:35 -05:00
nickofolas
79c878dbc3 Add super important lore tidbit to an Augmentation 2022-04-08 13:11:17 -05:00
nickofolas
2d904e08b4 Fix keys 2022-04-08 11:48:37 -05:00
nickofolas
96226f199f Improve purchased Augs section 2022-04-08 11:22:46 -05:00
nickofolas
b9cc6321fd SF -1 related fixes 2022-04-08 10:49:10 -05:00
nickofolas
a4bc793cf1 Hide SF display when no SFs owned 2022-04-08 10:21:40 -05:00
nickofolas
81f971b52e Add coloring to NFG display 2022-04-08 09:43:21 -05:00
nickofolas
5dea27bc28 Fix NFG appearing in installed list 2022-04-08 09:43:09 -05:00
Olivier Gagnon
758b0e1127 fix home ram tooltip 2022-04-08 01:02:36 -04:00
nickofolas
fbf9bc521f Merge branch 'dev' of github.com:danielyxie/bitburner into improvement/stats-augs-ui 2022-04-07 23:55:46 -05:00
Olivier Gagnon
2b994f244d fmtlint 2022-04-08 00:54:54 -04:00
hydroflame
386106f574 Merge pull request #3378 from nickofolas/fix/congruity-availability
[Fix] Removed nickofolas Congruity Implant Augmentation from gangs
2022-04-08 00:53:57 -04:00
Olivier Gagnon
2b2af797a7 fmt and lint 2022-04-08 00:39:45 -04:00
nickofolas
251cdcd6dc Fix nickofolas Congruity Implant being available in gangs 2022-04-07 23:39:11 -05:00
hydroflame
d956e47246 Merge pull request #3331 from Ornedan/shortest-path-cct
New coding contract: Shortest Path in a Grid
2022-04-08 00:38:19 -04:00
hydroflame
1b7abbffaf Merge pull request #3371 from Hedrauta/Hamming-Coding-Contracts
2 new Coding Contracts
2022-04-08 00:35:19 -04:00
nickofolas
e7ad5c5f9e Remove unnecessary code 2022-04-07 23:33:47 -05:00
Olivier Gagnon
690f9df7ba allbuild commit a2dddb0e 2022-04-08 00:31:17 -04:00
nickofolas
e720930f04 Improve sizing of some list-based menus 2022-04-07 23:29:24 -05:00
Olivier Gagnon
a2dddb0e5a Fix soft reset not installing augs anymore 2022-04-08 00:28:37 -04:00
nickofolas
3d296e2bf0 Consistently respect SF5 BN mult unlock 2022-04-07 23:19:05 -05:00
Olivier Gagnon
39d17986ff allbuild commit 589e61c5 2022-04-08 00:12:39 -04:00
Olivier Gagnon
589e61c5d1 fix lint 2022-04-08 00:07:48 -04:00
nickofolas
e3e77ea2cc Merge branch 'dev' of github.com:danielyxie/bitburner into improvement/stats-augs-ui 2022-04-07 23:07:43 -05:00
hydroflame
9fcbf83b3f Merge pull request #3237 from danielyxie/dependabot/npm_and_yarn/electron-14.2.4
Bump electron from 14.0.2 to 14.2.4
2022-04-08 00:06:23 -04:00
hydroflame
14762be646 Merge pull request #3267 from danielyxie/dependabot/npm_and_yarn/minimist-1.2.6
Bump minimist from 1.2.5 to 1.2.6
2022-04-08 00:05:49 -04:00
hydroflame
0cfe8b760d Merge pull request #3268 from danielyxie/dependabot/npm_and_yarn/plist-3.0.5
Bump plist from 3.0.4 to 3.0.5
2022-04-08 00:05:42 -04:00
Olivier Gagnon
092a3b15cf allbuild commit 4aa012f9 2022-04-07 23:51:31 -04:00
hydroflame
4aa012f9c0 Merge pull request #3372 from nickofolas/feature/unique-aug
[Feature] Add special Augmentation for Grafting
2022-04-07 23:35:05 -04:00
nickofolas
9dea381536 Fix SF levels and tweak spacing 2022-04-07 20:44:29 -05:00
nickofolas
960dc354c1 Further tweaks/fixes 2022-04-07 19:06:42 -05:00
TheMas3212
b2e7817a0b format 2022-04-08 10:02:59 +10:00
TheMas3212
9b53896732 slight change on how wrapping work based on discussion in #development 2022-04-08 09:57:16 +10:00
nickofolas
d728648bfa Stats tweaks 2022-04-07 18:32:11 -05:00
nickofolas
c94b4f4fd3 Initial aug page overhaul work 2022-04-07 17:53:58 -05:00
nickofolas
a9a31662ce Tweak style for stats page 2022-04-07 13:17:27 -05:00
nickofolas
3651a8d379 Add employers modal to stats page 2022-04-07 11:50:23 -05:00
nickofolas
57f04d3911 Fix prettier 2022-04-07 11:45:21 -05:00
nickofolas
ed8e1537d6 Initial overhaul work 2022-04-07 11:31:06 -05:00
nickofolas
78463ed1c0 Tweaks and improvements 2022-04-07 11:25:12 -05:00
hydroflame
6ca2bcb3fc Merge pull request #3375 from danielyxie/dev
fix aug main
2022-04-07 10:44:13 -04:00
Olivier Gagnon
51dcdc3cb6 allbuild commit dca1ceaf 2022-04-07 10:41:08 -04:00
Olivier Gagnon
dca1ceaf20 fix aug cost 2022-04-07 10:39:13 -04:00
hydroflame
3f82190859 Merge pull request #3374 from danielyxie/dev
update main
2022-04-07 10:33:30 -04:00
Martin Fournier
078a62cb0d Add npm version support to build releases
Replaces the `npm run allbuild` script with the `npm version` command.
It creates a new commit with a standardized message & includes the built
app.

Usage: `npm version [patch | minor | version | 10.0.0 | etc]`

Will update the package.json & perform a bunch of steps in a row:

- Runs `npm install` in:
  - The root directory
  - The ./electron/ directory
  - The ./tools/bump-version/ directory
- Runs `npm run test`
- Update the version string in:
  - ./electron/package.json (version)
  - ./src/Constants.ts (VersionString)
  - ./doc/source/conf.py (version & release)
- Runs `npm run doc` (build the markdown documentation)
- Runs `npm run build` (production build)
- Runs `npm run electron` (electron build)
- Runs `git add --all`
- Runs `git push -u origin dev && git push --tags`
2022-04-07 07:50:47 -04:00
Martin Fournier
cec5f1ce29 Move electron build script to /tools/
Also enables bash strict mode flags for the build script
2022-04-07 07:48:44 -04:00
Martin Fournier
452ee3da7f Move main bundle output to ./dist subfolder
Excludes the index.html so that the github page can still work as is.
This will declutter the root of the repo a fair bit.
2022-04-07 07:48:44 -04:00
phyzical
afa2210aa6 Merge branch 'dev' into bugfix/2843 2022-04-07 16:38:48 +08:00
phyzical
d24a26a208 merge dev 2022-04-07 16:37:57 +08:00
phyzical
2b0c618222 fix build error with fix for augmentations not being static 2022-04-07 16:31:31 +08:00
phyzical
c70f59ac54 merge dev 2022-04-07 16:27:23 +08:00
phyzical
43248bbc42 merge dev 2022-04-07 16:25:33 +08:00
phyzical
7cc3b85083 linting 2022-04-07 16:23:31 +08:00
phyzical
a4d221f709 missed a conflict opps 2022-04-07 16:23:26 +08:00
phyzical
85e65195e5 merg dev 2022-04-07 16:22:07 +08:00
phyzical
a4e1b73b19 Merge branch 'dev' into bugfix/3348
# Conflicts:
#	src/Faction/FactionInfo.tsx
#	src/NetscriptFunctions/Singularity.ts
2022-04-07 16:17:28 +08:00
nickofolas
314e37430d Add Augmentation unique to Grafting 2022-04-07 00:48:39 -05:00
Hedrauta
e286ee1de5 2 new Coding Contracts
also run format and lint on it this time 😉
2022-04-07 06:16:14 +02:00
TheMas3212
f0cfc8700a run formater 2022-04-07 10:23:52 +10:00
TheMas3212
8c58f0676d Improve Typesafety on API Wrapper 2022-04-07 10:23:52 +10:00
TheMas3212
40f74e4a98 add wrapped helpers to ctx
add ramcheck into wrapper
2022-04-07 10:23:52 +10:00
TheMas3212
ea2b444b87 Initial API Wrapper Work
onlying wrapping Stanek api currently as test sample
(Rebased onto upstream/dev)
2022-04-07 10:23:46 +10:00
Olivier Gagnon
7d4bf90b40 fmtlinttest 2022-04-06 20:18:25 -04:00
hydroflame
371de216ea Merge pull request #3308 from phyzical/bugfix/fix-tests
Fix tests
2022-04-06 20:16:55 -04:00
hydroflame
b6d68f7353 Merge branch 'dev' into bugfix/fix-tests 2022-04-06 20:16:51 -04:00
Olivier Gagnon
4fc352a792 fix a few test 2022-04-06 20:12:54 -04:00
Olivier Gagnon
f05b533af5 fix a few test 2022-04-06 20:08:03 -04:00
Olivier Gagnon
8ae23937fb fix a few test 2022-04-06 19:58:06 -04:00
hydroflame
c94f31fc2a Merge pull request #3369 from danielyxie/dev
fmt / fix sleep
2022-04-06 19:43:57 -04:00
Olivier Gagnon
9ce2023873 allbuild commit 724c0669 2022-04-06 19:40:04 -04:00
Olivier Gagnon
724c0669da sleep/asleep return promise true 2022-04-06 19:38:30 -04:00
Olivier Gagnon
e07a223d77 Added fmt and lint warnings to github pr template 2022-04-06 19:36:35 -04:00
Olivier Gagnon
48f80f25d6 fmt and lint 2022-04-06 19:30:08 -04:00
hydroflame
ddf0ee6d0c Merge pull request #3367 from danielyxie/dev
Few bugfix
2022-04-06 15:21:20 -04:00
Olivier Gagnon
5a25faf9fa allbuild commit ba6304fb 2022-04-06 15:06:15 -04:00
hydroflame
ba6304fbd1 Merge pull request #3351 from phyzical/bugfix/augmentations-not-reseting-correctly
changes static arrays to functions to force new creation of augmentations when called
2022-04-06 15:03:45 -04:00
hydroflame
d8b2c003c2 Merge pull request #3307 from steven-r/fix-3281
Fix 3281 - ns.goToLocation is expecting the wrong minimum RAM
2022-04-05 20:03:42 -04:00
hydroflame
d683fa5eda Merge pull request #3337 from phyzical/feature/3332
added apr1 terminal command
2022-04-05 20:02:26 -04:00
hydroflame
8e2f9a513b Merge pull request #3335 from ApamNapat/eslint_warnings_fixes
Fixed eslint warnings for unused vars
2022-04-05 20:01:58 -04:00
hydroflame
4cdef2d898 Merge pull request #3349 from phyzical/bugfix/3347
add logic to block sleeve working for gang faction
2022-04-05 20:01:02 -04:00
hydroflame
b5005cd480 Merge pull request #3352 from phyzical/feature/3258
add app id for notifications and other magic
2022-04-05 19:53:35 -04:00
hydroflame
cd33b833d5 Merge pull request #3363 from Seancheey/patch-1
Fix workForFaction invalid worktype case
2022-04-05 19:48:56 -04:00
Qiyi Shan
b9caddeeef Fix workForFaction invalid worktype case
When invalid work type, the function should return false instead of true
2022-04-05 11:22:02 -04:00
phyzical
ee6c13d33b add app id for notifications and other magic 2022-04-04 22:15:46 +08:00
phyzical
42276db351 add fix for augmentations not reseting 2022-04-04 19:50:01 +08:00
phyzical
4a5edb9f3c changes static arrays to functions to force new creation when called 2022-04-04 19:44:25 +08:00
phyzical
2ee73cc8d6 missing space 2022-04-04 18:34:07 +08:00
phyzical
dfe9e98c77 move route to terminal to the inside of the common fucntion
* tested without bandaid still works correctly
* fix default script with installAugmentations
2022-04-04 18:29:43 +08:00
phyzical
8eccdf16e1 add logic to block working for gang faction 2022-04-04 18:10:21 +08:00
Heikki Aitakangas
a7d200f7c6 Strip trailing spaces 2022-04-02 23:28:23 +03:00
Heikki Aitakangas
a6710eb3e5 No need to return WorkerScript from startNetscript*Script promises, their only calling function already has the correct object in a variable 2022-04-02 23:28:23 +03:00
Heikki Aitakangas
cbd59975d4 makeRuntimeRejectMsg expects the 'msg' to be string-like 2022-04-02 23:28:23 +03:00
Heikki Aitakangas
4fd55f099b This should not reject with ScriptDeath, the script is not being killed. Just 'undefined' isn't great either so left a TODO about improving it 2022-04-02 23:28:23 +03:00
Heikki Aitakangas
a578763b89 Use a dedicated ScriptDeath type to signal script termination instead of WorkerScript
Problem with throwing WorkerScript is that the termination signal object can pass
through user code, which permits user to modify that object and all parts of the
game state accessible through it.
2022-04-02 23:28:21 +03:00
Heikki Aitakangas
1ed1f78222 Fixed a wrong comment 2022-04-02 23:27:06 +03:00
phyzical
6f09720393 added logic to add cmd/ctrl and +, cmd/ctrl and - cmd/ctrl and 0
* added logic to atleast allow arm64 to launch due to steam incopatibility
2022-04-02 23:04:48 +08:00
phyzical
10fafd39f3 fix the amt issue for modal also 2022-04-02 20:17:30 +08:00
phyzical
a8689cb28b Merge branch 'dev' into bugfix/corp-updates 2022-04-02 20:12:19 +08:00
phyzical
61fc815a6b added apr1 terminal command
* just opens the rickroll modal
2022-04-02 20:08:57 +08:00
phyzical
0fbb8553e6 add fix for bulk buy when purchase amount exceeds warehouse size
* add logic to disable button when input is invalid
2022-04-02 19:38:26 +08:00
BB
c7a95ccb2d Fixed eslint warning for unused vars 2022-04-02 13:11:55 +02:00
phyzical
8d56c41dd6 actual fix for the reseting of limit, need to reset modal internal state 2022-04-02 13:29:56 +08:00
hydroflame
acfd164927 Merge pull request #3330 from ApamNapat/fix_makeRuntimeErrorMsg_type
Fixed type of makeRuntimeErrorMsg in INetscriptHelper
2022-04-02 01:25:06 -04:00
phyzical
fadc1de2bd added logic to not include NF in infil, bladburner, cotmg 2022-04-02 10:50:39 +08:00
phyzical
9e39ca32a5 fix text for sell shares modal text 2022-04-02 10:47:21 +08:00
Heikki Aitakangas
233289af56 Fix lint errors 2022-04-02 05:16:48 +03:00
Heikki Aitakangas
dc3b083587 Add readthedocs documentation for Shortest Path contract type 2022-04-02 04:55:15 +03:00
Heikki Aitakangas
197e875610 Set Shortest Path contract difficulty factor 2022-04-02 04:34:16 +03:00
Heikki Aitakangas
809f8f6687 Tuned Shortest Path contract generation
Now generates about 4/5 puzzles where a path exists and 1/5 with the destination
completely blocked off.
2022-04-02 04:27:42 +03:00
Heikki Aitakangas
fb0cc15794 New coding contract type: 'Shortest Path in a Grid' 2022-04-02 03:18:18 +03:00
Heikki Aitakangas
d69e94002e Add binary heap data structure 2022-04-02 03:18:18 +03:00
BB
c495d39e6b Fixed type of makeRuntimeErrorMsg in INetscriptHelper 2022-04-02 00:30:12 +02:00
Olivier Gagnon
e3e6b449d4 Make Stanek hacknet cost percentage better. 2022-04-01 16:59:23 -04:00
hydroflame
f6c3c86b7a Merge pull request #3327 from danielyxie/dev
Fix stanek initializing some fragment to -1-1
2022-04-01 16:42:09 -04:00
Olivier Gagnon
b86ff7d405 allbuild commit 6c8a46d3 2022-04-01 16:39:58 -04:00
hydroflame
9eab252cbf Merge pull request #3326 from danielyxie/dev
v1.6.3
2022-04-01 16:06:02 -04:00
Olivier Gagnon
6c8a46d38b allbuild commit 1bf12d29 2022-04-01 16:05:16 -04:00
hydroflame
1bf12d29b5 Merge pull request #3325 from danielyxie/stanek-formula-rework
stanek-formula-rework
2022-04-01 16:01:14 -04:00
Olivier Gagnon
cd09589f25 stanek-formula-rework 2022-04-01 15:45:12 -04:00
phyzical
4224c7defd fix stock price estimate text when selling 2022-04-02 00:37:42 +08:00
phyzical
50cfa99b24 fix for reseting limit production
closes #3175
2022-04-01 23:21:05 +08:00
phyzical
b73570e2f7 added the ability to mass upgrade warehouse 2022-04-01 23:19:08 +08:00
phyzical
e5bb695f6f expose material cost
closes #3173
2022-04-01 22:32:48 +08:00
phyzical
13c486d639 added logic to support material production limit
* added ns functions for limit production and limit material
closes #3180
2022-04-01 22:28:48 +08:00
phyzical
60f56a55ab move modals to a modals folder 2022-04-01 21:55:23 +08:00
phyzical
2efa3ac351 dissalow corporations when multiplier is below 0.15
closes #3003
2022-04-01 21:05:01 +08:00
phyzical
1eca9449a0 removes spaces in at start and end of product name on creation
closes #3007
2022-04-01 20:58:36 +08:00
phyzical
a1871fb0e9 add logic in dev menu to support easy corp, gang and bladeburner
closes #3205
2022-04-01 20:54:07 +08:00
phyzical
ea14646d39 added check for already expanding into city
fixes #3312
2022-04-01 19:50:21 +08:00
Steven Malis
e572c6e139 Add unassigned and training. 2022-04-01 01:44:53 -04:00
Steven Malis
bb62973905 Fix docs for employeeProd and add employeeJobs. 2022-04-01 01:37:27 -04:00
hydroflame
01122cc397 Merge pull request #3320 from danielyxie/dev
apr1
2022-04-01 01:21:11 -04:00
Olivier Gagnon
9b4750aed4 allbuild commit d9499077 2022-04-01 01:18:03 -04:00
hydroflame
d94990779f Merge pull request #3319 from danielyxie/apr1
Added apr1
2022-04-01 01:13:37 -04:00
hydroflame
fa9aa67577 Merge pull request #3315 from danielyxie/dev
Added formulas for faction
2022-03-31 15:54:39 -04:00
Olivier Gagnon
40faa6af5c allbuild commit 4b867fea 2022-03-31 15:53:38 -04:00
Olivier Gagnon
4b867fea3e rename factions formulas to reputation 2022-03-31 15:52:03 -04:00
Olivier Gagnon
565659fba9 allbuild commit f55197ea 2022-03-31 15:48:16 -04:00
hydroflame
f55197eabd Merge pull request #3314 from PSEUDOSTAGE/patch-1
Add calculateFavorToRep and calculateRepToFavor to Formulas.exe
2022-03-31 15:45:13 -04:00
PSEUDOSTAGE
a5f63e5932 fixed trailing spaces 2022-03-31 15:38:35 -04:00
PSEUDOSTAGE
ad9ff78533 Add calculateFavorToRep and calculateRepToFavor to Formulas.exe
The favorToRep and repToFavor formulas are shown to the player in the factions pages but were not available in Formulas.exe. This change adds a FactionsFormulas interface with the calculateFavorToRep and calculateRepToFavor functions.
2022-03-31 15:28:25 -04:00
PSEUDOSTAGE
a0333d36a5 Add calculateFavorToRep and calculateRepToFavor to Formulas.exe
The favorToRep and repToFavor formulas are displayed to the player in the factions pages but were not available in Formulas.exe. This change adds a FactionsFormulas interface with the calculateFavorToRep and calculateRepToFavor as new functions.
2022-03-31 15:27:02 -04:00
Olivier Gagnon
384cfb0044 Added apr1 2022-03-31 12:04:06 -04:00
hydroflame
3158c18129 Merge pull request #3310 from danielyxie/dev
Fix a few bugs
2022-03-31 10:59:54 -04:00
Olivier Gagnon
d04e05eac8 allbuild commit 5d36336d 2022-03-31 10:52:24 -04:00
Olivier Gagnon
5d36336db9 allbuild commit 65c8e2b2 2022-03-31 10:50:06 -04:00
Olivier Gagnon
65c8e2b280 Fix aug cost 2022-03-31 10:45:52 -04:00
phyzical
4232741613 change back general augment price adjustment 2022-03-31 22:40:53 +08:00
phyzical
2edfb6e35d merge base 2022-03-31 22:36:47 +08:00
phyzical
18af3f8413 moved updateRam to first call to avoid lack of mocks for tests
* added wrapper funcs to simplify updateRam
* added static parser tests and skiped what isnt worker still for next person to try and fix
2022-03-31 21:41:19 +08:00
phyzical
d56702b742 Merge branch 'feature/add-infiltration-faction' of github.com:phyzical/bitburner into feature/add-infiltration-faction 2022-03-31 19:00:35 +08:00
phyzical
5831409418 move augmentationsCreator to data
* only show multiple on purchase augmentation for non infiltrators
2022-03-31 19:00:15 +08:00
Stephen Reindl
805480693c remove unnecessary space 2022-03-31 12:46:48 +02:00
Stephen Reindl
689059ea83 Fix expected ram calculation for ns.goToLocation() 2022-03-31 12:37:33 +02:00
Olivier Gagnon
d814a81b79 allbuild commit a0361c9a 2022-03-30 21:45:52 -04:00
hydroflame
a0361c9a42 Merge pull request #3304 from danielyxie/revoke-fix
revoke-fix
2022-03-30 21:43:43 -04:00
Olivier Gagnon
3e6d1f6d95 round 2 2022-03-30 21:40:51 -04:00
Olivier Gagnon
695bca73b8 revoke-fix 2022-03-30 21:38:36 -04:00
hydroflame
c9a193dec7 Merge pull request #3271 from nickofolas/fix/grafting-pre-reqs
[Fix] Handle pre-req Augmentations in Grafting
2022-03-30 21:14:50 -04:00
nickofolas
a80693dab2 Merge branch 'dev' into fix/grafting-pre-reqs 2022-03-30 21:12:44 -04:00
hydroflame
176ddd4f0b Merge pull request #3303 from danielyxie/dev
Re-add some gang augs at random.
2022-03-30 21:00:55 -04:00
Olivier Gagnon
6dd9a4e188 allbuild commit c511fa64 2022-03-30 21:00:08 -04:00
Olivier Gagnon
c511fa644d Re-add augs in gangs but randomly based on BNx.y 2022-03-30 20:58:09 -04:00
hydroflame
ce944bfccb Merge pull request #3280 from nickofolas/improvement/filter-helper-func
[Improvement] Implement helper function for filtering Faction Augmentations
2022-03-30 20:28:31 -04:00
Jack
e11819f0fd Merge branch 'dev' into feature/add-infiltration-faction 2022-03-31 08:09:00 +08:00
hydroflame
2a0f1ddc98 Merge pull request #3248 from phyzical/bugfix/3244
recovery screen fix for when augmenting and working
2022-03-30 19:51:28 -04:00
hydroflame
d58a30a3f1 Merge pull request #3300 from bradygroharing/fix/WireCuttingFix
Fixed the dropped ! for the boolean evaluation
2022-03-30 19:48:27 -04:00
hydroflame
2b523b51f5 Merge pull request #3294 from nickofolas/fix/grafting-crash
[Fix] Grafting crash when all Augmentations owned
2022-03-30 19:48:00 -04:00
hydroflame
21f0426e99 Merge pull request #3301 from danielyxie/dev
Fix toasts
2022-03-30 19:09:37 -04:00
Olivier Gagnon
c8de32a9ec allbuild commit 4b8791e3 2022-03-30 19:01:38 -04:00
Olivier Gagnon
4b8791e329 Fix toast 2022-03-30 18:59:30 -04:00
Brady
1e928af5db Fixed the dropped ! for the boolean evaluation 2022-03-30 15:19:08 -06:00
hydroflame
8c2bfc32f8 Merge pull request #3299 from danielyxie/dev
Fix getScriptslOgs
2022-03-30 15:32:08 -04:00
Olivier Gagnon
658bfd1f23 allbuild commit b0281154 2022-03-30 15:31:19 -04:00
Olivier Gagnon
b0281154fe fix getScriptLogs 2022-03-30 15:29:25 -04:00
hydroflame
1fe24b842f Merge pull request #3297 from danielyxie/dev
Fix aug cost not updating properly
2022-03-30 15:02:52 -04:00
Olivier Gagnon
94d921512b allbuild commit ec87752e 2022-03-30 15:01:31 -04:00
Olivier Gagnon
ec87752e79 fix aug cost not properly updating 2022-03-30 14:59:53 -04:00
nickofolas
83a386584c Make compiler happy 2022-03-30 14:37:34 -04:00
nickofolas
73af73fdb4 Merge branch 'dev' of github.com:danielyxie/bitburner into improvement/filter-helper-func 2022-03-30 14:35:27 -04:00
nickofolas
a384b8af52 Fix grafting crash when all Augs owned 2022-03-30 14:29:59 -04:00
hydroflame
5413abbb7a Merge pull request #3293 from danielyxie/dev
fix is running
2022-03-30 14:15:20 -04:00
Olivier Gagnon
8812451a32 allbuild commit 432c8dd2 2022-03-30 14:14:47 -04:00
Olivier Gagnon
432c8dd206 Fix isRunning 2022-03-30 14:11:21 -04:00
hydroflame
d3a87ba0be Merge pull request #3292 from danielyxie/dev
Fix more unknown type errros
2022-03-30 13:47:10 -04:00
Olivier Gagnon
8200b62384 allbuild commit 2985cf1c 2022-03-30 13:46:07 -04:00
Olivier Gagnon
2985cf1cec fix rm 2022-03-30 13:44:24 -04:00
Olivier Gagnon
86a20b8571 allbuild commit 3458b57c 2022-03-30 13:38:53 -04:00
Olivier Gagnon
3458b57c7d fix tail 2022-03-30 13:37:10 -04:00
hydroflame
510eb39988 Merge pull request #3291 from danielyxie/dev
Fix getRunningScript
2022-03-30 13:35:55 -04:00
Olivier Gagnon
b567bdcd2b allbuild commit fdcd13c3 2022-03-30 13:34:58 -04:00
Olivier Gagnon
fdcd13c312 fix getRunnignScript 2022-03-30 13:33:04 -04:00
hydroflame
4340460a35 Merge pull request #3290 from danielyxie/dev
Fix ns.kill
2022-03-30 13:17:09 -04:00
Olivier Gagnon
f8e050ba26 allbuild commit f4a58ff5 2022-03-30 13:16:14 -04:00
hydroflame
38b15eeeba Merge pull request #3289 from danielyxie/dev
Cut grafting time in hafl.
2022-03-30 12:13:53 -04:00
Olivier Gagnon
f4a58ff5a9 allbuild commit cc4dd100 2022-03-30 12:11:41 -04:00
Olivier Gagnon
cc4dd10058 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-03-30 12:01:50 -04:00
Olivier Gagnon
6d8fbeece8 letter 2022-03-30 12:01:47 -04:00
hydroflame
8354ba2314 Merge pull request #3286 from phyzical/bugfix/fix-max-warehouse-bulk-purchase
incorrect ternary with bulk purchase
2022-03-30 11:34:48 -04:00
Olivier Gagnon
73023f4f3c Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-03-30 11:34:07 -04:00
Olivier Gagnon
98ae97afea Validate city name coming from netscript 2022-03-30 11:34:03 -04:00
phyzical
3c991a743c incorrect ternary 2022-03-30 23:33:45 +08:00
hydroflame
034f3fd07d Merge pull request #3285 from HeinousTugboat/htugboat/fix-param-block-template
Removes extra asterisk in template
2022-03-30 10:30:17 -04:00
phyzical
64d095e911 change to any for ns location 2022-03-30 22:24:19 +08:00
Heinous Tugboat
9b0422f9ee Removes extra asterisk in template 2022-03-30 10:18:07 -04:00
phyzical
5486398199 fix prices of augments reseting when refreshing the game 2022-03-30 21:58:27 +08:00
phyzical
6f5d22c1bd fix for off by one with neruflux 2022-03-30 21:53:53 +08:00
phyzical
ee45f91960 move back to original spot 2022-03-30 19:17:24 +08:00
phyzical
7338bb6766 fix for neruflux pricing i think.. 2022-03-30 19:14:51 +08:00
phyzical
a4cd3ad38d minor adjustments to where getNerufluxGenerator is after merge base 2022-03-30 19:13:44 +08:00
phyzical
be24562d34 merge dev 2022-03-30 19:11:34 +08:00
phyzical
07c6051004 merge dev 2022-03-30 19:00:57 +08:00
Olivier Gagnon
ab93cfa887 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-03-30 00:18:05 -04:00
Olivier Gagnon
95f7112987 typo 2022-03-30 00:18:02 -04:00
hydroflame
0e89017794 Merge pull request #3246 from phyzical/refactor-more-key-codes
slice out event key constant refactors
2022-03-30 00:12:36 -04:00
Olivier Gagnon
93f5249916 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-03-29 23:49:46 -04:00
Olivier Gagnon
6d591db0d2 Fix NF not working. 2022-03-29 23:49:39 -04:00
hydroflame
80d5132291 Merge pull request #3245 from phyzical/augmentation-refactors
slice out refactor of augmenation realted stuff from new faction pr
2022-03-29 23:47:27 -04:00
Olivier Gagnon
12d5f55aec unknown-ify the rest of the basic API. 2022-03-29 22:14:56 -04:00
Olivier Gagnon
aa0425a23d unknown-ify half the basic API. 2022-03-29 21:42:27 -04:00
nickofolas
5d27ce7aa3 Impl faction augs filter helper function 2022-03-29 21:10:07 -04:00
Olivier Gagnon
cd1f01846f unknown-ify bladeburner API. 2022-03-29 20:44:27 -04:00
phyzical
b3a52c6224 one minor compile issue 2022-03-30 08:36:27 +08:00
Olivier Gagnon
4d9a8e7bba unknown-ify coding contract API. 2022-03-29 20:29:05 -04:00
Jack
b79f466395 Merge branch 'dev' into bugfix/2958 2022-03-30 08:26:18 +08:00
Olivier Gagnon
6c9a3a336e unknown-ify corp API. 2022-03-29 20:24:04 -04:00
phyzical
6c530202b2 missed one file removal 2022-03-30 08:19:25 +08:00
phyzical
cee53ee1a7 merge base 2022-03-30 08:18:16 +08:00
Olivier Gagnon
c1401bef27 unknown-ify the gang API. 2022-03-29 20:12:55 -04:00
Olivier Gagnon
bbbaa89f74 unknown-ify singularity API 2022-03-29 20:05:40 -04:00
Olivier Gagnon
725c8234c9 unknown-ify the singularity API. 2022-03-29 19:49:37 -04:00
hydroflame
fa18ee63a2 Merge pull request #3276 from danielyxie/dev
Fix some ram costs.
2022-03-29 18:37:40 -04:00
Olivier Gagnon
cccd39456c allbuild commit 6b25ba5c 2022-03-29 18:28:52 -04:00
dependabot[bot]
7b278930a5 Bump electron from 14.0.2 to 14.2.4
Bumps [electron](https://github.com/electron/electron) from 14.0.2 to 14.2.4.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v14.0.2...v14.2.4)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-29 22:14:36 +00:00
Olivier Gagnon
6b25ba5cd8 allbuild commit da27223a 2022-03-29 18:13:08 -04:00
hydroflame
da27223a9b Merge pull request #3272 from jjclark1982/patch-3
Update RamCostGenerator
2022-03-29 18:06:20 -04:00
hydroflame
78c1af79e8 Merge pull request #3275 from danielyxie/dev
Re-add TRP in gang and make .singularity a namespace.
2022-03-29 18:03:25 -04:00
Olivier Gagnon
48e73a9131 allbuild commit /usr/bin/git 2022-03-29 18:00:57 -04:00
Olivier Gagnon
a6e256ad5a Step 1 of moving singularity functions 2022-03-29 17:48:45 -04:00
Jesse Clark
fcc121cc21 Fix spelling of grafting functions 2022-03-29 14:34:48 -07:00
Jesse Clark
cde6eca6b5 Set mv ram cost to ScriptReadWriteRamCost
This seems a bit high but avoids an exploit due to setting it lower than `rm`.
2022-03-29 14:27:30 -07:00
Jesse Clark
1d0c5d8fef Set atExit ram cost to 0 2022-03-29 14:24:38 -07:00
hydroflame
c793965a4b Merge pull request #3273 from danielyxie/dev
Remove tail window search
2022-03-29 17:20:20 -04:00
Olivier Gagnon
1789e1b745 allbuild commit /usr/bin/git 2022-03-29 17:19:14 -04:00
Jesse Clark
4d48b7c621 Update Stanek functions in RamCostGenerator 2022-03-29 14:17:42 -07:00
nickofolas
4f7b44df39 Handle pre-requisite augmentations 2022-03-29 17:09:36 -04:00
hydroflame
c3fd002644 Merge pull request #3270 from danielyxie/dev
Documentation generation
2022-03-29 15:50:20 -04:00
Olivier Gagnon
24ede1c68d allbuild commit /usr/bin/git 2022-03-29 15:49:31 -04:00
Olivier Gagnon
8dcd60289c allbuild commit /usr/bin/git 2022-03-29 15:45:50 -04:00
hydroflame
8ccf5a2d43 Merge pull request #3269 from danielyxie/dev
v1.6.0
2022-03-29 15:37:55 -04:00
Olivier Gagnon
7569a6d189 allbuild commit /usr/bin/git 2022-03-29 15:35:10 -04:00
Olivier Gagnon
05cf27d3d0 Final fix for 1.6 2022-03-29 15:33:22 -04:00
dependabot[bot]
3126dc55b2 Bump plist from 3.0.4 to 3.0.5
Bumps [plist](https://github.com/TooTallNate/node-plist) from 3.0.4 to 3.0.5.
- [Release notes](https://github.com/TooTallNate/node-plist/releases)
- [Changelog](https://github.com/TooTallNate/plist.js/blob/master/History.md)
- [Commits](https://github.com/TooTallNate/node-plist/commits)

---
updated-dependencies:
- dependency-name: plist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-29 19:32:40 +00:00
dependabot[bot]
d51a0dfd97 Bump minimist from 1.2.5 to 1.2.6
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-29 19:32:29 +00:00
Olivier Gagnon
ac34829649 pre-1.6 2022-03-29 15:30:22 -04:00
Olivier Gagnon
443b0b6a89 rename functions in staneks gift 2022-03-29 14:20:40 -04:00
Olivier Gagnon
6e12e3a85b typo 2022-03-29 14:09:52 -04:00
Olivier Gagnon
680081c548 post-grafting changes 2022-03-29 14:09:17 -04:00
hydroflame
fb1bce579f Merge pull request #3170 from nickofolas/feature/grafting
[Feature] Grafting
2022-03-29 13:25:41 -04:00
phyzical
79238ea5e9 fix for augmentation pricing 2022-03-29 23:42:57 +08:00
hydroflame
346ffa259b Merge pull request #3250 from MartinFournier/feat/warn-autosave-off
Add a warning triggered while auto-saves are off
2022-03-29 11:30:15 -04:00
hydroflame
c618e71a9a Merge pull request #3251 from waffleattack/patch-7
Clarified error message
2022-03-29 11:27:50 -04:00
hydroflame
3456acc6a8 Update connect.ts 2022-03-29 11:27:34 -04:00
hydroflame
4a6d1c67c8 Merge pull request #3249 from ApamNapat/fix_field_analysis_log
Log info for field analysis now displays actual rank gained
2022-03-29 11:10:53 -04:00
hydroflame
ae427f11d5 Merge pull request #3253 from DavidGrinberg/purchase-tor-router-return
purchaseTor() should returns true if player already has Tor
2022-03-29 11:07:35 -04:00
hydroflame
46f23836e1 Merge pull request #3256 from nanogyth/patch-2
[Doc] Update Injecting HTML guide
2022-03-29 11:06:58 -04:00
phyzical
fd64746ff8 various fixes and adjustments 2022-03-29 22:43:28 +08:00
Thomas B
0a9bded0d8 Clarify Error Message
Co-authored-by: ApamNapat <ApamNapat@users.noreply.github.com>
2022-03-28 08:33:05 -04:00
nickofolas
bd3f256536 Update doc for some grafting API funcs 2022-03-27 15:44:25 -04:00
nickofolas
5890ce0cf1 Cleanup comments in Constants.ts 2022-03-27 15:40:24 -04:00
nickofolas
3b32811f5e Grafting API RAM cost & doc update 2022-03-27 15:33:31 -04:00
nickofolas
9f6c827dee Properly return false from craftAug 2022-03-27 15:33:03 -04:00
nickofolas
2aaf880e27 Fix oversight in WIPRoot 2022-03-27 15:23:35 -04:00
nanogyth
5ef041a5db [Doc] Update Injecting HTML guide
keyCode is deprecated, method in doc doesn't work
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode

Updating with "modern" method
key:'Enter'
2022-03-27 08:47:47 -04:00
phyzical
7c5097ee83 added ns functions
* refactored out logic to be reused by api
2022-03-27 15:53:13 +08:00
phyzical
aa3b692aac Merge branch 'feature/add-infiltration-faction' of github.com:phyzical/bitburner into feature/add-infiltration-faction 2022-03-27 12:27:56 +08:00
phyzical
7f28158005 moved over to player stats
* added new augmentations
2022-03-27 12:26:43 +08:00
DavidGrinberg
4497fbdda0 Update documentation for purchaseTor
Reflect the changes to the logic
2022-03-25 23:02:23 -04:00
Jack
557f0d8bff Merge branch 'dev' into feature/add-infiltration-faction 2022-03-26 10:59:24 +08:00
phyzical
e11cc1946e UP_ARROW fix 2022-03-26 10:58:28 +08:00
phyzical
d94f391dc6 fix augmentation side effect for bribe game
fix double tick for wire cutting game
2022-03-26 10:50:28 +08:00
DavidGrinberg
c6a2664296 purchaseTor returns true if player already has tor
Change `purchaseTor` to return `true` if the player already has purchased Tor. Previously it would return `false`

Changing this to true puts the behavior inline with the already existing behavior of `purchaseProgram`, which returns true if you have already purchased the program. Additionally this lets us call `purcahseTor` with the same logic that we use to call `purchaseProgram`
2022-03-25 13:06:12 -04:00
phyzical
a0d845ffae mini game fixes 2022-03-25 23:39:14 +08:00
Thomas B
fe0b6d5982 Clarified error message 2022-03-25 09:41:23 -04:00
Martin Fournier
2262d6d8dd Add a warning triggered while auto-saves are off
The check auto-save engine loop will show a warning toast if the auto-saves are disabled (at 0s) and not suppressed. This warning includes a button to re-enable them.

Adds a user setting to suppress those warnings.
Adds information to save button tooltip.
2022-03-25 09:18:35 -04:00
Jack
57b59de9be fix arrows 2022-03-25 20:10:20 +08:00
phyzical
e69bb21b5c Merge branch 'feature/add-infiltration-faction' of github.com:phyzical/bitburner into feature/add-infiltration-faction 2022-03-25 19:56:15 +08:00
BB
2bdc00bc9e Log info for field analysis now displays actual rank gained instead of 0.1 regardless of modifiers 2022-03-24 19:00:38 +01:00
phyzical
2bebb4e228 reroute to terminal instead 2022-03-24 23:20:11 +08:00
phyzical
6ad2f156d7 recovery screen fix for when augmenting and working 2022-03-24 23:13:54 +08:00
Tomas Pavlik
f439f960b7 Accept valid JSON arrays in coding contracts 2022-03-24 16:13:13 +01:00
phyzical
c681828ec1 few more event key. constant refactors 2022-03-24 23:09:24 +08:00
phyzical
a65c82ff22 slice out refactor of augmenation realted stuff from new faction pr
* moved some of augmentation helper stuff to new file augmentation creator
* simplified init augmenations
* converted augmentation names to enum
2022-03-24 22:33:38 +08:00
Jack
f0bf01680b Update src/Infiltration/ui/WireCuttingGame.tsx 2022-03-24 22:26:24 +08:00
Jack
f2095e35c2 a revert 2022-03-24 22:15:36 +08:00
phyzical
ef06bc30e5 missed refactor 2022-03-24 21:56:53 +08:00
phyzical
d80346f816 incorrect import 2022-03-24 21:52:27 +08:00
phyzical
e8fffc6183 added two additonal augmentations
* refactored augmentation names to enum
2022-03-24 21:19:49 +08:00
nickofolas
b437adb16c Simplify API check 2022-03-23 15:48:39 -05:00
nickofolas
973ff5da7a Update RTD to mention Grafting API 2022-03-23 12:40:02 -05:00
nickofolas
3476f0f0eb Grafting API (no RAM costs yet) 2022-03-23 12:35:15 -05:00
nickofolas
1c696b5518 Update purchaseAugmentation rules 2022-03-23 12:04:49 -05:00
nickofolas
96dd059f28 Update BN10 docs 2022-03-23 11:35:56 -05:00
nickofolas
6a8426abd2 Allow every aug in gangs in BN2 2022-03-23 11:17:03 -05:00
nickofolas
5416038fd7 Merge branch 'dev' of github.com:danielyxie/bitburner into feature/grafting 2022-03-23 11:10:18 -05:00
phyzical
80edb744bf added logic to rewward and invite to infiltrators on infil completion 2022-03-23 23:23:01 +08:00
phyzical
0b171822df more updates
* added more keycodes constant support
* implemented new faction mechanics for mini games
* more small refactors
2022-03-23 22:31:56 +08:00
nickofolas
3df3e04f9c Formulas 2022-03-22 17:53:57 -05:00
phyzical
4e73e489ed more refactors 2022-03-22 23:02:15 +08:00
hydroflame
1c801c5651 Merge pull request #3217 from phyzical/bugfix/dom-nesting-error-with-ul
fix for dom nesting with elements like ul
2022-03-22 10:46:35 -04:00
hydroflame
3af0a32436 Merge pull request #3222 from MartinFournier/chore/rm-unused
Remove old & unused files from repository
2022-03-22 10:43:16 -04:00
hydroflame
6905651b22 Merge pull request #3219 from phyzical/bugfix/1775-2
fix to log manager take 2
2022-03-22 10:42:21 -04:00
hydroflame
4c64863314 Merge pull request #3220 from phyzical/bugfix/3214
add similar sort to the faction joined list
2022-03-22 10:41:59 -04:00
hydroflame
9cb2189f8a Merge pull request #3227 from MartinFournier/feat/check-generated-files
Add GitHub action to check PRs for generated files
2022-03-22 10:41:07 -04:00
hydroflame
2edc01776d Merge pull request #3225 from waffleattack/patch-6
Cap Staneks gift at 25x25 to prevent crashes
2022-03-22 10:37:04 -04:00
Olivier Gagnon
1fae48e1ce lint 2022-03-22 10:36:56 -04:00
Olivier Gagnon
1ad27bb95e lint 2022-03-22 10:36:01 -04:00
hydroflame
22fe13e267 Merge pull request #3230 from ApamNapat/fix_skill_point_cost_description
Removed BladeburnerSkillCost from skill point cost description
2022-03-22 10:35:35 -04:00
phyzical
673222eaf8 update new augmentation outcomes 2022-03-22 21:30:38 +08:00
Thomas B
5d2f2d4373 Update StaneksGift.ts 2022-03-22 08:38:28 -04:00
Thomas B
8b8b098fb6 Update Constants.ts 2022-03-22 08:37:11 -04:00
Thomas B
70306ce61b Merge branch 'danielyxie:dev' into patch-6 2022-03-22 08:36:11 -04:00
Thomas B
67ca1fc3e5 Update Constants.ts 2022-03-22 08:35:22 -04:00
phyzical
5ede4a70db removed unused imports 2022-03-22 19:48:18 +08:00
phyzical
78c0cac50b reafactored augmentations helpers to have another file it was getting tooooo big
reused duplicated code
2022-03-22 19:24:32 +08:00
BB
961a887c56 Removed BladeburnerSkillCost from skill point cost description 2022-03-22 02:09:31 +01:00
hydroflame
4cba813fe4 Merge pull request #3229 from danielyxie/dev
Fix keyboard bug
2022-03-21 20:02:55 -04:00
Olivier Gagnon
2d2c73dbbb allbuild commit /usr/bin/git 2022-03-21 20:02:13 -04:00
hydroflame
aabb764d81 Merge pull request #3228 from dowinter/fix_bladeburner_console#3215
Fix handling for UpArrow in bladeburner console #3215
2022-03-21 19:59:01 -04:00
Dominik Winter
14cdff5edd fix handling for UpArrow in bladeburner console 2022-03-21 21:32:07 +01:00
nickofolas
d6e0180116 Add confirmation modal to crafting 2022-03-21 14:54:39 -05:00
nickofolas
16fa4c8d7f Update BN10 description 2022-03-21 14:44:50 -05:00
nickofolas
720e2112c6 prettier and remove formulas dir 2022-03-21 14:40:17 -05:00
nickofolas
010a4f1aa3 Fix Entropy application after grafting 2022-03-21 14:30:03 -05:00
nickofolas
c68093f71c Show Entropy in Augmentations page 2022-03-21 14:25:58 -05:00
Martin Fournier
efb697bff9 Add GitHub action to check PRs for generated files
Checks and warns the user if he includes files in /dist or /markdown.
2022-03-21 13:53:29 -04:00
Thomas B
9381cb4a67 Cap Stanek at 25x25 2022-03-21 12:46:38 -04:00
nickofolas
59a67c0f93 Update Entropy lore 2022-03-21 11:44:58 -05:00
Thomas B
a57042276b Cap Staneks Gift at 25x25 2022-03-21 12:44:26 -04:00
nickofolas
d820625721 Remove fragment and fix typo 2022-03-21 11:17:06 -05:00
nickofolas
dfca624e35 Merge branch 'dev' of github.com:danielyxie/bitburner into feature/grafting 2022-03-21 11:08:48 -05:00
phyzical
dc9c05b345 another multipler based on purchases 2022-03-21 23:17:52 +08:00
phyzical
7d647c0b1b added startinRepRequirement for multiplying
added logic to increase ost based on amount of infiltators augmentations purchased
removed some copyright issues
2022-03-21 23:17:36 +08:00
Jack
4c862ef313 Update src/Faction/ui/FactionsRoot.tsx 2022-03-21 23:11:04 +08:00
phyzical
796881f35d fix the correct base point for sorting 2022-03-21 21:23:34 +08:00
phyzical
e7e52663bc merge dev 2022-03-21 21:01:31 +08:00
phyzical
c6accf1eaf merge base 2022-03-21 21:00:51 +08:00
phyzical
5532b81285 add similar sort to the faction invite list 2022-03-21 20:13:28 +08:00
phyzical
54e8f701a1 change to 100 ms 2022-03-21 20:02:59 +08:00
phyzical
7271f37ec5 added logic to pick up log when its closed via event emotter 2022-03-21 19:56:54 +08:00
Martin Fournier
28f11a3211 Remove unused files 2022-03-21 07:48:07 -04:00
phyzical
14b4b08294 fix for dom nesting with elements like ul 2022-03-21 19:17:12 +08:00
hydroflame
4b7b34833b Merge pull request #3213 from danielyxie/dev
critical bug fix
2022-03-21 00:32:32 -04:00
Olivier Gagnon
ca02bdefd1 allbuild commit /usr/bin/git 2022-03-21 00:32:06 -04:00
Olivier Gagnon
0171fc236c Fix some augs not getting added. 2022-03-21 00:30:11 -04:00
hydroflame
01a2530863 Merge pull request #3211 from danielyxie/dev
Little fixes and PRs
2022-03-20 23:31:11 -04:00
Olivier Gagnon
9104c54d96 allbuild commit /usr/bin/git 2022-03-20 23:29:48 -04:00
Olivier Gagnon
699ae2e967 with SLEEVE_8, fix workForFaction 2022-03-20 23:27:53 -04:00
Olivier Gagnon
05fe14a5ed Fix some key not working 2022-03-20 23:11:26 -04:00
phyzical
b4260173e7 more intial infil aug changes 2022-03-21 10:53:36 +08:00
hydroflame
81d1c02fdf Merge pull request #3210 from danielyxie/prettier-ci
Added dark web functions to ns api
2022-03-20 22:50:42 -04:00
Olivier Gagnon
fb7c65957d Added dark web functions to ns api 2022-03-20 22:49:46 -04:00
hydroflame
e56f7356cd Merge pull request #2883 from chrisrabe/fix/hackanalyzethreads-infinity
fix: fixed hackAnalyzeThreads returning infinity
2022-03-20 22:23:15 -04:00
hydroflame
ecffc8655a Merge pull request #3209 from danielyxie/prettier-ci
prettier ci
2022-03-20 22:21:00 -04:00
Olivier Gagnon
00d1d294ed fix lint errors 2022-03-20 22:14:32 -04:00
Olivier Gagnon
fb93d97493 change name of ci step 2022-03-20 22:03:11 -04:00
Olivier Gagnon
901ee92fe9 prettier ci 2022-03-20 22:02:36 -04:00
hydroflame
8506dcfed5 Merge pull request #3115 from ApamNapat/remove_unreachable_code
Removed unreachable code
2022-03-20 21:46:23 -04:00
hydroflame
290f36b600 Merge pull request #2881 from dwRchyngqxs/reverse_grow_newton
growthAnalyze (choice 2 / documented math) - only merge one of these
2022-03-20 21:40:02 -04:00
hydroflame
9eee30170f Merge pull request #3189 from Master-Guy/issues/2725
dialogBox+stop on NS1 async function throw
2022-03-20 21:27:57 -04:00
hydroflame
04d45a1f0e Merge pull request #3192 from gianfun/check-corp-upgrade-before-purchase
Check before unlocking corp upgrade
2022-03-20 21:27:21 -04:00
Olivier Gagnon
10f7d0ebbc fix react error 2022-03-20 21:26:10 -04:00
Olivier Gagnon
edb347e566 rm current task from gang 2022-03-20 21:22:21 -04:00
hydroflame
2ad1016df8 Merge pull request #3191 from phyzical/feature/aug-simplification
augment simplification
2022-03-20 21:18:35 -04:00
hydroflame
15fae213ab Merge pull request #2872 from SagePtr/getserver-hasownproperty
Add hasOwnProperty check to GetServer
2022-03-20 21:16:04 -04:00
hydroflame
27603e7a66 Merge pull request #2739 from surdaft/bugfix/2734-theme-apply-fails
WIP: 2734: Fix regex to enable alpha transparency hex codes (8 digits)
2022-03-20 21:14:50 -04:00
hydroflame
251aa6d862 Merge pull request #2848 from SagePtr/share-change
[Balance] Add CalculateShareMult to Field Work and Security Work
2022-03-20 21:14:03 -04:00
BB
9c9550ad42 Removed unreachable code 2022-03-20 19:33:10 +01:00
hydroflame
7b075f31ee Merge pull request #2868 from zeddrak/patch-4
(Not Tested) Show current task on gang management screen
2022-03-20 14:28:52 -04:00
hydroflame
b295dd084d Merge pull request #2878 from phyzical/bugfix/fix-ui-gang-member-task
Fix for ui of gang members current task when set via api
2022-03-20 14:25:23 -04:00
hydroflame
a980cb495f Merge pull request #3150 from Master-Guy/issues/3080
Fixed number formatting and added tests
2022-03-20 14:23:16 -04:00
hydroflame
1a339a9611 Merge pull request #3156 from Master-Guy/issues/2308
Changed .keyCode to .key for files in "src"
2022-03-20 14:22:38 -04:00
hydroflame
9922ffb3c2 Merge branch 'dev' into issues/2308 2022-03-20 14:22:32 -04:00
hydroflame
d2dedace2e Merge pull request #3152 from Master-Guy/issues/1944
Issues/1944
2022-03-20 14:21:28 -04:00
hydroflame
8faacfc4ef Merge pull request #3158 from Master-Guy/features/2462
Tabelize linked output of `ls`
2022-03-20 14:20:53 -04:00
Olivier Gagnon
0fbcc30555 rm unused improt 2022-03-20 14:20:17 -04:00
hydroflame
a88b7fbaa1 Merge pull request #3204 from danielyxie/revert-3195-issue-3194
Revert "Fix #3194: include all division employees in small town achievement calc"
2022-03-20 14:16:10 -04:00
hydroflame
7a2bf64fce Revert "Fix #3194: include all division employees in small town achievement calc" 2022-03-20 14:16:03 -04:00
hydroflame
21cab81ba6 Merge pull request #3195 from BrianLDev/issue-3194
Fix #3194: include all division employees in small town achievement calc
2022-03-20 14:15:37 -04:00
hydroflame
7e3a5e76c3 Merge pull request #3193 from t-wolfeadam/feature/corp-api-bonustime
Implement getBonusTime in Corporation API
2022-03-20 14:13:35 -04:00
hydroflame
629707dc32 Merge pull request #3199 from phyzical/bugfix/fix-sleeve-shock-check
purchaseSleeveAug
2022-03-20 14:13:17 -04:00
hydroflame
97685ac7b4 Merge pull request #3200 from phyzical/bugfix/combine-no-faction-check
combine !faction check modals
2022-03-20 14:11:30 -04:00
hydroflame
add2320b98 Merge pull request #3201 from Ornedan/issue-3198
Fix #3198: give player code a copy of Division.upgrades instead of the live object
2022-03-20 14:11:03 -04:00
Heikki Aitakangas
f6a9bd1de7 Fix #3198: give player code a copy of Division.upgrades instead of the live object 2022-03-20 15:12:21 +02:00
phyzical
dc5f709223 combine !faction check modals 2022-03-20 20:58:42 +08:00
phyzical
7fdbc81594 used the getSleeveStats as it seems to be a miss connection between whats displayed and whats used
i.e sleeve.shock of 100 is actually a shock value of 0 for the use
2022-03-20 20:56:33 +08:00
phyzical
58e3ecbf69 added inital augs 2022-03-20 20:47:59 +08:00
Brian Leip
07a3f3b753 Fix #3194: include all division employees in small town achievement calc 2022-03-19 15:28:37 -07:00
t.wolfeadam
5702cb04b6 Implement getBonusTime in Corporation
Used documentation from other 'getBonusTime' methods
2022-03-19 15:22:29 -05:00
Gian P
8be65faf9f Check before unlocking corp upgrade 2022-03-19 16:53:28 -03:00
nickofolas
3aa0b6b948 Merge branch 'dev' of github.com:danielyxie/bitburner into feature/grafting 2022-03-19 14:16:20 -05:00
nickofolas
1f4f13c8ef Main grafting exposition 2022-03-19 14:12:58 -05:00
nickofolas
4c422347d4 Polish entropy
- Also adds DevMenu entry
2022-03-19 13:59:34 -05:00
phyzical
a25fdb9f75 updated factionInfo 2022-03-20 02:41:13 +08:00
phyzical
b8556c34fb Merge branch 'feature/aug-simplification' into feature/add-infiltration-faction 2022-03-20 02:40:15 +08:00
phyzical
7008919724 augment simplification 2022-03-20 02:29:20 +08:00
hydroflame
07c64b684c Merge pull request #3190 from danielyxie/dev
few bugfix
2022-03-19 14:25:09 -04:00
nickofolas
c92b159580 Implement entropy accumulation system 2022-03-19 13:15:31 -05:00
Master-Guy
7ec1ced729 dialogBox+stop on NS1 async function throw 2022-03-19 18:21:18 +01:00
Olivier Gagnon
f801dc6d8a allbuild commit /usr/bin/git 2022-03-19 12:58:18 -04:00
nickofolas
c33c23700e Remove resleeving from code 2022-03-19 11:43:58 -05:00
Master-Guy
91841836c9 One more IP reference 2022-03-19 17:35:55 +01:00
nickofolas
a70969df14 Add back button to GraftingRoot 2022-03-19 11:17:28 -05:00
nickofolas
d2dd88c5ca Polish some UI 2022-03-19 11:04:15 -05:00
nickofolas
fef5ab31b2 Implement CraftableAugmentation 2022-03-19 11:03:18 -05:00
phyzical
8d83c27077 Merge branch 'dev' into feature/add-infiltration-faction 2022-03-19 23:56:46 +08:00
phyzical
e5f5ea413b added inital factions for infiltrators 2022-03-19 23:56:29 +08:00
nickofolas
dc5b925f65 Merge branch 'dev' of github.com:danielyxie/bitburner into feature/grafting 2022-03-19 10:38:21 -05:00
Olivier Gagnon
cbeb6d13d3 fix misnamed factions 2022-03-19 11:37:13 -04:00
nickofolas
c5d86fba4d Merge branch 'dev' of github.com:danielyxie/bitburner into feature/grafting 2022-03-19 10:27:49 -05:00
hydroflame
15badafd37 Merge pull request #3184 from nickofolas/improvement/sleeve-and-clash-ui
Sleeve and Territory UI refresh
2022-03-19 11:23:28 -04:00
Master-Guy
bcb44c6a02 Removed un-used imports from tests 2022-03-19 16:23:10 +01:00
Olivier Gagnon
bdb4d96f43 fix tooltip not dissapearing. 2022-03-19 11:19:59 -04:00
hydroflame
e3bf2d4d42 Merge pull request #3181 from incubusnb/WseAndTix
Wse and tix
2022-03-19 11:13:28 -04:00
hydroflame
9c3c07f786 Merge pull request #3183 from phyzical/feature/update-constants
Update constants
2022-03-19 11:12:43 -04:00
nickofolas
4789455b9c Implement basic crafting functionality 2022-03-19 09:31:48 -05:00
nickofolas
78f962318c Add router to grafting root 2022-03-19 08:56:02 -05:00
nickofolas
06425d6d63 Implement new aug filtering for gangs 2022-03-19 08:43:30 -05:00
phyzical
44ea479043 update constants
* added OperationNames
* added faction names
* used citynames where appropriate
2022-03-19 16:09:59 +08:00
parax
458f02051f Added functions to RamCostGenerator.ts 2022-03-18 23:52:13 -06:00
parax
ac38e715aa Fixed Lint Errors 2022-03-18 22:52:09 -06:00
parax
daadecb4e6 Removed requirement to already have WSE access 2022-03-18 22:33:22 -06:00
nickofolas
5918e12f01 Merge branch 'dev' of github.com:danielyxie/bitburner into feature/grafting 2022-03-18 23:23:11 -05:00
nickofolas
919f8480dd Grafting UI framework 2022-03-18 23:22:21 -05:00
hydroflame
adf2615784 Merge pull request #3179 from danielyxie/unique
add info to augs
2022-03-19 00:18:00 -04:00
Olivier Gagnon
8411fa6fcf rm unused function 2022-03-19 00:16:20 -04:00
Olivier Gagnon
a0cf44ad6a add info to augs 2022-03-19 00:15:24 -04:00
parax
e46c67a78a Added NS functions to buy WSE and TIX 2022-03-18 21:58:18 -06:00
hydroflame
77cb7dd775 Merge pull request #3176 from incubusnb/Sleeve
Fixed: purchaseSleeveAug checks shock value
2022-03-18 23:43:43 -04:00
parax
f04ee5a65c Linted file 2022-03-18 21:37:59 -06:00
hydroflame
fd94a1fa69 Merge pull request #3178 from TheMas3212/fix/missing-tFormat-ramcost
Fix bug with missing ramcost for tFormat
2022-03-18 23:32:40 -04:00
hydroflame
5a860ae5b0 Merge pull request #3171 from jacktose-forks/patch-1
re-add pre tags to support \n in prompt
2022-03-18 23:31:26 -04:00
TheMas3212
68cc5fba6c Fix bug with missing ramcost for tFormat 2022-03-19 14:21:52 +11:00
parax
8b52e2ef3d Fixed: purchaseSleeveAug checks shock value 2022-03-18 20:30:54 -06:00
Jack Haden-Enneking
a8064f739e re-add pre tags to support \n in prompt
#2880 was merged after #2968, causing a regression of #2520. This reapplies the small change from #2968 (thank you @phyzical).
2022-03-18 14:13:21 -07:00
Olivier Gagnon
fc963bb583 allbuild commit /usr/bin/git 2022-03-18 16:35:56 -04:00
hydroflame
e38621cd1a Merge pull request #3169 from danielyxie/dev
Fix bug with hacknet api
2022-03-18 11:18:55 -04:00
Olivier Gagnon
06b2ec8957 allbuild commit /usr/bin/git 2022-03-18 11:18:08 -04:00
Master-Guy
3f1f275581 Renamed new function to largestAbsoluteNumber() 2022-03-18 13:03:13 +01:00
Master-Guy
8bf0641d28 Recently changed file 2022-03-18 11:15:51 +01:00
Master-Guy
9373d65a16 Merge branch 'danielyxie:dev' into issues/2308 2022-03-18 11:12:21 +01:00
Master-Guy
d4f01c8b40 Fix for SRC folder 2022-03-18 11:07:29 +01:00
Master-Guy
65832e72d2 Merge branch 'issues/2308' of https://github.com/Master-Guy/bitburner-1 into issues/2308 2022-03-18 10:49:23 +01:00
Master-Guy
9dd933ecee Changed .keyCode to .key for files in "src" 2022-03-18 10:43:56 +01:00
Master-Guy
1d07bf049f Changed the furthestFrom0() function + added tests 2022-03-18 09:30:25 +01:00
hydroflame
7128330bf5 Merge pull request #3165 from danielyxie/dev
Fix crash with new prompt
2022-03-17 18:18:21 -04:00
Olivier Gagnon
bfa30dcdbb allbuild commit /usr/bin/git 2022-03-17 18:17:19 -04:00
hydroflame
28ab283020 Merge pull request #3164 from danielyxie/dev
Fix spendHashes bug
2022-03-17 17:54:26 -04:00
Olivier Gagnon
f17e685744 allbuild commit /usr/bin/git 2022-03-17 17:52:58 -04:00
Master-Guy
2871bba379 Review comments by ApamNapat 2022-03-17 22:25:30 +01:00
hydroflame
aa6c044ab6 Merge pull request #3163 from danielyxie/dev
update doc
2022-03-17 16:51:03 -04:00
Olivier Gagnon
ceb2a48d9f update doc 2022-03-17 16:50:46 -04:00
hydroflame
7afc7d5c78 Merge pull request #3162 from danielyxie/dev
Few fixes
2022-03-17 16:48:47 -04:00
Olivier Gagnon
ed46ef319c allbuild commit /usr/bin/git 2022-03-17 16:47:35 -04:00
Olivier Gagnon
3cdf0452a4 fix up the new prompt UI 2022-03-17 16:44:44 -04:00
hydroflame
88df76a868 Merge pull request #2880 from PhilipArmstead/prompt-additions
Adding support for text/select options in Prompt command
2022-03-17 15:38:45 -04:00
hydroflame
83ef5a940b Merge branch 'dev' into prompt-additions 2022-03-17 15:38:13 -04:00
Olivier Gagnon
726e9f38cb Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-03-17 14:00:27 -04:00
Olivier Gagnon
8c9603d903 more unknown 2022-03-17 14:00:22 -04:00
Master-Guy
e0377980a5 Merge branch 'dev' into issues/1944 2022-03-17 18:29:18 +01:00
Master-Guy
a575c0cfe3 Tabelize linked output of ls 2022-03-17 17:50:39 +01:00
hydroflame
2411aac1b0 Merge pull request #3153 from Master-Guy/issues/3139
Fix typo
2022-03-17 12:05:57 -04:00
hydroflame
56c2fc5ca8 Merge pull request #3155 from phyzical/bugfix/2877-2
removed ip references
2022-03-17 12:05:44 -04:00
hydroflame
561219a0ab Merge branch 'dev' into bugfix/2877-2 2022-03-17 12:05:38 -04:00
hydroflame
9453537af4 Merge pull request #3151 from Master-Guy/issues/2877
Remove IP option from connect helptext
2022-03-17 12:04:53 -04:00
hydroflame
12527c501a Merge pull request #3157 from Master-Guy/issues/2462
Quick fix to prevent division by 0
2022-03-17 12:04:23 -04:00
hydroflame
0af64f46f2 Merge pull request #3154 from Master-Guy/issues/3149
Added 0 cost of asleep()
2022-03-17 12:03:23 -04:00
Master-Guy
93f4c499d4 Quick fix to prevent division by 0 2022-03-17 16:56:32 +01:00
Master-Guy
edd60cff5c Changed .keyCode to .key for files in "src" 2022-03-17 15:29:14 +01:00
phyzical
9949cc9a1e removed ip references 2022-03-17 21:50:23 +08:00
Master-Guy
ef9632bf63 Added 0 cost of asleep() 2022-03-17 13:32:49 +01:00
Master-Guy
eb847d1580 Fix typo 2022-03-17 13:25:47 +01:00
Master-Guy
59ec6213b9 Processed review comments 2022-03-17 13:17:43 +01:00
Master-Guy
01776bffac remove IP option from connect helptext 2022-03-17 13:00:07 +01:00
Master-Guy
90fd496a24 Fixed number formatting and added tests 2022-03-17 12:47:27 +01:00
Olivier Gagnon
28bd5e1b30 convert more user facing functions to unknown 2022-03-16 19:50:56 -04:00
Olivier Gagnon
989d0709ed unknown-ify some code 2022-03-16 19:33:45 -04:00
nickofolas
ea61c36790 Modal content proofreading 2022-03-16 18:29:15 -05:00
nickofolas
a032ee16be Update gang territory UI 2022-03-16 18:20:23 -05:00
nickofolas
a205f42d88 Finalize (?) sleeves 2022-03-16 17:35:04 -05:00
nickofolas
33ddc2ff24 Merge branch 'dev' of github.com:danielyxie/bitburner into improvement/sleeve-ui 2022-03-16 17:04:14 -05:00
Olivier Gagnon
26e6036f57 added typesbcrypths 2022-03-16 18:01:26 -04:00
nickofolas
2524b429ec Merge branch 'dev' of github.com:danielyxie/bitburner into improvement/sleeve-ui 2022-03-16 16:48:13 -05:00
Olivier Gagnon
2e9652e41a add bcrypt 2022-03-16 17:45:46 -04:00
hydroflame
b00cf1f347 Merge pull request #3145 from ApamNapat/made_useless_concats_ilegal
Turned on no-useless-concat lint and fixed it in code
2022-03-16 16:58:45 -04:00
BB
4eb59ac70c Turned on no-useless-concat lint and fixed it in code 2022-03-16 20:44:52 +01:00
Olivier Gagnon
7146d6026e allbuild commit /usr/bin/git 2022-03-16 15:44:51 -04:00
Olivier Gagnon
3aabbb7aaa dont hide int anymore 2022-03-16 15:42:25 -04:00
Olivier Gagnon
d6ac7f44c2 Sleeves can no longer buy augs that can't help them. 2022-03-16 15:09:31 -04:00
hydroflame
5865f8a1ea Merge pull request #3082 from CrafterKolyan/patch-3
Fix Static Ram Circumventing for all NS functions
2022-03-16 14:58:00 -04:00
hydroflame
03ab9ed1e2 Merge pull request #2914 from pd/product-industry-research
Fix research tree of product industries post-prestige
2022-03-16 14:54:10 -04:00
hydroflame
9a385dad34 Merge pull request #3129 from InDieTasten/fix-unique-ip-generation
Fix unique ip generation
2022-03-16 14:53:34 -04:00
hydroflame
2ed342b8c2 Merge pull request #3124 from phyzical/feature/3122
expose the inBladeburner on the player object
2022-03-16 14:51:41 -04:00
hydroflame
8c9e14ac0e Merge pull request #3119 from nickofolas/fix/augmentations-left
Fix `Augmentations Left` with gang factions
2022-03-16 14:51:14 -04:00
hydroflame
f65221b1f1 Merge pull request #3114 from ApamNapat/turn_on_three_more_lints
Mixing spaces and tabs, extra semicolons and lonely ifs are now illegal
2022-03-16 14:51:05 -04:00
hydroflame
f62c0c0cef Merge pull request #3137 from phyzical/feature/filter-open-scripts
Add the ability to filter open scripts
2022-03-16 14:50:30 -04:00
hydroflame
80251818e0 Merge pull request #3131 from nickofolas/improvement/create-programs-ui
Refresh "Create Programs" page UI
2022-03-16 14:50:05 -04:00
hydroflame
cb668fd30f Merge pull request #3140 from TheRealMaxion/patch-3
Fix some misleading corporation errors
2022-03-16 14:48:53 -04:00
Olivier Gagnon
3cfe60a368 allbuild commit /usr/bin/git 2022-03-16 14:41:54 -04:00
Olivier Gagnon
328ef3a70a Added achievements data for the 2 new SF minus 1 2022-03-16 14:39:23 -04:00
Olivier Gagnon
321579c6cb Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-03-16 14:34:10 -04:00
Olivier Gagnon
e93be42e7c 2 new exploits 2022-03-16 14:34:05 -04:00
TheRealMaxion
208af6ce9c Fix some misleading corporation errors 2022-03-16 12:08:00 +01:00
phyzical
61ed4a4d43 Add the ability to filter open scripts
* icon that opens up on click and reset and closes on X
2022-03-15 20:37:11 +08:00
Jack
41974b042c Merge branch 'dev' into bugfix/2958 2022-03-15 20:34:08 +08:00
hydroflame
e704843d91 Merge pull request #3117 from nickofolas/fix/editor-tabs-height
Add minHeight to editor tabs
2022-03-14 14:36:25 -04:00
hydroflame
3a845ad652 Merge pull request #3133 from ApamNapat/fix_typo_in_aug_description
Added missing apostrophe
2022-03-14 14:35:41 -04:00
hydroflame
e72715ac59 Merge pull request #3123 from phyzical/bugfix/remove-rendundant-theme-documentation
remove terminal command theme from docs
2022-03-14 14:35:32 -04:00
BB
1c7c4c29bd Added missing apostrophe 2022-03-13 13:06:20 +01:00
nickofolas
230d68aab2 Implement common stats row element 2022-03-12 15:49:07 -06:00
InDieTasten
17cba1d853 Fix unique ip generation
The previous implementation had a bug in it, where the generated IP
wouldn't be unique, if the generated IP wouldn't be unique two times in
a row.
2022-03-12 18:29:01 +01:00
nickofolas
46e03b454d Only import what's needed from lodash 2022-03-12 11:03:33 -06:00
nickofolas
a93e2b670f Redesign Create Program UI 2022-03-12 10:59:55 -06:00
phyzical
3cbb926fd8 expose the inBladeburner on the player object 2022-03-12 12:36:47 +08:00
phyzical
6768d5ff1e remove nonexistant command from docs 2022-03-12 11:50:03 +08:00
Jack
2fa7aa6503 Update src/ScriptEditor/ui/ScriptEditorRoot.tsx
Co-authored-by: nickofolas <60761231+nickofolas@users.noreply.github.com>
2022-03-12 11:40:45 +08:00
nickofolas
7dbb285f8a Simplify conditions 2022-03-11 17:56:34 -06:00
hydroflame
5874fff0bd Merge pull request #3120 from danielyxie/dev
arcade
2022-03-11 15:23:29 -05:00
Olivier Gagnon
bb433d4629 allbuild commit /usr/bin/git 2022-03-11 15:20:38 -05:00
Olivier Gagnon
b265d7ba78 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-03-11 15:19:15 -05:00
Olivier Gagnon
30776e5aca added arcade 2022-03-11 15:19:10 -05:00
nickofolas
7220cab437 More robust augs left calculations
- Should fix all issues with incorrect amount remaining
2022-03-11 13:04:17 -06:00
nickofolas
a1b3dddf9e Add minHeight to editor tabs 2022-03-11 11:10:28 -06:00
hydroflame
e2af0aa41f Merge pull request #3109 from nickofolas/fix/equip-minwidth
Properly expand gang equipment cards to fill entire screen
2022-03-11 12:08:08 -05:00
BB
5e2ccc71ec Mixing spaces and tabs, extra semicolons and lonely ifs are now forbidden 2022-03-11 16:32:48 +01:00
Jack
6f10d5f8bf Merge branch 'dev' into bugfix/2958 2022-03-11 17:49:35 +08:00
nickofolas
6db267ff76 Fix trailing whitespace 2022-03-10 23:23:51 -06:00
nickofolas
0236bdc73d Merge branch 'dev' into feature/monaco-theme-editor 2022-03-10 23:16:44 -06:00
nickofolas
c7e228807b Resolve conflict 2022-03-10 23:11:09 -06:00
nickofolas
07a61c38a4 Clean up imports 2022-03-10 23:02:32 -06:00
nickofolas
7b309c2624 Refactor sleeve stats row to JSX element 2022-03-10 22:47:18 -06:00
nickofolas
62331af141 Properly expand gang equipment cards to fill entire screen 2022-03-10 22:43:01 -06:00
nickofolas
8ce1660f8a Fix missing newline at EOL 2022-03-10 22:21:02 -06:00
nickofolas
5d6952dbac First iteration of sleeves UI improvements 2022-03-10 22:14:11 -06:00
Olivier Gagnon
372776c94e allbuild commit /usr/bin/git 2022-03-10 23:06:47 -05:00
Olivier Gagnon
ca19e15168 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-03-10 23:05:40 -05:00
Olivier Gagnon
81d3246cb8 fix not being able to work on program 2022-03-10 23:05:35 -05:00
hydroflame
0e526853bd Merge pull request #3108 from nickofolas/patch-1
Initialize `purchasingAugs` state to correct value
2022-03-10 22:45:11 -05:00
Olivier Gagnon
a35b95a58b allbuild commit /usr/bin/git 2022-03-10 22:40:46 -05:00
Olivier Gagnon
9c3c83dcd5 fix lint 2022-03-10 22:34:54 -05:00
Olivier Gagnon
9b12da4eb7 allbuild commit "$(git rev-parse --short HEAD)" 2022-03-10 22:33:11 -05:00
nickofolas
beebcefb18 Initialize purchasingAugs state to correct value
Overwritten in merge commit, just fixing before I forget haha
2022-03-10 21:21:08 -06:00
Olivier Gagnon
79c8784ed0 allbuild commit git rev-parse --short HEAD 2022-03-10 22:18:09 -05:00
Olivier Gagnon
dfb29626f3 fix mc 2022-03-10 22:17:01 -05:00
hydroflame
d955398a68 Merge pull request #2757 from ltoni90/bugfix/2719_Corporation_Expressions
Bug fix corporation expressions
2022-03-10 22:15:39 -05:00
hydroflame
f117cc8a74 Merge pull request #2912 from phyzical/bugfix/2899
Added a check for exisiting industry type before expanding
2022-03-10 22:14:18 -05:00
hydroflame
6a09cbd2ce Merge pull request #2933 from phyzical/bugfix/1954
added filter for possibleFactions to filter factions without tasks
2022-03-10 22:13:24 -05:00
hydroflame
b7ffdeb5e2 Merge pull request #3076 from ApamNapat/turned_two_eslint_rules_on
Trailing whitespace and files not ending with \n are now illegal
2022-03-10 22:12:17 -05:00
hydroflame
f802b95b30 Merge pull request #3054 from ApamNapat/simplified_redundant_regex
Removed redundant repetitions of | in alias regex
2022-03-10 22:11:35 -05:00
hydroflame
31a26a31ad Merge pull request #3055 from ApamNapat/simplified_some_boolean_logic
Simplified some booleans and if elses
2022-03-10 22:11:26 -05:00
hydroflame
1ed27bb88a Merge pull request #3104 from MartinFournier/fix/bladeburner-early-routing
Attempt to fix `bladeburner.process()` early routing issue
2022-03-10 22:10:06 -05:00
hydroflame
f5ca700476 Merge pull request #2864 from SagePtr/corp-material-fix
Don't hide irrelevant materials if their stock is not empty and hide irrelevant divisions from Export
2022-03-10 21:46:13 -05:00
hydroflame
69f7f4896e Merge pull request #2874 from smolgumball/add-zoom-reset
electron ui: add `Zoom -> Reset Zoom` command
2022-03-10 21:45:45 -05:00
hydroflame
9372eef691 Merge pull request #2930 from JParisFerrer/vim_tab_switching
Add tab switching support to vim mode
2022-03-10 21:45:14 -05:00
hydroflame
9d080c9901 Merge pull request #2934 from phyzical/bugfix/1955
added check for NS interface with user defined guard
2022-03-10 21:44:37 -05:00
Olivier Gagnon
731b620ac1 typo 2022-03-10 21:42:29 -05:00
hydroflame
459296c160 Merge pull request #3068 from phyzical/hotfix/2902
Fix for work in progress modal when augmenting
2022-03-10 21:41:48 -05:00
hydroflame
e5c488e533 Merge pull request #3066 from phyzical/hotfix/2961-2
Fix editor "close" naming
2022-03-10 21:41:22 -05:00
hydroflame
c8e5b8a6e2 Merge pull request #3107 from nickofolas/improvement/aug-page-link
Add shortcut to Faction augmentations page from FactionsRoot
2022-03-10 21:41:02 -05:00
hydroflame
c13ff7ea52 Merge branch 'dev' into improvement/aug-page-link 2022-03-10 21:40:58 -05:00
hydroflame
fdcbc4c508 Merge pull request #3095 from phyzical/bugfix/add-charge-for-stanek-width-height
added ram charge for stanek width and height
2022-03-10 21:40:28 -05:00
hydroflame
2dfecc8ad0 Merge pull request #3093 from mbrannen/expr-remainder-fix
updated regex sanitization
2022-03-10 21:39:59 -05:00
hydroflame
8bad7d68c3 Merge pull request #3096 from danielyxie/new-license
Change license to Apache 2 with Commons Clause
2022-03-10 21:39:33 -05:00
hydroflame
64223d2f4e Merge pull request #3100 from phyzical/bugfix/early-out-fix-for-play-faction-issue
added logic to show a sorry page when augmenting with faction screen open
2022-03-10 21:39:24 -05:00
hydroflame
1a9b3bd113 Merge pull request #3101 from phyzical/bugfix/work-in-progress-augment-fix
work in progress augment fix
2022-03-10 21:38:45 -05:00
nickofolas
e960fbfa28 Implement faction augs page shortcut 2022-03-10 18:39:54 -06:00
nickofolas
e39817cb57 Very slightly adjust router.toFaction
- Faction argument is now required
- Added augPage argument
2022-03-10 18:37:57 -06:00
hydroflame
668e43c5de Merge pull request #3102 from phyzical/bugfix/typo-on-ops-page
fix typo on ops page
2022-03-10 13:11:56 -05:00
Nikolai Korolev
20e3924c6a Merge branch 'dev' into patch-3 2022-03-10 12:06:19 +03:00
Martin Fournier
6588bbb8b1 Attempt to fix bladeburner.process() issue
For a certain user, it appears that the engine attempts to route to the
bitverse screen before the router is properly initialized. I could not
reproduce the problem on my side and we were not able to extract his
save game, so this is a blind shot if it'll work or not.
2022-03-09 15:44:19 -05:00
phyzical
0ba66ad2f4 fix typo on ops page 2022-03-09 22:58:34 +08:00
Jack
a3555d101e Update src/ui/WorkInProgressRoot.tsx 2022-03-09 22:50:41 +08:00
Jack
2f40906d4b Update src/Faction/ui/FactionRoot.tsx
Co-authored-by: ApamNapat <ApamNapat@users.noreply.github.com>
2022-03-09 22:49:50 +08:00
phyzical
e5acd10c86 moved to only apply when working for faction 2022-03-09 22:14:42 +08:00
phyzical
f7dcf5ca97 add early out to say "sorry not part of faction when working and augmenting" 2022-03-09 22:09:14 +08:00
phyzical
de0b0f9fa9 added logic to show a sorry page when augmenting with faction screen open 2022-03-09 22:02:34 +08:00
hydroflame
3917ef2663 Merge pull request #3099 from TheRealMaxion/patch-1
Fixes #3098 missing space in Smart Supply
2022-03-08 20:36:04 -05:00
mbrannen
9602dbda2e Update src/Terminal/commands/expr.ts
Updated to ApamNapat's suggestion

Co-authored-by: ApamNapat <ApamNapat@users.noreply.github.com>
2022-03-08 18:02:54 -07:00
TheRealMaxion
02f231af2e Fixes #3098 missing space in Smart Supply
Quick fix to stop this from erroring due to the missing space in the upgrade name.
2022-03-09 01:05:00 +01:00
BB
0eced1b9f2 Simplified some booleans and if elses 2022-03-08 22:52:26 +01:00
BB
6e9990aead Removed redundant repetitions of | in alias regex 2022-03-08 22:51:41 +01:00
BB
2f4d879c16 Trailing whitespace and files not ending with \n are now illegal 2022-03-08 22:51:02 +01:00
hydroflame
570b8caf78 Merge pull request #2873 from SagePtr/purchaseserver-args
Add user-friendly invalid argument number message to purchaseServer
2022-03-08 16:39:54 -05:00
hydroflame
92909689b3 Merge pull request #2891 from tigercat2000/autocomplete_documentation
Terminal: There is now an interface definition for the autocomplete() 'data' argument.
2022-03-08 16:34:57 -05:00
hydroflame
1c1b696853 Merge pull request #3046 from jjayeon/nicer-factions-page
add box showing remaining augments per faction
2022-03-08 16:33:02 -05:00
hydroflame
1ceb8b24f6 Merge pull request #3067 from phyzical/hotfix/2951
added CorporationSoftCap to NetscriptDefinitions
2022-03-08 16:32:28 -05:00
hydroflame
4518b3a7cb Merge pull request #3070 from phyzical/bugfix/2832-2
Sleeve fix for when faction isnt found
2022-03-08 16:32:10 -05:00
hydroflame
8136407b1d Merge pull request #3091 from nickofolas/fix/editor-tab-width
Fix extra space on editor tabs
2022-03-08 16:31:47 -05:00
hydroflame
e06a3e6578 Merge pull request #3074 from DSteve595/offline-message-list
Present offline message as list
2022-03-08 16:31:32 -05:00
hydroflame
6ed4268173 Merge pull request #3075 from ApamNapat/simplified_imports
Simplified some relative imports
2022-03-08 16:30:37 -05:00
hydroflame
0a64da51e0 Merge pull request #3092 from ChrissiQ/bugfix/corp-buybackshares-canaffordcheck
🐛  (Bug: Corp) Fixes sufficient player money check to buy back shares.
2022-03-08 16:23:12 -05:00
Daniel Xie
aa6a68ca2a Change license to Apache 2 with Commons Clause 2022-03-08 02:42:43 -08:00
Jack
a2fae480f3 Update src/PersonObjects/Player/PlayerObjectGeneralMethods.tsx 2022-03-08 17:32:03 +08:00
phyzical
ec927fe1f4 added ram charge for stanek width and height 2022-03-08 17:28:45 +08:00
mbrannen
bb6d90fb41 updated expression.
-removed escaping and reverted back for /
2022-03-07 23:50:05 -07:00
ChrissiQ
44c4529d90 🐛 (Bug: Corp) Fixes sufficient player money check to buy back shares.
`BuyBackShares()` checks the corp for sufficient funds, but since shares are purchased with player money, it should be checking the player's money instead.
2022-03-07 23:18:51 -07:00
mbrannen
31ea56084e updated regex sanitization
-allows %
-updated escape characters to \
2022-03-07 23:15:55 -07:00
nickofolas
472503814b Remove 200px min width of script editor tabs 2022-03-07 17:33:56 -06:00
hydroflame
cc6a4d0ce2 Create CODE_OF_CONDUCT.md 2022-03-07 18:22:26 -05:00
hydroflame
8358e62fb0 Merge pull request #3089 from danielyxie/dev
allbuild commit `git rev-parse --short HEAD`
2022-03-07 18:09:23 -05:00
Olivier Gagnon
192a037dfa allbuild commit git rev-parse --short HEAD 2022-03-07 18:07:21 -05:00
hydroflame
ef167046eb Merge pull request #3088 from danielyxie/dev
v1.5.0
2022-03-07 17:51:40 -05:00
Olivier Gagnon
bc952147fd v1.5.0 2022-03-07 17:51:02 -05:00
hydroflame
4b4b3f03da Merge pull request #2986 from phyzical/phyzical/Corp-Api-Updates
Missing corp api functions
2022-03-07 17:44:49 -05:00
hydroflame
4921cdea24 Merge branch 'dev' into phyzical/Corp-Api-Updates 2022-03-07 17:44:43 -05:00
hydroflame
89316be477 Merge pull request #2955 from phyzical/bugfix/corp-api-fixes
Bugfix/corp api fixes
2022-03-07 17:43:39 -05:00
hydroflame
e10571c0e8 Merge branch 'dev' into bugfix/corp-api-fixes 2022-03-07 17:43:29 -05:00
hydroflame
b226b3d872 Merge pull request #3087 from nickofolas/improvement/tabs
#2710 Addendum
2022-03-07 17:42:54 -05:00
nickofolas
e9033914e1 Update corp tabs to account for excessively long names 2022-03-07 16:40:22 -06:00
hydroflame
5c45adb094 Merge pull request #3086 from MartinFournier/fix/changelog-github-rate-limit
Slow down the fetch-changelog dev tool
2022-03-07 17:34:01 -05:00
hydroflame
46628cb636 Merge pull request #3052 from ApamNapat/remove_unused_eslint_disable
Removed unnecessary eslint-disable lines
2022-03-07 17:31:59 -05:00
hydroflame
277d3b71b6 Merge pull request #3073 from DSteve595/patch-1
Fix typo in 'Getting Started Guide for Beginner Programmers'
2022-03-07 17:31:17 -05:00
hydroflame
59aa0df456 Merge pull request #3078 from CrafterKolyan/patch-1
Fix error message for scp
2022-03-07 17:30:44 -05:00
hydroflame
5e558ffc5d Merge pull request #3081 from CrafterKolyan/patch-2
Add closing quote in description of sanitize parentheses coding contract
2022-03-07 17:30:05 -05:00
Martin Fournier
f0a2043dc2 Fix null ref when receiving invalid author 2022-03-07 17:28:11 -05:00
Martin Fournier
1e55715c6b Add sleeps to github api to prevent rate limiting 2022-03-07 17:27:29 -05:00
hydroflame
3310928598 Merge pull request #2710 from nickofolas/improvement/tabs
Update `<Tabs>` sizing and style
2022-03-07 17:22:06 -05:00
Nikolai Korolev
25e28df42b Fix Static Ram Circumventing for all NS functions 2022-03-07 16:18:58 +03:00
Nikolai Korolev
19750c6bba Add closing quote in description of sanitize parentheses coding contract 2022-03-07 15:10:13 +03:00
Nikolai Korolev
b2ec5d1691 Fix error message for scp 2022-03-07 11:40:06 +03:00
Steven Schoen
19b45a7411 Show reputation unconditionally 2022-03-06 03:38:17 -05:00
Jack
d4f5f54fb6 Update src/ui/WorkInProgressRoot.tsx
Co-authored-by: ApamNapat <ApamNapat@users.noreply.github.com>
2022-03-06 12:42:35 +08:00
BB
2c3e0985c4 Simplified some relative imports 2022-03-06 05:05:55 +01:00
Steven Schoen
7b95acefde Present offline message as list 2022-03-05 21:05:05 -05:00
Steven Schoen
580ee2c522 Fix typo in 'Getting Started Guide for Beginner Programmers' 2022-03-05 19:01:10 -05:00
phyzical
7a6e7ed992 added early out for when faction isnt found 2022-03-05 13:56:11 +08:00
phyzical
0e1929b561 added early out for when it goes wrong here too 2022-03-05 13:14:28 +08:00
phyzical
a389b515df fix for work in progress modal when augmenting
* added an early out to turns a basic error for the work modal when the current work faction to show the faction or faction not found
2022-03-05 13:05:37 +08:00
phyzical
bdca45388d added CorporationSoftCap to NetscriptDefinitions 2022-03-05 12:49:32 +08:00
phyzical
c5fc009d91 renamed close to Terminal
* evened out spacing of buttons
2022-03-05 12:23:10 +08:00
hydroflame
e80190e687 Merge pull request #3053 from waffleattack/patch-2
Made getBonusTime return miliseconds
2022-03-04 11:34:04 -05:00
hydroflame
b765266c23 Merge pull request #3056 from ApamNapat/new_god_book_fix
Fixed the text of The New God book
2022-03-04 11:33:49 -05:00
hydroflame
b6cf413569 Merge pull request #3058 from ApamNapat/stanek_gifts_phrasing
Fixed and improved wording in Stanek's gift description
2022-03-04 11:33:38 -05:00
BB
b2959e71ca Fixed and improved wording in Stanek's gift description 2022-03-01 21:53:20 +01:00
BB
3d5c92fe65 Fixed the text of New God book 2022-03-01 21:02:41 +01:00
Thomas B
9636fda082 Made getBonusTime return miliseconds 2022-03-01 12:39:35 -05:00
BB
7212cc2f1c Removed unnecessary eslint-disable lines 2022-03-01 17:33:27 +01:00
hydroflame
fb4812b530 Merge pull request #2875 from smolgumball/fix-electron-crash-during-reload
fix: electron `windowTracker` crash when reloading and killing scripts
2022-03-01 11:25:31 -05:00
hydroflame
76f965911d Merge pull request #2938 from reacocard/fix-sleeve-augs
Don't check only gangs for sleeve augs
2022-03-01 11:19:06 -05:00
hydroflame
c24bab2cae Merge pull request #2940 from phyzical/bugfix/2088
fixes for editor and tabs when names too long
2022-03-01 11:18:19 -05:00
hydroflame
f11e7bac6a Merge pull request #3005 from rhobes/patch-1
Fix https://github.com/danielyxie/bitburner/issues/2996: weakenAnalyze miscalculation
2022-03-01 11:16:31 -05:00
hydroflame
dd07ef3a88 Merge pull request #2886 from DrCuriosity/DrCuriosity/hacknet-name-colspans
QoI: Increase HacknetNodeElem name colSpan
2022-03-01 11:08:17 -05:00
hydroflame
f5386acc17 Merge pull request #2915 from wdpk/patch-1
add list of available crimes to crime details
2022-03-01 10:57:26 -05:00
hydroflame
d721c1e65a Merge pull request #2968 from phyzical/bugfix/2520
added pre tags to support \n
2022-03-01 10:56:32 -05:00
hydroflame
46d37a89b0 Merge pull request #3045 from jjayeon/dev
sort player's joined factions for cleaner rendering
2022-03-01 10:53:06 -05:00
hydroflame
3d6d729b33 Merge pull request #3038 from Ornedan/fix-atexit-leak
Fix #3037: wrap user-supplied atExit function so that we can't accide…
2022-03-01 10:51:49 -05:00
hydroflame
94a6ba2c91 Merge pull request #3001 from ChrissiQ/bitnode-portal-button-a11y-fix
️  (Bitverse UI: Portal Button Accessibility) Makes clickable element into button.
2022-03-01 10:50:59 -05:00
hydroflame
fc3a7edf6d Merge pull request #3044 from ChrissiQ/fix-ui-style-corp-spacing
️  (Corp Warehouse UI Accessibility) Stop warehouse UI jump at higher zoom.
2022-03-01 10:50:09 -05:00
hydroflame
14fef142c5 Merge pull request #3047 from DJ-Laser/patch-1
Fix typo (await ed => awaited)
2022-03-01 10:49:40 -05:00
hydroflame
763800570b Merge pull request #2867 from SagePtr/corp-formula
Better readable production equation (rewording)
2022-03-01 10:48:39 -05:00
hydroflame
213b03523b Merge pull request #2869 from SagePtr/patch-1
Fix ps documentation
2022-03-01 10:47:58 -05:00
hydroflame
7fd6d6859a Merge pull request #2888 from BrianLDev/issue-2377
fixes #2377: No passive reputation gain on BN6, BN7
2022-03-01 10:46:36 -05:00
hydroflame
201e00cdd9 Merge pull request #2894 from manniL/fix/typo
fix: typo in corporate error message
2022-03-01 10:45:36 -05:00
hydroflame
e89a9e8f4c Merge pull request #2897 from Jedimaster4559/patch-1
Fixing Broken Error Message
2022-03-01 10:44:40 -05:00
hydroflame
d4ddfccef7 Merge pull request #2898 from loganville/dev
Update recommendedbitnodeorder.rst
2022-03-01 10:44:24 -05:00
hydroflame
3a0eb8eca6 Merge pull request #2906 from waffleattack/patch-2
Reset Location Upon Reset
2022-03-01 10:44:15 -05:00
hydroflame
d2e05f6d2f Merge pull request #2909 from Arrow2thekn33/typo-fix
Typo Fix (unprecendented -> unprecedented)
2022-03-01 10:43:01 -05:00
hydroflame
6f57c0e888 Merge pull request #2919 from fwolfst/2918_typo-fix
fix typo (UnforTunately) fix #2918
2022-03-01 10:42:52 -05:00
hydroflame
444ed3c33e Merge pull request #2926 from fschoenfeldt/patch-1
Update augmentations.rst
2022-03-01 10:42:24 -05:00
hydroflame
adc95d1443 Merge pull request #2954 from danielyxie/dependabot/npm_and_yarn/follow-redirects-1.14.8
Bump follow-redirects from 1.14.7 to 1.14.8
2022-03-01 10:42:14 -05:00
hydroflame
a75200f51f Merge pull request #2941 from Waladil/patch-1
Fix grammar in Bladeburner black op description
2022-03-01 10:42:08 -05:00
hydroflame
1e8976f25e Merge pull request #2935 from phyzical/bugfix/redundant-import
removed unused imports
2022-03-01 10:39:34 -05:00
hydroflame
c8dd535d63 Merge pull request #2966 from MatthewTh0/dev
Grammar Fix
2022-03-01 10:39:02 -05:00
hydroflame
36e0177b0c Merge pull request #2967 from AdamTReineke/AdamTReineke-patch-1
Fix log message in ns.bladeburner.startAction
2022-03-01 10:38:50 -05:00
hydroflame
4cf28b47ea Merge pull request #2971 from citrusmunch/tutorial-typo
FIX: tutorial typo
2022-03-01 10:38:36 -05:00
hydroflame
6a1af43555 Merge pull request #2972 from factubsio/patch-2
Clarify units for RunningScript.*RunningTime
2022-03-01 10:38:26 -05:00
hydroflame
5c6640dcde Merge pull request #2977 from citrusmunch/scan-usage
FIX: old name netstat/scan to just scan
2022-03-01 10:38:10 -05:00
hydroflame
0dd7058830 Merge pull request #2978 from factubsio/patch-3
Clarify math expression operator precedence for coding contract
2022-03-01 10:38:00 -05:00
hydroflame
f3ecff2e93 Merge pull request #2980 from Risenafis/donate-threshold
Fix favor threshold for donateToFaction
2022-03-01 10:37:13 -05:00
hydroflame
c7127ed56f Merge pull request #2982 from citrusmunch/augmentation-typo
FIX: typo in augmentation installation message
2022-03-01 10:36:52 -05:00
hydroflame
fe20a98763 Merge pull request #2983 from factubsio/patch-4
Clarify some of the fields in `GangMemberInfo`
2022-03-01 10:36:44 -05:00
hydroflame
41ea4a03c9 Merge pull request #2987 from citrusmunch/curent-typos
FIX: "curent" typos
2022-03-01 10:36:25 -05:00
hydroflame
cc51659844 Merge pull request #3010 from ashtongreen/patch-6
Update hacking.rst
2022-03-01 10:35:59 -05:00
hydroflame
e4ce683421 Merge pull request #3009 from ashtongreen/patch-5
Update companies.rst
2022-03-01 10:35:43 -05:00
hydroflame
e6dcae1e5c Merge pull request #3042 from danielyxie/dependabot/npm_and_yarn/url-parse-1.5.10
Bump url-parse from 1.5.3 to 1.5.10
2022-03-01 10:34:30 -05:00
hydroflame
c5c48a96b3 Merge pull request #3033 from ChrissiQ/fix-documentation-stopaction-add-gym
📝  (TSDoc Definitions) Add gym workout to stopAction actions.
2022-03-01 10:32:59 -05:00
hydroflame
81c4a7f6cf Merge pull request #3021 from ChrissiQ/tsdoc-inherit-overloaded-fns
📝  (TSDoc Definitions) Inherits doc for overloaded NS methods.
2022-03-01 10:32:48 -05:00
autumn
ef230b8265 Update FactionsRoot.tsx 2022-02-28 21:20:58 -05:00
DJ_Laser
f3f86ff102 Fix typo (await ed => awaited)
I fixed a typo.
2022-02-28 13:48:09 -05:00
jjayeon
e74d6107c9 add box showing remaining augments per faction 2022-02-28 07:04:47 -05:00
jjayeon
e0611a5aa3 sort player's joined factions for cleaner rendering 2022-02-28 06:47:37 -05:00
Ashton
030b736feb Update hacking.rst
changed phrasing to remove implied pre-requisite.
2022-02-27 19:09:42 -08:00
ChrissiQ
565a827f28 ️ (Corp Warehouse UI Accessibility) Stop warehouse UI jump at higher zoom 2022-02-26 14:03:12 -07:00
dependabot[bot]
03c0c662a8 Bump url-parse from 1.5.3 to 1.5.10
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.3 to 1.5.10.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.3...1.5.10)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-26 04:08:34 +00:00
Heikki Aitakangas
66ceff4e33 Fix #3037: wrap user-supplied atExit function so that we can't accidentally leak game objects as 'this' 2022-02-26 01:00:02 +02:00
ChrissiQ
8ab5ff9565 📝 (TSDoc Definitions) Add gym workout to stopAction actions. 2022-02-24 14:57:05 -07:00
Olivier Gagnon
ee887de151 update version 2022-02-23 10:45:26 -05:00
hydroflame
f4d342f15b Merge pull request #3028 from phyzical/bugfix/3027
add post install to also install electron folder's deps
2022-02-23 10:43:07 -05:00
phyzical
e597798aef add post install to also install electron folder's deps 2022-02-23 18:13:54 +08:00
Olivier Gagnon
c26c9a0c3a fix lint 2022-02-23 02:50:38 -05:00
Olivier Gagnon
b810e523ee update patch notes 2022-02-23 02:01:48 -05:00
ChrissiQ
a2fd6736f4 📝 (TSDoc Definitions) Inherits doc for overloaded NS methods.
The overloaded methods `NS.kill()`, `NS.getScriptExpGain()`,
`NS.getScriptIncome()`, and `NS.scp()` have broken documentation because the
overloaded function is not documented correctly. I've added `@inheritDoc` tags to
the declarations in order to associate the documentation to the overloaded method.

As shown in these files with broken documentation:
https://github.com/danielyxie/bitburner/blob/dev/markdown/bitburner.ns.kill_1.md
https://github.com/danielyxie/bitburner/blob/dev/markdown/bitburner.ns.scp_1.md
https://github.com/danielyxie/bitburner/blob/dev/markdown/bitburner.ns.getscriptexpgain_1.md
https://github.com/danielyxie/bitburner/blob/dev/markdown/bitburner.ns.getscriptincome_1.md
2022-02-22 18:36:30 -07:00
Ashton
a4b52ee13a Update doc/source/basicgameplay/companies.rst
Co-authored-by: ApamNapat <ApamNapat@users.noreply.github.com>
2022-02-22 15:12:45 -08:00
Ashton
ea35f8d0e6 Update doc/source/basicgameplay/companies.rst
Co-authored-by: ApamNapat <ApamNapat@users.noreply.github.com>
2022-02-22 15:12:37 -08:00
Ashton
94b826f8ba Update doc/source/basicgameplay/hacking.rst
Yep, that's cleaner.

Co-authored-by: ApamNapat <ApamNapat@users.noreply.github.com>
2022-02-22 15:12:12 -08:00
Ashton
74f95b6e75 Update hacking.rst
Added the suggested direct connect and the scrambled location.
2022-02-21 01:03:03 -08:00
Ashton
061d723821 Update hacking.rst
Notes on Backdoors.
2022-02-20 21:04:49 -08:00
Ashton
3847e5dd86 Update companies.rst
Added notes on how Working Works.
2022-02-20 21:02:46 -08:00
ChrissiQ
3cfbf0708b ️ (Bitverse UI: Portal Button Accessibility) Add aria-description, change labels, accomodate disabled ASCII art.
Adds aria-description and corrects labels to be more clear about the results of
pressing buttons.
2022-02-20 18:34:48 -07:00
ChrissiQ
cf0c4510c4 Merge remote-tracking branch 'TheMas3212/feat-improve-bitverse-accessibility' into bitnode-portal-button-a11y-fix 2022-02-20 18:03:57 -07:00
nickofolas
67382f0ac9 Add missing newline at end of file 2022-02-20 09:03:16 -06:00
M
6d87d7b743 Fix https://github.com/danielyxie/bitburner/issues/2996
Trivial fix of https://github.com/danielyxie/bitburner/issues/2996 by adding the BN multiplier to analyze.
2022-02-19 14:21:39 -08:00
phyzical
887f3f1e49 use text friendly divison name 2022-02-19 16:06:52 +08:00
phyzical
6e21f16160 adjustments per review comments
* updated error message
* used correct price for bulk purchasing check
* moved onclose and rerenders outside try blocks
2022-02-19 16:05:55 +08:00
ChrissiQ
34b54ffc5a ️ (Bitverse UI: Portal Button Accessibility) Makes clickable element into button.
Clickable elements in a page which are not hyperlinks to other pages should be buttons for accessibility. This changes the clickable area into a button to more closely align with best practices.
2022-02-17 23:32:49 -07:00
Jonathan Beverley
922aafb115 Expose product and material details in API match UI 2022-02-17 23:49:59 -05:00
TheMas3212
71ed2eafb8 Add A Simple Button menu to the Bitverse Screen if ascii art is disabled
this fixed the issue that was noticed that the current ascii art page is
not possible to navigate with a screen reader
2022-02-17 00:48:25 +11:00
phyzical
7dd8deb1ed missed a change 2022-02-16 20:16:27 +08:00
phyzical
26002e0429 added logic to display server on save dialog
*added logic to display external servers as red
2022-02-16 20:11:37 +08:00
phyzical
ca28582265 added logic to also check hostname for "current script" 2022-02-16 18:41:22 +08:00
citrusmunch
ce8378e4db FIX: "curent" typos 2022-02-15 12:22:49 -05:00
phyzical
e9cea9dfd4 reremove redundant file 2022-02-15 20:33:14 +08:00
phyzical
a2b4a63c2e merge latest dev 2022-02-15 20:24:24 +08:00
factubsio
5193ff3156 Clarify some of the fields in GangMemberInfo
The most misleading of these is `str_mult`, which is actually the multiplier from equipment.
2022-02-14 20:00:49 +00:00
citrusmunch
a534d27313 FIX: typo in augmentation installation message
"chosing" -> "choosing"
2022-02-14 10:14:54 -05:00
Risenafis
04cfdc76ae Fix favor threshold for donateToFaction 2022-02-14 23:25:30 +09:00
phyzical
bacc0004fe updated material dmd based on old tag 2022-02-14 21:37:58 +08:00
factubsio
a666fb888a Add clarification to in-game text 2022-02-14 11:00:15 +00:00
factubsio
fb73b1cb9e Clarify math expression operator precedence
The description + examples leave this ambiguous, this change adds a hint.
2022-02-14 10:57:53 +00:00
citrusmunch
cc3452a766 FIX: old name netstat/scan to just scan
seems like an old/deprecated name not used anywhere else
2022-02-14 00:47:37 -05:00
factubsio
7902699f99 Clarify units for RunningScript.*RunningTime
Most other times are specified in milliseconds, rather than the seconds used for the running time - this should be made clear in the docs.
2022-02-13 22:22:03 +00:00
citrusmunch
6e09241ff4 FIX: tutorial typo
"connect so it" -> "connect to it"
2022-02-13 16:46:13 -05:00
phyzical
1931734694 added pre tags to support \n 2022-02-13 18:49:24 +08:00
phyzical
da955a4774 refector of setEmployeeToJob 2022-02-13 17:57:13 +08:00
phyzical
66ec3f4964 fix function name in error for better trace 2022-02-13 17:10:11 +08:00
phyzical
9770853e29 removed the isNs interface guard as its redunant 2022-02-13 17:08:55 +08:00
Adam Reineke
41fe4e5813 Fix log message in ns.bladeburner.startAction 2022-02-12 21:26:06 -08:00
Matthew Thornton
fe0262eda1 Grammar Fix
Product is the noun, while the correct part of speech here is the verb "produce". 
Also of note, the limit doesn't change unless data is entered and then removed (otherwise the previous limit is kept) even if the button is clicked (which isn't the expected behavior based on the text). However, I'm not sure how to convey this succintly though and I'm not familiar enough with React to change the value when only the button is clicked (especially since it is probably the intended behavior to not change the value when the modal is closed by clicking outside of it).
2022-02-12 15:40:17 -06:00
phyzical
3e36e6a80b few more adjustments
* fixed the export material fix
* changed teh dev menu fund adjuster for more granular control
* added checks for smartSupply and setSmartSupply
* few random autolints
2022-02-12 11:31:50 +08:00
dependabot[bot]
2dedd65cc1 Bump follow-redirects from 1.14.7 to 1.14.8
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.8.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.7...v1.14.8)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-12 02:32:04 +00:00
phyzical
51d10290d2 added early out for redundant assignment 2022-02-12 00:13:56 +08:00
phyzical
8b55b0293c corp api fixes
* added early out in UpgradeWarehouse when not enough cash
* added checks to enforce maxProducts
* added checks to enforce export material is valid for location
* added checks for market ti reasearches
2022-02-11 23:48:19 +08:00
Waladil
8df09a0568 Fix grammar
Literally just adds an 's' to "Synthoid" in one place that it's grammatically proper to do so.
2022-02-08 11:18:19 -07:00
phyzical
d586743bf6 fixes for editor and tabs when names too long
* coupled some of the styles to avoid breaking this later on
* added tooltip incase its too long/ too small
* changes to use elipsis and RTL to read the end of file name
2022-02-09 00:12:37 +08:00
Ayla Ounce
5fbe4b0f26 Don't check only gangs for sleeve augs
It is possible for a player to qualify for an aug through a faction and
not the gang, e.g. when the gang is newly formed and still getting up to
speed. So, we need to consider both gang qualifications and faction
qualifications when constructing the sleeve augmentation list.
2022-02-07 14:40:44 -08:00
ltoni90
b4cce9b57f typo fix
Co-authored-by: ChrissiQ <1127719+ChrissiQ@users.noreply.github.com>
2022-02-07 16:00:08 +01:00
phyzical
659ba9e27e removed unsed imports 2022-02-07 22:50:34 +08:00
phyzical
e8954bc1ee added basic type check to tryWritePort 2022-02-07 22:14:48 +08:00
phyzical
6ed5a445a8 added check for NS interface with user defined guard 2022-02-07 21:56:04 +08:00
phyzical
4af4634ada added filter for possibleFactions to filter factions without tasks 2022-02-07 19:48:28 +08:00
Jordi Paris Ferrer
419d585694 add tab switching support to vim mode 2022-02-06 16:34:14 -08:00
qcorradi
5a39a92270 Merge branch 'patch-8' of github.com:zeddrak/bitburner into reverse_grow_newton 2022-02-06 14:00:05 +01:00
Frederik Schönfeldt
34299f9990 Update augmentations.rst
sourced from the augmentations tab
2022-02-06 09:31:08 +01:00
phyzical
26df6fd39c doc updates 2022-02-06 00:12:28 +08:00
phyzical
d41b19bced added support for ls -l 2022-02-06 00:05:48 +08:00
phyzical
9a3731cf18 updated grep for ls
* implemented flags logic for grep
* added --grep and -g
* updated docs
2022-02-05 23:27:08 +08:00
Felix Wolfsteller
a755af8176 fix typo (UnforTunately) fix #2918 2022-02-05 11:04:23 +01:00
wdpk
9087a48777 add list of available crimes to crime details 2022-02-04 19:05:22 -10:00
Phil Despotos
16655349f5 Fix research tree of product industries post-prestige
After destroying a BitNode, the `resetIndustryResearchTrees` reset all
industries to the _base_ research tree, leaving the product industries
without the `uPgrade` researches in the graph. So corporations started
in the next BitNode were unable to expand product capacity.

This fixes that reset function to use the correct product industry tree.
2022-02-04 19:40:49 -06:00
phyzical
105ea19eae add the industry name to assist with debugging when error occurs 2022-02-04 17:46:08 +08:00
phyzical
608cc089b2 Added a check for exisiting industry type before expanding 2022-02-04 17:34:16 +08:00
Justin Wade
0e4affdf0e fix typo in FactionInfo.tsx 2022-02-03 22:31:39 -05:00
Thomas B
c6573fb19d Reset Location Upon Reset 2022-02-03 08:50:08 -05:00
Logan H Koch
977a6795da Update recommendedbitnodeorder.rst
Correct wording on source file leveling for Singularity Functions
2022-02-01 19:41:12 -07:00
zeddrak
bfaecc644d startMoney check should be >= moneyMax, not ==
Just realized that I checked for exactly equal (as would be likely when operating internally), but really, it should treat anything greater than or equal to as a zero growth scenario (just better protection from a wider range of potential issues)
2022-02-01 14:34:27 -08:00
Nathan Solomon
df30a45388 Fixing Broken Error Message 2022-02-01 15:45:50 -06:00
Alexander Lichter
5564f82b44 fix typo 2022-02-01 12:43:14 +01:00
tigercat2000
f0557eadf7 Terminal: There is now an interface definition for the autocomplete() 'data' argument. 2022-01-31 20:47:15 -08:00
zeddrak
5cc7a6a0a2 added numCycleForGrowthByMultiplier (ie old growthAnalyze parameters)
implemented numCycleForGrowthByMultiplier (fully compatible with old growthAnalyze - though still slightly wrong, it does so in a way that could be seen as beneficial and is compatible with existing scripts)
Also some fixes to numCycleForGrowthByHackAmt (wrong parameter order)
2022-01-31 20:41:42 -08:00
zeddrak
76cc1532a7 Added note to numCycleForGrowthByHackAmt
* NOTE: the prehackMoney parameter can be removed and server.moneyMax used in its place. The return value would then give a thread count
 * that would slowly grow the server more than it is hacked until reaching moneyMax where it would return the correct number of threads.
2022-01-31 20:15:55 -08:00
zeddrak
63e833317b more otpys
fuinction => function
2022-01-31 20:06:13 -08:00
zeddrak
94bcd0484a Small comment change
had an "a the" and the point was redundant, so removed it
2022-01-31 20:04:39 -08:00
zeddrak
28a32ed3a0 Ytpo fix
Missed one
2022-01-31 19:56:02 -08:00
zeddrak
7bb3a8169e Comment Ytop fixes
Sigh, my fingers are soo old and don't work right any more... :)
Thanks for the info.
2022-01-31 19:54:38 -08:00
Brian Leip
1a414358cc Fixed issue-2377: No passive reputation gain on BN6, BN7 2022-01-31 15:21:01 -08:00
Phil
378f67097c Amending NetscriptDefinitions 2022-01-31 18:15:13 +00:00
David Thompson
37bf1aac81 QoI: Increase HacknetNodeElem name colSpan
Spanning {node.name} across all three table columns in the Hacknet Node UI uses a bit less screen real estate, so that on larger font sizes you don't end up with e.g. "hacknet- " on one line and "node-11" on the next.
2022-01-31 21:46:47 +13:00
qcorradi
b09b7fa346 numCycleForGrowth using Newton-Raphson's method 2022-01-31 00:22:59 +01:00
Chris Rabe
3e61780fad fix: fixed hackAnalyzeThreads returning infinity 2022-01-31 08:14:10 +10:00
nickofolas
21e27dfab6 Save data sanitization
- Run in `Editor.beforeMount`, as well as when the
options modal is closed
- Recursively validates all token colors and
replaces them with bright red if they're invalid
2022-01-30 10:38:58 -06:00
Phil
af43e63415 Blanking Prompt value on close 2022-01-30 14:21:46 +00:00
Phil
08d0b4cbae Adding support for text/select options in Prompt command 2022-01-30 14:06:18 +00:00
phyzical
f2ba3e0ac7 gang member current task disconnect fix
* Added check to manually update interal state of dropdown on change of a members task via api
2022-01-30 18:33:04 +08:00
nickofolas
dd77deca7b Add Paper styling to modal 2022-01-29 23:54:36 -06:00
nickofolas
e800886d42 Tie up loose ends
- Ensure that customTheme is redefined whenever the options modal
is closed, regardless of saved or not
- Reset the pending value for the theme editor whenever modal is clsoed
2022-01-29 23:44:31 -06:00
nickofolas
0d700bd252 Change global theme import rows to 10 and format 2022-01-29 23:19:58 -06:00
nickofolas
7ad0c53234 Update label for common.accent 2022-01-29 23:19:24 -06:00
nickofolas
83e5b46f3e Implement Monaco theme editor 2022-01-29 23:17:57 -06:00
nickofolas
5a476178fa Add types token 2022-01-29 23:11:21 -06:00
nickofolas
4ba6926e01 Theme attribute cleanup 2022-01-29 22:39:13 -06:00
nickofolas
20d3115e4a Framework for custom theme 2022-01-29 19:27:49 -06:00
smolgumball
3431997315 fix: electron windowTracker error when reloading and killing scripts 2022-01-29 17:58:09 -07:00
smolgumball
0f43b02685 Add Zoom -> Reset Zoom command 2022-01-29 17:24:57 -07:00
SagePtr
db5476ebd0 Add user-friendly invalid argument number message to purchaseServer 2022-01-30 00:04:45 +02:00
SagePtr
4483c2bbce Add hasOwnProperty check to GetServer 2022-01-29 23:30:13 +02:00
Sage Pointer
ac054b0065 Fix ps documentation 2022-01-29 22:20:27 +02:00
SagePtr
622ba0a2bd Better readable production equation 2022-01-29 20:59:18 +02:00
SagePtr
f22f0ed50a Hide irrelevant divisions in Export modal 2022-01-29 20:02:07 +02:00
smolgumball
d3ac29609d Merge branch 'dev' into add-ns-getRecentScripts 2022-01-29 10:11:55 -07:00
SagePtr
a5f82e96ed Don't hide irrelevant materials if their stock is not empty 2022-01-29 18:58:21 +02:00
hydroflame
9ddb1c4379 Merge pull request #2863 from SagePtr/can-run-scripts
Show "Can run scripts" to "NO" for zero-RAM servers in "analyze" command
2022-01-29 11:27:05 -05:00
SagePtr
40f2d16f44 Show "Can run scripts" to "NO" for zero-RAM servers in "analyze" command 2022-01-29 18:10:59 +02:00
zeddrak
ecdde9c96c learning ts
forgot a return type, all better now, we hope....
2022-01-28 15:34:39 -08:00
zeddrak
1b81aa2533 moar fixes
just tidying up some more parameters left over from copy/paste
2022-01-28 15:30:28 -08:00
zeddrak
f8c4d07cc2 quick fix
forgot to remove a line used for notes
2022-01-28 15:25:03 -08:00
zeddrak
9af0ed7dba (WIP) intermediate save 2
Have all the functions in, but need to setup the repercussions.
2022-01-28 15:21:05 -08:00
zeddrak
744cecb058 minor fix
Better to leave off with a commit that at least passes checks ;)
2022-01-28 13:45:12 -08:00
zeddrak
3401f7d0d0 (WIP) Incremental save
Just saving my progress so far before pressing on after lunch.
2022-01-28 13:36:28 -08:00
hydroflame
9294ff3e9e Merge pull request #2857 from MatthewTh0/patch-1
Spelling fixes in comments
2022-01-28 16:32:56 -05:00
Matthew Thornton
48d4f698c2 Spelling fixes in comments
This just fixes some misspelling in the comments, doesn't change any code or variables.
2022-01-28 14:57:52 -06:00
hydroflame
097e808193 Merge pull request #2856 from zeddrak/patch-7
Fix for Dev not building
2022-01-28 13:13:14 -05:00
zeddrak
3e9728f4c4 more fix
really can't count...
2022-01-28 10:08:20 -08:00
zeddrak
db2369a669 more fix
can't count...
2022-01-28 10:03:40 -08:00
zeddrak
33ed170e29 more fix
two missing ( is better than one...
2022-01-28 10:00:28 -08:00
zeddrak
dc8b051bde Fix for Dev not building
It's the little things, like a missing "(", that make programmers happy all day long... >.<
2022-01-28 09:54:35 -08:00
hydroflame
47c2f9762c Merge pull request #2850 from HeinousTugboat/htugboat/replace-stanek-anys
Replaces anys in Stanek with unknown
2022-01-28 00:19:12 -05:00
hydroflame
77b9787fba Merge pull request #2846 from zeddrak/patch-5
Make crimes detection a little more friendly
2022-01-27 20:52:03 -05:00
hydroflame
a4b8a9ffd5 Update CrimeHelpers.ts 2022-01-27 20:51:48 -05:00
Heinous Tugboat
c7a3ac216f Replaces anys in Stanek with unknown 2022-01-27 20:48:37 -05:00
Olivier Gagnon
01680ca584 fix build 2022-01-27 20:44:50 -05:00
Olivier Gagnon
95e67f954b build 2022-01-27 20:24:43 -05:00
SagePtr
1726a0f930 Add CalculateShareMult to Field Work and Security Work 2022-01-27 22:46:29 +02:00
zeddrak
09da6ac63f Make crimes detection a little more friendly
Initially just wanted to change "traffick" to "traffic" (as that supports both the American and British spelling), but then noticed there were a couple of other ones that could be made slightly less restrictive to improve detection. All changes make detection LESS RESTRICTIVE for the player (ie, they have more ways to provide the parameter), none are MORE RESTRICTIVE (ie, won't break any existing code, etc.

Anything that worked before will still work, but now a few things that may not have worked before - like "traffic arms" (without the k), "illegal arms", and "assassin" will work. (Also allowed for the common misspelling of "forgary")
2022-01-27 11:36:06 -08:00
Jack Stupple
2942ca500b 2734: Fix regex to enable alpha transparency hex codes (8 digits) 2022-01-27 18:21:17 +00:00
smolgumball
2add4e9112 Merge branch 'dev' into add-ns-getRecentScripts 2022-01-26 19:07:02 -07:00
zeddrak
5a46aeb26d (WIP) Show current task on gang management screen
First draft of a fix for #2718
I haven't been able to test it, so please have someone test before implementing.
2022-01-26 15:57:54 -08:00
hydroflame
463af6cbf2 Merge pull request #2819 from MartinFournier/chore/rm-intermediary-doc
Remove intermediary doc input file
2022-01-26 12:58:10 -05:00
hydroflame
e392e6d71f Merge pull request #2780 from MartinFournier/feat/electron-store-winposition
Store Electron window position in user settings
2022-01-26 12:57:09 -05:00
hydroflame
b04c23bdd1 Merge pull request #2821 from MartinFournier/chore/npm-deps-audit
Run `npm audit fix` to resolve vulnerabilities
2022-01-26 12:56:59 -05:00
hydroflame
cef0f30993 Merge pull request #2820 from MartinFournier/chore/declutter
Declutter repository root
2022-01-26 12:56:37 -05:00
hydroflame
8c9be1667f Merge pull request #2825 from MartinFournier/chore/move-bundle
Move main bundle output to ./dist subfolder
2022-01-26 12:56:25 -05:00
hydroflame
26d5e4dae0 Merge pull request #2781 from MartinFournier/feat/steam-saves
Add Steam Cloud saves & filesystem saves to Electron
2022-01-26 12:56:16 -05:00
Martin Fournier
70eef25d63 Rebuild the app using the new webpack config 2022-01-26 06:11:32 -05:00
Martin Fournier
069b7831d1 Move main bundle output to ./dist subfolder
Excludes the index.html so that the github page can still work as is.

This will declutter the root of the repo a fair bit.
2022-01-26 06:11:32 -05:00
Martin Fournier
412ef543c8 Run npm audit fix to resolve vulnerabilities
It did not resolve all of the vulns as some are gated behind breaking
changes. Most of them seem to be resolved when updating to webpack 5

Also moves devDependencies out of normal dependencies, as a few libs
were better suited for dev.
2022-01-26 05:47:27 -05:00
Martin Fournier
8e119b2b5b Move cypress & netscript tests to ./test subfolder 2022-01-26 05:35:21 -05:00
Martin Fournier
f943e55e86 Move engines-check to ./tools subfolder 2022-01-26 05:35:21 -05:00
Martin Fournier
a53e0c09af Move steam files to ./assets/Steam subfolder 2022-01-26 05:35:21 -05:00
Martin Fournier
bf6366cef4 Move markdown doc & quotes to ./docs subfolder 2022-01-26 05:35:21 -05:00
Martin Fournier
914c0f44c4 Remove intermediary doc input file 2022-01-26 05:18:58 -05:00
Martin Fournier
a47eae8b25 Add function to enable/disable routing
Wraps the toX() functions of the Router to add a check to only run the
function when it is allowed.

The check is used in the import page to prevent user scripts from
redirecting away to a crime or something else.
2022-01-26 03:56:19 -05:00
Martin Fournier
d386528627 Add support for Steam Cloud & local filesystem
Adds actions to save the game's data directly in the filesystem and/or
into Steam Cloud. Them game will push an event with the save data
whenever the game is saved. Electron will use that data to persist it
into the User Data folder, until the folder reaches a certain size.
Once over the quota, it's going to remove previous saves.

Files are grouped according the the player's identifier, ensuring
backups off different playthroughs if importing.

Optionally, the file will be gzipped before saving to disk, largely
reducing file size.

Adds a way to save & load from Steam Cloud, currently manually only.

When loading a save, it'll trigger the new "Import Data Comparison" page
to accept or cancel the import.

When saving the game, it will save to Steam Cloud & to filesystem if the
options are enabled.

Add automatic game restore

Detects when the player has access to a newer game that has been saved
more recently than the one being loaded. It checks both in the Steam
Cloud and on the local filesystem. Adds an option to disable the
feature.

- Adds a "Save Game" menu item that triggers the game's save.
- Adds a "Export Game" menu item that triggers the download file popup.
- Adds a "Export Scripts" menu item that triggers the "download *"
terminal command.
- Adds a "Load Last Save" menu item that loads the latest file modified
in the user data folder.
- Adds a "Load from Steam Cloud" menu item.
- Adds a "Load From File" menu item that popups a file selector & loads
the file.
- Adds settings for "Saves Compression (.gz)", "Auto-save Backups" &
"Auto-save to Steam", toggleable through the menu.
- Adds a "Open Game Data","Open Saves", "Open Logs" & "Open User Data" menu items.
- Adds a "Quit" menu item.
2022-01-26 03:56:19 -05:00
Martin Fournier
855a4e622d Add Electron preload script to allow communication
Adds a channel to communicate between the main process & the renderer
process, so that the game can easily ship data back to the main process.

It uses the Electron contextBridge & ipcRenderer/ipcMain.

Connects those events to various save functions. Adds triggered events
on game save, game load, and imported game. Adds way for the Electron
app to ask for certain actions or data.

Hook handlers to disable automatic restore

Allows to temporarily disable restore when the game just did an import
or deleted a save game. Prevents looping screens.
2022-01-26 03:56:19 -05:00
Martin Fournier
26432082e2 Add an import save comparison page
This adds a new page reachable from the import save file
options menu. It shows the difference between the current save
and the data that is being imported, for confirmation.

Includes an "automatic" variant, which has different wording for when
Electron decides it has access to a newer version of the game.

While in this screen, the autosave is disabled.

This also adds a new BypassWrapper component around the game's tree.
It allows for content to be displayed without rendering the nested
pages (import, recovery). This prevents player scripts from messing
with the screen.
2022-01-26 03:56:17 -05:00
Martin Fournier
974344545d Move import save functionality into SaveObject
Adds a lot of metadata to be able to easily compare the new save to the
current player.

- Adds lastSaved & identifier to the PlayerObject
- Includes a hash method used to generate an identifier
2022-01-26 03:42:52 -05:00
Martin Fournier
588c3e42d7 Refactor download.ts (export "download *" command)
Export the "download *" helper to be able to be called from Electron.
2022-01-26 03:40:22 -05:00
Martin Fournier
5c1504d7e4 Include lodash in Electron
Will be used to debounce function calls. Is a prerequisite for a few
other fixes.
2022-01-26 03:40:22 -05:00
Martin Fournier
ca5f51b7f0 Keep Electron window position in settings
This allows the app to be kept at the same location it was previously.
2022-01-26 03:39:50 -05:00
Martin Fournier
dc2f00057a Include lodash in Electron
Will be used to debounce function calls. Is a prerequisite for a few
other fixes.
2022-01-26 03:38:22 -05:00
nickofolas
41eac2e775 Adjust sizing for corp and gang tabs 2022-01-26 00:53:17 -06:00
nickofolas
c0a27e7d66 Active scripts tab sizing 2022-01-26 00:53:16 -06:00
nickofolas
e81bd48ca6 Update Tab(s) design 2022-01-26 00:53:16 -06:00
Olivier Gagnon
022dd5d7d7 fix compile error 2022-01-26 00:58:02 -05:00
hydroflame
d27bac9be6 Merge pull request #2716 from lordducky/enhance-api-server
Enhance api server
2022-01-26 00:53:17 -05:00
hydroflame
2f36fb107f Merge pull request #2803 from MartinFournier/feat/github-actions
Adds GitHub workflows to fetch a changelog & to bump the app's version
2022-01-26 00:52:06 -05:00
hydroflame
9fa706073f Merge pull request #2745 from jamie-mac/fix/roulette-result
Fix incorrect result being detected on the roulette table
2022-01-26 00:51:03 -05:00
hydroflame
1a34d5e363 Merge pull request #2703 from lethern/patch-1
purchaseServer error message fix + small docs change
2022-01-26 00:50:42 -05:00
hydroflame
a05ecc76c2 Merge pull request #2727 from nickofolas/feature/editor-tab-actions
Script Editor Tab Actions
2022-01-26 00:50:23 -05:00
hydroflame
3654a238ae Merge pull request #2726 from SagePtr/recheck-achievements
Force achievements recalculation on bitnode completion
2022-01-26 00:50:06 -05:00
hydroflame
6e33417399 Merge pull request #2736 from MartinFournier/feature/sleeve-bonus-time
Display bonus time in sleeve detailed stats panel
2022-01-26 00:49:20 -05:00
hydroflame
ae2c6a4c7c Merge pull request #2737 from pd/crimestats-name
NetscriptDefinitions: Fix type of CrimeStats.name
2022-01-26 00:49:04 -05:00
hydroflame
4a1e3e75ec Merge pull request #2760 from jamie-mac/fix/slots
Fixes issue with incorrect result in slots, and corrects the direction of the reel spin
2022-01-26 00:48:54 -05:00
hydroflame
ac9381e30d Merge pull request #2784 from dwRchyngqxs/blackjack_precise_decks
Add the deck count for blackjack
2022-01-26 00:48:42 -05:00
hydroflame
7e81575cb5 Merge pull request #2782 from dwRchyngqxs/hacking_exp_mult
Fixed player hacking exp multiplier application
2022-01-26 00:48:09 -05:00
hydroflame
ea9871fef0 Merge pull request #2641 from MartinFournier/feature/save-command-history
Copy terminal command history into game save
2022-01-26 00:47:02 -05:00
hydroflame
acee3c2994 Merge pull request #2705 from pigalot/bug-corp-product-cost
BUG: Fix for corp product cost
2022-01-26 00:46:39 -05:00
hydroflame
7a5dfd0e72 Merge pull request #2707 from MartinFournier/feature/theme-browser
Add Theme Browser accessible from GameOptions
2022-01-26 00:46:17 -05:00
hydroflame
77ba45df40 Merge pull request #2735 from Ninetailed/ns_printf
Add ns.printf function
2022-01-26 00:45:18 -05:00
hydroflame
2fe8a334ef Merge pull request #2747 from smolgumball/improve-faction-root
ui: cleanup styles + presentation in FactionsRoot.tsx
2022-01-26 00:44:55 -05:00
hydroflame
2ecc71ba28 Merge pull request #2738 from pd/corp-jsdoc
NetscriptDefinitions: fix jsdoc for Corp research functions
2022-01-26 00:44:43 -05:00
hydroflame
85a8036ecf Merge pull request #2751 from nickofolas/improvement/ui-pass
UI Improvements Pass
2022-01-26 00:44:20 -05:00
hydroflame
6c3ad48ef5 Merge pull request #2763 from Ornedan/formulas-access-checks
Fix formulas access checks
2022-01-26 00:42:51 -05:00
hydroflame
44a6f1b5a8 Merge pull request #2775 from dwRchyngqxs/script_nan_fix
Fixed array comparison handling of NaN
2022-01-26 00:42:29 -05:00
hydroflame
64662df91e Merge pull request #2764 from zeddrak/patch-1
HacknetServer Grow/Weaken error messages
2022-01-26 00:42:11 -05:00
hydroflame
80396a3416 Merge pull request #2769 from zeddrak/patch-2
In response to Issue #2732
2022-01-26 00:41:51 -05:00
hydroflame
16b959338b Merge pull request #2772 from ChrissiQ/patch-1
Update spawn.rst
2022-01-26 00:41:14 -05:00
hydroflame
2c9302ee53 Merge pull request #2778 from MartinFournier/feat/electron-build-script
Modify electron build script to allow platform selection
2022-01-26 00:40:49 -05:00
hydroflame
bbef8452b3 Merge pull request #2771 from zeddrak/patch-3
Documentation edit in response to Issue #2678
2022-01-26 00:40:28 -05:00
hydroflame
862835e452 Merge pull request #2777 from MartinFournier/feat/electron-linux-icon
Add missing steam app icon for linux
2022-01-26 00:40:18 -05:00
hydroflame
de122eca73 Merge pull request #2779 from MartinFournier/fix/electron-mac-crash
Fix 'Steam not running' popup causing crash on MacOS
2022-01-26 00:36:57 -05:00
hydroflame
c2c31eede6 Merge pull request #2816 from danielyxie/revert-2785-improve-server-grow-low-money
Revert "Use min `server.moneyAvailable` of 1$ when growing server money"
2022-01-26 00:35:48 -05:00
hydroflame
5e10f7df1f Revert "Use min server.moneyAvailable of 1$ when growing server money" 2022-01-26 00:35:42 -05:00
hydroflame
0a0b7db06f Merge pull request #2785 from davidpa9708/improve-server-grow-low-money
Use min `server.moneyAvailable` of 1$ when growing server money
2022-01-26 00:34:52 -05:00
hydroflame
d5b937aaef Merge pull request #2788 from MartinFournier/fix/electron-deprec-fix
Set nativeWindowOpen to fix deprecation warning
2022-01-26 00:33:16 -05:00
hydroflame
939136a32a Merge pull request #2807 from dowinter/dev
Fix augmentation order when set to alphabetically
2022-01-26 00:32:59 -05:00
hydroflame
be69b5ef9c Merge pull request #2792 from PSEUDOSTAGE/patch-1
Add a spoiler warning to Factions page
2022-01-26 00:32:33 -05:00
hydroflame
0dd339bb4d Merge pull request #2790 from SlyCedix/travelToCity-money-fix
Make travelToCity throw on invalid city name and return false on no money
2022-01-26 00:32:25 -05:00
hydroflame
63e2250c15 Merge pull request #2796 from fearnlj01/patch-1
Band-aid fix for visible 'spoilers' in factions RTD
2022-01-26 00:32:12 -05:00
hydroflame
13453e678f Merge pull request #2809 from pd/corp-api-leftovers
Corp API: Add setSmartSupplyUseLeftovers
2022-01-26 00:31:58 -05:00
hydroflame
a6fb6df04f Merge pull request #2811 from reasonablytall/dev
Indicate that getRunningScript can return null
2022-01-26 00:31:26 -05:00
hydroflame
0f2dd23eba Merge pull request #2813 from jamie-mac/fix/cypress-tests
Fix: Cypress tests for dev (updates to match UI changes)
2022-01-26 00:31:00 -05:00
hydroflame
5dd1c0224a Merge pull request #2814 from SagePtr/patch-1
Add rounding to getPurchaseServerCost
2022-01-26 00:30:45 -05:00
Sage Pointer
98f40ca092 Add rounding to getPurchaseServerCost 2022-01-26 06:02:05 +02:00
jamie-mac
1b1206c95d Fix: Cypress tests for dev (updates to match UI changes) 2022-01-25 23:57:36 +00:00
Alex Aubuchon
6342ccbad5 Indicate that getRunningScript can return null 2022-01-25 18:28:47 -05:00
Phil Despotos
65ffbcc27e Corp API: Add setSmartSupplyUseLeftovers
The API can already toggle smart supply on/off, but can't manage the
related controls for whether smart supply will draw from the existing
materials in the warehouse. Without it, we can't keep some resources in
storage to boost the production multiplier without disabling smart
supply entirely.
2022-01-25 12:51:07 -06:00
Dominik Winter
e29eceb2bd fix augmentation order when set to alphabetically 2022-01-25 18:21:09 +01:00
Martin Fournier
8a2cad6c4a Reset styles for html changelogs in getUpdateText
Adds an optional sxProps to the DialogBox component.
2022-01-25 10:20:36 -05:00
Martin Fournier
c4ddb5ef64 Add tool to bump version & create PR
This includes a tool to update the various files in the repo that need
to change when a version increments.

It also includes a workflow to trigger the action manually, passing it a
version & a changelog url. It'll update the values, build the app, build
the doc, make a commit in a branch, and create a pull request to merge
this stuff back into dev.
2022-01-25 10:20:36 -05:00
Martin Fournier
c367de24a8 Add tool & workflow to fetch changelog
Rewrote the changelog script to use primarily merged pull requests
between "commit A" and "commit B".
It uses the GitHub rest api. The resulting data is pushed to a draft gist.

Manual usage is in the README.

Also adds a GitHub workflow action to run the tool on demand, through
the GitHub action's interface.
2022-01-25 10:20:36 -05:00
Jordan Fearnley
45e106ebe5 Band-aid fix for visible 'spoilers' in factions RTD
Segments the table into multiple expandable parts using the raw RST directive to add HTML directly to the page. Not really a great practice, but would at least quell any arguments as to how spoiler heavy the page is in the meantime.

I'm not sure that the proposed change is up to standard, but will open the PR based on initial feedback to screenshots and leave for others to decide.

https://discord.com/channels/415207508303544321/924108882551386133/935278973154361434 - Screenshots of what it looks like when generated locally with sphinx
2022-01-24 21:30:00 +00:00
PSEUDOSTAGE
b255430875 inserted spoiler warning
Just included the spoiler warning from the other guide pages.
2022-01-24 15:07:49 -05:00
David Perez Alvarez
6de6fa092f "improve" server money grow when 0
min `server.moneyAvailable` of 1$ when growing

unify displayed growth
2022-01-24 09:51:36 -05:00
Cyn
cdeae4ef68 Make travelToCity throw on invalid city name and return false on no money 2022-01-23 22:08:07 -05:00
Martin Fournier
e7aa977eb0 Persist terminal command history in game save
Copy the terminal commands into the player object so that they are saved
between game reloads.

Adds a 'history' command to display history, and a 'history -c' command
to clear it from both the current terminal & the player's save.
2022-01-23 17:09:54 -05:00
Martin Fournier
df0a86966a Add icon for linux 2022-01-23 16:52:19 -05:00
qcorradi
23cd53aad4 Add the deck count for blackjack 2022-01-23 22:08:23 +01:00
qcorradi
08314ed33e Fixed array comparison handling of NaN
Issue #2033 is fixed, not using Object.is as recommended by https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#when_to_use_object.is_versus_triple_equals
2022-01-23 20:33:32 +01:00
qcorradi
341975ee09 Fixed player hacking exp multiplier application
Fixing the application of player's exp multiplier as indicated in #2260,
the game balance will need to get re-adjusted in consequence.
2022-01-23 20:30:36 +01:00
Martin Fournier
73d777ef86 Remove files from previous electron builds
Ensure we don't keep old files around in the published app.
2022-01-23 13:24:14 -05:00
Martin Fournier
abfb2127f2 Fix 'Steam not running' popup causing crash on Mac 2022-01-23 13:04:19 -05:00
Martin Fournier
ee416dc06e Set nativeWindowOpen to fix deprecation warning 2022-01-23 13:01:40 -05:00
Martin Fournier
1d118cc8be Modify electron build script to select platforms
Allows to build only mac windows or linux for a quicker build time while
developping.
2022-01-23 12:58:20 -05:00
ChrissiQ
e175faecd8 Update spawn.rst
Code example comment represented passing '10' as an arg to the script, when actually it's the number of threads so a `-t 10` flag.  Fixed the comment to show this.
2022-01-23 01:06:06 -07:00
zeddrak
56fe63cdd5 In response to Issue #2678
Added some clarifications in response to Issue #2678.
Did not rebuild the md files (I didn't want to cause unnecessary file conflicts).
2022-01-22 21:41:53 -08:00
zeddrak
3fa580cb93 Update codingcontracttypes.ts 2022-01-22 21:06:20 -08:00
zeddrak
57a1bef967 In response to Issue #2732 (Optional)
This simply clarifies the description for the find all valid math expressions in response to issue #2732 
https://github.com/danielyxie/bitburner/issues/2732
2022-01-22 21:00:28 -08:00
zeddrak
4ffe5508dc HacknetServer Grow/Weaken error messages
It may be intentional to use hack for all 3 (ie, assume the player makes the connection that can't hack, also means can't grow or weaken), in which case, disregard.
On the other hand, it could've easily been a copy/paste artifact, and this would be more explicitly clear, so thought it was worth bringing up.
2022-01-22 14:47:33 -08:00
Heikki Aitakangas
621df103cf Fix formulas access checks 2022-01-23 00:31:59 +02:00
nickofolas
f6bb4e0138 Fix console warning on ascension modal 2022-01-22 11:37:27 -06:00
nickofolas
3921457ee6 Update Gang equip. page UI 2022-01-22 11:16:51 -06:00
jamie-mac
ef95ec2e90 Fix: slots result matches against a previous state of the reels
Fix: reels spin the wrong way
2022-01-22 16:05:27 +00:00
nickofolas
310374dc56 Fix console complaints with gang cards 2022-01-22 09:36:36 -06:00
Luca Montagna
bd775f167e fixed temp evaluation of MAX and PROD for products 2022-01-22 13:58:51 +01:00
Luca Montagna
bfa271881b fixed temporary evaluation of MAX and PROD 2022-01-22 13:32:35 +01:00
Xi-Lin Yeh
cf8908fbc8 Add metadata (hash, ramUsage) to be returns
Allows for better dirty checking and integrations
2022-01-21 20:49:12 -08:00
nickofolas
c6ddba9f5f Redesign Gang management page 2022-01-21 20:02:29 -06:00
smolgumball
1c856bf7ef Resort imports 2022-01-21 15:57:44 -07:00
smolgumball
f28c5b3b45 Improve row spacing 2022-01-21 15:55:10 -07:00
nickofolas
259071e3d5 Align slider endpoints in settings 2022-01-21 16:32:32 -06:00
smolgumball
275e8c8756 Cleanup styles + presentation in FactionsRoot.tsx 2022-01-21 15:29:24 -07:00
nickofolas
a954095519 Prevent FactionRoot options from extending beyond the window 2022-01-21 16:15:41 -06:00
nickofolas
6018f2280d Research modal UI pass 2022-01-21 16:08:02 -06:00
jamie-mac
8963842276 Fixes black matching 0 on the roulette table 2022-01-21 21:28:25 +00:00
jamie-mac
60c354622d Fixes incorrect result being detected on the roulette table
Resolves #2382
Resolves #2086
2022-01-21 20:42:09 +00:00
nickofolas
844b228596 Align overview page 2022-01-21 14:32:02 -06:00
nickofolas
a904c362d9 Office UI alignment 2022-01-21 14:32:02 -06:00
nickofolas
542f164930 Align warehouse buttons 2022-01-21 14:32:02 -06:00
smolgumball
90e855053d Merge branch 'dev' into add-ns-getRecentScripts 2022-01-21 13:13:18 -07:00
Xi-Lin Yeh
935f4718e0 Fix type in delete function 2022-01-21 08:52:53 -08:00
lethern
a96053a82b Aug info: fixed typo 2022-01-21 15:51:31 +01:00
Kyle Hargraves
b7604709e5 NetscriptDefinitions: fix jsdoc for Corp research functions 2022-01-21 07:37:16 -06:00
Kyle Hargraves
267a7144cb Fix type of CrimeStats.name 2022-01-21 07:32:39 -06:00
Martin Fournier
6dba1db3c9 Display bonus time in sleeve detailed stats panel
Also adds a field to modify the stored cycles in the dev menu.
2022-01-21 07:50:41 -05:00
Terrana
f2c4109211 Add ns.printf function
Behaviour is consistent with that of tprintf versus tprint and
should be equivalent to ns.print(ns.sprintf(...))
2022-01-21 12:08:47 +00:00
hydroflame
8f6e762107 Merge pull request #2731 from danielyxie/dev
update scam msg
2022-01-20 23:53:50 -05:00
Olivier Gagnon
07fe3c1906 update scam msg 2022-01-20 23:53:33 -05:00
hydroflame
97f8144baf Merge pull request #2730 from danielyxie/dev
update to prevent scam
2022-01-20 23:43:47 -05:00
Olivier Gagnon
a3c599e6c5 update to prevent scam 2022-01-20 23:43:19 -05:00
nickofolas
1a8a24587f Ensure that the proper editor is updated by syncing 2022-01-20 17:45:54 -06:00
Martin Fournier
5c0d76828f Add ID to ThemeEditorButton 2022-01-20 18:43:36 -05:00
Martin Fournier
a26b9c8dcf Add theme browser page accessible from game options
Removed the themes buttons that were in the ThemeEditorModal and only
left a "Revert to Default" button along with a link to the ThemeBrowser
page.

Split off the buttons into reusable components since they are now used
in two pages.

Display the themes in big cards with a zoomable screenshot. Applying the
theme now shows a toast with an option to undo the action.

The snackbar now allows ReactNode instead of only strings.

- Add link with details on how to create a new theme in the game.
- Add link to the theme-sharing discord channel.
- Add icons to the theme & style buttons in GameOptions
- Add "Theme Editor" button to ThemeBrowser
- Add "Style Editor" button to ThemeBrowser
- Move Styles related files into Themes folder
- Includes a modal that shows a bigger version of the screenshot.
- Change Snackbar to allow for ReactNode as the message
2022-01-20 18:41:49 -05:00
Martin Fournier
61d6e43b37 Add theme screenshots & make some fields required
- Description, Name & Author is now mandatory
- Add screenshots
- Add dist/images to electron build
2022-01-20 18:41:49 -05:00
Martin Fournier
a9e2e35446 Move theme related things into its own subfolder
This will make contributions easier and less prone to conflicts.
2022-01-20 18:41:48 -05:00
Martin Fournier
aae3851d59 Add webpack file-loader to handle images
It lets us bundle static files such as images.

Allows us to `imports img from "./img.png"` to retrieve an image's path.
Note that we'll have to add other entries in the global.d.ts file if we
want to handle other extensions than .png.

Adds mocks to Jest tests so that we don't fail tests when loading static
assets.
2022-01-20 18:41:48 -05:00
nickofolas
a5ad97f47d Remove unnecessary editor code 2022-01-20 17:28:19 -06:00
nickofolas
99ef71de4a Update prompt message content 2022-01-20 17:14:38 -06:00
SagePtr
32ba81883f Force achievements recalculation on bitnode completion 2022-01-21 00:04:47 +02:00
nickofolas
bc50f5180a Refactor 2022-01-20 15:48:17 -06:00
nickofolas
b4a78c26f3 Implement editor tab actions 2022-01-20 15:48:16 -06:00
hydroflame
aff9b58040 Merge pull request #2724 from danielyxie/dev
RM caching
2022-01-20 16:22:41 -05:00
Olivier Gagnon
f7d18efaf6 Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-01-20 16:14:35 -05:00
Olivier Gagnon
77f525c98c rm blob caching 2022-01-20 16:11:48 -05:00
Xi-Lin Yeh
861fcf70c4 Clean invocation of get/delete 2022-01-20 09:39:50 -08:00
hydroflame
fd530ad779 Merge pull request #2704 from Meowdoleon/patch-1
Declaring the script variable in the NS2 example
2022-01-20 12:25:04 -05:00
hydroflame
ca7b8068ea Merge pull request #2713 from JohnnyUrosevic/dev
Change "import" to "important" in hackers-starting-handbook.lit
2022-01-20 12:24:45 -05:00
hydroflame
0ff9ff87d1 Merge pull request #2715 from JosephDavidTalbot/dev
Fixed Formatting Issue with Coding Contract Documentation
2022-01-20 12:24:31 -05:00
hydroflame
51efb0b72d Merge pull request #2720 from MartinFournier/feature/add-version-title
Add game version in document.title
2022-01-20 12:24:16 -05:00
Martin Fournier
6e908814db Add game version in document.title
Also add [dev] prefix when in development mode.
2022-01-20 09:26:07 -05:00
Xi-Lin Yeh
5386f8e027 Commonalize Api-server response handling
- Fixed issue with error headers
- Aggregated response handling
2022-01-20 00:14:42 -08:00
Xi-Lin Yeh
4a3ee95b63 Enhanced API Server interface
- Used restful patterns for handling server calls (GET/PUT/DELETE)

- Utilized Server interface for saves rather than reimplementing code

- Exposed operations for getting codebase of scripts on the home server and deleting files.

- Added a common response structure
2022-01-20 00:03:07 -08:00
Joe
f28dfcf3ba Merge branch 'dev' of https://github.com/JosephDavidTalbot/bitburner into dev 2022-01-19 15:35:01 -06:00
Joe
5952f01885 Fixed Coding Contract Documentation
The table wasn't displaying. Put a misplaced | back where it should be. Should work fine now.
2022-01-19 15:34:48 -06:00
Joe
b63bb3f1e6 Fixed the Coding Contracts docs formatting
The table wasn't displaying, and one of the lines was out of place. This should probably fix it.
2022-01-19 15:26:10 -06:00
Johnny Urosevic
81db1b0a97 Change "import" to "important" 2022-01-19 13:00:59 -08:00
smolgumball
1a6300b287 Cleanup @usage docs 2022-01-19 13:32:07 -07:00
Meowdoleon
c5bf58a3eb Declaring the script variable in the NS2 example
Small change to declares the script variable in the NS2 example.
2022-01-19 13:58:15 -05:00
pigalot
5c7ac9ab8e Fix for corp product cost 2022-01-19 18:44:48 +00:00
lethern
61cea12ca2 purchaseServer: improved error message for ram > maxRam 2022-01-19 19:09:33 +01:00
smolgumball
74e2acfa6f Add ns.getRecentScripts() 2022-01-19 00:04:48 -07:00
hydroflame
34f18a6000 Merge pull request #2695 from SagePtr/patch-1
Remove console spamming from CalculateShareMult
2022-01-19 01:53:15 -05:00
hydroflame
7090d02af5 Merge pull request #2696 from nathangiusti/patch-1
Update scriptKill example
2022-01-19 01:53:04 -05:00
Nathan Giusti
d9da8c5d20 Update scriptKill example
Function requires a hostname. Added the "home" hostname as an example.
2022-01-18 21:13:09 -05:00
Sage Pointer
5fc7993dff Remove console spamming from CalculateShareMult 2022-01-19 02:47:51 +02:00
phyzical
71ac4aacf1 updated buyback and sells functions docs 2022-01-19 08:25:12 +08:00
Olivier Gagnon
53727f6222 typo 2022-01-18 19:20:16 -05:00
hydroflame
b02380011a Merge pull request #2694 from danielyxie/dev
fix asleep
2022-01-18 19:13:13 -05:00
Olivier Gagnon
69cf98ff34 doc 2022-01-18 19:12:52 -05:00
Olivier Gagnon
d2ec38753b Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-01-18 18:59:17 -05:00
Olivier Gagnon
d0a44a6088 change asleep 2022-01-18 18:57:43 -05:00
hydroflame
bb34d6b582 Merge pull request #2618 from pigalot/Corp-Api-Updates
Corp api updates
2022-01-18 18:05:23 -05:00
hydroflame
b6f514dd4d Merge pull request #2693 from nickofolas/fix/body-background
Use background primary for `<body>`
2022-01-18 17:50:49 -05:00
hydroflame
7bebc86b11 Merge pull request #2684 from nickofolas/improvement/script-editor
Script Editor Improvements
2022-01-18 17:49:07 -05:00
nickofolas
eb7a0ebace Use background primary before #000000 for body 2022-01-18 16:15:36 -06:00
hydroflame
ae83eeacb7 Merge pull request #2689 from nickofolas/fix/singularity-focus
Fix Singularity focus arg issues
2022-01-18 17:00:12 -05:00
hydroflame
56213a109c Merge pull request #2692 from MartinFournier/tool/changelog
Add script to generate a markdown changelog
2022-01-18 16:53:55 -05:00
Martin Fournier
e5d951ed05 Add script to generate a markdown changelog 2022-01-18 15:47:19 -05:00
hydroflame
b636b07416 Merge pull request #2691 from danielyxie/dev
v1.4
2022-01-18 15:33:10 -05:00
lethern
1dcae1aeec Update NetscriptDefinitions.d.ts
grow/weaken/hack: removed threads part from example - confuses newbies
2022-01-18 16:15:40 +01:00
nickofolas
2d38ce8f72 Fix focus arg for sing functions 2022-01-18 08:49:06 -06:00
nickofolas
89fd54698b Fix ns.setFocus 2022-01-18 08:20:58 -06:00
nickofolas
258a1b262e Update options button 2022-01-17 17:20:38 -06:00
lethern
bb6c2cd79e Update NetscriptFunctions.ts 2022-01-17 23:53:44 +01:00
nickofolas
a9314f2447 Show N/A when editing a txt file 2022-01-17 16:44:55 -06:00
nickofolas
c41cd68a8d Add modal to editor with RAM details 2022-01-17 16:32:45 -06:00
nickofolas
c1b777733f Improve clarity of editor tabs 2022-01-17 15:14:07 -06:00
phyzical
dd47a8baa0 throw error without bulk purchase reasearch 2022-01-17 20:00:19 +08:00
phyzical
6f2924dc0d generated docs 2022-01-17 18:24:42 +08:00
phyzical
d50e199171 added buybackShares, sellShares and bulkPurchase 2022-01-17 18:03:29 +08:00
phyzical
b742fae1c6 Bugfix for creating products in invalid industries 2022-01-17 17:58:09 +08:00
pigalot
8b52607113 Update docs after rebase 2022-01-16 16:13:45 +00:00
pigalot
d34d720ab9 Office Size Upgrade Cost 2022-01-16 16:12:03 +00:00
pigalot
2246dd7fe6 Update src/ScriptEditor/NetscriptDefinitions.d.ts
Co-authored-by: Jack <phyzicaly@hotmail.com>
2022-01-16 16:12:00 +00:00
pigalot
4e099a935e Update markdown/bitburner.product.md
Co-authored-by: Jack <phyzicaly@hotmail.com>
2022-01-16 16:12:00 +00:00
pigalot
9ad4193270 Update markdown/bitburner.product.developmentprogress.md
Co-authored-by: Jack <phyzicaly@hotmail.com>
2022-01-16 16:12:00 +00:00
pigalot
416c4ad619 swap if for Math.min 2022-01-16 16:12:00 +00:00
pigalot
4f391682b7 Fix for unneeded extra = 2022-01-16 16:12:00 +00:00
pigalot
bd20f16a2d Fix for AI Cores in smart supply 2022-01-16 16:12:00 +00:00
pigalot
6ee291e0b3 Update md docs 2022-01-16 16:12:00 +00:00
pigalot
dc5e9f5269 More changes to docs 2022-01-16 16:11:56 +00:00
pigalot
3476fc8218 Update Docs 2022-01-16 16:11:52 +00:00
pigalot
4562102448 Fix for js docs 2022-01-16 16:11:32 +00:00
pigalot
62f40b3dc1 Add bribe 2022-01-16 16:11:32 +00:00
pigalot
ea88f5f150 spelling mistake 2022-01-16 16:11:32 +00:00
pigalot
1b1dc20c16 fix error message 2022-01-16 16:11:32 +00:00
pigalot
6533913b3b add docs for create corp self fund 2022-01-16 16:11:32 +00:00
pigalot
19ecda1607 Fix doc bug 2022-01-16 16:11:32 +00:00
pigalot
1384b86810 Added better job assignment function, and fix docs 2022-01-16 16:11:32 +00:00
pigalot
abdc786403 prevent DreamSense from pushing over max 2022-01-16 16:11:32 +00:00
pigalot
e245cc471a Prevent awareness and pop going over max 2022-01-16 16:11:31 +00:00
pigalot
98e8910c3a Research func, gopublic function, and validation 2022-01-16 16:11:31 +00:00
pigalot
2269f79b15 Add investments to the api 2022-01-16 16:11:31 +00:00
pigalot
1b8c715a5e Add costs and count function for ads 2022-01-16 16:11:31 +00:00
pigalot
42d767b443 Fix Bug with smart supply leftovers 2022-01-16 16:11:31 +00:00
pigalot
74019bc2be Make list of divisions accessable on the corp 2022-01-16 16:11:31 +00:00
pigalot
360b8d8d16 Add has corp to the api player object 2022-01-16 16:11:31 +00:00
pigalot
2cfa589da6 Prevent seed money outside of 3 2022-01-16 16:11:31 +00:00
pigalot
e2bb76ae6d Add createCorp 2022-01-16 16:11:31 +00:00
pigalot
bea6b0e0b1 Fix create corp text 2022-01-16 16:11:31 +00:00
pigalot
8729b54a9c Make 3.3 unlock all corp APIs 2022-01-16 16:11:31 +00:00
hydroflame
ca0ad1267c Merge pull request #2652 from danielyxie/dev
Merge bunch of PRs.
2022-01-15 18:40:05 -05:00
hydroflame
7977cf4a23 Merge pull request #2482 from KenJohansson/patch-5
Update hackingalgorithms.rst
2022-01-10 13:27:18 -05:00
hydroflame
9bfdd2ed16 Merge pull request #2521 from KenJohansson/patch-6
Update terminal.rst
2022-01-10 13:26:43 -05:00
hydroflame
8c67e6f741 Merge pull request #2525 from danielyxie/dev
update
2022-01-09 21:12:16 -05:00
KenJohansson
09fef62906 Update terminal.rst
Removed reference to .fconf since it's no longer used.
2022-01-09 22:42:02 +01:00
KenJohansson
a9b810d827 Update hackingalgorithms.rst
Removed "Growth can be made more efficient by dividing it into many processes, instead of one script with a high thread count. Four grow scripts with 20 threads will outperform one grow script with 80 threads." since this has been proven not to be true.
2022-01-09 00:14:54 +01:00
1473 changed files with 54017 additions and 225381 deletions

View File

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

View File

@@ -1,27 +1,26 @@
node_modules/
dist/
input/
.dist
.tmp
.package
assets/
css/
.build
.cypress/
cypress/
dist/
input/
assets/
doc/
markdown/
netscript_tests/
scripts/
test/netscript/
electron/lib
electron/greenworks.js
src/ThirdParty/*
src/JSInterpreter.js
tools/engines-check/
test/*.bundle.*
editor.main.js
main.bundle.js
webpack.config.js
webpack.config-test.js

View File

@@ -4,7 +4,12 @@ module.exports = {
commonjs: true,
es6: false,
},
extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:@typescript-eslint/strict",
],
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaVersion: 8,
@@ -12,387 +17,20 @@ module.exports = {
ecmaFeatures: {
experimentalObjectRestSpread: true,
},
project: ["./tsconfig.json", "./test/tsconfig.json", "./tools/tsconfig.json", "./test/cypress/tsconfig.json"],
},
plugins: ["@typescript-eslint"],
extends: ["plugin:@typescript-eslint/recommended"],
rules: {
"accessor-pairs": [
"@typescript-eslint/no-unused-vars": [
"error",
{
setWithoutGet: true,
getWithoutSet: false,
argsIgnorePattern: "^__",
varsIgnorePattern: "^__",
caughtErrorsIgnorePattern: "^__",
},
],
"array-bracket-newline": ["off"],
"array-bracket-spacing": ["off"],
"array-callback-return": ["off"],
"array-element-newline": ["off"],
"arrow-body-style": ["off"],
"arrow-parens": ["off"],
"arrow-spacing": ["off"],
"block-scoped-var": ["off"],
"block-spacing": ["off"],
"brace-style": ["off"],
"callback-return": ["error"],
camelcase: ["off"],
"capitalized-comments": ["off"],
"class-methods-use-this": ["off"],
complexity: ["off"],
"consistent-return": ["off"],
"consistent-this": ["off"],
"constructor-super": ["error"],
curly: ["off"],
"default-case": ["off"],
"dot-notation": ["off"],
"eol-last": ["off"],
eqeqeq: ["off"],
"for-direction": ["error"],
"func-call-spacing": ["off"],
"func-name-matching": ["error"],
"func-names": ["off", "never"],
"func-style": ["off"],
"function-paren-newline": ["off"],
"getter-return": [
"error",
{
allowImplicit: false,
},
],
"global-require": ["off"],
"guard-for-in": ["off"],
"handle-callback-err": ["error"],
"id-blacklist": ["error"],
"id-length": ["off"],
"id-match": ["error"],
indent: ["off"],
"indent-legacy": ["off"],
"init-declarations": ["off"],
"key-spacing": ["off"],
"keyword-spacing": ["off"],
"line-comment-position": ["off"],
"linebreak-style": [
"off", // Line endings automatically converted to LF on git commit so probably shouldn't care about it here
],
"lines-around-comment": ["off"],
"lines-around-directive": ["error"],
"lines-between-class-members": ["error"],
"max-depth": ["off"],
"max-len": ["off"],
"max-lines": ["off"],
"max-nested-callbacks": ["error"],
"max-params": ["off"],
"max-statements": ["off"],
"max-statements-per-line": ["off"],
"multiline-comment-style": ["off", "starred-block"],
"multiline-ternary": ["off", "never"],
"new-cap": ["off"],
"new-parens": ["off"],
"newline-after-var": ["off"],
"newline-before-return": ["off"],
"newline-per-chained-call": ["off"],
"no-alert": ["error"],
"no-array-constructor": ["error"],
"no-await-in-loop": ["error"],
"no-bitwise": ["off"],
"no-buffer-constructor": ["error"],
"no-caller": ["error"],
"no-case-declarations": ["error"],
"no-catch-shadow": ["error"],
"no-class-assign": ["error"],
"no-compare-neg-zero": ["error"],
"no-confusing-arrow": ["error"],
"no-console": ["off"],
"no-const-assign": ["error"],
"no-constant-condition": [
"error",
{
checkLoops: false,
},
],
"no-continue": ["off"],
"no-control-regex": ["error"],
"no-debugger": ["error"],
"no-delete-var": ["error"],
"no-div-regex": ["error"],
"no-dupe-args": ["error"],
"no-dupe-class-members": ["error"],
"no-dupe-keys": ["error"],
"no-duplicate-case": ["error"],
"no-duplicate-imports": [
"error",
{
includeExports: true,
},
],
"no-else-return": ["off"],
"no-empty": [
"off",
{
allowEmptyCatch: false,
},
],
"no-empty-character-class": ["error"],
"no-empty-function": ["off"],
"no-empty-pattern": ["error"],
"no-eq-null": ["off"],
"no-ex-assign": ["off"],
"no-extra-boolean-cast": ["error"],
"no-extra-parens": ["off"],
"no-extra-semi": ["off"],
"no-eval": ["off"],
"no-extend-native": ["off"],
"no-extra-bind": ["error"],
"no-extra-label": ["error"],
"no-fallthrough": ["off"],
"no-floating-decimal": ["off"],
"no-func-assign": ["error"],
"no-global-assign": ["error"],
"no-implicit-coercion": ["off"],
"no-implicit-globals": ["error"],
"no-implied-eval": ["error"],
"no-inline-comments": ["off"],
"no-inner-declarations": ["off", "both"],
"no-invalid-regexp": ["error"],
"no-invalid-this": ["off"],
"no-irregular-whitespace": [
"error",
{
skipStrings: false,
skipComments: false,
skipRegExps: false,
skipTemplates: false,
},
],
"no-iterator": ["error"],
"no-label-var": ["error"],
"no-labels": ["off"],
"no-lone-blocks": ["error"],
"no-lonely-if": ["off"],
"no-loop-func": ["off"],
"no-magic-numbers": ["off"],
"no-mixed-operators": ["off"],
"no-mixed-requires": ["error"],
"no-mixed-spaces-and-tabs": ["off"],
"no-multi-assign": ["off"],
"no-multi-spaces": ["off"],
"no-multi-str": ["error"],
"no-multiple-empty-lines": [
"off",
{
max: 1,
},
],
"no-native-reassign": ["error"],
"no-negated-condition": ["off"],
"no-negated-in-lhs": ["error"],
"no-nested-ternary": ["off"],
"no-new": ["error"],
"no-new-func": ["error"],
"no-new-object": ["error"],
"no-new-require": ["error"],
"no-new-symbol": ["error"],
"no-new-wrappers": ["error"],
"no-octal": ["error"],
"no-octal-escape": ["error"],
"no-obj-calls": ["error"],
"no-param-reassign": ["off"],
"no-path-concat": ["error"],
"no-plusplus": ["off"],
"no-process-env": ["off"],
"no-process-exit": ["error"],
"no-proto": ["error"],
"no-prototype-builtins": ["off"],
"no-redeclare": ["off"],
"no-regex-spaces": ["error"],
"no-restricted-globals": ["error"],
"no-restricted-imports": ["error"],
"no-restricted-modules": ["error"],
"no-restricted-properties": [
"off",
{
object: "console",
property: "log",
message: "'log' is too general, use an appropriate level when logging.",
},
],
"no-restricted-syntax": ["error"],
"no-return-assign": ["off"],
"no-return-await": ["error"],
"no-script-url": ["error"],
"no-self-assign": [
"error",
{
props: false,
},
],
"no-self-compare": ["error"],
"no-sequences": ["error"],
"no-shadow": ["off"],
"no-shadow-restricted-names": ["error"],
"no-spaced-func": ["off"],
"no-sparse-arrays": ["error"],
"no-sync": ["error"],
"no-tabs": ["off"],
"no-template-curly-in-string": ["error"],
"no-ternary": ["off"],
"no-this-before-super": ["off"],
"no-throw-literal": ["error"],
"no-trailing-spaces": ["off"],
"no-undef": ["off"],
"no-undef-init": ["error"],
"no-undefined": ["off"],
"no-underscore-dangle": ["off"],
"no-unexpected-multiline": ["error"],
"no-unmodified-loop-condition": ["error"],
"no-unneeded-ternary": ["off"],
"no-unreachable": ["off"],
"no-unsafe-finally": ["error"],
"no-unsafe-negation": ["error"],
"no-unused-expressions": ["off"],
"no-unused-labels": ["error"],
"no-unused-vars": ["off"],
"no-use-before-define": ["off"],
"no-useless-call": ["off"],
"no-useless-computed-key": ["error"],
"no-useless-concat": ["off"],
"no-useless-constructor": ["error"],
"no-useless-escape": ["off"],
"no-useless-rename": [
"error",
{
ignoreDestructuring: false,
ignoreExport: false,
ignoreImport: false,
},
],
"no-useless-return": ["off"],
"no-var": ["off"],
"no-void": ["off"],
"no-warning-comments": ["off"],
"no-whitespace-before-property": ["error"],
"no-with": ["error"],
"nonblock-statement-body-position": ["off", "below"],
"object-curly-newline": ["off"],
"object-curly-spacing": ["off"],
"object-property-newline": ["off"],
"object-shorthand": ["off"],
"one-var": ["off"],
"one-var-declaration-per-line": ["off"],
"operator-assignment": ["off"],
"operator-linebreak": ["off", "none"],
"padded-blocks": ["off"],
"padding-line-between-statements": ["error"],
"prefer-arrow-callback": ["off"],
"prefer-const": ["off"],
"prefer-destructuring": ["off"],
"prefer-numeric-literals": ["error"],
"prefer-promise-reject-errors": ["off"],
"prefer-reflect": ["off"],
"prefer-rest-params": ["off"],
"prefer-spread": ["off"],
"prefer-template": ["off"],
"quote-props": ["off"],
quotes: ["off"],
radix: ["off", "as-needed"],
"require-await": ["off"],
"require-jsdoc": ["off"],
"require-yield": ["error"],
"rest-spread-spacing": ["error", "never"],
semi: ["off"],
"semi-spacing": ["off"],
"semi-style": ["error", "last"],
"sort-imports": ["off"],
"sort-keys": ["off"],
"sort-vars": ["off"],
"space-before-blocks": ["off"],
"space-before-function-paren": ["off"],
"space-in-parens": ["off"],
"space-infix-ops": ["off"],
"space-unary-ops": ["off"],
"spaced-comment": ["off"],
strict: ["off"],
"switch-colon-spacing": [
"error",
{
after: true,
before: false,
},
],
"symbol-description": ["error"],
"template-curly-spacing": ["error"],
"template-tag-spacing": ["error"],
"unicode-bom": ["error", "never"],
"use-isnan": ["error"],
"valid-jsdoc": ["off"],
"valid-typeof": ["error"],
"vars-on-top": ["off"],
"wrap-iife": ["error", "any"],
"wrap-regex": ["off"],
"yield-star-spacing": ["error", "before"],
yoda: ["error", "never"],
"@typescript-eslint/explicit-module-boundary-types": "off",
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/ban-ts-comment": "off",
"@typescript-eslint/no-explicit-any": "off",
},
overrides: [
{
// enable the rule specifically for TypeScript files
files: ["*.ts", "*.tsx"],
rules: {
"@typescript-eslint/explicit-function-return-type": ["error"],
"@typescript-eslint/explicit-module-boundary-types": ["error"],
},
},
{
// TypeScript configuration
files: ["**/*.ts", "**/*.tsx"],
parser: "@typescript-eslint/parser",
plugins: ["@typescript-eslint"],
extends: ["plugin:@typescript-eslint/recommended"],
rules: {
"lines-between-class-members": "off",
"no-empty-pattern": "off",
"no-useless-constructor": [
"off", // Valid for typescript due to property ctor shorthand
],
"@typescript-eslint/ban-ts-comment": "off",
"@typescript-eslint/ban-ts-ignore": "off",
"@typescript-eslint/camelcase": "off",
"@typescript-eslint/explicit-function-return-type": [
"error",
{
allowExpressions: true,
},
],
"@typescript-eslint/member-delimiter-style": [
"error",
{
multiline: {
delimiter: "semi",
requireLast: true,
},
singleline: {
delimiter: "semi",
requireLast: false,
},
},
],
"@typescript-eslint/member-ordering": [
"error",
{
default: [
"signature",
"static-field",
"instance-field",
"abstract-field",
"constructor",
"instance-method",
"abstract-method",
"static-method",
],
},
],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-use-before-define": "off",
},
},
],
};

View File

@@ -1,5 +1,27 @@
# Only bugfix are accepted
# DELETE THIS AFTER READING
# READ CONTRIBUTING.md
# PR title
Formatted as such:
SECTION: PLAYER DESCRIPTION
SECTION is something like "API", "UI", "MISC", "STANEK", "CORPORATION"
PLAYER DESCRIPTION is what you'd tell a non-contributor to convey what is changed.
# Linked issues
If your pull request is related to a git issue, please link it in the description using #xyz.
If your PR should close the issue when it is merged in, use `fixes #xyz` or `closes #xyz` like this:
closes #xxxx
closes #yyyy
It'll automate the process.
# Documentation
- DO NOT CHANGE any markdown/\*.md, these files are autogenerated from NetscriptDefinitions.d.ts and will be overwritten
@@ -9,3 +31,5 @@
- Include how it was tested
- Include screenshot / gif (if possible)
Make sure you run `npm run format` and `npm run lint` before pushing.

100
.github/workflows/bump-version.yml vendored Normal file
View File

@@ -0,0 +1,100 @@
name: Bump BitBurner Version
on:
workflow_dispatch:
inputs:
version:
description: "Version (format: x.y.z)"
required: true
versionNumber:
description: "Version Number (for saves migration)"
required: true
changelog:
description: "Changelog (url that points to RAW markdown)"
default: ""
buildApp:
description: "Include Application Build"
type: boolean
default: "true"
required: true
buildDoc:
description: "Include Documentation Build"
type: boolean
default: "true"
required: true
prepareRelease:
description: "Prepare Draft Release"
type: boolean
default: "true"
required: true
jobs:
bumpVersion:
name: Bump Version
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Install pandoc dependency
run: sudo apt-get install -y pandoc
- name: Checkout repository
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Use Node.js 16.13.1
uses: actions/setup-node@v2
with:
node-version: 16.13.1
cache: "npm"
- name: Install NPM dependencies for version updater
working-directory: ./tools/bump-version
run: npm ci
- name: Bump version & update changelogs
working-directory: ./tools/bump-version
run: |
curl ${{ github.event.inputs.changelog }} > changes.md
node index.js --version=${{ github.event.inputs.version }} --versionNumber=${{ github.event.inputs.versionNumber }} < changes.md
- name: Install NPM dependencies for app
if: ${{ github.event.inputs.buildApp == 'true' || github.event.inputs.buildDoc == 'true' }}
run: npm ci
- name: Build Production App
if: ${{ github.event.inputs.buildApp == 'true' }}
run: npm run build
- name: Build Documentation
if: ${{ github.event.inputs.buildDoc == 'true' }}
run: npm run doc
- name: Commit Files
run: |
git config --global user.name "GitHub"
git config --global user.email "noreply@github.com"
git checkout -b bump/v${{ github.event.inputs.version }}
git add -A
echo "Bump version to v${{ github.event.inputs.version }}" > commitmessage.txt
echo "" >> commitmessage.txt
cat ./tools/bump-version/changes.md >> commitmessage.txt
git commit -F commitmessage.txt
git push -u origin bump/v${{ github.event.inputs.version }}
- name: Create Pull Request
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh pr create \
--base "${{ github.ref_name }}" \
--head "bump/v${{ github.event.inputs.version }}" \
--title "Bump version to v${{ github.event.inputs.version }}" \
--body-file ./tools/bump-version/changes.md
- name: Prepare release
if: ${{ github.event.inputs.prepareRelease == 'true' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
RELEASE_TITLE="$(head -n 1 ./tools/bump-version/changes.md | sed 's/## //')"
RELEASE_TITLE="${RELEASE_TITLE:-v${{ github.event.inputs.version }}}"
gh release create \
v${{ github.event.inputs.version }} \
--target dev \
--title "$RELEASE_TITLE" \
--notes-file ./tools/bump-version/changes.md \
--generate-notes \
--draft

View File

@@ -0,0 +1,85 @@
name: Check for Generated Files
on:
# Triggers the workflow on push or pull request events but only for the dev branch
pull_request:
branches: [dev]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
checkFiles:
name: Check Files
runs-on: ubuntu-latest
steps:
- name: Checkout files
uses: actions/checkout@v2
- name: Check bundle files
id: changed-bundle-files
uses: tj-actions/changed-files@v18.4
with:
files: |
dist/*
index.html
main.bundle.js
main.bundle.js.map
- name: Check documentation changes
id: changed-markdown-doc-files
uses: tj-actions/changed-files@v18.4
with:
files: |
markdown/*.md
- name: Warn when bundle files were changed
id: warn-bundles-changed
if: steps.changed-bundle-files.outputs.any_changed == 'true'
run: |
echo "One or more files in the bundle files were changed." >> warnings.txt
- name: Warn when documentation markdown files were changed
id: warn-markdown-changed
if: steps.changed-markdown-doc-files.outputs.any_changed == 'true'
run: |
echo "One or more files in the markdown documentation were changed." >> warnings.txt
- name: Print Warnings
id: get-warnings
run: |
if [ -f warnings.txt ]
then
echo "::set-output name=has_warnings::true"
else
echo "::set-output name=has_warnings::false"
touch warnings.txt
fi
- name: Get Comment Body
id: get-comment-body
if: steps.get-warnings.outputs.has_warnings == 'true'
run: |
cat warnings.txt > comment.txt
echo "" >> comment.txt
echo "Please do not commit files generated by webpack or generated markdown" >> comment.txt
echo "" >> comment.txt
echo "See [CONTRIBUTING.md](https://github.com/danielyxie/bitburner/blob/dev/doc/CONTRIBUTING.md) for details." >> comment.txt
body=$(cat comment.txt)
body="${body//'%'/'%25'}"
body="${body//$'\n'/'%0A'}"
body="${body//$'\r'/'%0D'}"
echo ::set-output name=body::$body
- name: Add github comment on problem
if: steps.get-warnings.outputs.has_warnings == 'true'
uses: peter-evans/commit-comment@v1
with:
body: ${{ steps.get-comment-body.outputs.body }}
- name: Flag as error
if: steps.get-warnings.outputs.has_warnings == 'true'
run: |
COMMIT_WARNINGS=$(cat warnings.txt)
echo "::warning:: $COMMIT_WARNINGS"
exit 1

71
.github/workflows/ci-pr.yml vendored Normal file
View File

@@ -0,0 +1,71 @@
name: CI Pull Request
on:
# Triggers the workflow on pull request events but only for the dev branch, checking only diffs
pull_request:
branches: [dev]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 16.13.1
uses: actions/setup-node@v2
with:
node-version: 16.13.1
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Build the production app
run: npm run build
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Use Node.js 16.13.1
uses: actions/setup-node@v2
with:
node-version: 16.13.1
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Run linter
run: npm run lint:report-diff
prettier:
name: Prettier
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Use Node.js 16.13.1
uses: actions/setup-node@v2
with:
node-version: 16.13.1
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Run prettier check
run: npm run format:report-diff
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 16.13.1
uses: actions/setup-node@v2
with:
node-version: 16.13.1
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Run tests
run: npm run test

View File

@@ -1,11 +1,9 @@
name: CI
on:
# Triggers the workflow on push or pull request events but only for the dev branch
# Triggers the workflow on push events but only for the dev branch
push:
branches: [ dev ]
pull_request:
branches: [ dev ]
branches: [dev]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
@@ -20,7 +18,7 @@ jobs:
uses: actions/setup-node@v2
with:
node-version: 16.13.1
cache: 'npm'
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Build the production app
@@ -34,11 +32,25 @@ jobs:
uses: actions/setup-node@v2
with:
node-version: 16.13.1
cache: 'npm'
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Run linter
run: npm run lint:report
prettier:
name: Prettier
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 16.13.1
uses: actions/setup-node@v2
with:
node-version: 16.13.1
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Run prettier check
run: npm run format:report
test:
name: Test
runs-on: ubuntu-latest
@@ -48,7 +60,7 @@ jobs:
uses: actions/setup-node@v2
with:
node-version: 16.13.1
cache: 'npm'
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Run tests

44
.github/workflows/fetch-changes.yml vendored Normal file
View File

@@ -0,0 +1,44 @@
name: Fetch Merged Changes
on:
workflow_dispatch:
inputs:
fromCommit:
description: "From Commit SHA (full-length)"
required: true
toCommit:
description: "To Commit SHA (full-length, if omitted will use latest)"
jobs:
fetchChangelog:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node v16.13.1
uses: actions/setup-node@v2
with:
node-version: 16.13.1
cache: "npm"
- name: Install NPM dependencies
working-directory: ./tools/fetch-changelog
run: npm ci
- name: Fetch Changes from GitHub API
working-directory: ./tools/fetch-changelog
env:
GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
node index.js \
--from=${{ github.event.inputs.fromCommit }} \
--to=${{ github.event.inputs.toCommit }} > changes.md
echo
echo "============================================================"
echo
cat changes.md
echo
echo "============================================================"
echo
echo "You may want to go to https://gist.github.com/ to upload the final changelog"
echo "The next step will require an url because we can't easily pass multiline strings to actions"
- uses: actions/upload-artifact@v2
with:
name: bitburner_changelog___DRAFT.md
path: ./tools/fetch-changelog/changes.md

64
.github/workflows/validate-pr.yml vendored Normal file
View File

@@ -0,0 +1,64 @@
name: Validate PR
on:
pull_request:
branches: [dev]
types: [opened, edited, synchronize, reopened]
jobs:
checkTitle:
name: Check Title
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- name: Validate Title
id: validate-pr-title
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
echo "Creating label (if it does not exist)"
LABEL="validation: invalid title"
gh --repo "${{ github.repository }}" \
label create "$LABEL" --description "Modifications to this pull request are requested" --color D93F0B || true
PR_TITLE=$(\
gh --repo "${{ github.repository }}" \
pr view "${{ github.event.number }}" --json title --jq .title)
echo "::set-output name=title::$PR_TITLE"
echo "PR Title: $PR_TITLE"
TITLE_REGEX="^[0-9A-Z\-]*: .*$"
PR_TITLE_VALID=$(echo "$PR_TITLE" | grep -Eq "$TITLE_REGEX" && echo "true" || echo "false")
if [ "$PR_TITLE_VALID" == "true" ]; then
echo "Title is valid, removing label"
gh --repo "${{ github.repository }}" \
pr edit "${{ github.event.number }}" --remove-label "$LABEL" || true
else
echo "Invalid Title"
ERROR_MSG="$PR_TITLE -> should match -> $TITLE_REGEX"
echo "$ERROR_MSG"
echo "::set-output name=invalid::true"
echo "::set-output name=errorMessage::$ERROR_MSG"
touch comment.txt
echo "## The title \`$PR_TITLE\` should match \`$TITLE_REGEX\`" >> comment.txt
echo "" >> comment.txt
echo "SECTION: FIX #xzyw PLAYER DESCRIPTION" >> comment.txt
echo "" >> comment.txt
echo 'SECTION is something like "API", "UI", "MISC", "STANEK", "CORPORATION"' >> comment.txt
echo 'FIX #xyzw is the issue number, if any' >> comment.txt
echo "PLAYER DESCRIPTION is what you'd tell a non-contributor to convey what is changed." >> comment.txt
echo "Add pr label"
gh --repo "${{ github.repository }}" \
pr edit "${{ github.event.number }}" --add-label "$LABEL"
echo "And comment on the pr"
gh --repo "${{ github.repository }}" \
pr comment "${{ github.event.number }}" --body-file comment.txt
fi
- name: Flag workflow error
if: steps.validate-pr-title.outputs.invalid == 'true'
run: |
echo "${{ steps.validate-pr-title.outputs.errorMessage }}"
exit 1

5
.gitignore vendored
View File

@@ -1,14 +1,15 @@
.DS_Store
.history
.vscode
Changelog.txt
Netburner.txt
/doc/build
/node_modules
/electron/node_modules
/dist/*.map
/test/*.map
/test/*.bundle.*
/test/*.css
/input/bitburner.api.json
.cypress
# tmp folder for electron
@@ -17,3 +18,5 @@ Netburner.txt
# editor files
.vscode
.idea/

3
.npmrc Normal file
View File

@@ -0,0 +1,3 @@
# Default "npm version" commit message
# See: https://stackoverflow.com/a/34606092
message=":bookmark: Build v%s"

1
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1 @@
Don't be an ass.

View File

@@ -1,12 +1,14 @@
# Bitburner
[![Join Discord](https://img.shields.io/discord/415207508303544321)](https://discord.gg/TFc3hKD)
[![Build Status](https://github.com/danielyxie/bitburner/actions/workflows/ci.yml/badge.svg?branch=dev)](https://github.com/danielyxie/bitburner/actions/workflows/ci.yml)
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 or installed through [Steam](https://store.steampowered.com/app/1812820/Bitburner/).
See the [frequently asked questions](./FAQ.md) for more information . To discuss the game or get help, join the [official discord server](https://discord.gg/TFc3hKD)
See the [frequently asked questions](./doc/FAQ.md) for more information . To discuss the game or get help, join the [official Discord server](https://discord.gg/TFc3hKD).
# Documentation
@@ -17,14 +19,14 @@ The [in-game documentation](./markdown/bitburner.md) is generated from the [Type
Anyone is welcome to contribute to the documentation by editing the [source
files](/doc/source) and then making a pull request with your contributions.
For further guidance, please refer to the "As A Documentor" section of
[CONTRIBUTING](CONTRIBUTING.md).
For further guidance, please refer to the "As A Documenter" section of
[CONTRIBUTING](./doc/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.
please refer to the [CONTRIBUTING](./doc/CONTRIBUTING.md) document.
You will retain all ownership of the Copyright of any contributions you make,
and will have the same rights to use or license your contributions. By

BIN
assets/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,23 +0,0 @@
.staneksgift_row {
padding: 0;
margin: 0;
}
.staneksgift_cell {
width: 25px;
height: 25px;
background-color: #808080;
font-color: white;
padding: 0px;
margin: 0px;
border: 1px solid black;
float: left;
}
.staneksgift_cell:first-child {
clear: left;
}
.staneksgift_container {
position: fixed;
}

View File

@@ -1,10 +1,14 @@
{
"baseUrl": "http://localhost:8000",
"fixturesFolder": false,
"trashAssetsBeforeRuns": true,
"screenshotsFolder": ".cypress/screenshots",
"videosFolder": ".cypress/videos",
"videoUploadOnPasses": false,
"viewportWidth": 1980,
"viewportHeight": 1080
"viewportHeight": 1080,
"fixturesFolder": "test/cypress/fixtures",
"integrationFolder": "test/cypress/integration",
"pluginsFile": "test/cypress/plugins/index.js",
"supportFile": "test/cypress/support/index.js",
"screenshotsFolder": ".cypress/screenshots",
"videosFolder": ".cypress/videos",
"downloadsFolder": ".cypress/downloads"
}

View File

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

2096
dist/bitburner.d.ts vendored

File diff suppressed because it is too large Load Diff

20
dist/engine.bundle.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +0,0 @@
!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(r,i)&&r[i]&&s.push(r[i][0]),r[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 u.push.apply(u,l||[]),o()}function o(){for(var n,t=0;t<u.length;t++){for(var o=u[t],e=!0,f=1;f<o.length;f++){var c=o[f];0!==r[c]&&(e=!1)}e&&(u.splice(t--,1),n=i(i.s=o[0]))}return n}var e={},r={2:0},u=[];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;u.push([1281,0]),o()}({1281:function(n,t,o){"use strict";o.r(t);o(1282),o(1284),o(1286),o(1288),o(1290),o(1292),o(1294),o(1296),o(1298),o(1300),o(1302),o(1304),o(1306),o(1308),o(1310),o(1312),o(1314),o(1316),o(1318),o(1320),o(1322),o(1324),o(1326),o(1328),o(1330),o(1332),o(1334),o(1336),o(1338),o(1340)},1284:function(n,t,o){},1286:function(n,t,o){},1288:function(n,t,o){},1290:function(n,t,o){},1292:function(n,t,o){},1294:function(n,t,o){},1296:function(n,t,o){},1298:function(n,t,o){},1300:function(n,t,o){},1302:function(n,t,o){},1304:function(n,t,o){},1306:function(n,t,o){},1308:function(n,t,o){},1310:function(n,t,o){},1312:function(n,t,o){},1314:function(n,t,o){},1316:function(n,t,o){},1318:function(n,t,o){},1320:function(n,t,o){},1322:function(n,t,o){},1324:function(n,t,o){},1326:function(n,t,o){},1328:function(n,t,o){},1330:function(n,t,o){},1332:function(n,t,o){},1334:function(n,t,o){},1336:function(n,t,o){},1338:function(n,t,o){},1340:function(n,t,o){}});
//# sourceMappingURL=engineStyle.bundle.js.map

6070
dist/engineStyle.css vendored

File diff suppressed because it is too large Load Diff

BIN
dist/favicon.ico vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

22
dist/main.bundle.js vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/main.bundle.js.map vendored Normal file

File diff suppressed because one or more lines are too long

133
dist/vendor.bundle.js vendored

File diff suppressed because one or more lines are too long

1
dist/vendor.bundle.js.map vendored Normal file

File diff suppressed because one or more lines are too long

301
dist/vendor.css vendored
View File

@@ -1,301 +0,0 @@
/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
line-height: 1.15;
/* 1 */
-webkit-text-size-adjust: 100%;
/* 2 */ }
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers.
*/
body {
margin: 0; }
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0; }
/* Grouping content
========================================================================== */
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box;
/* 1 */
height: 0;
/* 1 */
overflow: visible;
/* 2 */ }
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
font-family: monospace, monospace;
/* 1 */
font-size: 1em;
/* 2 */ }
/* Text-level semantics
========================================================================== */
/**
* Remove the gray background on active links in IE 10.
*/
a {
background-color: transparent; }
/**
* 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none;
/* 1 */
text-decoration: underline;
/* 2 */
text-decoration: underline dotted;
/* 2 */ }
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder; }
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
font-family: monospace, monospace;
/* 1 */
font-size: 1em;
/* 2 */ }
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%; }
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline; }
sub {
bottom: -0.25em; }
sup {
top: -0.5em; }
/* Embedded content
========================================================================== */
/**
* Remove the border on images inside links in IE 10.
*/
img {
border-style: none; }
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: inherit;
/* 1 */
font-size: 100%;
/* 1 */
line-height: 1.15;
/* 1 */
margin: 0;
/* 2 */ }
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input {
/* 1 */
overflow: visible; }
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select {
/* 1 */
text-transform: none; }
/**
* Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button; }
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0; }
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText; }
/**
* Correct the padding in Firefox.
*/
fieldset {
padding: 0.35em 0.75em 0.625em; }
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box;
/* 1 */
color: inherit;
/* 2 */
display: table;
/* 1 */
max-width: 100%;
/* 1 */
padding: 0;
/* 3 */
white-space: normal;
/* 1 */ }
/**
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
vertical-align: baseline; }
/**
* Remove the default vertical scrollbar in IE 10+.
*/
textarea {
overflow: auto; }
/**
* 1. Add the correct box sizing in IE 10.
* 2. Remove the padding in IE 10.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box;
/* 1 */
padding: 0;
/* 2 */ }
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto; }
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield;
/* 1 */
outline-offset: -2px;
/* 2 */ }
/**
* Remove the inner padding in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none; }
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button;
/* 1 */
font: inherit;
/* 2 */ }
/* Interactive
========================================================================== */
/*
* Add the correct display in Edge, IE 10+, and Firefox.
*/
details {
display: block; }
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item; }
/* Misc
========================================================================== */
/**
* Add the correct display in IE 10+.
*/
template {
display: none; }
/**
* Add the correct display in IE 10.
*/
[hidden] {
display: none; }
/*# sourceMappingURL=vendor.css.map*/

View File

@@ -1,24 +1,26 @@
# Only bugfix are accepted
# 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
ways to improve the game. Here are some of the ways you can make your voice
heard:
- [Discord](https://discord.gg/XKEGvHqVr3)
- [Discord](https://discord.gg/XKEGvHqVr3).
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)
- [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
means of communicating with the community. A new Issue can be an
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).
browser's JavaScript interaction. So please do not be afraid to open a
[new Issue](https://github.com/danielyxie/bitburner/issues/new).
## Reporting Bugs
@@ -33,16 +35,17 @@ 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
- **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.
Zip your save file first, then attach the zipped save file.
- **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
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
browsers by pressing F12.
## As a Developer
@@ -71,13 +74,13 @@ changes are okay to contribute:
##### Contributions that Will Most Likely Be Accepted
- Bug Fixes
- Quality-of-Life Changes
- 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
- Code refactors that conform to good/standard practices
##### Contributions that will not be Accepted without prior approval
@@ -88,69 +91,108 @@ changes are okay to contribute:
## How to setup fork properly
Fork and clone the repo
Clone and fork the game's repository by using one of these methods: web browser, GitHub
Desktop, or command line.
```
# This will add the game original code as a repo in your local copy
$ git remote add danielyxie git@github.com:danielyxie/bitburner.git
- Web browser. Log in to your GitHub account, navigate to the
[game's repository](https://github.com/danielyxie/bitburner), and fork the
repository. Refer to
[this page](https://docs.github.com/en/get-started/quickstart/fork-a-repo) for more
detail.
- GitHub Desktop. Click on `File`, then click `Clone repository`. Click on the `URL`
tab and type `danielyxie/bitburner` into the text box for repository URL. Choose
the path where you want to clone the repository and click the `Clone` button.
Refer to [this page](https://docs.github.com/en/desktop/contributing-and-collaborating-using-github-desktop/adding-and-cloning-repositories/cloning-and-forking-repositories-from-github-desktop)
for more detail.
- Command line.
# You can verify you did this right by doing the following command
$ git remote show
danielyxie
origin
```sh
# This clones the game's code repository. The output you get might vary.
$ git clone https://github.com/danielyxie/bitburner.git
Cloning into 'bitburner'...
remote: Enumerating objects: 57072, done.
remote: Counting objects: 100% (404/404), done.
remote: Compressing objects: 100% (205/205), done.
remote: Total 57072 (delta 210), reused 375 (delta 199), pack-reused 56668
Receiving objects: 100% (57072/57072), 339.11 MiB | 5.42 MiB/s, done.
Resolving deltas: 100% (43708/43708), done.
Updating files: 100% (2561/2561), done.
# Then download all the branches from the game. (there might be more branches)
$ git fetch danielyxie
From github.com:danielyxie/bitburner
* [new branch] dev -> danielyxie/dev
* [new branch] master -> danielyxie/master
# Change to the directory that contains your local copy.
$ cd bitburner
# Makes sure you always start from `danielyxie/dev` to avoid merge conflicts.
# The upstream is the repository that contains the game's source code. The
# upstream is also the place where proposed changes are merged into the game.
$ git remote rename origin upstream
Renaming remote references: 100% (8/8), done.
# The origin is your own copy or fork of the game's source code. Assume that
# your fork will be on GitHub. Change "myname" to your GitHub username. Change
# "myfork" to the name of your forked repository.
$ git remote add origin https://github.com/myname/myfork
# Now "origin" is your fork and "upstream" is where changes should be merged.
$ git remote show
origin
upstream
# You can now download all changes and branches from the upstream repository.
# The output you get might vary.
$ git fetch upstream
# Make sure you always start from "upstream/dev" to avoid merge conflicts.
$ git branch
* dev
$ git branch -r
upstream/BN14
upstream/HEAD -> upstream/dev
upstream/dev
upstream/folders
upstream/master
```
## Development Workflow Best Practices
- Work in a new branch forked from the `dev` branch to isolate your new code
- 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`
- When merging, always merge your branch into `dev`. When releasing a new update, merge `dev` into `master`.
## Running locally.
## Running locally
Install
- `npm` (maybe via `nvm`)
- Github Desktop (windows only)
- Visual Studio code (optional)
- Github Desktop (Windows only)
- Visual Studio Code (optional)
Inside the root of the repo run
`npm install` to install all the dependencies
`npm run start:dev` to launch the game in dev mode.
Inside the root of the repository run:
- `npm install` to install all the dependencies; and
- `npm run start:dev` to launch the game in dev mode.
After that you can open any browser and navigate to `localhost:8000` and play the game.
Saving a file will reload the game automatically.
### How to build the electron app
Tested on Node v16.13.1 (LTS) on Windows
These steps only work in a bash-like environment, like MinGW for Windows.
Tested on Node v16.13.1 (LTS) on Windows.
These steps only work in a Bash-like environment, like MinGW for Windows.
```sh
# Install the main game dependencies & build the app in debug mode
npm install
npm run build:dev
# Install the main game dependencies & build the app in debug mode.
$ npm install
$ npm run build:dev
# Use electron-packager to build the app to the .build/ folder
npm run electron
# Use electron-packager to build the app to the .build/ folder.
$ npm run electron
# When launching the .exe directly, you'll need the steam_appid.txt file in the root
# If not using windows, change this line accordingly
cp .build/bitburner-win32-x64/resources/app/steam_appid.txt .build/bitburner-win32-x64/steam_appid.txt
# When launching the .exe directly, you'll need the steam_appid.txt file in the root.
# If not using Windows, change this line accordingly.
$ cp .build/bitburner-win32-x64/resources/app/steam_appid.txt .build/bitburner-win32-x64/steam_appid.txt
# And run the game...
.build/bitburner-win32-x64/bitburner.exe
$ .build/bitburner-win32-x64/bitburner.exe
```
### Submitting a Pull Request
@@ -158,15 +200,15 @@ cp .build/bitburner-win32-x64/resources/app/steam_appid.txt .build/bitburner-win
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
- Work in a branch forked from `dev` to isolate the new code.
- Ensure you have the latest from the [game's main
repository](../../../tree/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
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
@@ -176,23 +218,23 @@ the following rules:
in the root of the repository. These will be updated as part of official
releases.
## As a Documentor
## As a Documenter
To contribute to and view your changes to the BitBurner documentation on [Read The
Docs](http://bitburner.readthedocs.io/), you will
need to have Python installed, along with [Sphinx](http://www.sphinx-doc.org).
To make change to the [in-game documentation](./markdown/bitburner.md), you will need to modify the [TypeScript definitions](./src/ScriptEditor/NetscriptDefinitions.d.ts), not the markdown files.
To make change to the [in-game documentation](../markdown/bitburner.md), you will need to modify the [TypeScript definitions](../src/ScriptEditor/NetscriptDefinitions.d.ts), not the Markdown files.
We are using [API Extractor](https://api-extractor.com/pages/tsdoc/doc_comment_syntax/) (tsdoc hints) to generate the markdown doc. Make your changes to the TypeScript definitions and then run `npm run doc`.
We are using [API Extractor](https://api-extractor.com/pages/tsdoc/doc_comment_syntax/) (tsdoc hints) to generate the Markdown doc. Make your changes to the TypeScript definitions and then run `npm run doc`.
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
- Work in a branch forked from `dev` to isolate the new code.
- Ensure you have the latest from the [game's main
repository](../../../tree/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
@@ -206,5 +248,5 @@ Update the following
- `package.json` `version`
- `doc/source/conf.py` `version` and `release`
- `doc/source/changelog.rst`
- post to discord
- post to Discord
- post to reddit.com/r/Bitburner

View File

@@ -23,10 +23,11 @@ Yes, just export the save file from the options menu & import it in the other pl
## Game is stuck after running scripts!
You may have created an infinite loop with no sleep. You'll have to restart the game by killing all scripts.
* On Browser: Stick `?noScript` at the end of the URL
* On Steam:
* In the menu, "Reloads" -> "Reload & Kill All Scripts".
* If this does not work, when launching the game, use the kill all script options.
- On Browser: Stick `?noScript` at the end of the URL
- On Steam:
- In the menu, "Reloads" -> "Reload & Kill All Scripts".
- If this does not work, when launching the game, use the kill all script options.
---
@@ -51,11 +52,13 @@ You can navigate to the game files by right-clicking the game in your library an
## Steam: Game won't launch
### **On Windows**
If the game is installed on a network drive, it will fail to start due to a [limitation in Chromium](https://github.com/electron/electron/issues/27356).
If you cannot move the game to another drive, you'll have to add the `--no-sandbox` launch option. In your Steam Library, Right click the game and hit "Properties". You'll see the launch option section in the "General" window.
### **On Linux**
The game is built natively, do not use Proton unless native does not work.
When launching the game, you will be prompted with three options. If the standard launch does not work, you may attempt the `--disable-seccomp-filter-sandbox` or `--no-sandbox` launch option. If this still does not work, the game should be able to start by launching it directly or through the terminal. See [How do I get to the game files?](#game-files).
@@ -68,17 +71,17 @@ When launching the game, you will be prompted with three options. If the standar
You may want access the logs to get information about crashes or such.
* on Linux: `~/.config/bitburner/logs/main.log`
* on macOS: `~/Library/Logs/bitburner/main.log`
* on Windows: `%USERPROFILE%\AppData\Roaming\bitburner\logs\main.log`
- on Linux: `~/.config/bitburner/logs/main.log`
- on macOS: `~/Library/Logs/bitburner/main.log`
- on Windows: `%USERPROFILE%\AppData\Roaming\bitburner\logs\main.log`
### Config (using [electron-store](https://github.com/sindresorhus/electron-store#readme))
Configuration file will be written to disk in the application data directory.
* on Linux: `~/.config/bitburner/config.json`
* on macOS: `~/Library/Application\ Support/bitburner/config.json`
* on Windows: `%USERPROFILE%\AppData\Roaming\bitburner\config.json`
- on Linux: `~/.config/bitburner/config.json`
- on macOS: `~/Library/Application\ Support/bitburner/config.json`
- on Windows: `%USERPROFILE%\AppData\Roaming\bitburner\config.json`
---

11
doc/NEW_BN_GUIDELINE.md Normal file
View File

@@ -0,0 +1,11 @@
Promote:
- New mechanic
- Coding problems based on NP problems. This makes solution that are easy to implement inefficient and solutions that are hard to implement efficent. (eg. Stanek)
- inter-mechanic synergy
- Simplicity (eg. Stanek, Hashnet. bad example: Corp)
Avoid:
- Failure conditions, it's very frustrating to revert several days worth of progress.
- Making existing mechanic harder. This makes it hard to port the content to other BNs.

View File

@@ -25,8 +25,8 @@ I need equations that test many different aspect of "math culture", it can be ch
All variable purchasing will be scriptable.
All equation must have:
- several variables that can be upgraded, at least 1 variable must be strategic in it's upgrading (upgrading too much can cause drop in performance)
- Some sort of math twist that requires some thinking, like (-2)^c1 alters between positive and negative.

78
doc/POTENTIAL_BN_1.md Normal file
View File

@@ -0,0 +1,78 @@
## Enter the Enderverse
This bitnode will have your sleeves and yourself move on a 2d grid to fight the Enders.
Players can access the Enderverse by accessing the glitch in Ishima.
Upon doing so they will have access to a new tab in which they can view the enderverse map.
The goal of this bitnode is to eliminate all the Enders in this Enderverse.
### Map layout
The enderverse is 10 x 10 cells big. A cell is 10 x 10 tile big. (about 4mb)
Each tile has a id representing the type of terrain on it. Some terrain can be traverse/occupied by entities, others can't.
e.g. dirt can be occupied by a sleeve but is slower than an asphalt tile.
Entities also have a cell+tile coordinate but some of them can move.
e.g. Sleeves are an entity that can be controlled by scripts.
### Stats
All stats but charisma are useful in the Enderverse. Althought the Enders special technology make them much less potent (like log2)
Strength determines the power of your attacks
Agility determines movement speed
Dexterity determines accuracy of attacks
Defense determine health points.
Hacking determine the ability to interact with special objects in the world.
### The base
Players start in their main cell. Which contains their base. This base is where your units respawn if they die. The base can also store energy to be used later.
### Moving
Moving, like almost all actions, can only be done via scripts, one tile at a time. The time it takes to move to the next tile depends on the agility of the entity and the type of tile they are trying to enter. Dirt takes longer than asphalt.
### Attacking
An entity can chose to attack any unit within its range. At first your entities will only have a range of 1, meaning they can only attack entities directly next to them. But this can be upgraded. The damage taken is determined with the entity strength and the time is determined by agility.
### Vision
It's not possible to know what is on a tile unless you have a unit within range of it. Your starting units all have 3 vision, which can be upgraded.
### Energy
Some tiles contain minable energy. Energy can be stored in sleeves or in the base. It can be spend to upgrade your units or to build helpful tools and entities such as roads or defense systems.
### Building
Building can be done by any main unit to a surrounding tile. Building anything costs energy which must be carried by your unit.
### Upgrades
Your starting units can be upgrade with energy and rewards found in the Enderverse.
Examples of upgradable stats:
- vision range
- attack range
- str/agi/dex/def bonus
- Energy capacity
### Chests
Chest can be found containing various improvements. From new buildings to stat upgrades for your units.
### Dying
When unit dies it comes back to life and gains a bonus based on it's exp. This bonus is only based on the max, it is not cummulative like gang members ascension.
### Waves
Every now and then the game will spawn waves of ennemies to attack the home base. If the players core is destroyed the player suffers heavy penalty. Those wave do get stronger over time but also nerfed in the event of a wipeout in order to prevent deadlock.
### Non-starting cells
The cells other than the starting one is where you can find better rewards but also stronger and stronger enemies. Those enemies only attack what's inside their cell and will not follow players back home. But their health is restored if none of your units are in that cell.

3
doc/POTENTIAL_BN_2.md Normal file
View File

@@ -0,0 +1,3 @@
A game of risk from the point of view of a politician.
You allocate resources on a world map, trying to win elections.

View File

@@ -12,4 +12,5 @@ must be unlocked.
Source-Files <advancedgameplay/sourcefiles>
Intelligence <advancedgameplay/intelligence>
Sleeves <advancedgameplay/sleeves>
Grafting <advancedgameplay/grafting>
Hacking algorithms <advancedgameplay/hackingalgorithms>

View File

@@ -35,6 +35,8 @@ Furthermore, some BitNodes introduce new content and mechanics. For example ther
BitNode that grants access to the `Singularity API <https://github.com/danielyxie/bitburner/blob/dev/markdown/bitburner.singularity.md>`_.
There is another BitNode in which you can manage a gang to earn money and reputation.
.. _gameplay_bitnodes_howtodestroy:
How to destroy a BitNode
^^^^^^^^^^^^^^^^^^^^^^^^
Initially, the only way to destroy a BitNode is to join the Daedalus :ref:`Daedalus <gameplay_factions>`.

View File

@@ -0,0 +1,18 @@
.. _gameplay_grafting:
Grafting
========
Grafting is an experimental process through which you can obtain the benefits of
Augmentations, without needing to reboot your body.
Grafting can be done at VitaLife in New Tokyo, where you'll find a shady researcher with
questionable connections. From there, you can spend a sum of money to begin grafting
Augmentations. This will take some time. When done, the Augmentation will be applied to
your character without needing to install.
Be warned, some who have tested grafting have reported an unidentified malware. Dubbed
"Entropy", this virus seems to grow in potency as more Augmentations are grafted,
causing unpredictable affects to the victim.
Note that when crafting an Augmentation, cancelling will **not** save your progress,
and the money spent will **not** be returned.

View File

@@ -6,10 +6,8 @@ Intelligence is a :ref:`stat <gameplay_stats>` that is unlocked by having
:ref:`Source-File 5 <gameplay_sourcefiles>` (i.e. Destroying BitNode-5).
Intelligence is unique because it is permanent and persistent. It never gets reset
back to 1. However, gaining Intelligence experience is extremely slow. The methods
of gaining Intelligence exp is also hidden. You won't know when you gain
experience and how much. It is a stat that gradually builds up as you continue
to play the game.
back to 1. However, gaining Intelligence experience is extremely slow. It is a stat
that gradually builds up as you continue to play the game.
Intelligence will boost your production for many actions in the game, including:
@@ -18,3 +16,4 @@ Intelligence will boost your production for many actions in the game, including:
* Crime success rate
* Bladeburner
* Reputation gain for companies & factions
* Augmentation grafting speed

View File

@@ -39,7 +39,7 @@ There are two methods of obtaining Duplicate Sleeves:
1. Destroy BitNode-10. Each completion give you one additional Duplicate Sleeve
2. Purchase Duplicate Sleeves from :ref:`the faction The Covenant <gameplay_factions>`.
This is only available in BitNodes-10. Sleeves purchased this way are **permanent** (they persist
This is only available in BitNode-10. Sleeves purchased this way are **permanent** (they persist
through BitNodes). You can purchase up to 5 Duplicate Sleeves from The Covenant.
Synchronization
@@ -86,24 +86,7 @@ switching BitNodes. For example, if a sleeve has a memory of 10, then when you
switch BitNodes its synchronization will initially be set to 10, rather than 1.
Memory can only be increased by purchasing upgrades from The Covenant. Just like
the ability to purchase additional sleeves, this is only available in BitNodes-10
and above, and is only available after defeating BitNode-10 at least once.
the ability to purchase additional sleeves, this is only available in BitNode-10.
Memory is a persistent stat, meaning it never gets reset back to 1.
The maximum possible value for a sleeve's memory is 100.
Re-sleeving
^^^^^^^^^^^
Re-sleeving is the process of digitizing and transferring your consciousness into a
new human body, or "sleeve". When you re-sleeve into a new body, your stat experience
and Augmentations get replaced with those of the new body.
In order to re-sleeve, you must purchase new bodies. This can be done at VitaLife in
New Tokyo. Once you purchase a body to re-sleeve into, the effects will take
place immediately.
Note that resleeving **REMOVES** all of your currently-installed Augmentations,
and replaces them with the ones provided by the purchased sleeve. However,
Augmentations that are purchased but not installed will **not** be removed. If you have purchased
an Augmentation and then re-sleeve into a body which already has that Augmentation,
it will be removed since you cannot have duplicate Augmentations.

View File

@@ -5,7 +5,7 @@
Source-Files
============
Source-Files are a type of persistent upgrade that is more powerful than Augmentations.
Source-Files are received by destroying a BitNode. There are many different BitNodes
Source-Files are received by :ref:`destroying a BitNode <gameplay_bitnodes_howtodestroy>`. There are many different BitNodes
in the game and each BitNode will grant a different Source-File when it is destroyed.
A Source-File can be upgraded by destroying its corresponding BitNode a second or
@@ -53,6 +53,7 @@ List of all Source-Files
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|| BitNode-10: Digital Carbon || * Each level of this grants a Duplicate Sleeve. |
|| || * Allows the player to access the `Sleeve API <https://github.com/danielyxie/bitburner/blob/dev/markdown/bitburner.sleeve.md>`_ in other BitNodes. |
|| || * Grants the player access to the VitaLife secret laboratory in other BitNodes. Also grants access to the Grafting API. |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|| 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). |
@@ -62,4 +63,8 @@ List of all Source-Files
|| BitNode-12: The Recursion || * There is no maximum level for this Source-File. |
|| || * Let the player start with Neuroflux Governor equal to the level of this |
|| || Source-File. |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|| BitNode-13: They're lunatics || * This Source-File lets the Church of the Machine God appear in other BitNodes. |
|| || * Each level of this Source-File increases the size of Stanek's Gift. |
|| || |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

View File

@@ -2,7 +2,7 @@
Augmentations
=============
Advances in science and medicine have lead to powerful new technologies
Advances in science and medicine have led to powerful new technologies
that allow people to augment themselves beyond normal human capabilities.
There are many different types of Augmentations, ranging from cybernetic
to genetic to biological. Acquiring these Augmentations enhances the
@@ -10,8 +10,9 @@ user's physical and mental faculties.
Augmentations provide persistent upgrades in the form of multipliers.
These multipliers apply to a wide variety of things such as stats,
experience gain, and hacking, just to name a few. Your multipliers
can be viewed in the 'Character' page (:ref:`keyboard shortcut <shortcuts>` Alt + c).
experience gain, and hacking, just to name a few. The effects of
Autmentations stack multiplicatively. Your multiplierscan be viewed in
the 'Character' page (:ref:`keyboard shortcut <shortcuts>` Alt + c).
How to acquire Augmentations
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -56,7 +57,7 @@ Here is everything you will KEEP when you install an Augmentation:
* Every Augmentation you have installed
* Scripts on your home computer
* RAM Upgrades on your home computer
* RAM/Core Upgrades on your home computer
* World Stock Exchange account and TIX API Access
.. _gameplay_augmentations_purchasingmultiple:
@@ -75,4 +76,6 @@ will cause the Augmentations to get progressively more expensive. When
you purchase an Augmentation, the price of purchasing another Augmentation
doubles. This multiplier stacks for each Augmentation you
purchase. Once you install your purchased Augmentations, their costs
are reset back to the original prices.
are reset back to the original prices. You can only purchase each augmentation
once, with the exception of NeuroFlux Governor, which can be purchased infinitely
at increasing cost.

View File

@@ -32,6 +32,18 @@ an area to provide an answer.
Interacting through Scripts
^^^^^^^^^^^^^^^^^^^^^^^^^^^
See the `Coding Contract API <https://github.com/danielyxie/bitburner/blob/dev/markdown/bitburner.codingcontract.md>`_.
Interacting with Coding Contracts via the Terminal can be tedious the more
contracts you solve. Consider using the API to automate various aspects of
your solution. For example, some contracts have long solutions while others
have even longer solutions. You might want to use the API to automate the
process of submitting your solution rather than copy and paste a long
solution into an answer box.
However, using the API comes at a cost. Like most functions in other APIs,
each function in the Coding Contract API has a RAM cost. Depending on which
function you use, the initial RAM on your home server might not be enough
to allow you to use various API functions. Plan on upgrading the RAM on your
home server if you want to use the Coding Contract API.
Submitting Solutions
^^^^^^^^^^^^^^^^^^^^
@@ -84,142 +96,321 @@ The following is a list of all of the problem types that a Coding Contract can c
The list contains the name of (i.e. the value returned by
:js:func:`getContractType`) and a brief summary of the problem it poses.
+------------------------------------+------------------------------------------------------------------------------------------+
| Name | Problem Summary |
+====================================+==========================================================================================+
| Find Largest Prime Factor | | Given a number, find its largest prime factor. A prime factor |
| | | is a factor that is a prime number. |
+------------------------------------+------------------------------------------------------------------------------------------+
| Subarray with Maximum Sum | | Given an array of integers, find the contiguous subarray (containing |
| | | at least one number) which has the largest sum and return that sum. |
+------------------------------------+------------------------------------------------------------------------------------------+
| Total Ways to Sum | | Given a number, how many different ways can that number be written as |
| | | a sum of at least two positive integers? |
+------------------------------------+------------------------------------------------------------------------------------------+
| Spiralize Matrix | | Given an array of array of numbers representing a 2D matrix, return the |
| | | elements of that matrix in clockwise spiral order. |
| | | |
| | | Example: The spiral order of |
| | | |
| | | [1, 2, 3, 4] |
| | | [5, 6, 7, 8] |
| | | [9, 10, 11, 12] |
| | | |
| | | is [1, 2, 3, 4, 8, 12, 11, 10, 9, 5, 6, 7] |
+------------------------------------+------------------------------------------------------------------------------------------+
| Array Jumping Game | | You are given an array of integers where each element represents the |
| | | maximum possible jump distance from that position. For example, if you |
| | | are at position i and your maximum jump length is n, then you can jump |
| | | to any position from i to i+n. |
| | | |
| | | Assuming you are initially positioned at the start of the array, determine |
| | | whether you are able to reach the last index of the array. |
+------------------------------------+------------------------------------------------------------------------------------------+
| Merge Overlapping Intervals | | Given an array of intervals, merge all overlapping intervals. An interval |
| | | is an array with two numbers, where the first number is always less than |
| | | the second (e.g. [1, 5]). |
| | | |
| | | The intervals must be returned in ASCENDING order. |
| | | |
| | | Example: |
| | | [[1, 3], [8, 10], [2, 6], [10, 16]] |
| | | merges into [[1, 6], [8, 16]] |
+------------------------------------+------------------------------------------------------------------------------------------+
| Generate IP Addresses | | Given a string containing only digits, return an array with all possible |
| | | valid IP address combinations that can be created from the string. |
| | | |
| | | An octet in the IP address cannot begin with '0' unless the number itself |
| | | is actually 0. For example, "192.168.010.1" is NOT a valid IP. |
| | | |
| | | Examples: |
| | | 25525511135 -> [255.255.11.135, 255.255.111.35] |
| | | 1938718066 -> [193.87.180.66] |
+------------------------------------+------------------------------------------------------------------------------------------+
| Algorithmic Stock Trader I | | You are given an array of numbers representing stock prices, where the |
| | | i-th element represents the stock price on day i. |
| | | |
| | | Determine the maximum possible profit you can earn using at most one |
| | | transaction (i.e. you can buy an sell the stock once). If no profit |
| | | can be made, then the answer should be 0. Note that you must buy the stock |
| | | before you can sell it. |
+------------------------------------+------------------------------------------------------------------------------------------+
| Algorithmic Stock Trader II | | You are given an array of numbers representing stock prices, where the |
| | | i-th element represents the stock price on day i. |
| | | |
| | | Determine the maximum possible profit you can earn using as many transactions |
| | | as you'd like. A transaction is defined as buying and then selling one |
| | | share of the stock. Note that you cannot engage in multiple transactions at |
| | | once. In other words, you must sell the stock before you buy it again. If no |
| | | profit can be made, then the answer should be 0. |
+------------------------------------+------------------------------------------------------------------------------------------+
| Algorithmic Stock Trader III | | You are given an array of numbers representing stock prices, where the |
| | | i-th element represents the stock price on day i. |
| | | |
| | | Determine the maximum possible profit you can earn using at most two |
| | | transactions. A transaction is defined as buying and then selling one share |
| | | of the stock. Note that you cannot engage in multiple transactions at once. |
| | | In other words, you must sell the stock before you buy it again. If no profit |
| | | can be made, then the answer should be 0. |
+------------------------------------+------------------------------------------------------------------------------------------+
| Algorithmic Stock Trader IV | | You are given an array with two elements. The first element is an integer k. |
| | | The second element is an array of numbers representing stock prices, where the |
| | | i-th element represents the stock price on day i. |
| | | |
| | | Determine the maximum possible profit you can earn using at most k transactions. |
| | | A transaction is defined as buying and then selling one share of the stock. |
| | | Note that you cannot engage in multiple transactions at once. In other words, |
| | | you must sell the stock before you can buy it. If no profit can be made, then |
| | | the answer should be 0. |
+------------------------------------+------------------------------------------------------------------------------------------+
| Minimum Path Sum in a Triangle | | You are given a 2D array of numbers (array of array of numbers) that represents a |
| | | triangle (the first array has one element, and each array has one more element than |
| | | the one before it, forming a triangle). Find the minimum path sum from the top to the |
| | | bottom of the triangle. In each step of the path, you may only move to adjacent |
| | | numbers in the row below. |
+------------------------------------+------------------------------------------------------------------------------------------+
| Unique Paths in a Grid I | | You are given an array with two numbers: [m, n]. These numbers represent a |
| | | m x n grid. Assume you are initially positioned in the top-left corner of that |
| | | grid and that you are trying to reach the bottom-right corner. On each step, |
| | | you may only move down or to the right. |
| | | |
| | |
| | | Determine how many unique paths there are from start to finish. |
+------------------------------------+------------------------------------------------------------------------------------------+
| Unique Paths in a Grid II | | You are given a 2D array of numbers (array of array of numbers) representing |
| | | a grid. The 2D array contains 1's and 0's, where 1 represents an obstacle and |
| | |
| | | 0 represents a free space. |
| | | |
| | | Assume you are initially positioned in top-left corner of that grid and that you |
| | | are trying to reach the bottom-right corner. In each step, you may only move down |
| | | or to the right. Furthermore, you cannot move onto spaces which have obstacles. |
| | | |
| | | Determine how many unique paths there are from start to finish. |
+------------------------------------+------------------------------------------------------------------------------------------+
| Sanitize Parentheses in Expression | | Given a string with parentheses and letters, remove the minimum number of invalid |
| | | parentheses in order to validate the string. If there are multiple minimal ways |
| | | to validate the string, provide all of the possible results. |
| | | |
| | | The answer should be provided as an array of strings. If it is impossible to validate |
| | | the string, the result should be an array with only an empty string. |
| | | |
| | | Examples: |
| | | ()())() -> [()()(), (())()] |
| | | (a)())() -> [(a)()(), (a())()] |
| | | )( -> [""] |
+------------------------------------+------------------------------------------------------------------------------------------+
| Find All Valid Math Expressions | | You are given a string which contains only digits between 0 and 9 as well as a target |
| | | number. Return all possible ways you can add the +, -, and * operators to the string |
| | | of digits such that it evaluates to the target number. |
| | | |
| | | The answer should be provided as an array of strings containing the valid expressions. |
| | | |
| | | NOTE: Numbers in an expression cannot have leading 0's |
| | | |
| | | Examples: |
| | | Input: digits = "123", target = 6 |
| | | Output: [1+2+3, 1*2*3] |
| | | |
| | | Input: digits = "105", target = 5 |
| | | Output: [1*0+5, 10-5] |
+------------------------------------+------------------------------------------------------------------------------------------+
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Name | Problem Summary |
+=========================================+==========================================================================================+
| Find Largest Prime Factor | | Given a number, find its largest prime factor. A prime factor |
| | | is a factor that is a prime number. |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Subarray with Maximum Sum | | Given an array of integers, find the contiguous subarray (containing |
| | | at least one number) which has the largest sum and return that sum. |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Total Ways to Sum | | Given a number, how many different distinct ways can that number be written as |
| | | a sum of at least two positive integers? |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Total Ways to Sum II | | You are given an array with two elements. The first element is an integer n. |
| | | The second element is an array of numbers representing the set of available integers. |
| | | How many different distinct ways can that number n be written as |
| | | a sum of integers contained in the given set? |
| | | You may use each integer in the set zero or more times. |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Spiralize Matrix | | Given an array of array of numbers representing a 2D matrix, return the |
| | | elements of that matrix in clockwise spiral order. |
| | | |
| | | Example: The spiral order of |
| | | |
| | | [1, 2, 3, 4] |
| | | [5, 6, 7, 8] |
| | | [9, 10, 11, 12] |
| | | |
| | | is [1, 2, 3, 4, 8, 12, 11, 10, 9, 5, 6, 7] |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Array Jumping Game | | You are given an array of integers where each element represents the |
| | | maximum possible jump distance from that position. For example, if you |
| | | are at position i and your maximum jump length is n, then you can jump |
| | | to any position from i to i+n. |
| | | |
| | | Assuming you are initially positioned at the start of the array, determine |
| | | whether you are able to reach the last index of the array. |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Array Jumping Game II | | You are given an array of integers where each element represents the |
| | | maximum possible jump distance from that position. For example, if you |
| | | are at position i and your maximum jump length is n, then you can jump |
| | | to any position from i to i+n. |
| | | |
| | | Assuming you are initially positioned at the start of the array, determine |
| | | the minimum number of jumps to reach the end of the array. |
| | | |
| | | If it's impossible to reach the end, then the answer should be 0. |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Merge Overlapping Intervals | | Given an array of intervals, merge all overlapping intervals. An interval |
| | | is an array with two numbers, where the first number is always less than |
| | | the second (e.g. [1, 5]). |
| | | |
| | | The intervals must be returned in ASCENDING order. |
| | | |
| | | Example: |
| | | [[1, 3], [8, 10], [2, 6], [10, 16]] |
| | | merges into [[1, 6], [8, 16]] |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Generate IP Addresses | | Given a string containing only digits, return an array with all possible |
| | | valid IP address combinations that can be created from the string. |
| | | |
| | | An octet in the IP address cannot begin with '0' unless the number itself |
| | | is actually 0. For example, "192.168.010.1" is NOT a valid IP. |
| | | |
| | | Examples: |
| | | 25525511135 -> [255.255.11.135, 255.255.111.35] |
| | | 1938718066 -> [193.87.180.66] |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Algorithmic Stock Trader I | | You are given an array of numbers representing stock prices, where the |
| | | i-th element represents the stock price on day i. |
| | | |
| | | Determine the maximum possible profit you can earn using at most one |
| | | transaction (i.e. you can buy an sell the stock once). If no profit |
| | | can be made, then the answer should be 0. Note that you must buy the stock |
| | | before you can sell it. |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Algorithmic Stock Trader II | | You are given an array of numbers representing stock prices, where the |
| | | i-th element represents the stock price on day i. |
| | | |
| | | Determine the maximum possible profit you can earn using as many transactions |
| | | as you'd like. A transaction is defined as buying and then selling one |
| | | share of the stock. Note that you cannot engage in multiple transactions at |
| | | once. In other words, you must sell the stock before you buy it again. If no |
| | | profit can be made, then the answer should be 0. |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Algorithmic Stock Trader III | | You are given an array of numbers representing stock prices, where the |
| | | i-th element represents the stock price on day i. |
| | | |
| | | Determine the maximum possible profit you can earn using at most two |
| | | transactions. A transaction is defined as buying and then selling one share |
| | | of the stock. Note that you cannot engage in multiple transactions at once. |
| | | In other words, you must sell the stock before you buy it again. If no profit |
| | | can be made, then the answer should be 0. |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Algorithmic Stock Trader IV | | You are given an array with two elements. The first element is an integer k. |
| | | The second element is an array of numbers representing stock prices, where the |
| | | i-th element represents the stock price on day i. |
| | | |
| | | Determine the maximum possible profit you can earn using at most k transactions. |
| | | A transaction is defined as buying and then selling one share of the stock. |
| | | Note that you cannot engage in multiple transactions at once. In other words, |
| | | you must sell the stock before you can buy it. If no profit can be made, then |
| | | the answer should be 0. |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Minimum Path Sum in a Triangle | | You are given a 2D array of numbers (array of array of numbers) that represents a |
| | | triangle (the first array has one element, and each array has one more element than |
| | | the one before it, forming a triangle). Find the minimum path sum from the top to the |
| | | bottom of the triangle. In each step of the path, you may only move to adjacent |
| | | numbers in the row below. |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Unique Paths in a Grid I | | You are given an array with two numbers: [m, n]. These numbers represent a |
| | | m x n grid. Assume you are initially positioned in the top-left corner of that |
| | | grid and that you are trying to reach the bottom-right corner. On each step, |
| | | you may only move down or to the right. |
| | | |
| | | |
| | | Determine how many unique paths there are from start to finish. |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Unique Paths in a Grid II | | You are given a 2D array of numbers (array of array of numbers) representing |
| | | a grid. The 2D array contains 1's and 0's, where 1 represents an obstacle and |
| | | |
| | | 0 represents a free space. |
| | | |
| | | Assume you are initially positioned in top-left corner of that grid and that you |
| | | are trying to reach the bottom-right corner. In each step, you may only move down |
| | | or to the right. Furthermore, you cannot move onto spaces which have obstacles. |
| | | |
| | | Determine how many unique paths there are from start to finish. |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Shortest Path in a Grid | | You are given a 2D array of numbers (array of array of numbers) representing |
| | | a grid. The 2D array contains 1's and 0's, where 1 represents an obstacle and |
| | | 0 represents a free space. |
| | | |
| | | Assume you are initially positioned in top-left corner of that grid and that you |
| | | are trying to reach the bottom-right corner. In each step, you may move to the up, |
| | | down, left or right. Furthermore, you cannot move onto spaces which have obstacles. |
| | | |
| | | Determine if paths exist from start to destination, and find the shortest one. |
| | | |
| | | Examples: |
| | | [[0,1,0,0,0], |
| | | [0,0,0,1,0]] -> "DRRURRD" |
| | | [[0,1], |
| | | [1,0]] -> "" |
| | | |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Sanitize Parentheses in Expression | | Given a string with parentheses and letters, remove the minimum number of invalid |
| | | parentheses in order to validate the string. If there are multiple minimal ways |
| | | to validate the string, provide all of the possible results. |
| | | |
| | | The answer should be provided as an array of strings. If it is impossible to validate |
| | | the string, the result should be an array with only an empty string. |
| | | |
| | | Examples: |
| | | ()())() -> [()()(), (())()] |
| | | (a)())() -> [(a)()(), (a())()] |
| | | )( -> [""] |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Find All Valid Math Expressions | | You are given a string which contains only digits between 0 and 9 as well as a target |
| | | number. Return all possible ways you can add the +, -, and * operators to the string |
| | | of digits such that it evaluates to the target number. |
| | | |
| | | The answer should be provided as an array of strings containing the valid expressions. |
| | | |
| | | NOTE: Numbers in an expression cannot have leading 0's |
| | | NOTE: The order of evaluation expects script operator precedence |
| | | |
| | | Examples: |
| | | Input: digits = "123", target = 6 |
| | | Output: [1+2+3, 1*2*3] |
| | | |
| | | Input: digits = "105", target = 5 |
| | | Output: [1*0+5, 10-5] |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| HammingCodes: Integer to Encoded Binary | | You are given a decimal value. |
| | | Convert it into a binary string and encode it as a 'Hamming-Code'. eg: |
| | | Value 8 will result into binary '1000', which will be encoded |
| | | with the pattern 'pppdpddd', where p is a paritybit and d a databit, |
| | | or '10101' (Value 21) will result into (pppdpdddpd) '1001101011'. |
| | | NOTE: You need an parity Bit on Index 0 as an 'overall'-paritybit. |
| | | NOTE 2: You should watch the HammingCode-video from 3Blue1Brown, which |
| | | explains the 'rule' of encoding, |
| | | including the first Index parity-bit mentioned on the first note. |
| | | Now the only one rule for this encoding: |
| | | It's not allowed to add additional leading '0's to the binary value |
| | | That means, the binary value has to be encoded as it is |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| HammingCodes: Encoded Binary to Integer | | You are given an encoded binary string. |
| | | Treat it as a Hammingcode with 1 'possible' error on an random Index. |
| | | Find the 'possible' wrong bit, fix it and extract the decimal value, which is |
| | | hidden inside the string.\n\n", |
| | | Note: The length of the binary string is dynamic, but it's encoding/decoding is |
| | | following Hammings 'rule'\n", |
| | | Note 2: Index 0 is an 'overall' parity bit. Watch the Hammingcode-video from |
| | | 3Blue1Brown for more information\n", |
| | | Note 3: There's a ~55% chance for an altered Bit. So... MAYBE |
| | | there is an altered Bit 😉\n", |
| | | Extranote for automation: return the decimal value as a string", |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Proper 2-Coloring of a Graph | | You are given data, representing a graph. Note that "graph", as used here, refers to |
| | | the field of graph theory, and has no relation to statistics or plotting. |
| | | |
| | | The first element of the data represents the number of vertices in the graph. Each |
| | | vertex is a unique number between 0 and ${data[0] - 1}. The next element of the data |
| | | represents the edges of the graph. |
| | | |
| | | Two vertices u,v in a graph are said to be adjacent if there exists an edge [u,v]. |
| | | Note that an edge [u,v] is the same as an edge [v,u], as order does not matter. |
| | | |
| | | You must construct a 2-coloring of the graph, meaning that you have to assign each |
| | | vertex in the graph a "color", either 0 or 1, such that no two adjacent vertices have |
| | | the same color. Submit your answer in the form of an array, where element i |
| | | represents the color of vertex i. If it is impossible to construct a 2-coloring of |
| | | the given graph, instead submit an empty array. |
| | | |
| | | Examples: |
| | | |
| | | Input: [4, [[0, 2], [0, 3], [1, 2], [1, 3]]] |
| | | Output: [0, 0, 1, 1] |
| | | |
| | | Input: [3, [[0, 1], [0, 2], [1, 2]]] |
| | | Output: [] |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Compression I: RLE Compression | | Run-length encoding (RLE) is a data compression technique which encodes data as a |
| | | series of runs of a repeated single character. Runs are encoded as a length, followed |
| | | by the character itself. Lengths are encoded as a single ASCII digit; runs of 10 |
| | | characters or more are encoded by splitting them into multiple runs. |
| | | |
| | | You are given a string as input. Encode it using run-length encoding with the minimum |
| | | possible output length. |
| | | |
| | | Examples: |
| | | aaaaabccc -> 5a1b3c |
| | | aAaAaA -> 1a1A1a1A1a1A |
| | | 111112333 -> 511233 |
| | | zzzzzzzzzzzzzzzzzzz -> 9z9z1z (or 9z8z2z, etc.) |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Compression II: LZ Decompression | | Lempel-Ziv (LZ) compression is a data compression technique which encodes data using |
| | | references to earlier parts of the data. In this variant of LZ, data is encoded in two |
| | | types of chunk. Each chunk begins with a length L, encoded as a single ASCII digit |
| | | from 1 - 9, followed by the chunk data, which is either: |
| | | |
| | | 1. Exactly L characters, which are to be copied directly into the uncompressed data. |
| | | 2. A reference to an earlier part of the uncompressed data. To do this, the length |
| | | is followed by a second ASCII digit X: each of the L output characters is a copy |
| | | of the character X places before it in the uncompressed data. |
| | | |
| | | For both chunk types, a length of 0 instead means the chunk ends immediately, and the |
| | | next character is the start of a new chunk. The two chunk types alternate, starting |
| | | with type 1, and the final chunk may be of either type. |
| | | |
| | | You are given an LZ-encoded string. Decode it and output the original string. |
| | | |
| | | Example: decoding '5aaabb450723abb' chunk-by-chunk |
| | | 5aaabb -> aaabb |
| | | 5aaabb45 -> aaabbaaab |
| | | 5aaabb450 -> aaabbaaab |
| | | 5aaabb45072 -> aaabbaaababababa |
| | | 5aaabb450723abb -> aaabbaaababababaabb |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Compression III: LZ Compression | | Lempel-Ziv (LZ) compression is a data compression technique which encodes data using |
| | | references to earlier parts of the data. In this variant of LZ, data is encoded in two |
| | | types of chunk. Each chunk begins with a length L, encoded as a single ASCII digit |
| | | from 1 - 9, followed by the chunk data, which is either: |
| | | |
| | | 1. Exactly L characters, which are to be copied directly into the uncompressed data. |
| | | 2. A reference to an earlier part of the uncompressed data. To do this, the length |
| | | is followed by a second ASCII digit X: each of the L output characters is a copy |
| | | of the character X places before it in the uncompressed data. |
| | | |
| | | For both chunk types, a length of 0 instead means the chunk ends immediately, and the |
| | | next character is the start of a new chunk. The two chunk types alternate, starting |
| | | with type 1, and the final chunk may be of either type. |
| | | |
| | | You are given a string as input. Encode it using Lempel-Ziv encoding with the minimum |
| | | possible output length. |
| | | |
| | | Examples (some have other possible encodings of minimal length): |
| | | abracadabra -> 7abracad47 |
| | | mississippi -> 4miss433ppi |
| | | aAAaAAaAaAA -> 3aAA53035 |
| | | 2718281828 -> 627182844 |
| | | abcdefghijk -> 9abcdefghi02jk |
| | | aaaaaaaaaaaa -> 3aaa91 |
| | | aaaaaaaaaaaaa -> 1a91031 |
| | | aaaaaaaaaaaaaa -> 1a91041 |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Encryption I: Caesar Cipher | | Caesar cipher is one of the simplest encryption technique. It is a type of |
| | | substitution cipher in which each letter in the plaintext is replaced by a letter some |
| | | fixed number of positions down the alphabet. For example, with a left shift of 3, D |
| | | would be replaced by A, E would become B, and A would become X (because of rotation). |
| | | You are given an array with two elements. The first element is the plaintext, the |
| | | second element is the left shift value. Return the ciphertext as uppercase string. |
| | | Spaces remains the same. |
+-----------------------------------------+------------------------------------------------------------------------------------------+
| Encryption II: Vigenère Cipher | | Vigenère cipher is a type of polyalphabetic substitution. It uses the Vigenère square |
| | | to encrypt and decrypt plaintext with a keyword. |
| | | Vignenère square: |
| | | A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
| | | +---------------------------------------------------- |
| | | A | A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
| | | B | B C D E F G H I J K L M N O P Q R S T U V W X Y Z A |
| | | C | C D E F G H I J K L M N O P Q R S T U V W X Y Z A B |
| | | D | D E F G H I J K L M N O P Q R S T U V W X Y Z A B C |
| | | E | E F G H I J K L M N O P Q R S T U V W X Y Z A B C D |
| | | ... |
| | | Y | Y Z A B C D E F G H I J K L M N O P Q R S T U V W X |
| | | Z | Z A B C D E F G H I J K L M N O P Q R S T U V W X Y |
| | | For encryption each letter of the plaintext is paired with the corresponding letter of |
| | | a repeating keyword. For example, the plaintext DASHBOARD is encrypted with the |
| | | keyword LINUX: |
| | | Plaintext: DASHBOARD |
| | | Keyword: LINUXLINU |
| | | So, the first letter D is paired with the first letter of the key L. Therefore, row D |
| | | and column L of the Vigenère square are used to get the first cipher letter O. This |
| | | must be repeated for the whole ciphertext. |
| | | You are given an array with two elements. The first element is the plaintext, the |
| | | second element is the keyword. Return the ciphertext as uppercase string. |
+-----------------------------------------+------------------------------------------------------------------------------------------+

View File

@@ -7,6 +7,7 @@ these companies, you can apply for jobs.
Working a job lets you earn money, experience, and reputation with that company.
Information about all Companies
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TODO
While working for a company, you can click "Do something else simultaneously" to be able
to do things while you continue to work in the background. There is a 20% penalty to the
related gains. Clicking the "Focus" button under the overview will return you to the
current work.

View File

@@ -13,7 +13,12 @@ Basic Mechanics
When you visit the 'Slums' you will see a list of buttons that show all of the
available crimes. Simply select one of the options to begin attempting that
crime. Attempting to commit a crime takes a certain amount of time. This time
varies between crimes. During this time, you cannot do anything else.
varies between crimes.
While doing criemes, you can click “Do something else simultaneously”
to be able to do things while you continue to do crimes in the background. There is a
20% penalty to the related gains. Clicking the “Focus” button under the overview
will return you to the current task.
Crimes are not always successful. Your rate of success is determined by your
stats (and Augmentation multipliers) and can be seen on the crime-selection
@@ -26,4 +31,28 @@ Harder crimes are typically more profitable, and also give more EXP.
Crime details
^^^^^^^^^^^^^
TODO
Available crimes, and their descriptions, which all begin with "attempt to..."
Shoplift …shoplift from a low-end retailer
Rob store …commit armed robbery on a high-end store
Mug someone …mug a random person on the street
Larceny …rob property from someone's house
Deal Drugs …deal drugs
Bond Forgery …forge corporate bonds
Traffick illegal Arms …smuggle illegal arms into the city
Homicide …murder a random person on the street
Grand theft Auto …commit grand theft auto
Kidnap and Ransom …kidnap and ransom a high-profile-target
Assassinate …assassinate a high-profile target
Heist …pull off the ultimate heist

View File

@@ -2,6 +2,9 @@
Factions
========
.. warning:: This page contains spoilers regarding the game's story/plot-line.
Throughout the game you may receive invitations from factions. There are
many different factions, and each faction has different criteria for
determining its potential members. Joining a faction and furthering
@@ -30,23 +33,41 @@ from faction to faction.
List of Factions and their Requirements
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. raw:: html
<details><summary><a>Early Game Factions</a></summary>
.. _gameplay_factions::
+---------------------+--------------------+-----------------------------------------+-------------------------------+
| Early Game | Faction Name | Requirements | Joining this Faction prevents |
| Factions | | | you from joining: |
+ +--------------------+-----------------------------------------+-------------------------------+
| | CyberSec | * Install a backdoor on the CSEC server | |
+ +--------------------+-----------------------------------------+-------------------------------+
| | Tian Di Hui | * $1m | |
| | | * Hacking Level 50 | |
| | | * Be in Chongqing, New Tokyo, or Ishima | |
+ +--------------------+-----------------------------------------+-------------------------------+
| | Netburners | * Hacking Level 80 | |
| | | * Total Hacknet Levels of 100 | |
| | | * Total Hacknet RAM of 8 | |
| | | * Total Hacknet Cores of 4 | |
+ +--------------------+-----------------------------------------+-------------------------------+
| | Shadows of Anarchy | * Successfully infiltrate a company | |
+---------------------+--------------------+-----------------------------------------+-------------------------------+
.. raw:: html
</details>
<details><summary><a>City Factions</a></summary>
.. _gameplay_factions::
+---------------------+----------------+-----------------------------------------+-------------------------------+
| Early Game | Faction Name | Requirements | Joining this Faction prevents |
| Factions | | | you from joining: |
| City Factions | Faction Name | Requirements | Joining this Faction prevents |
| | | | you from joining: |
+ +----------------+-----------------------------------------+-------------------------------+
| | CyberSec | * Install a backdoor on the CSEC server | |
+ +----------------+-----------------------------------------+-------------------------------+
| | Tian Di Hui | * $1m | |
| | | * Hacking Level 50 | |
| | | * Be in Chongqing, New Tokyo, or Ishima | |
+ +----------------+-----------------------------------------+-------------------------------+
| | Netburners | * Hacking Level 80 | |
| | | * Total Hacknet Levels of 100 | |
| | | * Total Hacknet RAM of 8 | |
| | | * Total Hacknet Cores of 4 | |
+---------------------+----------------+-----------------------------------------+-------------------------------+
| City Factions | Sector-12 | * Be in Sector-12 | * Chongqing |
| | Sector-12 | * Be in Sector-12 | * Chongqing |
| | | * $15m | * New Tokyo |
| | | | * Ishima |
| | | | * Volhaven |
@@ -74,8 +95,19 @@ List of Factions and their Requirements
| | | | * New Tokyo |
| | | | * Ishima |
+---------------------+----------------+-----------------------------------------+-------------------------------+
| Hacking | NiteSec | * Install a backdoor on the avmnite-02h | |
| Groups | | server | |
.. raw:: html
</details>
<details><summary><a>Hacking Groups</a></summary>
.. _gameplay_factions::
+---------------------+----------------+-----------------------------------------+-------------------------------+
| Hacking | Faction Name | Requirements | Joining this Faction prevents |
| Groups | | | you from joining: |
+ +----------------+-----------------------------------------+-------------------------------+
| | NiteSec | * Install a backdoor on the avmnite-02h | |
| | | server | |
| | | | |
+ +----------------+-----------------------------------------+-------------------------------+
| | The Black Hand | * Install a backdoor on the I.I.I.I | |
@@ -86,40 +118,62 @@ List of Factions and their Requirements
| | | server | |
| | | | |
+---------------------+----------------+-----------------------------------------+-------------------------------+
| Megacorporations | ECorp | * Have 200k reputation with | |
.. raw:: html
</details>
<details><summary><a>Megacorporations</a></summary>
.. _gameplay_factions::
+---------------------+----------------+-----------------------------------------+-------------------------------+
| Megacorporations | Faction Name | Requirements | Joining this Faction prevents |
| | | | you from joining: |
+ +----------------+-----------------------------------------+-------------------------------+
| | ECorp | * Have 400k reputation with | |
| | | the Corporation | |
+ +----------------+-----------------------------------------+-------------------------------+
| | MegaCorp | * Have 200k reputation with | |
| | MegaCorp | * Have 400k reputation with | |
| | | the Corporation | |
+ +----------------+-----------------------------------------+-------------------------------+
| | KuaiGong | * Have 200k reputation with | |
| | KuaiGong | * Have 400k reputation with | |
| | International | the Corporation | |
+ +----------------+-----------------------------------------+-------------------------------+
| | Four Sigma | * Have 200k reputation with | |
| | Four Sigma | * Have 400k reputation with | |
| | | the Corporation | |
+ +----------------+-----------------------------------------+-------------------------------+
| | NWO | * Have 200k reputation with | |
| | NWO | * Have 400k reputation with | |
| | | the Corporation | |
+ +----------------+-----------------------------------------+-------------------------------+
| | Blade | * Have 200k reputation with | |
| | Blade | * Have 400k reputation with | |
| | Industries | the Corporation | |
+ +----------------+-----------------------------------------+-------------------------------+
| | OmniTek | * Have 200k reputation with | |
| | OmniTek | * Have 400k reputation with | |
| | Incorporated | the Corporation | |
+ +----------------+-----------------------------------------+-------------------------------+
| | Bachman & | * Have 200k reputation with | |
| | Bachman & | * Have 400k reputation with | |
| | Associates | the Corporation | |
+ +----------------+-----------------------------------------+-------------------------------+
| | Clarke | * Have 200k reputation with | |
| | Clarke | * Have 400k reputation with | |
| | Incorporated | the Corporation | |
+ +----------------+-----------------------------------------+-------------------------------+
| | Fulcrum Secret | * Have 250k reputation with | |
| | Fulcrum Secret | * Have 400k reputation with | |
| | Technologies | the Corporation | |
| | | * Install a backdoor on the | |
| | | fulcrumassets server | |
+---------------------+----------------+-----------------------------------------+-------------------------------+
| Criminal | Slum Snakes | * All Combat Stats of 30 | |
| Organizations | | * -9 Karma | |
.. raw:: html
</details>
<details><summary><a>Criminal Organizations</a></summary>
.. _gameplay_factions::
+---------------------+----------------+-----------------------------------------+-------------------------------+
| Criminal | Faction Name | Requirements | Joining this Faction prevents |
| Organizations | | | you from joining: |
+ +----------------+-----------------------------------------+-------------------------------+
| | Slum Snakes | * All Combat Stats of 30 | |
| | | * -9 Karma | |
| | | * $1m | |
+ +----------------+-----------------------------------------+-------------------------------+
| | Tetrads | * Be in Chongqing, New Tokyo, or Ishima | |
@@ -150,8 +204,19 @@ List of Factions and their Requirements
| | | * -90 Karma | |
| | | * Not working for CIA or NSA | |
+---------------------+----------------+-----------------------------------------+-------------------------------+
| Endgame | The Covenant | * 20 Augmentations | |
| Factions | | * $75b | |
.. raw:: html
</details>
<details><summary><a>Endgame Factions</a></summary>
.. _gameplay_factions::
+---------------------+----------------+-----------------------------------------+-------------------------------+
| Endgame | Faction Name | Requirements | Joining this Faction prevents |
| Factions | | | you from joining: |
+ +----------------+-----------------------------------------+-------------------------------+
| | The Covenant | * 20 Augmentations | |
| | | * $75b | |
| | | * Hacking Level of 850 | |
| | | * All Combat Stats of 850 | |
+ +----------------+-----------------------------------------+-------------------------------+
@@ -165,3 +230,6 @@ List of Factions and their Requirements
| | | * Hacking Level of 1500 | |
| | | * All Combat Stats of 1200 | |
+---------------------+----------------+-----------------------------------------+-------------------------------+
.. raw:: html
</details><br>

View File

@@ -107,3 +107,14 @@ starting security, rounded to the nearest integer. To be more precise::
This means that a server's security level will not fall below this
value if you are trying to weaken() it.
Backdoors
^^^^^^^^^
Servers that can be hacked can also have backdoors installed. These backdoors
will provide you with a benefit; the services may be cheaper, penalties may
be reduced or there may be other results. Honeypots exist and will let factions
know when you have succeeded at backdooring their system. Once you have a
backdoor installed, you can connect to that server directly.
When you visit a location in the city and see that the name is partially scrambled,
this indicates that you have backdoored the server related to the location.

View File

@@ -21,23 +21,19 @@ can be used to check how much RAM a server has.
Identifying Servers
^^^^^^^^^^^^^^^^^^^
A server is identified by two properties: its IP address and its hostname.
An IP address is a 32-bit number represented in dot-decimal notation.
For example, "56.1.5.0" and "86.5.1.0" might be two IP addresses
you see in the game. A hostname is a label assigned to a server.
A server is identified by its hostname.
A hostname is a label assigned to a server.
A hostname will usually give you a general idea of what the server
is. For example, the company Nova Medical might have a server with
the hostname "nova-med".
Hostnames and IP addresses are unique. This means that if one
server has the IP address "1.1.1.1" and the hostname
"some-server", then no other server in the game can have that
IP address or that hostname.
Hostnames are unique. This means that if one
server has the the hostname "some-server", then no other server
in the game can have that that hostname.
There are many :ref:`Netscript Functions <netscriptfunctions>`
and :ref:`terminal` commands in the game
that will require you to target a specific server. This is done using
either the IP address or the hostname of the server.
that will require you to target a specific server by hostname.
Player-owned Servers
^^^^^^^^^^^^^^^^^^^^

View File

@@ -8,15 +8,6 @@ on the navigation menu on the left-hand side of the game (you may need to expand
the 'Hacking' header in order to see the 'Terminal' tab). Alternatively, the :ref:`keyboard
shortcut <shortcuts>` Alt + t can be used to open the Terminal.
Configuration
-------------
The terminal has a configuration file called .fconf. To edit this file, go to
the terminal and enter::
nano .fconf
.. _terminal_filesystem:
Filesystem (Directories)
@@ -54,7 +45,7 @@ files.
Absolute vs Relative Paths
^^^^^^^^^^^^^^^^^^^^^^^^^^
Many Terminal commands accept absolute both absolute and relative paths for specifying a
Many Terminal commands accept both absolute and relative paths for specifying a
file.
An absolute path specifies the location of the file from the root directory (/).
@@ -239,7 +230,7 @@ connect
$ connect [hostname/ip]
Connect to a remote server. The hostname or IP address of the remote server must
Connect to a remote server. The hostname of the remote server must
be given as the argument to this command. Note that only servers that are immediately
adjacent to the current server in the network can be connected to. To see which
servers can be connected to, use the 'scan' command.
@@ -335,7 +326,7 @@ Then to kill this script the same arguments would have to be used::
$ kill foo.script 50e3 sigma-cosmetics
If you are killing the script using its PID, then the PID argument must be numeric.
If you are killing the script using its PID, then the PID argument must be numeric.
killall
^^^^^^^
@@ -347,7 +338,7 @@ Kills all scripts on the current server.
ls
^^
$ ls [dir] [| grep pattern]
$ ls [dir] [--grep pattern]
Prints files and directories on the current server to the Terminal screen.
@@ -358,19 +349,21 @@ followed by the files (also in alphabetical order).
The :code:`dir` optional parameter allows you to specify the directory for which to display
files.
The :code:`| grep pattern` optional parameter allows you to only display files and directories
The :code:`--grep pattern` optional parameter allows you to only display files and directories
with a certain pattern in their names.
The :code:`-l` optional parameter allows you to force each item onto a single line.
Examples::
// List files/directories with the '.script' extension in the current directory
$ ls | grep .script
$ ls -l --grep .script
// List files/directories with the '.js' extension in the root directory
$ ls / | grep .js
$ ls / -l --grep .js
// List files/directories with the word 'purchase' in the name, in the :code:`scripts` directory
$ ls scripts | grep purchase
$ ls scripts -l --grep purchase
lscpu
@@ -542,28 +535,6 @@ Then in order to check its logs with 'tail' the same arguments must be used::
$ tail foo.script 10 50000
theme
^^^^^
$ theme [preset] | [#background #text #highlight]
Change the color of the game's user interface
This command can be called with a preset theme. Currently, the supported presets are:
* default
* muted
* solarized
However, you can also specify your own color scheme using hex values.
To do so, you must specify three hex color values for the background
color, the text color, and the highlight color. These hex values must
be preceded by a pound sign (#) and must be either 3 or 6 digits. Example::
$ theme #ffffff #385 #235012
A color picker such as Google's can be used to get your desired hex color values
top
^^^

View File

@@ -3,6 +3,531 @@
Changelog
=========
v2.1.0 - 2022-09-23 Remote File API
-----------------------------------
Dev note
* The most important change about this update is the introduction of the Remote File API (RFA).
With this we also deprecate the HTTP file API and the Visual Studio extension. Those things
were made during the rush of Steam and aren't well thought out. This new process works with
both the web and Steam version of the game and every text editor. Moving forward we also
won't be doing much, if any, upgrades to the in-game editor. We think it's good enough for
now and if you need more we recommend you hook up your favorite external editor.
--- NEW FEATURES ---
* New Remote File API for transmitting files to the game (by @Hoekstraa)
* Added a new Augmentation, Z.O.Ë., which allows Sleeves to benefit from Stanek.
--- FIXES ---
API
* Remove incorrectly placed 's' in ns.tFormat() (by @LJNeon)
* More ports (previously max 20, now practically unlimited) (by @Hoekstraa)
* Corp functions now return copy of constant arrays instead of the original (by @Mughur)
* All the player sub-objects need to be copied for `getPlayer`. (by @MageKing17)
* add corp get<constant> functions, UI (by @Mughur)
* [danielyxie/bitburner#3860] destroyW0r1dD43m0n now properly gives achievements
* [danielyxie/bitburner#3890] favor now properly syncs across pages and the Donate achievement is now given correctly (by @Aerophia)
* getCrimeStats use bitnode multipliers in the output of crime stats (by @phyzical)
* add singularity function for exporting game save back (by @phyzical)
CODING CONTRACTS
* inconsistent probability for generation between online and offline (by @quacksouls)
* Don't stringify answer if already a string (by @alainbryden)
* [danielyxie/bitburner#3755] change input handling for contract attempts (by @Snarling)
CORPORATION
* [danielyxie/bitburner#3880], [danielyxie/bitburner#3876], [danielyxie/bitburner#3322], [danielyxie/bitburner#3138] Bunch of corporation fixes (by @Mughur)
* Gave investors some economics classes (by @Mughur)
* Limit shareholder priority on newly issued shares (by @Undeemiss)
* dont take research points for something already researched via api (by @phyzical)
CORPORATION API
* Fix up param order for limitProductProduction to match docs (by @phyzical)
* [danielyxie/bitburner#3655] Expose exports from Material (by @Rasmoh)
DOCUMENTATION
* update docs a bit more, amending some BN and SF texts (by @Mughur)
* Fixed Argument order for scp() (by @njalooo)
* Some typo fixes in Netscript functions (by @quacksouls)
* [danielyxie/bitburner#4033] Why use Coding Contract API (by @quacksouls)
* typo fix in description of Caesar cipher (by @quacksouls)
* typo fix in terminal.rst (by @BugiDev)
* Update bitburner.sleeve.settobladeburneraction.md (by @borisflagell)
* Correct documentation for `run()` with 0 threads. (by @MageKing17)
* Some doc updates (by @Mughur)
* fix documentation for remote api (by @hydroflame)
NETSCRIPT
* Added functions to resize, move, and close tail windows
* [danielyxie/bitburner#2376] ns.exit now exits immediately (by @Snarling)
* [danielyxie/bitburner#4055] Fix dynamic ram check (by @Snarling)
* [danielyxie/bitburner#4037] ns1 wraps deeper layers correctly. (by @Snarling)
* [danielyxie/bitburner#3963] Prevent bladeburner.setActionLevel from setting invalid action levels (by @MPJ-K)
* Typo fixes in CodingContract, Hacknet, Singularity APIs (by @quacksouls)
* Fix a typo in doc of Singularity.travelToCity() (by @quacksouls)
* Update netscript definition file for scp, write, read, and flags (by @Snarling)
* Correct missing ! for boolean coercion in Corporation.createCorporation(). (by @Risenafis)
* Normalized Stock API logging (by @Snarling)
* [danielyxie/bitburner#3992] allow null duration in toast ns function (by @RollerKnobster)
* Correct missing `!` for boolean coercion in `singularity.workForCompany()`. (by @MageKing17)
* ns.scp and ns.write are now synchronous + fix exec race condition (by @Snarling)
* [danielyxie/bitburner#2931] atExit now allows synchronous ns functions (by @Snarling)
* Improve real life CPU and memory performance of scripts. (by @Snarling)
* Prompt Add user friendly message to avoid throwing recovery screen for invalid choices (by @phyzical)
* [danielyxie/bitburner#4081] Rerunning a script from tail window recalculates ram usage (by @Snarling)
* [danielyxie/bitburner#3962] The correct script will be closed even if the player modifies args (v2.0) (by @Snarling)
* Corrected ns formula for infiltration rewards (by @ezylot)
* Add singularity check for finishing company work (by @Snarling)
SLEEVES
* [danielyxie/bitburner#3819] Allow using the regeneration chamber with sleeves to heal them. (by @coderanger)
* [danielyxie/bitburner#4063] fix crash when player tries to assign more than 3 sleeves to Bladeburner contracts (by @Snarling)
* [danielyxie/bitburner#4051] Sleeves no longer crash when player quits company sleeve was working (by @Snarling)
* [danielyxie/bitburner#4022], [danielyxie/bitburner#4024], [danielyxie/bitburner#4025], [danielyxie/bitburner#3998] (by @Mughur)
* Sleeve crime gain bitnode multiplier fix (by @Mughur)
REMOTE FILE API
* NetscriptDefinitions retains export strings (by @Hoekstraa)
* Fix type of RFAMessages with non-String results (by @Hoekstraa)
UI
* [danielyxie/bitburner#2962] add a setting to display middle time unit in Time Elapsed String (by @hydroflame)
* [danielyxie/bitburner#4106] fix incorrect experience display in Crime UI. (by @SilverNexus)
* Bitnode stats now show if BB/Corporation are disabled (by @Kelenius)
* Removed three empty lines from BB status screen (by @Kelenius)
* Add missing space to BN7 description (by @hex7cd)
* Improvements to crime work UI (by @Kelenius)
* [danielyxie/bitburner#3975], [danielyxie/bitburner#3882] Script Editor more responsive on resize, and fix dirty file indicator (by @Snarling)
MISC
* Added weight to GangMemberTask construction call (by @ezylot)
* Fix ANSI display bugs (by @Snarling)
* Debounce updateRAM calls in script editor. (by @Snarling)
* [danielyxie/bitburner#3979] Allow characters & and ' in filenames (by @Snarling)
* [danielyxie/bitburner#3965] Corrected tutorial text (by @mihilt)
* Fix infil definitions.d.ts (by @phyzical)
* Modify PR template (by @Hoekstraa)
* crime gains, sleeve gang augs and faq (by @Mughur)
* [danielyxie/bitburner#3649] Preventing server starting security level from going above 100 (by @Shiiyu)
* Adds Shadows of Anarchy (by @Lagicrus)
* Added intormation about hacking managers to hacking algorithms page (by @Kelenius)
* Fix Jest CI Error (by @geggleto)
* multiple hasAugmentation checks didn't check if the augment was installed (by @Mughur)
* [danielyxie/bitburner#2442] & [danielyxie/bitburner#2795] (by @G4mingJon4s)
* Adds info regarding augments and focus (by @Lagicrus)
* Removed console.log line (by @dhosborne)
* Update some doc (by @hydroflame)
* trying to fix int problems (by @hydroflame)
* Fix broken ns filesnames (by @hydroflame)
* new formula functions (by @hydroflame)
* test fixes/md updates (by @phyzical)
* Remove "based" from positive adjectives in infiltrations (by @faangbait)
* minor fix in instance calculation (by @hydroflame)
* fix dynamic ram miscalc not triggering (by @hydroflame)
* Refactor game options into separate components (by @hydroflame)
* fix settings unfocusing on every key stroke (by @hydroflame)
* fix some stuff with the timestamp settings (by @hydroflame)
* Fix unique key problem with ascii elements (by @hydroflame)
* Improve wrong arg user message and add ui.windowSize (by @hydroflame)
* fix stack trace missing in some errors (by @hydroflame)
* Fix scp and write in ns1 (by @hydroflame)
* Did some changes of the remote api and added documentation (by @hydroflame)
* Add dummy function to generate a mock server or player for formulas stuff (by @hydroflame)
* fix compile error (by @hydroflame)
* regen doc (by @hydroflame)
* rm console log (by @hydroflame)
* regen doc (by @hydroflame)
* Added more info about blood program, change some aug descriptions (by @hydroflame)
* use triple equal (by @hydroflame)
* Minor improvements to Netscript Port loading and unloading (by @hydroflame)
* Fix hostname generation being weird about dash 0 added (by @hydroflame)
* upgrade version number. (by @hydroflame)
* Nerf noodle bar.
v2.0.0 - 2022-07-19 Work rework
-------------------------------
API break rewards
* Everyone is awarded 10 NFG.
* All work in progress program is auto completed.
* All work in progress crafting is auto completed without adding entropy.
Work (Create program / Work for faction / Studying / etc ...)
* Working has been rebuilt from the grounds up. The motivation for that change is that all
different types of work all required different cached variables on the main Player object.
This caused a lot of bugs and crashes. It's been reworked in such a way as to prevent bugs
and make it nearly trivial to add new kinds of work. However, since this caused a few API break
I've decided to mark this version following semver protocols and call it 2.0.0
* Crime can be unfocused and auto loops, no more spam clicking.
* All work type give their reward immediately. No need to stop work to bank rewards like reputation.
* Faction and Company work no longer have a time limit.
* Company work no longer reduces rep gain by half for quitting early.
* Company faction require 400k rep to join (from 200k)
* Backdooring company server reduces faction requirement to 300k.
* All work generally no longer keep track of cumulative gains like exp and reputation since it's applied instantly.
* getPlayer returns way less fields but does return the new 'currentWork' field, some fields are moved around.
API breaks
* workForCompany argument 'companyName' is now not-optional
* commitCrime now has 'focus' optional parameter
* using getScriptIncome to get total income has been separated to getTotalScriptIncome.
* using getScriptExpGain to get total income has been separated to getTotalScriptExpGain.
* scp has it's 2 last argument reversed, the signature is now (files, destination, optional_source)
* ns.connect and other singularity function are no longer available at the top level.
They were already hidden from documentation but now they're gone.
* stock.buy and stock.sell were renamed to stock.buyStock and stock.sellStock because 'buy' and 'sell'
are very common tokens.
* corporation.bribe no longer allows to give shares as bribe.
Netscript
* Add singularity.getCurrentWork
* Add singularity.getAugmentationBasePrice
* Add sleeve.getSleeveAugmentationPrice
* Add sleeve.getSleeveAugmentationRepReq
* Fix infiltration.getInfiltrationLocations
* Singularity.goToLocation support for non-city-specific locations (@Ansopedian)
* All corporation functions are synchronous. Job assignment only works on the following cycle. (@stalefishies)
* Add batch functionality to NS spendHashes API (@undeemiss)
* Fix #3661 Add missing memory property to Sleeve API (@borisflagell)
* FIX#3732 Cannot assign two sleeve on "Take on contracts" regardless of contract type. (@borisflagell)
Corporation
* Dividend fixes and exposing dividends info via scripts (@stalefishies)
* Add big number format support in some Corporation's modal (@borisflagell)
* Fix #3261 Industry overview number formatting (@nickofolas)
Multipliers
* The main player object was also plagues with a million fields all called '*_mult'. Representing the different multipliers
* These have been refactored in a field called 'mults'.
Misc.
* #3596 Enhanced terminal command parsing (@RevanProdigalKnight)
* Fix #3366 Sleeve UI would sometimes displays the wrong stat while working out. (@borisflagell)
* Two new encryption themed contracts - caesar and vigenere (@Markus-D-M)
* Fixes #3132 several Sleeve can no longer works concurrently in the same company (@borisflagell)
* FIX #3514 Clear recently killed tab on BN end event (@Daniel-Barbera)
* HammingCodes description and implementation fixes (@s2ks)
* FIX #3794 Sleeve were getting less shocked when hospitalized (was positive, should have detrimental) (@borisflagell)
* Fix #3803 Servers can no longer have duplicate IPs (@crimsonhawk47)
* Fix #3854 ctrl+c does not clear terminal input (@evil-tim)
* Nerf noodle bar, obviously.
v1.6.3 - 2022-04-01 Few stanek fixes
------------------------------------
Stanek Gift
* Has a minimum size of 2x3
* Active Fragment property 'avgCharge' renamed to 'highestCharge'
* Formula for fragment effect updated to make 561% more sense.
Now you can charge to your heart content.
* Logs for the 'chargeFragment' function updated.
Misc.
* Nerf noodle bar.
v1.6.0 - 2022-03-29 Grafting
----------------------------
** Vitalife secret lab **
* A new mechanic called Augmentation Grafting has been added. Resleeving has been removed.
* Credit to @nickofolas for his incredible work.
** Stanek **
* BREAKING: Many functions in the stanek API were renamed in order to avoid name collision with things like Map.prototype.get
** UI **
* Major update to Sleeve, Gang UI, and Create Program (@nickofolas)
* re-add pre tags to support slash n in prompt (@jacktose)
* Tabelize linked output of 'ls' (@Master-Guy)
* Add the ability to filter open scripts (@phyzical)
* Add minHeight to editor tabs (@nickofolas)
* Properly expand gang equipment cards to fill entire screen (@nickofolas)
* Add shortcut to Faction augmentations page from FactionsRoot (@nickofolas)
* Fix extra space on editor tabs (@nickofolas)
* Present offline message as list (@DSteve595)
* add box showing remaining augments per faction (@jjayeon)
* Add tab switching support to vim mode (@JParisFerrer)
* Show current task on gang management screen (@zeddrak)
* Fix for ui of gang members current task when set via api (@phyzical)
* Don't hide irrelevant materials if their stock is not empty and hide irrelevant divisions from Export (@SagePtr)
* Fix regex to enable alpha transparency hex codes (8 digits) (@surdaft)
** API **
* Added dark web functions to ns api
* BREAKING: purchaseTor() should returns true if player already has Tor. (@DavidGrinberg, @waffleattack)
* Implement getBonusTime in Corporation API (@t-wolfeadam)
* Added functions to purchase TIX and WSI (@incubusnb)
* purchaseSleeveAug checks shock value (@incubusnb)
* Fix bug with hacknet api
* Fix spendHashes bug
* Added 0 cost of asleep() (@Master-Guy)
* Fix some misleading corporation errors (@TheRealMaxion)
* expose the inBladeburner on the player object (@phyzical)
* added ram charge for stanek width and height (@phyzical)
* Fix sufficient player money check to buy back shares. (@ChrissiQ)
* Fix Static Ram Circumventing for some NS functions (@CrafterKolyan)
* added CorporationSoftCap to NetscriptDefinitions (@phyzical)
* Added definition of autocomplete() 'data' argument. (@tigercat2000)
* Adding support for text/select options in Prompt command (@PhilipArmstead)
* Added the ability to exportGame via api (@phyzical)
** Arcade **
* Added an arcade to New Tokyo where you can play a 4 year old version of bitburner.
** Misc. **
* Add a warning triggered while auto-saves are off. (@MartinFournier)
* Log info for field analysis now displays actual rank gained. (@ApamNapat)
* Removed BladeburnerSkillCost from skill point cost description. (@ApamNapat)
* Fix handling for UpArrow in bladeburner console. (@dowinter)
* Add GitHub action to check PRs for generated files. (@MartinFournier)
* Cap Staneks gift at 25x25 to prevent crashes. (@waffleattack)
* Remove old & unused files from repository. (@MartinFournier)
* Factions on the factions screens are sorted by story progress / type. (@phyzical)
* Fix log manager not picking up new runs of scripts. (@phyzical)
* Added prettier to cicd.
* UI improvements (@phyzical)
* Documentation / Typos (@nanogyth, @Master-Guy, @incubusnb, @ApamNapat, @phyzical, @SagePtr)
* Give player code a copy of Division.upgrades instead of the live object (@Ornedan)
* Fix bug with small town achievement.
* Fix bug with purchaseSleeveAug (@phyzical)
* Check before unlocking corp upgrade (@gianfun)
* General codebase improvements. (@phyzical, @Master-Guy, @ApamNapat)
* Waiting on promises in NS1 no longer freezes the script. (@Master-Guy)
* Fix bug with missing ramcost for tFormat (@TheMas3212)
* Fix crash with new prompt
* Quick fix to prevent division by 0 in terminal (@Master-Guy)
* removed ip references (@phyzical, @Master-Guy)
* Terminal now supports 'ls -l'
* Fix negative number formatting (@Master-Guy)
* Fix unique ip generation (@InDieTasten)
* remove terminal command theme from docs (@phyzical)
* Fix 'Augmentations Left' with gang factions (@nickofolas)
* Attempt to fix 'bladeburner.process()' early routing issue (@MartinFournier)
* work in progress augment fix (@phyzical)
* Fixes missing space in Smart Supply (@TheRealMaxion)
* Change license to Apache 2 with Commons Clause
* updated regex sanitization (@mbrannen)
* Sleeve fix for when faction isnt found (@phyzical)
* Fix editor "close" naming (@phyzical)
* Fix bug with sleeves where some factions would be listed as workable. (@phyzical)
* Fix research tree of product industries post-prestige (@pd)
* Added a check for exisiting industry type before expanding (@phyzical)
* fix hackAnalyzeThreads returning infinity (@chrisrabe)
* Make growthAnalyze more accurate (@dwRchyngqxs)
* Add 'Zoom -> Reset Zoom' command to Steam (@smolgumball)
* Add hasOwnProperty check to GetServer (@SagePtr)
* Speed up employee productivity calculation (@pd)
* Field Work and Security Work benefit from 'share' (@SagePtr)
* Nerf noodle bar.
v1.5.0 - Steam Cloud integration
--------------------------------
** Steam Cloud Saving **
* Added support for steam cloud saving (@MartinFournier)
** UI **
* background now matches game primary color (@nickofolas)
* page title contains version (@MartinFourier)
* Major text editor improvements (@nickofolas)
* Display bonus time on sleeve page (@MartinFourier)
* Several UI improvements (@nickofolas, @smolgumball, @DrCuriosity, @phyzical)
* Fix aug display in alpha (@Dominik Winter)
* Fix display of corporation product equation (@SagePtr)
* Make Bitverse more accessible (@ChrissiQ)
* Make corporation warehouse more accessible (@ChrissiQ)
* Make tab style more consistent (@nickofolas)
** Netscript **
* Fix bug with async.
* Add 'printf' ns function (@Ninetailed)
* Remove blob caching.
* Fix formulas access check (@Ornedan)
* Fix bug in exp calculation (@qcorradi)
* Fix NaN comparison (@qcorradi)
* Fix travelToCity with bad argument (@SlyCedix)
* Fix bug where augs could not be purchased via sing (@reacocard)
* Fix rounding error in donateToFaction (@Risenafis)
* Fix bug with weakenAnalyze (@rhobes)
* Prevent exploit with atExit (@Ornedan)
* Double 'share' power
** Corporations **
* Fix bugs with corp API (@pigalot)
* Add smart supply func to corp API (@pd)
** Misc. **
* The file API now allows GET and DELETE (@lordducky)
* Force achievement calculation on BN completion (@SagePtr)
* Cleanup in repository (@MartinFourier)
* Several improvements to the electron version (@MartinFourier)
* Fix bug with casino roulette (@jamie-mac)
* Terminal history persists in savefile (@MartinFourier)
* Fix tests (@jamie-mac)
* Fix crash with electron windows tracker (@smolgumball)
* Fix BN6/7 passive reputation gain (@BrianLDev)
* Fix Sleeve not resetting on install (@waffleattack)
* Sort joined factions (@jjayeon)
* Update documentation / typo (@lethern, @Meowdoleon, @JohnnyUrosevic, @JosephDavidTalbot,
@pd, @lethern, @lordducky, @zeddrak, @fearnlj01, @reasonablytall, @MatthewTh0,
@SagePtr, @manniL, @Jedimaster4559, @loganville, @Arrow2thekn33, @wdpk, @fwolfst,
@fschoenfeldt, @Waladil, @AdamTReineke, @citrusmunch, @factubsio, @ashtongreen,
@ChrissiQ, @DJ-Laser, @waffleattack, @ApamNapat, @CrafterKolyan, @DSteve595)
* Nerf noodle bar.
v1.4.0 - 2022-01-18 Sharing is caring
-------------------------------------
** Computer sharing **
* A new mechanic has been added, it's is invoked by calling the new function 'share'.
This mechanic helps you farm reputation faster.
** gang **
* Installing augs means losing a little bit of ascension multipliers.
** Misc. **
* Prevent gang API from performing actions for the type of gang they are not. (@TheMas3212)
* Fix donation to gang faction. (@TheMas3212)
* Fix gang check crashing the game. (@TheMas3212)
* Make time compression more robust.
* Fix bug with scp.
* Add zoom to steam version. (@MartinFourier)
* Fix donateToFaction accepts donation of NaN. (@woody-lam-cwl)
* Show correct hash capacity gain on cache level upgrade tooltip. (@woody-lam-cwl)
* Fix tests (@woody-lam-cwl)
* Fix cache tooltip (@woody-lam-cwl)
* Added script to prettify save file for debugging (@MartinFourier)
* Update documentation / typos (@theit8514, @thadguidry, @tigercat2000, @SlyCedix, @Spacejoker, @KenJohansson,
@Ornedan, @JustAnOkapi, @nickofolas, @philarmstead, @TheMas3212, @dcragusa, @XxKingsxX-Pinu,
@paiv, @smolgumball, @zeddrak, @stinky-lizard, @nickofolas, @Feodoric, @daanflore,
@markusariliu, @mstruebing, @erplsf, @waffleattack, @Dexalt142, @AIT-OLPE, @deathly809, @BuckAMayzing,
@MartinFourier, @pigalot, @lethern)
* Fix BN3+ achievement (@SagePtr)
* Fix reputation carry over bug (@TheMas3212)
* Add button to exit infiltrations (@TheMas3212)
* Add dev menu achievement check (@TheMas3212)
* Add 'host' config for electron server (@MartinFourier)
* Suppress save toast only works for autosave (@MartinFourier)
* Fix some achievements not triggering with 'backdoor' (@SagePtr)
* Update Neuroflux Governor description.
* Fix bug with electron server.
* Fix bug with corporation employee assignment function (@Ornedan)
* Add detailed information to terminal 'mem' command (@MartinFourier)
* Add savestamp to savefile (@MartinFourier)
* Dev menu can apply export bonus (@MartinFourier)
* Icarus message no longer applies on top of itself (@Feodoric)
* purchase augment via API can no longer buy Neuroflux when it shouldn't (@Feodoric)
* Syntax highlighter should be smarter (@neuralsim)
* Fix some miscalculation when calculating money stolen (@zeddrak)
* Fix max cache achievement working with 0 cache (@MartinFourier)
* Add achievements in the game, not just steam (@MartinFourier)
* Overflow hash converts to money automatically (@MartinFourier)
* Make mathjax load locally (@MartinFourier)
* Make favor calculation more efficient (@kittycat2002)
* Fix some scripts crashing the game on startup (@MartinFourier)
* Toasts will appear above tail window (@MartinFourier)
* Fix issue that can cause terminal actions to start on one server and end on another (@MartinFourier)
* Fix 'fileExists' not correctly matching file names (@TheMas3212)
* Refactor some code to be more efficient (@TheMas3212)
* Fix exp gain for terminal grow and weaken (@nickofolas)
* Refactor script death code to reject waiting promises instead of resolving (@Ornedan)
* HP recalculates on defense exp gain (@TheMas3212)
* Fix log for ascendMember (@TheMas3212)
* Netscript ports clear on reset (@TheMas3212)
* Fix bug related to company (@TheMas3212)
* Fix bug where corporation handbook would not be correctly added (@TheMas3212)
* Servers in hash upgrades are sorted alpha (@MartinFourier)
* Fix very old save not properly migrating augmentation renamed in 0.56 (@MartinFourier)
* Add font height and line height in theme settings (@MartinFourier)
* Fix crash when quitting job (@MartinFourier)
* Added save file validation system (@TheMas3212)
* React and ReactDOM are now global objects (@pigalot)
* 'nano' supports globs (@smolgumball)
* Character overview can be dragged (@MartinFourier)
* Job page updates in real time (@nickofolas)
* Company favor gain uses the same calculation as faction, this is just performance
the value didn't change (@nickofolas)
* ns2 files work with more import options (@theit8514)
* Allow autocomplete for partial executables (@nickofolas)
* Add support for contract completion (@nickofolas)
* 'ls' link are clickable (@smolgumball)
* Prevent steam from opening external LOCAL files (@MartinFourier)
* Fix a bug with autocomplete (@Feodoric)
* Optimise achievement checks (@Feodoric)
* Hacknet server achievements grant associated hacknet node achievement (@Feodoric)
* Fix display bug with hacknet (@Feodoric)
* 'analyze' now says if the server is backdoored (@deathly809)
* Add option to exclude running script from save (@MartinFourier)
* Game now catches more errors and redirects to recovery page (@MartinFourier)
* Fix bug with autocomplete (@nickofolas)
* Add tooltip to unfocus work (@nickofolas)
* Add detailst overview (@MartinFourier)
* Fix focus bug (@deathly809)
* Fix some NaN handling (@deathly809)
* Added 'mv' ns function (@deathly809)
* Add focus argument to some singularity functions (@nickofolas)
* Fix some functions not disabling log correctly (@deathly809)
* General UI improvements (@nickofolas)
* Handle steamworks errors gravefully (@MartinFourier)
* Fix some react component not unmounting correctly (@MartinFourier)
* 'help' autocompletes (@nickofolas)
* No longer push all achievements to steam (@Ornedan)
* Recovery page has more information (@MartinFourier)
* Added 'getGameInfo' ns function (@MartinFourier)
* SF3.3 unlocks all corp API (@pigalot)
* Major improvements to corp API (@pigalot)
* Prevent seed money outside BN3 (@pigalot)
* Fix bug where using keyboard shortcuts would crash if the feature is not available (@MartinFourier)\
* Sidebar remains opened/closed on save (@MartinFourier)
* Added tooltip to sidebar when closed (@MartinFourier)
* Fix bug where Formulas.exe is not available when starting BN5 (@TheMas3212)
* Fix CI (@tvanderpol)
* Change shortcuts to match sidebar (@MartinFourier)
* Format gang respect (@attrib)
* Add modal to text editor with ram details (@nickofolas)
* Fix several bugs with singularity focus (@nickofolas)
* Nerf noodle bar.
v1.3.0 - 2022-01-04 Cleaning up
-------------------------------

View File

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

View File

@@ -19,8 +19,55 @@ Then, to fix your script, make sure you have a sleep or any other timed function
await ns.sleep(1000); // Add a 1s sleep to prevent freezing
}
Also make sure that each while loop gets to `awaited` function or `break`, for example the next snippet has a sleep
function, but it nor any possible conditional breaks are never reached and therefore will crash the game::
while(true) {
let currentMoney = ns.getServerMoneyAvailable("n00dles");
let maxMoney = ns.getServerMaxMoney("n00dles");
if (currentMoney < maxMoney/2){
await ns.grow("n00dles");
}
if (currentMoney === maxMoney){
break;
}
}
If `n00dles` current money is, for example, 75% of the maximum money, the script will not reach neither `grow` nor `break` and crashes the game.
Adding a sleep like in the first example, or changing the code so that `awaited` function or `break` is always reached, would prevent the crash.
Common infinite loop when translating the server purchasing script in starting guide to :ref:`netscriptjs` is to have a
while loop, that's condition's change is conditional::
var ram = 8;
var i = 0;
while (i < ns.getPurchasedServerLimit()) {
if (ns.getServerMoneyAvailable("home") > ns.getPurchasedServerCost(ram)) {
var hostname = ns.purchaseServer("pserv-" + i, ram);
ns.scp("early-hack-template.script", hostname);
ns.exec("early-hack-template.script", hostname, 3);
++i;
}
}
if player does not currently have enough money to purchase a server, the `if`'s condition will be false and `++i` will not be reached.
Since the script doesn't have `sleep` and value `i` will not change without the `if` being true, this will crash the game. Adding a `sleep`
that is always reached would prevent the crash.
Blackscreen
-----------
If the game window becomes a black screen without the game itself crashing, this is caused by
the game running too many concurrent scripts (the game runs on a browser and each tab can only
use so much ram until it crashes). Depending on which scripts are running and your hardware,
this number can vary between 50000 to 100000 instances (in version 2.0.2. In prior versions this number
was about 1/5th of that). To prevent this from happening make sure to :ref:`multithread<gameplay_scripts_multithreadingscripts>`
the scripts as much as possible.
Bug
---
Otherwise, the game is probably frozen/stuck due to a bug. To report a bug, follow
the guidelines `here <https://github.com/danielyxie/bitburner/blob/master/CONTRIBUTING.md#reporting-bugs>`_.
the guidelines `here <https://github.com/danielyxie/bitburner/blob/master/doc/CONTRIBUTING.md#reporting-bugs>`_.

View File

@@ -62,7 +62,7 @@ To briefly summarize the information from the links above: Each server has a
security level that affects how difficult it is to hack. Each server also has a
certain amount of money, as well as a maximum amount of money it can hold. Hacking a
server steals a percentage of that server's money. The :js:func:`hack` Netscript function
is used to hack server. The :js:func:`grow` Netscript function is used to increase
is used to hack a server. The :js:func:`grow` Netscript function is used to increase
the amount of money available on a server. The :js:func:`weaken` Netscript function is
used to decrease a server's security level.
@@ -860,6 +860,8 @@ Random Tips
* At this stage in the game, your combat stats (strength, defense, etc.) are not nearly
as useful as your hacking stat. Do not invest too much time or money into gaining combat
stat exp.
* As a rule of thumb, your hacking target should be the server with highest max money that's
required hacking level is under 1/3 of your hacking level.

View File

@@ -15,6 +15,7 @@ BitNode-1: Source Genesis
Description
The first BitNode created by the Enders to imprison the minds of humans. It became
the prototype and testing-grounds for all of the BitNodes that followed.
This is the first BitNode that you play through. It has no special
modifications or mechanics.
@@ -34,6 +35,8 @@ Difficulty
BitNode-2: Rise of the Underworld
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Description
From the shadows, they rose.
Organized crime groups quickly filled the void of power left behind from the collapse of
Western government in the 2050s. As society and civlization broke down, people quickly
succumbed to the innate human impulse of evil and savagery. The organized crime
@@ -47,10 +50,12 @@ Description
* Certain Factions (Slum Snakes, Tetrads, The Syndicate, The Dark Army, Speakers for the Dead,
NiteSec, The Black Hand) give the player the ability to form and manage their own gangs. These gangs
will earn the player money and reputation with the corresponding Faction
* Every Augmentation in the game will be available through the Factions listed above
* Every Augmentation* in the game will be available through the Factions listed above
* For every Faction NOT listed above, reputation gains are halved
* You will no longer gain passive reputation with Factions
(* except Neuroflux Governor, The Red Pill and augments of secret factions)
Source-File
:Max Level: 3
@@ -71,15 +76,17 @@ BitNode-3: Corporatocracy
Description
Our greatest illusion is that a healthy society can revolve around a
single-minded pursuit of wealth.
Sometime in the early 21st century economic and political globalization turned
the world into a corporatocracy, and it never looked back. Now, the privileged
elite will happily bankrupt their own countrymen, decimate their own community,
and evict their neighbors from houses in their desperate bid to increase their wealth.
In this BitNode you can create and manage your own corporation. Running a successful corporation
has the potential of generating massive profits. All other forms of income are reduced by 75%. Furthermore:
* The price and reputation cost of all Augmentations is tripled
* The starting and maximum amount of money on servers is reduced by 75%
* The starting and maximum amount of money on servers is reduced by 80%
* Server growth rate is reduced by 80%
* You now only need 75 favour with a faction in order to donate to it, rather than 150
@@ -87,7 +94,7 @@ Source-File
:Max Level: 3
This Source-File lets you create corporations on other BitNodes (although
some BitNodes will disable this mechanic). This Source-File also increases your
some BitNodes will disable this mechanic) and level 3 permanently unlocks the full API. This Source-File also increases your
charisma and company salary multipliers by:
* Level 1: 8%
@@ -117,7 +124,11 @@ Source-File
:Max Level: 3
This Source-File lets you access and use the Singularity Functions in other BitNodes.
Each level of this Source-File will open up more Singularity Functions that you can use.
Each level of this Source-File will reduce RAM costs:
* Level 1: 16x
* Level 2: 4x
* Level 3: 1x
Difficulty:
Depending on what Source-Files you have unlocked before attempting this BitNode,
@@ -134,11 +145,11 @@ Description
In this BitNode:
* The base security level of servers is doubled
* The starting money on servers is halved, but the maximum money remains the same
* The starting money on servers is halved, but the maximum money is doubled
* Most methods of earning money now give significantly less
* Infiltration gives 50% more reputation and money
* Corporations have 50% lower valuations and are therefore less profitable
* Augmentations are more expensive
* Augmentation price is doubled
* Hacking experience gain rates are reduced
Source-File
@@ -176,7 +187,7 @@ Description
* Hacking and Hacknet Nodes will be less profitable
* Your hacking level is reduced by 65%
* Hacking experience gain from scripts is reduced by 75%
* Hacking experience gain is reduced by 75%
* Corporations have 80% lower valuations and are therefore less profitable
* Working for companies is 50% less profitable
* Crimes and Infiltration are 25% less profitable
@@ -215,7 +226,7 @@ Description
* Augmentations are 3x more expensive
* Hacking and Hacknet Nodes will be significantly less profitable
* Your hacking level is reduced by 65%
* Hacking experience gain from scripts is reduced by 75%
* Hacking experience gain is reduced by 75%
* Corporations have 80% lower valuations and are therefore less profitable
* Working for companies is 50% less profitable
* Crimes and Infiltration are 25% less profitable
@@ -280,7 +291,7 @@ Description
In this BitNode:
* Your stats are significantly decreased
* You cannnot purchase additional servers
* You cannot purchase additional servers
* Hacking is significantly less profitable
Source-File
@@ -295,6 +306,12 @@ Source-File
(Note that the Level 3 effect of this Source-File only applies when entering a new BitNode, NOT
when installing Augmentations.)
This Source-File also increases your hacknet multipliers by:
* Level 1: 8%
* Level 2: 12%
* Level 3: 14%
Difficulty
Hard
@@ -307,11 +324,13 @@ Description
for the human consciousness. Mankind had finally achieved immortality - at least for those
that could afford it.
This BitNode unlocks Sleeve technology. Sleeve technology allows you to:
This BitNode unlocks Sleeve and grafting technologies. Sleeve technology allows you to:
1. Re-sleeve: Purchase and transfer your consciousness into a new body
2. Duplicate Sleeves: Duplicate your consciousness into Synthoids, allowing you to perform different tasks synchronously
Grafting technology allows you to graft Augmentations, which is an alternative way of installing Augmentations.
In this BitNode:
* Your stats are significantly decreased
@@ -322,7 +341,7 @@ Description
Source-File
:Max Level: 3
This Source-File unlocks Sleeve technology in other BitNodes.
This Source-File unlocks Sleeve and grafting technologies in other BitNodes.
Each level of this Source-File also grants you a Duplicate Sleeve.
Difficulty
@@ -334,18 +353,19 @@ Description
The 2050s was defined by the massive amounts of violent civil unrest and anarchic rebellion that rose all around the world. It was this period
of disorder that eventually lead to the governmental reformation of many global superpowers, most notably
the USA and China. But just as the world was slowly beginning to recover from these dark times, financial catastrophe hit.
In many countries, the high cost of trying to deal with the civil disorder bankrupted the governments. In all of this chaos and confusion, hackers
were able to steal billions of dollars from the world's largest electronic banks, prompting an international banking crisis as
governments were unable to bail out insolvent banks. Now, the world is slowly crumbling in the middle of the biggest economic crisis of all time.
In this BitNode:
* Your hacking stat and experience gain are halved
* The starting and maximum amount of money available on servers is significantly decreased
* Your hacking stat and experience gain are reduced
* The starting and maximum amount of money available on servers are reduced by 90%
* The growth rate of servers is significantly reduced
* Weakening a server is twice as effective
* Company wages are decreased by 50%
* Corporation valuations are 99% lower and are therefore significantly less profitable
* Corporation valuations are 90% lower and are therefore significantly less profitable
* Hacknet Node production is significantly decreased
* Crime and Infiltration are more lucrative
* Augmentations are twice as expensive
@@ -362,6 +382,12 @@ Source-File
* Level 2: 48%
* Level 3: 56%
This Source-File reduces the price increase for every aug bought by:
* Level 1: 4%
* Level 2: 6%
* Level 3: 7%
Difficulty
Hard
@@ -381,6 +407,47 @@ Source-File
Difficulty
Initially very easy, but then it (obviously) becomes harder as you continue to do it.
BitNode-13: They're lunatics
^^^^^^^^^^^^^^^^^^^^^^^^^
Description
With the invention of Augmentations in the 2040s a religious group known as the Church of the Machine God has rallied far more support than anyone would have hoped.
Their leader, Allison "Mother" Stanek is said to have created her own Augmentation whose power goes beyond any other. Find her in Chongqing and gain her trust.
In this BitNode:
* Your hacking stat is reduced by 75% and exp by 90%
* Your combat stats are reduced by 30%
* Class and gym exp gains halved
* The starting and maximum amount of money available on servers is decreased
* The starting security on servers is significantly increased
* Hacking money is decreased by 80%
* Company wages are decreased by 60% and exp gains by 50%
* Hacknet Node production is decreased by 60%
* Crime money is decreased by 60% and exp gains by 50%
* Stockmarket data costs are increased 10-fold
* Corporation valuations are 99.9% lower and are therefore extremely less profitable
* The rank you gain from Bladeburner contracts/operations is reduced by 55%
* Bladeburner skills cost twice as many skill points
* Coding contracts rewards reduced by 60%
* Gangs gain are reduced significantly and offer low amount of Augmentations
* Size of Stanek's Gift is increased by 1 size
Source-File
:Max Level: 3
Destroying this BitNode will give you Source-File 13, or if you already have this Source-File it will upgrade its level up to a maximum of 3.
This Source-File lets the Church of the Machine God appear in other BitNodes.
Each level of this Source-File increases the size of Stanek's Gift.
* Level 1: 5x5
* Level 2: 6x6
* Level 3: 7x7
Difficulty
Hard
Recommended BitNodes
--------------------
As a player, you are not forced to tackle the BitNodes in any particular order. You are
@@ -390,9 +457,43 @@ are the recommended BitNodes for different things:
For fast progression
^^^^^^^^^^^^^^^^^^^^
.. note:: This does not recommend the absolute fastest path, as I don't know what
exactly the fastest path is. But it does recommend the BitNodes that are
commonly considered to be optimal by players.
.. note:: These paths do not recommend the absolute fastest path, since speed of progression is
highly dependant on playing style. Path 1 is the recommended path according to the discord community.
Path 1 (new):
1. (Optional) 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. This also a let's you
get used to augments and other features resetting.
2. Do **BitNode-3: Corporatocracy** once to unlock the Corporation mechanic. This mechanic
has highest profit potential in the game.
3. Do **BitNode-10: Digital Carbon** once to unlock sleeves and grafting. Sleeves are useful in all nodes
and grafting can be useful in future BitNodes (especially 8). It's recommended to buy all sleeves and
their memory during the first run.
The ordering of the next three is dependant on playing style and wants/needs.
4. 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.
5. Do **BitNode-4: The Singularity**. Its Source-File does not directly make you
more powerful in any way, but it does unlock the `Singularity API <https://github.com/danielyxie/bitburner/blob/dev/markdown/bitburner.singularity.md>`_ which
let you automate significantly more aspects of the game. Consider repeating until Level 3,
since each level decreases the RAM cost of Singularity functions.
6. Do **BitNode-2: Rise of the Underworld** once to unlock the gang mechanic. This mechanic
has high profit potential and offers large amounts of Augmentations in a single faction.
Having sleeves (Source-File 10) greatly reduces the time it takes to get access to gangs
outside this BitNode.
7. 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.
Path 2 (old):
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.
@@ -479,6 +580,9 @@ simple money-generator to a more interesting mechanic.
**BitNode-10: Digital Carbon** unlocks two new mechanics: Re-Sleeving and
Duplicate Sleeves.
**BitNode-13: They're lunatics** unlocks Stanek's Gift. This gift can improve skills,
hacknet production and costs, working and crime gains as well hacking power and speed.
For a Challenge
^^^^^^^^^^^^^^^
In general, the higher BitNodes are more difficult than the lower ones.

View File

@@ -24,12 +24,14 @@ secrets that you've been searching for.
Basic documentation <netscript>
Basic Gameplay <basicgameplay>
Advanced Gameplay <advancedgameplay>
Remote API <remoteapi.rst>
Keyboard Shortcuts <shortcuts>
Game Frozen or Stuck? <gamefrozen>
Guides & Tips <guidesandtips>
Tools & Resources <toolsandresources>
Changelog <changelog>
v1.0.0 script migration guide <v1.0.0_migration.rst>
v2.0.0 script migration guide <v2.0.0_migration.rst>
404 <404.rst>
Donate <https://paypal.me/danielyxie>

View File

@@ -21,7 +21,7 @@ To automatically enter commands in the terminal (only works if looking at the te
terminalInput[handler].onChange({target:terminalInput});
// Simulate an enter press
terminalInput[handler].onKeyDown({keyCode:13,preventDefault:()=>null});
terminalInput[handler].onKeyDown({key:'Enter',preventDefault:()=>null});
To add lines to the terminal (only works if looking at the terminal):
@@ -32,4 +32,4 @@ To add lines to the terminal (only works if looking at the terminal):
const list = document.getElementById("generic-react-container").querySelector("ul");
// Inject some HTML.
list.insertAdjacentHTML('beforeend',`<li><p color=lime>whatever custom html</p></li>`)
list.insertAdjacentHTML('beforeend',`<li><p color=lime>whatever custom html</p></li>`)

View File

@@ -1,14 +1,14 @@
scp() Netscript Function
========================
.. js:function:: scp(files[, source], destination)
.. js:function:: scp(files, destination [, source])
:RAM cost: 0.6 GB
:param string/array files: Filename or an array of filenames of script/literature files to copy
:param string destination: Hostname of the destination server, which is the server to which the file will be copied.
:param string source:
Hostname of the source server, which is the server from which the file will be copied.
This argument is optional and if it's omitted the source will be the current server.
:param string destination: Hostname of the destination server, which is the server to which the file will be copied.
:returns: ``true`` if the copy was a success.
Copies a script or literature (.lit) file(s) to another server. The
@@ -26,8 +26,8 @@ scp() Netscript Function
scp("hack-template.script", "foodnstuff"); // returns: true
//Copies "foo.lit" from the helios server to the "home" computer
scp("foo.lit", "helios", "home"); // returns: true
scp("foo.lit", "home", "helios"); // returns: true
//Tries to copy three files from "rothman-uni" to "home" computer
files = ["foo1.lit", "foo2.script", "foo3.script"];
scp(files, "rothman-uni", "home"); // returns: true
scp(files, "home", "rothman-uni"); // returns: true

View File

@@ -15,4 +15,4 @@ scriptKill() Netscript Function
.. code-block:: javascript
scriptKill("demo.script"); // returns: true
scriptKill("demo.script", "home"); // returns: true

View File

@@ -23,4 +23,4 @@ spawn() Netscript Function
.. code-block:: javascript
spawn('foo.script', 10, 'foodnstuff', 90); // "run foo.script 10 foodnstuff 90" in 10 seconds.
spawn('foo.script', 10, 'foodnstuff', 90); // "run foo.script foodnstuff 90 -t 10" in 10 seconds.

View File

@@ -51,11 +51,9 @@ Here is a summary of all rules you need to follow when writing Netscript JS code
* grow
* weaken
* sleep
* asleep
* prompt
* wget
* scp
* write
* writePort
* Any function that contains :code:`await` must be declared as :code:`async`
@@ -147,9 +145,7 @@ You may have noticed that every new ns2 file will contains the following comment
.. code-block:: javascript
/**
* @param {NS} ns
**/
/** @param {NS} ns */
This comment is used to help the text editor autocomplete functions in the Netscript API. You can enable it by pressing ctrl+space after `ns.`

View File

@@ -23,3 +23,14 @@ into a script using::
args.length
**WARNING: Do not try to modify the args array. This will break the game.**
example for accessing arguments in ns2 from terminal execution:
terminal command:
run name_of_script.js -t 10 --tail argument1 argument2
ns2 script:
const args_obj = arguments[0]
const argument1 = (args_obj.server.args[0])
const argument2 = (args_obj.server.args[1])

206
doc/source/remoteapi.rst Normal file
View File

@@ -0,0 +1,206 @@
Remote API
==========
All versions of Bitburner can use websockets to connect to a server.
That server can then perform a number of actions.
Most commonly this is used in conjunction with an external text editor or API
in order to make writing scripts easier, or even use typescript.
To make use of this Remote API through the official server, look here: https://github.com/bitburner-official/typescript-template.
If you want to make your own server, see below for API details.
This API uses the JSON RCP 2.0 protocol. Inputs are in the following form:
.. code-block:: javascript
{
"jsonrpc": "2.0",
"id": number,
"method": string,
"params": any
}
Outputs:
.. code-block:: javascript
{
"jsonrpc": "2.0",
"id": number,
"result": any,
"error": any
}
Methods
-------
`pushFile`
^^^^^^^^^^
Create or update a file.
.. code-block:: javascript
{
"jsonrpc": "2.0",
"id": number,
"method": "pushFile",
"params": {
filename: string;
content: string;
server: string;
}
}
.. code-block:: javascript
{
"jsonrpc": "2.0",
"id": number,
"result": "OK"
}
`getFile`
^^^^^^^^^
Read a file and it's content.
.. code-block:: javascript
{
"jsonrpc": "2.0",
"id": number,
"method": "getFile",
"params": {
filename: string;
server: string;
}
}
.. code-block:: javascript
{
"jsonrpc": "2.0",
"id": number,
"result": string
}
`deleteFile`
^^^^^^^^^^^^
Delete a file.
.. code-block:: javascript
{
"jsonrpc": "2.0",
"id": number,
"method": "deleteFile",
"params": {
filename: string;
server: string;
}
}
.. code-block:: javascript
{
"jsonrpc": "2.0",
"id": number,
"result": "OK"
}
`getFileNames`
^^^^^^^^^^^^^^
List all file names on a server.
.. code-block:: javascript
{
"jsonrpc": "2.0",
"id": number,
"method": "getFileNames",
"params": {
server: string;
}
}
.. code-block:: javascript
{
"jsonrpc": "2.0",
"id": number,
"result": string[]
}
`getAllFiles`
^^^^^^^^^^^^^
Get the content of all files on a server.
.. code-block:: javascript
{
"jsonrpc": "2.0",
"id": number,
"method": "getAllFiles",
"params": {
server: string;
}
}
.. code-block:: javascript
{
"jsonrpc": "2.0",
"id": number,
"result": {
filename: string,
content: string
}[]
}
`calculateRam`
^^^^^^^^^^^^^^
Calculate the in-game ram cost of a script.
.. code-block:: javascript
{
"jsonrpc": "2.0",
"id": number,
"method": "calculateRam",
"params": {
filename: string;
server: string;
}
}
.. code-block:: javascript
{
"jsonrpc": "2.0",
"id": number,
"result": number
}
`getDefinitionFile`
^^^^^^^^^^^^^^^^^^^
Get the definition file of the API.
.. code-block:: javascript
{
"jsonrpc": "2.0",
"id": number,
"method": "getDefinitionFile"
}
.. code-block:: javascript
{
"jsonrpc": "2.0",
"id": number,
"result": string
}

View File

@@ -0,0 +1,109 @@
v2.0.0 Migration Guide
======================
In v2.0.0 a few more API have been broken.
Working
-------
Working has been rebuilt from the grounds up. The motivation for that change is that all
different types of work all required different cached variables on the main Player object.
This caused a lot of bugs and crashes. It's been reworked in such a way as to prevent bugs
and make it nearly trivial to add new kinds of work.
All work type give their reward immediately. No need to stop work to bank rewards like reputation.
Faction and Company work no longer have a time limit.
Company work no longer reduces rep gain by half for quitting early.
Company faction require 400k rep to join (from 200k)
Backdooring company server reduces faction requirement to 300k.
All types of work generally no longer keep track of cumulative gains like exp and reputation since it's applied instantly.
commitCrime
-----------
crime now loops, meaning after finishing one shoplift you start the next one with no input. While the signature
has not changed its behavior has. It also has a new 'focus' parameters.
getPlayer
---------
The following work-related fields are not longer included:
* workChaExpGained
* currentWorkFactionName
* workDexExpGained
* workHackExpGained
* createProgramReqLvl
* workStrExpGained
* companyName
* crimeType
* workRepGained
* workChaExpGainRate
* workType
* workStrExpGainRate
* isWorking
* workRepGainRate
* workDefExpGained
* currentWorkFactionDescription
* workHackExpGainRate
* workAgiExpGainRate
* workDexExpGainRate
* workMoneyGained
* workMoneyLossRate
* workMoneyGainRate
* createProgramName
* workDefExpGainRate
* workAgiExpGained
* className
The reason for that is that these fields are all, in one way or another, included in the new work field 'currentWork'.
Some of these values are also irrelevant.
Take a look at the new singularity.getCurrentWork function.
All fields ending in _mult have been moved to the 'mults' struct.
For example: getPlayer().hacking_skill_mult => getPlayer().mults.hacking_skill
skills have been moved to the skills struct
For example: getPlayer().hacking => getPlayer().skills.hacking
exp have been moved to the exp struct
For example: getPlayer().hacking_exp => getPlayer().exp.hacking
hp have been moved to the hp struct
For example: getPlayer().max_hp => getPlayer().hp.max or hp.current
hasWseAccount, hasTixApiAccess, has4SData, has4SDataTixApi have been removed and replaced with similar stock functions
workForCompany
--------------
The argument 'companyName' is now not-optional.
getScriptIncome & getScriptExpGain
----------------------------------
Those 2 functions used to have a call where no arguments would return the total for all scripts. This caused weird signature.
If you want to get the total income/exp for all scripts used the new getTotalScriptIncome / getTotalScriptExpGain instead.
scp
---
scp has it's 2 last argument reversed, the signature is now scp(files, destination, optional_source)
Singularity
-----------
A while ago top level singularity function were deprecated in favor of the singularity namespace.
This means calls like 'ns.connect' need to be changed to 'ns.singularity.connect'
stock.buy, stock.sell, stock.short
----------------------------------
These functions were renamed to stock.buyStock, stock.sellStock, and stock.buyShort because 'buy', 'sell', and 'short'
are very common tokens that would trick the ram calculation.
corporation.bribe
-----------------
The ability to give shares as bribe has been removed. The signature is now bribe(faction, money)

View File

@@ -1,453 +0,0 @@
:root {
--dark-text-color: #0c0;
--dark-link-color: #090;
}
body {
color: #000;
}
.wy-nav-content-wrap {
background-color: #000;
}
.wy-nav-content {
background-color: #000;
}
.section {
color: var(--dark-text-color);
}
.rst-content .highlighted {
background: #333;
box-shadow: none;
}
.highlight {
background-color: #17181c;
}
.highlight .nn {
color: var(--dark-text-color);
}
.highlight .nb {
color: #8bb8df;
}
.highlight .kn,
.highlight .kc,
.highlight .k {
color: #41c2ea;
}
.highlight .s1,
.highlight .s2 {
color: #b3e87f;
}
.highlight .nt {
color: #ccb350;
}
.highlight .c1 {
color: #686868;
}
.rst-content div[class^="highlight"] {
border-color: #1a1a1a;
}
.icon,
.icon-home {
color: var(--dark-link-color);
}
.wy-nav-content a,
.wy-nav-content a:visited {
color: var(--dark-link-color) !important;
text-decoration: underline;
}
.btn-neutral {
background-color: #17181c !important;
}
.btn-neutral:hover {
background-color: #101114 !important;
}
.btn-neutral:visited {
color: #c1c1c1 !important;
}
.btn {
box-shadow: none;
}
footer {
color: #bdbdbd;
}
.wy-nav-side {
background-color: #000;
border: 1px solid #333;
}
.wy-menu-vertical > a {
color: var(--dark-text-color);
}
.wy-menu-vertical li.current {
background-color: #000;
}
.wy-menu-vertical li.current > a,
.wy-menu-vertical li.on a {
background-color: #000;
color: var(--dark-text-color);
}
.wy-menu-vertical li.toctree-l1.current > a,
.wy-menu-vertical li.current a {
border-color: #000;
}
.wy-menu-vertical header,
.wy-menu-vertical p.caption {
color: var(--dark-text-color);
}
html.writer-html4 .rst-content dl:not(.docutils) > dt,
html.writer-html5
.rst-content
dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)
> dt {
background-color: #333;
}
.wy-menu-vertical li.current a {
color: #090;
}
.wy-menu-vertical a {
color: var(--dark-text-color);
}
.wy-menu-vertical li.current a:hover {
background-color: #222;
}
.wy-menu-vertical a:hover,
.wy-menu-vertical li.current > a:hover,
.wy-menu-vertical li.on a:hover {
background-color: #000;
color: var(--dark-text-color);
}
.wy-menu-vertical li.toctree-l2.current > a,
.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a {
background-color: #000;
}
.wy-side-nav-search {
background-color: #000;
color: var(--dark-text-color);
}
.wy-side-nav-search .wy-dropdown > a,
.wy-side-nav-search > a {
color: var(--dark-text-color);
}
.wy-side-nav-search input[type="text"] {
border-left: 0px;
border-right: 0px;
border-top: 0px;
border-radius: 0px;
box-shadow: none;
border-bottom-color: #0c0;
background-color: #333;
color: var(--dark-text-color);
}
.theme-switcher {
background-color: #0b0c0d;
color: var(--dark-text-color);
}
writer-html4 .rst-content dl:not(.docutils) > dt,
writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) > dt {
background-color: #0b0b0b;
color: #007dce;
border-color: #282828;
}
.rst-content code,
.rst-content tt {
color: var(--dark-text-color);
}
writer-html4 .rst-content dl:not(.docutils) dl:not(.field-list) > dt,
writer-html5
.rst-content
dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)
dl:not(.field-list)
> dt {
background-color: #0f0f0f;
color: #959595;
border-color: #2b2b2b;
}
.rst-content code,
.rst-content tt,
code {
background-color: #2d2d2d;
border-color: #1c1c1c;
}
.rst-content code.xref,
.rst-content tt.xref,
a .rst-content code,
a .rst-content tt {
color: #cecece;
}
.rst-content .hint,
.rst-content .important,
.rst-content .tip,
.rst-content .wy-alert-success.admonition,
.rst-content .wy-alert-success.admonition-todo,
.rst-content .wy-alert-success.attention,
.rst-content .wy-alert-success.caution,
.rst-content .wy-alert-success.danger,
.rst-content .wy-alert-success.error,
.rst-content .wy-alert-success.note,
.rst-content .wy-alert-success.seealso,
.rst-content .wy-alert-success.warning,
.wy-alert.wy-alert-success {
background-color: #00392e;
}
.rst-content .hint .admonition-title,
.rst-content .hint .wy-alert-title,
.rst-content .important .admonition-title,
.rst-content .important .wy-alert-title,
.rst-content .tip .admonition-title,
.rst-content .tip .wy-alert-title,
.rst-content .wy-alert-success.admonition-todo .admonition-title,
.rst-content .wy-alert-success.admonition-todo .wy-alert-title,
.rst-content .wy-alert-success.admonition .admonition-title,
.rst-content .wy-alert-success.admonition .wy-alert-title,
.rst-content .wy-alert-success.attention .admonition-title,
.rst-content .wy-alert-success.attention .wy-alert-title,
.rst-content .wy-alert-success.caution .admonition-title,
.rst-content .wy-alert-success.caution .wy-alert-title,
.rst-content .wy-alert-success.danger .admonition-title,
.rst-content .wy-alert-success.danger .wy-alert-title,
.rst-content .wy-alert-success.error .admonition-title,
.rst-content .wy-alert-success.error .wy-alert-title,
.rst-content .wy-alert-success.note .admonition-title,
.rst-content .wy-alert-success.note .wy-alert-title,
.rst-content .wy-alert-success.seealso .admonition-title,
.rst-content .wy-alert-success.seealso .wy-alert-title,
.rst-content .wy-alert-success.warning .admonition-title,
.rst-content .wy-alert-success.warning .wy-alert-title,
.rst-content .wy-alert.wy-alert-success .admonition-title,
.wy-alert.wy-alert-success .rst-content .admonition-title,
.wy-alert.wy-alert-success .wy-alert-title {
background-color: #006a56;
}
.rst-content .note,
.rst-content .seealso,
.rst-content .wy-alert-info.admonition,
.rst-content .wy-alert-info.admonition-todo,
.rst-content .wy-alert-info.attention,
.rst-content .wy-alert-info.caution,
.rst-content .wy-alert-info.danger,
.rst-content .wy-alert-info.error,
.rst-content .wy-alert-info.hint,
.rst-content .wy-alert-info.important,
.rst-content .wy-alert-info.tip,
.rst-content .wy-alert-info.warning,
.wy-alert.wy-alert-info {
background-color: #002c4d;
}
.rst-content .note .admonition-title,
.rst-content .note .wy-alert-title,
.rst-content .seealso .admonition-title,
.rst-content .seealso .wy-alert-title,
.rst-content .wy-alert-info.admonition-todo .admonition-title,
.rst-content .wy-alert-info.admonition-todo .wy-alert-title,
.rst-content .wy-alert-info.admonition .admonition-title,
.rst-content .wy-alert-info.admonition .wy-alert-title,
.rst-content .wy-alert-info.attention .admonition-title,
.rst-content .wy-alert-info.attention .wy-alert-title,
.rst-content .wy-alert-info.caution .admonition-title,
.rst-content .wy-alert-info.caution .wy-alert-title,
.rst-content .wy-alert-info.danger .admonition-title,
.rst-content .wy-alert-info.danger .wy-alert-title,
.rst-content .wy-alert-info.error .admonition-title,
.rst-content .wy-alert-info.error .wy-alert-title,
.rst-content .wy-alert-info.hint .admonition-title,
.rst-content .wy-alert-info.hint .wy-alert-title,
.rst-content .wy-alert-info.important .admonition-title,
.rst-content .wy-alert-info.important .wy-alert-title,
.rst-content .wy-alert-info.tip .admonition-title,
.rst-content .wy-alert-info.tip .wy-alert-title,
.rst-content .wy-alert-info.warning .admonition-title,
.rst-content .wy-alert-info.warning .wy-alert-title,
.rst-content .wy-alert.wy-alert-info .admonition-title,
.wy-alert.wy-alert-info .rst-content .admonition-title,
.wy-alert.wy-alert-info .wy-alert-title {
background-color: #004a7b;
}
.rst-content dl:not(.docutils) dt {
background-color: #333;
}
.rst-content {
color: var(--dark-text-color);
}
.rst-content .admonition-todo,
.rst-content .attention,
.rst-content .caution,
.rst-content .warning,
.rst-content .wy-alert-warning.admonition,
.rst-content .wy-alert-warning.danger,
.rst-content .wy-alert-warning.error,
.rst-content .wy-alert-warning.hint,
.rst-content .wy-alert-warning.important,
.rst-content .wy-alert-warning.note,
.rst-content .wy-alert-warning.seealso,
.rst-content .wy-alert-warning.tip,
.wy-alert.wy-alert-warning {
background-color: #533500;
}
.rst-content .admonition-todo .admonition-title,
.rst-content .admonition-todo .wy-alert-title,
.rst-content .attention .admonition-title,
.rst-content .attention .wy-alert-title,
.rst-content .caution .admonition-title,
.rst-content .caution .wy-alert-title,
.rst-content .warning .admonition-title,
.rst-content .warning .wy-alert-title,
.rst-content .wy-alert-warning.admonition .admonition-title,
.rst-content .wy-alert-warning.admonition .wy-alert-title,
.rst-content .wy-alert-warning.danger .admonition-title,
.rst-content .wy-alert-warning.danger .wy-alert-title,
.rst-content .wy-alert-warning.error .admonition-title,
.rst-content .wy-alert-warning.error .wy-alert-title,
.rst-content .wy-alert-warning.hint .admonition-title,
.rst-content .wy-alert-warning.hint .wy-alert-title,
.rst-content .wy-alert-warning.important .admonition-title,
.rst-content .wy-alert-warning.important .wy-alert-title,
.rst-content .wy-alert-warning.note .admonition-title,
.rst-content .wy-alert-warning.note .wy-alert-title,
.rst-content .wy-alert-warning.seealso .admonition-title,
.rst-content .wy-alert-warning.seealso .wy-alert-title,
.rst-content .wy-alert-warning.tip .admonition-title,
.rst-content .wy-alert-warning.tip .wy-alert-title,
.rst-content .wy-alert.wy-alert-warning .admonition-title,
.wy-alert.wy-alert-warning .rst-content .admonition-title,
.wy-alert.wy-alert-warning .wy-alert-title {
background-color: #803b00;
}
.rst-content .danger,
.rst-content .error,
.rst-content .wy-alert-danger.admonition,
.rst-content .wy-alert-danger.admonition-todo,
.rst-content .wy-alert-danger.attention,
.rst-content .wy-alert-danger.caution,
.rst-content .wy-alert-danger.hint,
.rst-content .wy-alert-danger.important,
.rst-content .wy-alert-danger.note,
.rst-content .wy-alert-danger.seealso,
.rst-content .wy-alert-danger.tip,
.rst-content .wy-alert-danger.warning,
.wy-alert.wy-alert-danger {
background-color: #82231a;
}
.rst-content .danger .admonition-title,
.rst-content .danger .wy-alert-title,
.rst-content .error .admonition-title,
.rst-content .error .wy-alert-title,
.rst-content .wy-alert-danger.admonition-todo .admonition-title,
.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,
.rst-content .wy-alert-danger.admonition .admonition-title,
.rst-content .wy-alert-danger.admonition .wy-alert-title,
.rst-content .wy-alert-danger.attention .admonition-title,
.rst-content .wy-alert-danger.attention .wy-alert-title,
.rst-content .wy-alert-danger.caution .admonition-title,
.rst-content .wy-alert-danger.caution .wy-alert-title,
.rst-content .wy-alert-danger.hint .admonition-title,
.rst-content .wy-alert-danger.hint .wy-alert-title,
.rst-content .wy-alert-danger.important .admonition-title,
.rst-content .wy-alert-danger.important .wy-alert-title,
.rst-content .wy-alert-danger.note .admonition-title,
.rst-content .wy-alert-danger.note .wy-alert-title,
.rst-content .wy-alert-danger.seealso .admonition-title,
.rst-content .wy-alert-danger.seealso .wy-alert-title,
.rst-content .wy-alert-danger.tip .admonition-title,
.rst-content .wy-alert-danger.tip .wy-alert-title,
.rst-content .wy-alert-danger.warning .admonition-title,
.rst-content .wy-alert-danger.warning .wy-alert-title,
.rst-content .wy-alert.wy-alert-danger .admonition-title,
.wy-alert.wy-alert-danger .rst-content .admonition-title,
.wy-alert.wy-alert-danger .wy-alert-title {
background-color: #b9372b;
}
.wy-nav-top {
background-color: #0b152d;
}
.rst-content table.docutils thead,
.rst-content table.field-list thead,
.wy-table thead {
color: var(--dark-text-color);
}
.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,
.wy-table-backed,
.wy-table-odd td,
.wy-table-striped tr:nth-child(2n-1) td {
background-color: #333;
}
.rst-content table.docutils:not(.field-list) tr:nth-child(2n) td,
.wy-table-backed,
.wy-table-odd td,
.wy-table-striped tr:nth-child(2n) td {
background-color: #444;
}
.rst-content table.docutils td,
.wy-table-bordered-all td,
writer-html5 .rst-content table.docutils th,
.rst-content table.docutils,
.wy-table-bordered-all {
border-color: #262626;
}
.rst-content table.docutils caption,
.rst-content table.field-list caption,
.wy-table caption {
color: var(--dark-text-color);
}
.wy-menu-vertical li.toctree-l3.current > a,
.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a {
background-color: #000;
}
.wy-side-nav-search > div.version {
color: var(--dark-text-color);
}

File diff suppressed because one or more lines are too long

View File

@@ -6,18 +6,18 @@ async function enableAchievementsInterval(window) {
// If the Steam API could not be initialized on game start, we'll abort this.
if (global.greenworksError) return;
// This is backward but the game fills in an array called `document.achievements` and we retrieve it from
// This is backward but the game fills in an array called `document.achievements` and we retrieve it from
// here. Hey if it works it works.
const steamAchievements = greenworks.getAchievementNames();
log.debug(`All Steam achievements ${JSON.stringify(steamAchievements)}`);
const playerAchieved = (await Promise.all(steamAchievements.map(checkSteamAchievement))).filter(name => !!name);
log.silly(`All Steam achievements ${JSON.stringify(steamAchievements)}`);
const playerAchieved = (await Promise.all(steamAchievements.map(checkSteamAchievement))).filter((name) => !!name);
log.debug(`Player has Steam achievements ${JSON.stringify(playerAchieved)}`);
const intervalID = setInterval(async () => {
try {
const playerAchievements = await window.webContents.executeJavaScript("document.achievements");
for (const ach of playerAchievements) {
if (!steamAchievements.includes(ach)) continue; // Don't try activating achievements that don't exist Steam-side
if (playerAchieved.includes(ach)) continue; // Don't spam achievements that have already been recorded
if (playerAchieved.includes(ach)) continue; // Don't spam achievements that have already been recorded
log.info(`Granting Steam achievement ${ach}`);
greenworks.activateAchievement(ach, () => undefined);
playerAchieved.push(ach);
@@ -26,7 +26,7 @@ async function enableAchievementsInterval(window) {
log.error(error);
// The interval probably did not get cleared after a window kill
log.warn('Clearing achievements timer');
log.warn("Clearing achievements timer");
clearInterval(intervalID);
return;
}
@@ -36,10 +36,14 @@ async function enableAchievementsInterval(window) {
function checkSteamAchievement(name) {
return new Promise((resolve) => {
greenworks.getAchievement(name, playerHas => resolve(playerHas ? name : ""), err => {
log.warn(`Failed to get Steam achievement ${name} status: ${err}`);
resolve("");
});
greenworks.getAchievement(
name,
(playerHas) => resolve(playerHas ? name : ""),
(err) => {
log.warn(`Failed to get Steam achievement ${name} status: ${err}`);
resolve("");
},
);
});
}
@@ -50,5 +54,6 @@ function disableAchievementsInterval(window) {
}
module.exports = {
enableAchievementsInterval, disableAchievementsInterval
}
enableAchievementsInterval,
disableAchievementsInterval,
};

View File

@@ -12,20 +12,27 @@ async function initialize(win) {
window = win;
server = http.createServer(async function (req, res) {
let body = "";
res.setHeader("Content-Type", "application/json");
req.on("data", (chunk) => {
body += chunk.toString(); // convert Buffer to string
});
req.on("end", () => {
const providedToken = req.headers?.authorization?.replace('Bearer ', '') ?? '';
req.on("end", async () => {
const providedToken = req.headers?.authorization?.replace("Bearer ", "") ?? "";
const isValid = providedToken === getAuthenticationToken();
if (isValid) {
log.debug('Valid authentication token');
log.debug("Valid authentication token");
} else {
log.log('Invalid authentication token');
log.log("Invalid authentication token");
res.writeHead(401);
res.write('Invalid authentication token');
res.end();
res.end(
JSON.stringify({
success: false,
msg: "Invalid authentication token",
}),
);
return;
}
@@ -35,24 +42,68 @@ async function initialize(win) {
} catch (error) {
log.warn(`Invalid body data`);
res.writeHead(400);
res.write('Invalid body data');
res.end();
res.end(
JSON.stringify({
success: false,
msg: "Invalid body data",
}),
);
return;
}
if (data) {
window.webContents.executeJavaScript(`document.saveFile("${data.filename}", "${data.code}")`).then((result) => {
res.write(result);
res.end();
});
let result;
switch (req.method) {
// Request files
case "GET":
result = await window.webContents.executeJavaScript(`document.getFiles()`);
break;
// Create or update files
// Support POST for VScode implementation
case "POST":
case "PUT":
if (!data) {
log.warn(`Invalid script update request - No data`);
res.writeHead(400);
res.end(
JSON.stringify({
success: false,
msg: "Invalid script update request - No data",
}),
);
return;
}
result = await window.webContents.executeJavaScript(`document.saveFile("${data.filename}", "${data.code}")`);
break;
// Delete files
case "DELETE":
result = await window.webContents.executeJavaScript(`document.deleteFile("${data.filename}")`);
break;
}
if (!result.res) {
//We've encountered an error
res.writeHead(400);
log.warn(`Api Server Error`, result.msg);
}
res.end(
JSON.stringify({
success: result.res,
msg: result.msg,
data: result.data,
}),
);
});
});
const autostart = config.get('autostart', false);
const autostart = config.get("autostart", false);
if (autostart) {
try {
await enable()
await enable();
} catch (error) {
return Promise.reject(error);
}
@@ -61,15 +112,14 @@ async function initialize(win) {
return Promise.resolve();
}
function enable() {
if (isListening()) {
log.warn('API server already listening');
log.warn("API server already listening");
return Promise.resolve();
}
const port = config.get('port', 9990);
const host = config.get('host', '127.0.0.1');
const port = config.get("port", 9990);
const host = config.get("host", "127.0.0.1");
log.log(`Starting http server on port ${port} - listening on ${host}`);
// https://stackoverflow.com/a/62289870
@@ -81,13 +131,10 @@ function enable() {
resolve();
}
});
server.once('error', (err) => {
server.once("error", (err) => {
if (!startFinished) {
startFinished = true;
console.log(
'There was an error starting the server in the error listener:',
err
);
console.log("There was an error starting the server in the error listener:", err);
reject(err);
}
});
@@ -96,11 +143,11 @@ function enable() {
function disable() {
if (!isListening()) {
log.warn('API server not listening');
log.warn("API server not listening");
return Promise.resolve();
}
log.log('Stopping http server');
log.log("Stopping http server");
return server.close();
}
@@ -118,31 +165,35 @@ function isListening() {
function toggleAutostart() {
const newValue = !isAutostart();
config.set('autostart', newValue);
config.set("autostart", newValue);
log.log(`New autostart value is '${newValue}'`);
}
function isAutostart() {
return config.get('autostart');
return config.get("autostart");
}
function getAuthenticationToken() {
const token = config.get('token');
const token = config.get("token");
if (token) return token;
const newToken = generateToken();
config.set('token', newToken);
config.set("token", newToken);
return newToken;
}
function generateToken() {
const buffer = crypto.randomBytes(48);
return buffer.toString('base64')
return buffer.toString("base64");
}
module.exports = {
initialize,
enable, disable, toggleServer,
toggleAutostart, isAutostart,
getAuthenticationToken, isListening,
}
enable,
disable,
toggleServer,
toggleAutostart,
isAutostart,
getAuthenticationToken,
isListening,
};

View File

@@ -1,9 +1,8 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta charset="utf-8" />
<title>Bitburner</title>
<link rel="stylesheet" href="main.css" />
<style>
body {
background-color: black;

View File

@@ -1,9 +1,8 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta charset="utf-8" />
<title>Bitburner</title>
<link rel="stylesheet" href="main.css" />
<style>
body {
background-color: black;

View File

@@ -8,20 +8,43 @@ const api = require("./api-server");
const cp = require("child_process");
const path = require("path");
const fs = require("fs");
const { windowTracker } = require("./windowTracker");
const { fileURLToPath } = require("url");
const debug = process.argv.includes("--debug");
async function createWindow(killall) {
const setStopProcessHandler = global.app_handlers.stopProcess;
app.setAppUserModelId("Bitburner");
let icon;
if (process.platform == "linux") {
icon = path.join(__dirname, "icon.png");
}
const tracker = windowTracker("main");
const window = new BrowserWindow({
icon,
show: false,
backgroundThrottling: false,
backgroundColor: "#000000",
title: "Bitburner",
x: tracker.state.x,
y: tracker.state.y,
width: tracker.state.width,
height: tracker.state.height,
minWidth: 600,
minHeight: 400,
webPreferences: {
nativeWindowOpen: true,
preload: path.join(__dirname, "preload.js"),
},
});
setTimeout(() => tracker.track(window), 1000);
if (tracker.state.isMaximized) window.maximize();
window.removeMenu();
window.maximize();
noScripts = killall ? { query: { noScripts: killall } } : {};
window.loadFile("index.html", noScripts);
window.show();
@@ -29,12 +52,12 @@ async function createWindow(killall) {
window.webContents.on("new-window", async function (e, url) {
// Let's make sure sure we have a proper url
let parsedUrl
let parsedUrl;
try {
parsedUrl = new URL(url);
} catch (_) {
// This is an invalid url, let's just do nothing
log.warn(`Invalid url found: ${url}`)
log.warn(`Invalid url found: ${url}`);
e.preventDefault();
return;
}
@@ -51,11 +74,13 @@ async function createWindow(killall) {
if (!isChild) {
// If we're not relative to our app's path let's abort
log.warn(`Requested path ${filePath.dir}${path.sep}${filePath.base} is not relative to the app: ${appPath.dir}${path.sep}${appPath.base}`)
log.warn(
`Requested path ${filePath.dir}${path.sep}${filePath.base} is not relative to the app: ${appPath.dir}${path.sep}${appPath.base}`,
);
e.preventDefault();
} else if (!fileExists) {
// If the file does not exist let's abort
log.warn(`Requested path ${filePath.dir}${path.sep}${filePath.base} does not exist`)
log.warn(`Requested path ${filePath.dir}${path.sep}${filePath.base} does not exist`);
e.preventDefault();
}
@@ -67,7 +92,7 @@ async function createWindow(killall) {
let urlToOpen = parsedUrl.toString();
if (parsedUrl.search) {
log.log(`Cannot open a path with parameters: ${parsedUrl.search}`);
urlToOpen = urlToOpen.replace(parsedUrl.search, '');
urlToOpen = urlToOpen.replace(parsedUrl.search, "");
// It would be possible to launch an URL with parameter using this, but it would mess up the process again...
// const escapedUri = parsedUrl.href.replace('&', '^&');
// cp.spawn("cmd.exe", ["/c", "start", escapedUri], { detached: true, stdio: "ignore" });

View File

@@ -3,215 +3,301 @@
// found in the LICENSE file.
// The source code can be found in https://github.com/greenheartgames/greenworks
var fs = require('fs');
var fs = require("fs");
var greenworks;
if (process.platform == 'darwin') {
if (process.arch == 'x64')
greenworks = require('./lib/greenworks-osx64');
else if (process.arch == 'ia32')
greenworks = require('./lib/greenworks-osx32');
} else if (process.platform == 'win32') {
if (process.arch == 'x64')
greenworks = require('./lib/greenworks-win64');
else if (process.arch == 'ia32')
greenworks = require('./lib/greenworks-win32');
} else if (process.platform == 'linux') {
if (process.arch == 'x64')
greenworks = require('./lib/greenworks-linux64');
else if (process.arch == 'ia32')
greenworks = require('./lib/greenworks-linux32');
if (process.platform == "darwin") {
if (process.arch == "x64") greenworks = require("./lib/greenworks-osx64");
else if (process.arch == "ia32") greenworks = require("./lib/greenworks-osx32");
} else if (process.platform == "win32") {
if (process.arch == "x64") greenworks = require("./lib/greenworks-win64");
else if (process.arch == "ia32") greenworks = require("./lib/greenworks-win32");
} else if (process.platform == "linux") {
if (process.arch == "x64") greenworks = require("./lib/greenworks-linux64");
else if (process.arch == "ia32") greenworks = require("./lib/greenworks-linux32");
}
function error_process(err, error_callback) {
if (err && error_callback)
error_callback(err);
if (err && error_callback) error_callback(err);
}
greenworks.ugcGetItems = function(options, ugc_matching_type, ugc_query_type,
success_callback, error_callback) {
if (typeof options !== 'object') {
error_callback = success_callback;
success_callback = ugc_query_type;
ugc_query_type = ugc_matching_type;
ugc_matching_type = options;
options = {
'app_id': greenworks.getAppId(),
'page_num': 1
if (greenworks) {
greenworks.ugcGetItems = function (options, ugc_matching_type, ugc_query_type, success_callback, error_callback) {
if (typeof options !== "object") {
error_callback = success_callback;
success_callback = ugc_query_type;
ugc_query_type = ugc_matching_type;
ugc_matching_type = options;
options = {
app_id: greenworks.getAppId(),
page_num: 1,
};
}
}
greenworks._ugcGetItems(options, ugc_matching_type, ugc_query_type,
success_callback, error_callback);
}
greenworks.ugcGetUserItems = function(options, ugc_matching_type,
ugc_list_sort_order, ugc_list, success_callback, error_callback) {
if (typeof options !== 'object') {
error_callback = success_callback;
success_callback = ugc_list;
ugc_list = ugc_list_sort_order;
ugc_list_sort_order = ugc_matching_type;
ugc_matching_type = options;
options = {
'app_id': greenworks.getAppId(),
'page_num': 1
}
}
greenworks._ugcGetUserItems(options, ugc_matching_type, ugc_list_sort_order,
ugc_list, success_callback, error_callback);
}
greenworks.ugcSynchronizeItems = function (options, sync_dir, success_callback,
error_callback) {
if (typeof options !== 'object') {
error_callback = success_callback;
success_callback = sync_dir;
sync_dir = options;
options = {
'app_id': greenworks.getAppId(),
'page_num': 1
}
}
greenworks._ugcSynchronizeItems(options, sync_dir, success_callback,
error_callback);
}
greenworks.publishWorkshopFile = function(options, file_path, image_path, title,
description, success_callback, error_callback) {
if (typeof options !== 'object') {
error_callback = success_callback;
success_callback = description;
description = title;
title = image_path;
image_path = file_path;
file_path = options;
options = {
'app_id': greenworks.getAppId(),
'tags': []
}
}
greenworks._publishWorkshopFile(options, file_path, image_path, title,
description, success_callback, error_callback);
}
greenworks.updatePublishedWorkshopFile = function(options,
published_file_handle, file_path, image_path, title, description,
success_callback, error_callback) {
if (typeof options !== 'object') {
error_callback = success_callback;
success_callback = description;
description = title;
title = image_path;
image_path = file_path;
file_path = published_file_handle;
published_file_handle = options;
options = {
'tags': [] // No tags are set
}
}
greenworks._updatePublishedWorkshopFile(options, published_file_handle,
file_path, image_path, title, description, success_callback,
error_callback);
}
// An utility function for publish related APIs.
// It processes remains steps after saving files to Steam Cloud.
function file_share_process(file_name, image_name, next_process_func,
error_callback, progress_callback) {
if (progress_callback)
progress_callback("Completed on saving files on Steam Cloud.");
greenworks.fileShare(file_name, function() {
greenworks.fileShare(image_name, function() {
next_process_func();
}, function(err) { error_process(err, error_callback); });
}, function(err) { error_process(err, error_callback); });
}
// Publishing user generated content(ugc) to Steam contains following steps:
// 1. Save file and image to Steam Cloud.
// 2. Share the file and image.
// 3. publish the file to workshop.
greenworks.ugcPublish = function(file_name, title, description, image_name,
success_callback, error_callback, progress_callback) {
var publish_file_process = function() {
if (progress_callback)
progress_callback("Completed on sharing files.");
greenworks.publishWorkshopFile(file_name, image_name, title, description,
function(publish_file_id) { success_callback(publish_file_id); },
function(err) { error_process(err, error_callback); });
};
greenworks.saveFilesToCloud([file_name, image_name], function() {
file_share_process(file_name, image_name, publish_file_process,
error_callback, progress_callback);
}, function(err) { error_process(err, error_callback); });
}
// Update publish ugc steps:
// 1. Save new file and image to Steam Cloud.
// 2. Share file and images.
// 3. Update published file.
greenworks.ugcPublishUpdate = function(published_file_id, file_name, title,
description, image_name, success_callback, error_callback,
progress_callback) {
var update_published_file_process = function() {
if (progress_callback)
progress_callback("Completed on sharing files.");
greenworks.updatePublishedWorkshopFile(published_file_id,
file_name, image_name, title, description,
function() { success_callback(); },
function(err) { error_process(err, error_callback); });
greenworks._ugcGetItems(options, ugc_matching_type, ugc_query_type, success_callback, error_callback);
};
greenworks.saveFilesToCloud([file_name, image_name], function() {
file_share_process(file_name, image_name, update_published_file_process,
error_callback, progress_callback);
}, function(err) { error_process(err, error_callback); });
}
// Greenworks Utils APIs implmentation.
greenworks.Utils.move = function(source_dir, target_dir, success_callback,
error_callback) {
fs.rename(source_dir, target_dir, function(err) {
if (err) {
if (error_callback) error_callback(err);
return;
greenworks.ugcGetUserItems = function (
options,
ugc_matching_type,
ugc_list_sort_order,
ugc_list,
success_callback,
error_callback,
) {
if (typeof options !== "object") {
error_callback = success_callback;
success_callback = ugc_list;
ugc_list = ugc_list_sort_order;
ugc_list_sort_order = ugc_matching_type;
ugc_matching_type = options;
options = {
app_id: greenworks.getAppId(),
page_num: 1,
};
}
if (success_callback)
success_callback();
});
}
greenworks._ugcGetUserItems(
options,
ugc_matching_type,
ugc_list_sort_order,
ugc_list,
success_callback,
error_callback,
);
};
greenworks.init = function() {
if (this.initAPI()) return true;
if (!this.isSteamRunning())
throw new Error("Steam initialization failed. Steam is not running.");
var appId;
try {
appId = fs.readFileSync('steam_appid.txt', 'utf8');
} catch (e) {
throw new Error("Steam initialization failed. Steam is running," +
"but steam_appid.txt is missing. Expected to find it in: " +
require('path').resolve('steam_appid.txt'));
greenworks.ugcSynchronizeItems = function (options, sync_dir, success_callback, error_callback) {
if (typeof options !== "object") {
error_callback = success_callback;
success_callback = sync_dir;
sync_dir = options;
options = {
app_id: greenworks.getAppId(),
page_num: 1,
};
}
greenworks._ugcSynchronizeItems(options, sync_dir, success_callback, error_callback);
};
greenworks.publishWorkshopFile = function (
options,
file_path,
image_path,
title,
description,
success_callback,
error_callback,
) {
if (typeof options !== "object") {
error_callback = success_callback;
success_callback = description;
description = title;
title = image_path;
image_path = file_path;
file_path = options;
options = {
app_id: greenworks.getAppId(),
tags: [],
};
}
greenworks._publishWorkshopFile(
options,
file_path,
image_path,
title,
description,
success_callback,
error_callback,
);
};
greenworks.updatePublishedWorkshopFile = function (
options,
published_file_handle,
file_path,
image_path,
title,
description,
success_callback,
error_callback,
) {
if (typeof options !== "object") {
error_callback = success_callback;
success_callback = description;
description = title;
title = image_path;
image_path = file_path;
file_path = published_file_handle;
published_file_handle = options;
options = {
tags: [], // No tags are set
};
}
greenworks._updatePublishedWorkshopFile(
options,
published_file_handle,
file_path,
image_path,
title,
description,
success_callback,
error_callback,
);
};
// An utility function for publish related APIs.
// It processes remains steps after saving files to Steam Cloud.
function file_share_process(file_name, image_name, next_process_func, error_callback, progress_callback) {
if (progress_callback) progress_callback("Completed on saving files on Steam Cloud.");
greenworks.fileShare(
file_name,
function () {
greenworks.fileShare(
image_name,
function () {
next_process_func();
},
function (err) {
error_process(err, error_callback);
},
);
},
function (err) {
error_process(err, error_callback);
},
);
}
if (!/^\d+ *\r?\n?$/.test(appId)) {
throw new Error("Steam initialization failed. " +
"steam_appid.txt appears to be invalid; " +
"it should contain a numeric ID: " + appId);
}
throw new Error("Steam initialization failed, but Steam is running, " +
"and steam_appid.txt is present and valid." +
"Maybe that's not really YOUR app ID? " + appId.trim());
// Publishing user generated content(ugc) to Steam contains following steps:
// 1. Save file and image to Steam Cloud.
// 2. Share the file and image.
// 3. publish the file to workshop.
greenworks.ugcPublish = function (
file_name,
title,
description,
image_name,
success_callback,
error_callback,
progress_callback,
) {
var publish_file_process = function () {
if (progress_callback) progress_callback("Completed on sharing files.");
greenworks.publishWorkshopFile(
file_name,
image_name,
title,
description,
function (publish_file_id) {
success_callback(publish_file_id);
},
function (err) {
error_process(err, error_callback);
},
);
};
greenworks.saveFilesToCloud(
[file_name, image_name],
function () {
file_share_process(file_name, image_name, publish_file_process, error_callback, progress_callback);
},
function (err) {
error_process(err, error_callback);
},
);
};
// Update publish ugc steps:
// 1. Save new file and image to Steam Cloud.
// 2. Share file and images.
// 3. Update published file.
greenworks.ugcPublishUpdate = function (
published_file_id,
file_name,
title,
description,
image_name,
success_callback,
error_callback,
progress_callback,
) {
var update_published_file_process = function () {
if (progress_callback) progress_callback("Completed on sharing files.");
greenworks.updatePublishedWorkshopFile(
published_file_id,
file_name,
image_name,
title,
description,
function () {
success_callback();
},
function (err) {
error_process(err, error_callback);
},
);
};
greenworks.saveFilesToCloud(
[file_name, image_name],
function () {
file_share_process(file_name, image_name, update_published_file_process, error_callback, progress_callback);
},
function (err) {
error_process(err, error_callback);
},
);
};
// Greenworks Utils APIs implmentation.
greenworks.Utils.move = function (source_dir, target_dir, success_callback, error_callback) {
fs.rename(source_dir, target_dir, function (err) {
if (err) {
if (error_callback) error_callback(err);
return;
}
if (success_callback) success_callback();
});
};
greenworks.init = function () {
if (this.initAPI()) return true;
if (!this.isSteamRunning()) throw new Error("Steam initialization failed. Steam is not running.");
var appId;
try {
appId = fs.readFileSync("steam_appid.txt", "utf8");
} catch (e) {
throw new Error(
"Steam initialization failed. Steam is running," +
"but steam_appid.txt is missing. Expected to find it in: " +
require("path").resolve("steam_appid.txt"),
);
}
if (!/^\d+ *\r?\n?$/.test(appId)) {
throw new Error(
"Steam initialization failed. " +
"steam_appid.txt appears to be invalid; " +
"it should contain a numeric ID: " +
appId,
);
}
throw new Error(
"Steam initialization failed, but Steam is running, " +
"and steam_appid.txt is present and valid." +
"Maybe that's not really YOUR app ID? " +
appId.trim(),
);
};
var EventEmitter = require("events").EventEmitter;
greenworks.__proto__ = EventEmitter.prototype;
EventEmitter.call(greenworks);
greenworks._steam_events.on = function () {
greenworks.emit.apply(greenworks, arguments);
};
process.versions["greenworks"] = greenworks._version;
}
var EventEmitter = require('events').EventEmitter;
greenworks.__proto__ = EventEmitter.prototype;
EventEmitter.call(greenworks);
greenworks._steam_events.on = function () {
greenworks.emit.apply(greenworks, arguments);
};
process.versions['greenworks'] = greenworks._version;
module.exports = greenworks;

View File

@@ -1,24 +1,31 @@
/* eslint-disable no-process-exit */
/* eslint-disable @typescript-eslint/no-var-requires */
const { app, dialog, BrowserWindow } = require("electron");
const { app, dialog, BrowserWindow, ipcMain } = require("electron");
const log = require("electron-log");
const greenworks = require("./greenworks");
const api = require("./api-server");
const gameWindow = require("./gameWindow");
const achievements = require("./achievements");
const utils = require("./utils");
const storage = require("./storage");
const debounce = require("lodash/debounce");
const Config = require("electron-config");
const config = new Config();
log.transports.file.level = config.get("file-log-level", "info");
log.transports.console.level = config.get("console-log-level", "debug");
log.catchErrors();
log.info(`Started app: ${JSON.stringify(process.argv)}`);
process.on('uncaughtException', function () {
process.on("uncaughtException", function () {
// The exception will already have been logged by electron-log
process.exit(1);
});
// We want to fail gracefully if we cannot connect to Steam
try {
if (greenworks.init()) {
if (greenworks && greenworks.init()) {
log.info("Steam API has been initialized.");
} else {
const error = "Steam API has failed to initialize.";
@@ -30,6 +37,8 @@ try {
global.greenworksError = ex.message;
}
let isRestoreDisabled = false;
function setStopProcessHandler(app, window, enabled) {
const closingWindowHandler = async (e) => {
// We need to prevent the default closing event to add custom logic
@@ -41,76 +50,182 @@ function setStopProcessHandler(app, window, enabled) {
// Shutdown the http server
api.disable();
// Trigger debounced saves right now before closing
try {
await saveToDisk.flush();
} catch (error) {
log.error(error);
}
try {
await saveToCloud.flush();
} catch (error) {
log.error(error);
}
// Because of a steam limitation, if the player has launched an external browser,
// steam will keep displaying the game as "Running" in their UI as long as the browser is up.
// So we'll alert the player to close their browser.
if (global.app_playerOpenedExternalLink) {
await dialog.showMessageBox({
title: 'Bitburner',
message: 'You may have to close your browser to properly exit the game.',
detail: 'Steam will keep tracking Bitburner as "Running" if any process started within the game is still running.' +
' This includes launching an external link, which opens up your browser.',
type: 'warning', buttons: ['OK']
title: "Bitburner",
message: "You may have to close your browser to properly exit the game.",
detail:
'Steam will keep tracking Bitburner as "Running" if any process started within the game is still running.' +
" This includes launching an external link, which opens up your browser.",
type: "warning",
buttons: ["OK"],
});
}
// We'll try to execute javascript on the page to see if we're stuck
let canRunJS = false;
window.webContents.executeJavaScript('window.stop(); document.close()', true)
.then(() => canRunJS = true);
window.webContents.executeJavaScript("window.stop(); document.close()", true).then(() => (canRunJS = true));
setTimeout(() => {
// Wait a few milliseconds to prevent a race condition before loading the exit screen
window.webContents.stop();
window.loadFile("exit.html")
window.loadFile("exit.html");
}, 20);
// Wait 200ms, if the promise has not yet resolved, let's crash the process since we're possibly in a stuck scenario
setTimeout(() => {
if (!canRunJS) {
// We're stuck, let's crash the process
log.warn('Forcefully crashing the renderer process');
log.warn("Forcefully crashing the renderer process");
window.webContents.forcefullyCrashRenderer();
}
log.debug('Destroying the window');
log.debug("Destroying the window");
window.destroy();
}, 200);
}
};
const clearWindowHandler = () => {
window = null;
};
const stopProcessHandler = () => {
log.info('Quitting the app...');
log.info("Quitting the app...");
app.isQuiting = true;
app.quit();
process.exit(0);
};
const receivedGameReadyHandler = async (event, arg) => {
if (!window) {
log.warn("Window was undefined in game info handler");
return;
}
log.debug("Received game information", arg);
window.gameInfo = { ...arg };
await storage.prepareSaveFolders(window);
const restoreNewest = config.get("onload-restore-newest", true);
if (restoreNewest && !isRestoreDisabled) {
try {
await storage.restoreIfNewerExists(window);
} catch (error) {
log.error("Could not restore newer file", error);
}
}
};
const receivedDisableRestoreHandler = async (event, arg) => {
if (!window) {
log.warn("Window was undefined in disable import handler");
return;
}
log.debug(`Disabling auto-restore for ${arg.duration}ms.`);
isRestoreDisabled = true;
setTimeout(() => {
isRestoreDisabled = false;
log.debug("Re-enabling auto-restore");
}, arg.duration);
};
const receivedGameSavedHandler = async (event, arg) => {
if (!window) {
log.warn("Window was undefined in game saved handler");
return;
}
const { save, ...other } = arg;
log.silly("Received game saved info", { ...other, save: `${save.length} bytes` });
if (storage.isAutosaveEnabled()) {
saveToDisk(save, arg.fileName);
}
if (storage.isCloudEnabled()) {
const minimumPlaytime = 1000 * 60 * 15;
const playtime = window.gameInfo.player.playtime;
log.silly(window.gameInfo);
if (playtime > minimumPlaytime) {
saveToCloud(save);
} else {
log.debug(`Auto-save to cloud disabled for save game under ${minimumPlaytime}ms (${playtime}ms)`);
}
}
};
const saveToCloud = debounce(
async (save) => {
log.debug("Saving to Steam Cloud ...");
try {
const playerId = window.gameInfo.player.identifier;
await storage.pushGameSaveToSteamCloud(save, playerId);
log.silly("Saved Game to Steam Cloud");
} catch (error) {
log.error(error);
utils.writeToast(window, "Could not save to Steam Cloud.", "error", 5000);
}
},
config.get("cloud-save-min-time", 1000 * 60 * 15),
{ leading: true },
);
const saveToDisk = debounce(
async (save, fileName) => {
log.debug("Saving to Disk ...");
try {
const file = await storage.saveGameToDisk(window, { save, fileName });
log.silly(`Saved Game to '${file.replaceAll("\\", "\\\\")}'`);
} catch (error) {
log.error(error);
utils.writeToast(window, "Could not save to disk", "error", 5000);
}
},
config.get("disk-save-min-time", 1000 * 60 * 5),
{ leading: true },
);
if (enabled) {
log.debug('Adding closing handlers');
log.debug("Adding closing handlers");
ipcMain.on("push-game-ready", receivedGameReadyHandler);
ipcMain.on("push-game-saved", receivedGameSavedHandler);
ipcMain.on("push-disable-restore", receivedDisableRestoreHandler);
window.on("closed", clearWindowHandler);
window.on("close", closingWindowHandler)
window.on("close", closingWindowHandler);
app.on("window-all-closed", stopProcessHandler);
} else {
log.debug('Removing closing handlers');
log.debug("Removing closing handlers");
ipcMain.removeAllListeners();
window.removeListener("closed", clearWindowHandler);
window.removeListener("close", closingWindowHandler);
app.removeListener("window-all-closed", stopProcessHandler);
}
}
function startWindow(noScript) {
gameWindow.createWindow(noScript);
async function startWindow(noScript) {
return gameWindow.createWindow(noScript);
}
global.app_handlers = {
stopProcess: setStopProcessHandler,
createWindow: startWindow,
}
};
app.whenReady().then(async () => {
log.info('Application is ready!');
log.info("Application is ready!");
if (process.argv.includes("--export-save")) {
const window = new BrowserWindow({ show: false });
@@ -119,15 +234,15 @@ app.whenReady().then(async () => {
setStopProcessHandler(app, window, true);
await utils.exportSave(window);
} else {
startWindow(process.argv.includes("--no-scripts"));
}
if (global.greenworksError) {
dialog.showMessageBox({
title: 'Bitburner',
message: 'Could not connect to Steam',
detail: `${global.greenworksError}\n\nYou won't be able to receive achievements until this is resolved and you restart the game.`,
type: 'warning', buttons: ['OK']
});
const window = await startWindow(process.argv.includes("--no-scripts"));
if (global.greenworksError) {
await dialog.showMessageBox(window, {
title: "Bitburner",
message: "Could not connect to Steam",
detail: `${global.greenworksError}\n\nYou won't be able to receive achievements until this is resolved and you restart the game.`,
type: "warning",
buttons: ["OK"],
});
}
}
});

View File

@@ -1,11 +1,206 @@
/* eslint-disable @typescript-eslint/no-var-requires */
const { Menu, clipboard, dialog } = require("electron");
const { app, Menu, clipboard, dialog, shell } = require("electron");
const log = require("electron-log");
const Config = require("electron-config");
const api = require("./api-server");
const utils = require("./utils");
const storage = require("./storage");
const config = new Config();
function getMenu(window) {
const canZoomIn = utils.getZoomFactor() <= 2;
const zoomIn = () => {
const currentZoom = utils.getZoomFactor();
const newZoom = currentZoom + 0.1;
if (newZoom <= 2.0) {
utils.setZoomFactor(window, newZoom);
refreshMenu(window);
} else {
log.log("Max zoom out");
utils.writeToast(window, "Cannot zoom in anymore", "warning");
}
};
const canZoomOut = utils.getZoomFactor() >= 0.5;
const zoomOut = () => {
const currentZoom = utils.getZoomFactor();
const newZoom = currentZoom - 0.1;
if (newZoom >= 0.5) {
utils.setZoomFactor(window, newZoom);
refreshMenu(window);
} else {
log.log("Max zoom in");
utils.writeToast(window, "Cannot zoom out anymore", "warning");
}
};
const canResetZoom = utils.getZoomFactor() !== 1;
const resetZoom = () => {
utils.setZoomFactor(window, 1);
refreshMenu(window);
log.log("Reset zoom");
};
return Menu.buildFromTemplate([
{
label: "File",
submenu: [
{
label: "Save Game",
click: () => window.webContents.send("trigger-save"),
},
{
label: "Export Save",
click: () => window.webContents.send("trigger-game-export"),
},
{
label: "Export Scripts",
click: async () => window.webContents.send("trigger-scripts-export"),
},
{
type: "separator",
},
{
label: "Load Last Save",
click: async () => {
try {
const saveGame = await storage.loadLastFromDisk(window);
window.webContents.send("push-save-request", { save: saveGame });
} catch (error) {
log.error(error);
utils.writeToast(window, "Could not load last save from disk", "error", 5000);
}
},
},
{
label: "Load From File",
click: async () => {
const defaultPath = await storage.getSaveFolder(window);
const result = await dialog.showOpenDialog(window, {
title: "Load From File",
defaultPath: defaultPath,
buttonLabel: "Load",
filters: [
{ name: "Game Saves", extensions: ["json", "json.gz", "txt"] },
{ name: "All", extensions: ["*"] },
],
properties: ["openFile", "dontAddToRecent"],
});
if (result.canceled) return;
const file = result.filePaths[0];
try {
const saveGame = await storage.loadFileFromDisk(file);
window.webContents.send("push-save-request", { save: saveGame });
} catch (error) {
log.error(error);
utils.writeToast(window, "Could not load save from disk", "error", 5000);
}
},
},
{
label: "Load From Steam Cloud",
enabled: storage.isCloudEnabled(),
click: async () => {
try {
const saveGame = await storage.getSteamCloudSaveString();
await storage.pushSaveGameForImport(window, saveGame, false);
} catch (error) {
log.error(error);
utils.writeToast(window, "Could not load from Steam Cloud", "error", 5000);
}
},
},
{
type: "separator",
},
{
label: "Compress Disk Saves (.gz)",
type: "checkbox",
checked: storage.isSaveCompressionEnabled(),
click: (menuItem) => {
storage.setSaveCompressionConfig(menuItem.checked);
utils.writeToast(window, `${menuItem.checked ? "Enabled" : "Disabled"} Save Compression`, "info", 5000);
refreshMenu(window);
},
},
{
label: "Auto-Save to Disk",
type: "checkbox",
checked: storage.isAutosaveEnabled(),
click: (menuItem) => {
storage.setAutosaveConfig(menuItem.checked);
utils.writeToast(window, `${menuItem.checked ? "Enabled" : "Disabled"} Auto-Save to Disk`, "info", 5000);
refreshMenu(window);
},
},
{
label: "Auto-Save to Steam Cloud",
type: "checkbox",
enabled: !global.greenworksError,
checked: storage.isCloudEnabled(),
click: (menuItem) => {
storage.setCloudEnabledConfig(menuItem.checked);
utils.writeToast(
window,
`${menuItem.checked ? "Enabled" : "Disabled"} Auto-Save to Steam Cloud`,
"info",
5000,
);
refreshMenu(window);
},
},
{
label: "Restore Newest on Load",
type: "checkbox",
checked: config.get("onload-restore-newest", true),
click: (menuItem) => {
config.set("onload-restore-newest", menuItem.checked);
utils.writeToast(
window,
`${menuItem.checked ? "Enabled" : "Disabled"} Restore Newest on Load`,
"info",
5000,
);
refreshMenu(window);
},
},
{
type: "separator",
},
{
label: "Open Directory",
submenu: [
{
label: "Open Game Directory",
click: () => shell.openPath(app.getAppPath()),
},
{
label: "Open Saves Directory",
click: async () => {
const path = await storage.getSaveFolder(window);
shell.openPath(path);
},
},
{
label: "Open Logs Directory",
click: () => shell.openPath(app.getPath("logs")),
},
{
label: "Open Data Directory",
click: () => shell.openPath(app.getPath("userData")),
},
],
},
{
type: "separator",
},
{
label: "Quit",
click: () => app.quit(),
},
],
},
{
label: "Edit",
submenu: [
@@ -52,29 +247,29 @@ function getMenu(window) {
label: "API Server",
submenu: [
{
label: api.isListening() ? 'Disable Server' : 'Enable Server',
click: (async () => {
label: api.isListening() ? "Disable Server" : "Enable Server",
click: async () => {
let success = false;
try {
await api.toggleServer();
success = true;
} catch (error) {
log.error(error);
utils.showErrorBox('Error Toggling Server', error);
utils.showErrorBox("Error Toggling Server", error);
}
if (success && api.isListening()) {
utils.writeToast(window, "Started API Server", "success");
} else if (success && !api.isListening()) {
utils.writeToast(window, "Stopped API Server", "success");
} else {
utils.writeToast(window, 'Error Toggling Server', "error");
utils.writeToast(window, "Error Toggling Server", "error");
}
refreshMenu(window);
})
},
},
{
label: api.isAutostart() ? 'Disable Autostart' : 'Enable Autostart',
click: (async () => {
label: api.isAutostart() ? "Disable Autostart" : "Enable Autostart",
click: async () => {
api.toggleAutostart();
if (api.isAutostart()) {
utils.writeToast(window, "Enabled API Server Autostart", "success");
@@ -82,77 +277,90 @@ function getMenu(window) {
utils.writeToast(window, "Disabled API Server Autostart", "success");
}
refreshMenu(window);
})
},
},
{
label: 'Copy Auth Token',
click: (async () => {
label: "Copy Auth Token",
click: async () => {
const token = api.getAuthenticationToken();
log.log('Wrote authentication token to clipboard');
log.log("Wrote authentication token to clipboard");
clipboard.writeText(token);
utils.writeToast(window, "Copied Authentication Token to Clipboard", "info");
})
},
},
{
type: 'separator',
type: "separator",
},
{
label: 'Information',
label: "Information",
click: () => {
dialog.showMessageBox({
type: 'info',
title: 'Bitburner > API Server Information',
message: 'The API Server is used to write script files to your in-game home.',
detail: 'There is an official Visual Studio Code extension that makes use of that feature.\n\n' +
'It allows you to write your script file in an external IDE and have them pushed over to the game automatically.\n' +
'If you want more information, head over to: https://github.com/bitburner-official/bitburner-vscode.',
buttons: ['Dismiss', 'Open Extension Link (GitHub)'],
dialog
.showMessageBox({
type: "info",
title: "Bitburner > API Server Information",
message: "The API Server is used to write script files to your in-game home.",
detail:
"There is an official Visual Studio Code extension that makes use of that feature.\n\n" +
"It allows you to write your script file in an external IDE and have them pushed over to the game automatically.\n" +
"If you want more information, head over to: https://github.com/bitburner-official/bitburner-vscode.",
buttons: ["Dismiss", "Open Extension Link (GitHub)"],
defaultId: 0,
cancelId: 0,
noLink: true,
}).then(({response}) => {
if (response === 1) {
utils.openExternal('https://github.com/bitburner-official/bitburner-vscode');
}
});
}
}
]
})
.then(({ response }) => {
if (response === 1) {
utils.openExternal("https://github.com/bitburner-official/bitburner-vscode");
}
});
},
},
],
},
{
label: "Zoom",
submenu: [
{
label: "Zoom In",
enabled: utils.getZoomFactor() <= 2,
enabled: canZoomIn,
accelerator: "CommandOrControl+numadd",
click: () => {
const currentZoom = utils.getZoomFactor();
const newZoom = currentZoom + 0.1;
if (newZoom <= 2.0) {
utils.setZoomFactor(window, newZoom);
refreshMenu(window);
} else {
log.log('Max zoom out')
utils.writeToast(window, "Cannot zoom in anymore", "warning");
}
},
click: zoomIn,
},
{
label: "Zoom In (non numpad)",
enabled: canZoomIn,
visible: false,
accelerator: "CommandOrControl+Plus",
acceleratorWorksWhenHidden: true,
click: zoomIn,
},
{
label: "Zoom Out",
enabled: utils.getZoomFactor() >= 0.5,
enabled: canZoomOut,
accelerator: "CommandOrControl+numsub",
click: () => {
const currentZoom = utils.getZoomFactor();
const newZoom = currentZoom - 0.1;
if (newZoom >= 0.5) {
utils.setZoomFactor(window, newZoom);
refreshMenu(window);
} else {
log.log('Max zoom in')
utils.writeToast(window, "Cannot zoom out anymore", "warning");
}
},
click: zoomOut,
},
{
label: "Zoom Out (non numpad)",
enabled: canZoomOut,
accelerator: "CommandOrControl+-",
visible: false,
acceleratorWorksWhenHidden: true,
click: zoomOut,
},
{
label: "Reset Zoom",
enabled: canResetZoom,
accelerator: "CommandOrControl+num0",
click: resetZoom,
},
{
label: "Reset Zoom (non numpad)",
enabled: canResetZoom,
accelerator: "CommandOrControl+0",
visible: false,
acceleratorWorksWhenHidden: true,
click: resetZoom,
},
],
},
@@ -163,6 +371,17 @@ function getMenu(window) {
label: "Activate",
click: () => window.webContents.openDevTools(),
},
{
label: "Delete Steam Cloud Data",
enabled: !global.greenworksError,
click: async () => {
try {
await storage.deleteCloudFile();
} catch (error) {
log.error(error);
}
},
},
],
},
]);
@@ -173,5 +392,6 @@ function refreshMenu(window) {
}
module.exports = {
getMenu, refreshMenu,
}
getMenu,
refreshMenu,
};

View File

@@ -1,15 +1,16 @@
{
"name": "bitburner",
"version": "1.0.0",
"version": "1.6.4",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "bitburner",
"version": "1.0.0",
"version": "1.6.4",
"dependencies": {
"electron-config": "^2.0.0",
"electron-log": "^4.4.4"
"electron-log": "^4.4.4",
"lodash": "^4.17.21"
}
},
"node_modules/conf": {
@@ -104,6 +105,11 @@
"node": ">=4"
}
},
"node_modules/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"node_modules/make-dir": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
@@ -259,6 +265,11 @@
"path-exists": "^3.0.0"
}
},
"lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"make-dir": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",

View File

@@ -1,6 +1,6 @@
{
"name": "bitburner",
"version": "1.0.0",
"version": "1.6.4",
"description": "A cyberpunk-themed programming incremental game",
"main": "main.js",
"author": "Daniel Xie & Olivier Gagnon",
@@ -16,6 +16,8 @@
"./dist/**/*",
"./node_modules/**/*",
"./public/**/*",
"./src/**",
"./lib/**,",
"*.js"
],
"directories": {
@@ -23,6 +25,7 @@
},
"dependencies": {
"electron-config": "^2.0.0",
"electron-log": "^4.4.4"
"electron-log": "^4.4.4",
"lodash": "^4.17.21"
}
}

36
electron/preload.js Normal file
View File

@@ -0,0 +1,36 @@
/* eslint-disable @typescript-eslint/no-var-requires */
const { ipcRenderer, contextBridge } = require("electron");
const log = require("electron-log");
contextBridge.exposeInMainWorld("electronBridge", {
send: (channel, data) => {
log.log("Send on channel " + channel);
// whitelist channels
let validChannels = [
"get-save-data-response",
"get-save-info-response",
"push-game-saved",
"push-game-ready",
"push-import-result",
"push-disable-restore",
];
if (validChannels.includes(channel)) {
ipcRenderer.send(channel, data);
}
},
receive: (channel, func) => {
log.log("Receive on channel " + channel);
let validChannels = [
"get-save-data-request",
"get-save-info-request",
"push-save-request",
"trigger-save",
"trigger-game-export",
"trigger-scripts-export",
];
if (validChannels.includes(channel)) {
// Deliberately strip event as it includes `sender`
ipcRenderer.on(channel, (event, ...args) => func(...args));
}
},
});

403
electron/storage.js Normal file
View File

@@ -0,0 +1,403 @@
/* eslint-disable @typescript-eslint/no-var-requires */
const { app, ipcMain } = require("electron");
const zlib = require("zlib");
const path = require("path");
const fs = require("fs/promises");
const { promisify } = require("util");
const gzip = promisify(zlib.gzip);
const gunzip = promisify(zlib.gunzip);
const greenworks = require("./greenworks");
const log = require("electron-log");
const flatten = require("lodash/flatten");
const Config = require("electron-config");
const config = new Config();
// https://stackoverflow.com/a/69418940
const dirSize = async (directory) => {
const files = await fs.readdir(directory);
const stats = files.map((file) => fs.stat(path.join(directory, file)));
return (await Promise.all(stats)).reduce((accumulator, { size }) => accumulator + size, 0);
};
const getDirFileStats = async (directory) => {
const files = await fs.readdir(directory);
const stats = files.map((f) => {
const file = path.join(directory, f);
return fs.stat(file).then((stat) => ({ file, stat }));
});
const data = await Promise.all(stats);
return data;
};
const getNewestFile = async (directory) => {
const data = await getDirFileStats(directory);
return data.sort((a, b) => b.stat.mtime.getTime() - a.stat.mtime.getTime())[0];
};
const getAllSaves = async (window) => {
const rootDirectory = await getSaveFolder(window, true);
const data = await fs.readdir(rootDirectory, { withFileTypes: true });
const savesPromises = data
.filter((e) => e.isDirectory())
.map((dir) => path.join(rootDirectory, dir.name))
.map((dir) => getDirFileStats(dir));
const saves = await Promise.all(savesPromises);
const flat = flatten(saves);
return flat;
};
async function prepareSaveFolders(window) {
const rootFolder = await getSaveFolder(window, true);
const currentFolder = await getSaveFolder(window);
const backupsFolder = path.join(rootFolder, "/_backups");
await prepareFolders(rootFolder, currentFolder, backupsFolder);
}
async function prepareFolders(...folders) {
for (const folder of folders) {
try {
// Making sure the folder exists
// eslint-disable-next-line no-await-in-loop
await fs.stat(folder);
} catch (error) {
if (error.code === "ENOENT") {
log.warn(`'${folder}' not found, creating it...`);
// eslint-disable-next-line no-await-in-loop
await fs.mkdir(folder);
} else {
log.error(error);
}
}
}
}
async function getFolderSizeInBytes(saveFolder) {
try {
return await dirSize(saveFolder);
} catch (error) {
log.error(error);
}
}
function setAutosaveConfig(value) {
config.set("autosave-enabled", value);
}
function isAutosaveEnabled() {
return config.get("autosave-enabled", true);
}
function setSaveCompressionConfig(value) {
config.set("save-compression-enabled", value);
}
function isSaveCompressionEnabled() {
return config.get("save-compression-enabled", true);
}
function setCloudEnabledConfig(value) {
config.set("cloud-enabled", value);
}
async function getSaveFolder(window, root = false) {
if (root) return path.join(app.getPath("userData"), "/saves");
const identifier = window.gameInfo?.player?.identifier ?? "";
return path.join(app.getPath("userData"), "/saves", `/${identifier}`);
}
function isCloudEnabled() {
// If the Steam API could not be initialized on game start, we'll abort this.
if (global.greenworksError) return false;
// If the user disables it in Steam there's nothing we can do
if (!greenworks.isCloudEnabledForUser()) return false;
// Let's check the config file to see if it's been overriden
const enabledInConf = config.get("cloud-enabled", true);
if (!enabledInConf) return false;
const isAppEnabled = greenworks.isCloudEnabled();
if (!isAppEnabled) greenworks.enableCloud(true);
return true;
}
function saveCloudFile(name, content) {
return new Promise((resolve, reject) => {
greenworks.saveTextToFile(name, content, resolve, reject);
});
}
function getFirstCloudFile() {
const nbFiles = greenworks.getFileCount();
if (nbFiles === 0) throw new Error("No files in cloud");
const file = greenworks.getFileNameAndSize(0);
log.silly(`Found ${nbFiles} files.`);
log.silly(`First File: ${file.name} (${file.size} bytes)`);
return file.name;
}
function getCloudFile() {
const file = getFirstCloudFile();
return new Promise((resolve, reject) => {
greenworks.readTextFromFile(file, resolve, reject);
});
}
function deleteCloudFile() {
const file = getFirstCloudFile();
return new Promise((resolve, reject) => {
greenworks.deleteFile(file, resolve, reject);
});
}
async function getSteamCloudQuota() {
return new Promise((resolve, reject) => {
greenworks.getCloudQuota(resolve, reject);
});
}
async function backupSteamDataToDisk(currentPlayerId) {
const nbFiles = greenworks.getFileCount();
if (nbFiles === 0) return;
const file = greenworks.getFileNameAndSize(0);
const previousPlayerId = file.name.replace(".json.gz", "");
if (previousPlayerId !== currentPlayerId) {
const backupSave = await getSteamCloudSaveString();
const backupFile = path.join(app.getPath("userData"), "/saves/_backups", `${previousPlayerId}.json.gz`);
const buffer = Buffer.from(backupSave, "base64").toString("utf8");
saveContent = await gzip(buffer);
await fs.writeFile(backupFile, saveContent, "utf8");
log.debug(`Saved backup game to '${backupFile}`);
}
}
async function pushGameSaveToSteamCloud(base64save, currentPlayerId) {
if (!isCloudEnabled) return Promise.reject("Steam Cloud is not Enabled");
try {
backupSteamDataToDisk(currentPlayerId);
} catch (error) {
log.error(error);
}
const steamSaveName = `${currentPlayerId}.json.gz`;
// Let's decode the base64 string so GZIP is more efficient.
const buffer = Buffer.from(base64save, "base64");
const compressedBuffer = await gzip(buffer);
// We can't use utf8 for some reason, steamworks is unhappy.
const content = compressedBuffer.toString("base64");
log.debug(`Uncompressed: ${base64save.length} bytes`);
log.debug(`Compressed: ${content.length} bytes`);
log.debug(`Saving to Steam Cloud as ${steamSaveName}`);
try {
await saveCloudFile(steamSaveName, content);
} catch (error) {
log.error(error);
}
}
async function getSteamCloudSaveString() {
if (!isCloudEnabled()) return Promise.reject("Steam Cloud is not Enabled");
log.debug(`Fetching Save in Steam Cloud`);
const cloudString = await getCloudFile();
const gzippedBase64Buffer = Buffer.from(cloudString, "base64");
const uncompressedBuffer = await gunzip(gzippedBase64Buffer);
const content = uncompressedBuffer.toString("base64");
log.debug(`Compressed: ${cloudString.length} bytes`);
log.debug(`Uncompressed: ${content.length} bytes`);
return content;
}
async function saveGameToDisk(window, saveData) {
const currentFolder = await getSaveFolder(window);
let saveFolderSizeBytes = await getFolderSizeInBytes(currentFolder);
const maxFolderSizeBytes = config.get("autosave-quota", 1e8); // 100Mb per playerIndentifier
const remainingSpaceBytes = maxFolderSizeBytes - saveFolderSizeBytes;
log.debug(`Folder Usage: ${saveFolderSizeBytes} bytes`);
log.debug(`Folder Capacity: ${maxFolderSizeBytes} bytes`);
log.debug(
`Remaining: ${remainingSpaceBytes} bytes (${((saveFolderSizeBytes / maxFolderSizeBytes) * 100).toFixed(2)}% used)`,
);
const shouldCompress = isSaveCompressionEnabled();
const fileName = saveData.fileName;
const file = path.join(currentFolder, fileName + (shouldCompress ? ".gz" : ""));
try {
let saveContent = saveData.save;
if (shouldCompress) {
// Let's decode the base64 string so GZIP is more efficient.
const buffer = Buffer.from(saveContent, "base64").toString("utf8");
saveContent = await gzip(buffer);
}
await fs.writeFile(file, saveContent, "utf8");
log.debug(`Saved Game to '${file}'`);
log.debug(`Save Size: ${saveContent.length} bytes`);
} catch (error) {
log.error(error);
}
const fileStats = await getDirFileStats(currentFolder);
const oldestFiles = fileStats
.sort((a, b) => a.stat.mtime.getTime() - b.stat.mtime.getTime())
.map((f) => f.file)
.filter((f) => f !== file);
while (saveFolderSizeBytes > maxFolderSizeBytes && oldestFiles.length > 0) {
const fileToRemove = oldestFiles.shift();
log.debug(`Over Quota -> Removing "${fileToRemove}"`);
try {
// eslint-disable-next-line no-await-in-loop
await fs.unlink(fileToRemove);
} catch (error) {
log.error(error);
}
// eslint-disable-next-line no-await-in-loop
saveFolderSizeBytes = await getFolderSizeInBytes(currentFolder);
log.debug(`Save Folder: ${saveFolderSizeBytes} bytes`);
log.debug(
`Remaining: ${maxFolderSizeBytes - saveFolderSizeBytes} bytes (${(
(saveFolderSizeBytes / maxFolderSizeBytes) *
100
).toFixed(2)}% used)`,
);
}
return file;
}
async function loadLastFromDisk(window) {
const folder = await getSaveFolder(window);
const last = await getNewestFile(folder);
log.debug(`Last modified file: "${last.file}" (${last.stat.mtime.toLocaleString()})`);
return loadFileFromDisk(last.file);
}
async function loadFileFromDisk(path) {
const buffer = await fs.readFile(path);
let content;
if (path.endsWith(".gz")) {
const uncompressedBuffer = await gunzip(buffer);
content = uncompressedBuffer.toString("base64");
log.debug(`Uncompressed file content (new size: ${content.length} bytes)`);
} else {
content = buffer.toString("utf8");
log.debug(`Loaded file with ${content.length} bytes`);
}
return content;
}
function getSaveInformation(window, save) {
return new Promise((resolve) => {
ipcMain.once("get-save-info-response", async (event, data) => {
resolve(data);
});
window.webContents.send("get-save-info-request", save);
});
}
function getCurrentSave(window) {
return new Promise((resolve) => {
ipcMain.once("get-save-data-response", (event, data) => {
resolve(data);
});
window.webContents.send("get-save-data-request");
});
}
function pushSaveGameForImport(window, save, automatic) {
ipcMain.once("push-import-result", async (event, arg) => {
log.debug(`Was save imported? ${arg.wasImported ? "Yes" : "No"}`);
});
window.webContents.send("push-save-request", { save, automatic });
}
async function restoreIfNewerExists(window) {
const currentSave = await getCurrentSave(window);
const currentData = await getSaveInformation(window, currentSave.save);
const steam = {};
const disk = {};
try {
steam.save = await getSteamCloudSaveString();
steam.data = await getSaveInformation(window, steam.save);
} catch (error) {
log.error("Could not retrieve steam file");
log.debug(error);
}
try {
const saves = (await getAllSaves()).sort((a, b) => b.stat.mtime.getTime() - a.stat.mtime.getTime());
if (saves.length > 0) {
disk.save = await loadFileFromDisk(saves[0].file);
disk.data = await getSaveInformation(window, disk.save);
}
} catch (error) {
log.error("Could not retrieve disk file");
log.debug(error);
}
const lowPlaytime = 1000 * 60 * 15;
let bestMatch;
if (!steam.data && !disk.data) {
log.info("No data to import");
} else if (!steam.data) {
// We'll just compare using the lastSave field for now.
log.debug("Best potential save match: Disk");
bestMatch = disk;
} else if (!disk.data) {
log.debug("Best potential save match: Steam Cloud");
bestMatch = steam;
} else if (steam.data.lastSave >= disk.data.lastSave || steam.data.playtime + lowPlaytime > disk.data.playtime) {
// We want to prioritze steam data if the playtime is very close
log.debug("Best potential save match: Steam Cloud");
bestMatch = steam;
} else {
log.debug("Best potential save match: disk");
bestMatch = disk;
}
if (bestMatch) {
if (bestMatch.data.lastSave > currentData.lastSave + 5000) {
// We add a few seconds to the currentSave's lastSave to prioritize it
log.info("Found newer data than the current's save file");
log.silly(bestMatch.data);
await pushSaveGameForImport(window, bestMatch.save, true);
return true;
} else if (bestMatch.data.playtime > currentData.playtime && currentData.playtime < lowPlaytime) {
log.info("Found older save, but with more playtime, and current less than 15 mins played");
log.silly(bestMatch.data);
await pushSaveGameForImport(window, bestMatch.save, true);
return true;
} else {
log.debug("Current save data is the freshest");
return false;
}
}
}
module.exports = {
getCurrentSave,
getSaveInformation,
restoreIfNewerExists,
pushSaveGameForImport,
pushGameSaveToSteamCloud,
getSteamCloudSaveString,
getSteamCloudQuota,
deleteCloudFile,
saveGameToDisk,
loadLastFromDisk,
loadFileFromDisk,
getSaveFolder,
prepareSaveFolders,
getAllSaves,
isCloudEnabled,
setCloudEnabledConfig,
isAutosaveEnabled,
setAutosaveConfig,
isSaveCompressionEnabled,
setSaveCompressionConfig,
};

View File

@@ -9,61 +9,61 @@ const Config = require("electron-config");
const config = new Config();
function reloadAndKill(window, killScripts) {
const setStopProcessHandler = global.app_handlers.stopProcess
const setStopProcessHandler = global.app_handlers.stopProcess;
const createWindowHandler = global.app_handlers.createWindow;
log.info('Reloading & Killing all scripts...');
log.info("Reloading & Killing all scripts...");
setStopProcessHandler(app, window, false);
achievements.disableAchievementsInterval(window);
api.disable();
window.webContents.forcefullyCrashRenderer();
window.on('closed', () => {
window.on("closed", () => {
// Wait for window to be closed before opening the new one to prevent race conditions
log.debug('Opening new window');
log.debug("Opening new window");
createWindowHandler(killScripts);
})
});
window.close();
}
function promptForReload(window) {
detachUnresponsiveAppHandler(window);
dialog.showMessageBox({
type: 'error',
title: 'Bitburner > Application Unresponsive',
message: 'The application is unresponsive, possibly due to an infinite loop in your scripts.',
detail:' Did you forget a ns.sleep(x)?\n\n' +
'The application will be restarted for you, do you want to kill all running scripts?',
buttons: ['Restart', 'Cancel'],
defaultId: 0,
checkboxLabel: 'Kill all running scripts',
checkboxChecked: true,
noLink: true,
}).then(({response, checkboxChecked}) => {
if (response === 0) {
reloadAndKill(window, checkboxChecked);
} else {
attachUnresponsiveAppHandler(window);
}
});
dialog
.showMessageBox({
type: "error",
title: "Bitburner > Application Unresponsive",
message: "The application is unresponsive, possibly due to an infinite loop in your scripts.",
detail:
" Did you forget a ns.sleep(x)?\n\n" +
"The application will be restarted for you, do you want to kill all running scripts?",
buttons: ["Restart", "Cancel"],
defaultId: 0,
checkboxLabel: "Kill all running scripts",
checkboxChecked: true,
noLink: true,
})
.then(({ response, checkboxChecked }) => {
if (response === 0) {
reloadAndKill(window, checkboxChecked);
} else {
attachUnresponsiveAppHandler(window);
}
});
}
function attachUnresponsiveAppHandler(window) {
window.unresponsiveHandler = () => promptForReload(window);
window.on('unresponsive', window.unresponsiveHandler);
window.on("unresponsive", window.unresponsiveHandler);
}
function detachUnresponsiveAppHandler(window) {
window.off('unresponsive', window.unresponsiveHandler);
window.off("unresponsive", window.unresponsiveHandler);
}
function showErrorBox(title, error) {
dialog.showErrorBox(
title,
`${error.name}\n\n${error.message}`
);
dialog.showErrorBox(title, `${error.name}\n\n${error.message}`);
}
function exportSaveFromIndexedDb() {
@@ -71,15 +71,15 @@ function exportSaveFromIndexedDb() {
const dbRequest = indexedDB.open("bitburnerSave");
dbRequest.onsuccess = () => {
const db = dbRequest.result;
const transaction = db.transaction(['savestring'], "readonly");
const store = transaction.objectStore('savestring');
const request = store.get('save');
const transaction = db.transaction(["savestring"], "readonly");
const store = transaction.objectStore("savestring");
const request = store.get("save");
request.onsuccess = () => {
const file = new Blob([request.result], {type: 'text/plain'});
const file = new Blob([request.result], { type: "text/plain" });
const a = document.createElement("a");
const url = URL.createObjectURL(file);
a.href = url;
a.download = 'save.json';
a.download = "save.json";
document.body.appendChild(a);
a.click();
setTimeout(function () {
@@ -87,24 +87,21 @@ function exportSaveFromIndexedDb() {
window.URL.revokeObjectURL(url);
resolve();
}, 0);
}
}
};
};
});
}
async function exportSave(window) {
await window.webContents
.executeJavaScript(`${exportSaveFromIndexedDb.toString()}; exportSaveFromIndexedDb();`, true);
await window.webContents.executeJavaScript(`${exportSaveFromIndexedDb.toString()}; exportSaveFromIndexedDb();`, true);
}
async function writeTerminal(window, message, type = null) {
await window.webContents
.executeJavaScript(`window.appNotifier.terminal("${message}", "${type}");`, true)
await window.webContents.executeJavaScript(`window.appNotifier.terminal("${message}", "${type}");`, true);
}
async function writeToast(window, message, type = "info", duration = 2000) {
await window.webContents
.executeJavaScript(`window.appNotifier.toast("${message}", "${type}", ${duration});`, true)
await window.webContents.executeJavaScript(`window.appNotifier.toast("${message}", "${type}", ${duration});`, true);
}
function openExternal(url) {
@@ -113,7 +110,7 @@ function openExternal(url) {
}
function getZoomFactor() {
const configZoom = config.get('zoom', 1);
const configZoom = config.get("zoom", 1);
return configZoom;
}
@@ -121,14 +118,20 @@ function setZoomFactor(window, zoom = null) {
if (zoom === null) {
zoom = 1;
} else {
config.set('zoom', zoom);
config.set("zoom", zoom);
}
window.webContents.setZoomFactor(zoom);
}
module.exports = {
reloadAndKill, showErrorBox, exportSave,
attachUnresponsiveAppHandler, detachUnresponsiveAppHandler,
openExternal, writeTerminal, writeToast,
getZoomFactor, setZoomFactor,
}
reloadAndKill,
showErrorBox,
exportSave,
attachUnresponsiveAppHandler,
detachUnresponsiveAppHandler,
openExternal,
writeTerminal,
writeToast,
getZoomFactor,
setZoomFactor,
};

68
electron/windowTracker.js Normal file
View File

@@ -0,0 +1,68 @@
/* eslint-disable @typescript-eslint/no-var-requires */
const { screen } = require("electron");
const log = require("electron-log");
const debounce = require("lodash/debounce");
const Config = require("electron-config");
const config = new Config();
// https://stackoverflow.com/a/68627253
const windowTracker = (windowName) => {
let window, windowState;
const setBounds = () => {
// Restore from appConfig
if (config.has(`window.${windowName}`)) {
windowState = config.get(`window.${windowName}`);
return;
}
const size = screen.getPrimaryDisplay().workAreaSize;
// Default
windowState = {
x: undefined,
y: undefined,
width: size.width,
height: size.height,
isMaximized: true,
};
};
const saveState = debounce(() => {
if (!window || window.isDestroyed()) {
log.silly(`Saving window state failed because window is not available`);
return;
}
if (!windowState.isMaximized) {
windowState = window.getBounds();
}
windowState.isMaximized = window.isMaximized();
log.silly(`Saving window.${windowName} to configs`);
config.set(`window.${windowName}`, windowState);
log.silly(windowState);
}, 1000);
const track = (win) => {
window = win;
["resize", "move", "close"].forEach((event) => {
win.on(event, saveState);
});
};
setBounds();
return {
state: {
x: windowState.x,
y: windowState.y,
width: windowState.width,
height: windowState.height,
isMaximized: windowState.isMaximized,
},
track,
};
};
module.exports = { windowTracker };

View File

@@ -72,6 +72,6 @@
</style>
<link rel="shortcut icon" href="favicon.ico"></head>
<body>
<div id="root"/>
<script type="text/javascript" src="dist/vendor.bundle.js"></script><script type="text/javascript" src="main.bundle.js"></script></body>
<div id="root" style="display:flex"/>
<script type="text/javascript" src="dist/vendor.bundle.js"></script><script type="text/javascript" src="dist/main.bundle.js"></script></body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,14 @@
module.exports = {
setupFiles: ["./jest.setup.js"],
moduleFileExtensions: ["ts", "tsx", "js", "jsx"],
transform: {
"^.+\\.(js|jsx|ts|tsx)$": "babel-jest",
},
testPathIgnorePatterns: [
'.cypress', 'node_modules', 'dist',
],
testPathIgnorePatterns: [".cypress", "node_modules", "dist"],
testEnvironment: "jsdom",
moduleNameMapper: {
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":
"<rootDir>/test/__mocks__/fileMock.js",
"\\.(css|less)$": "<rootDir>/test/__mocks__/styleMock.js",
"\\!!raw-loader!.*$": "<rootDir>/test/__mocks__/rawLoader.js",
},
};

View File

@@ -1,2 +0,0 @@
import "regenerator-runtime/runtime";
global.$ = require("jquery");

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