Compare commits

..

209 Commits

Author SHA1 Message Date
Snarling
0bf01aacab RELEASE: 2.6.0 (#1136) 2024-03-05 20:46:46 -05:00
Snarling
69babf02b2 Changelog before 2.6.0 2024-03-05 20:18:22 -05:00
Snarling
d61e12fdd1 API: Minor followup changes for #1059 (#1135) 2024-03-05 19:42:55 -05:00
Shy
4aaf845fca API: make ns.atExit add the callback to an array instead of setting it (#1059) 2024-03-05 19:22:45 -05:00
Snarling
4f4c6fe7e5 Move heart.break out of Extra.ts (#1133) 2024-03-04 18:36:14 -05:00
Snarling
d801743842 Generate missing docs 2024-03-04 09:51:34 -05:00
LJ
a5f5c81912 API: Add karma to ns.getPlayer() & document ns.heart.break() (#1131) 2024-03-04 09:35:54 -05:00
LJ
65082f677e Update rm command help text (#1132) 2024-03-04 09:30:03 -05:00
catloversg
ffc34387f0 CORPORATION: Add documentation (#1121)
This ports the PDF manual by @catloversg into .md form, so it can be used in-game and via browsing on GitHub.

It also adds MathJax rendering to in-game docs, so that the math formulas can be rendered. (GitHub already supports this natively.)
2024-03-04 03:10:18 -08:00
Bart Kuijper
6a3d22d7bd CONTRACTS: createDummyContract returns filename (#1129) 2024-03-01 23:12:04 -05:00
LJ
4c7f192645 UI: Infiltration rewards default to the faction you're currently working for (#1114)
* Better infiltration victory faction default
* Better condition for "none" default
* Fix default faction type.
2024-02-28 16:37:27 -08:00
Yichi Zhang
6288eec6d7 HACKNET: Disallow negative count argument for spendHashes (#1127)
* disallow buying a negative amount of an upgrade
* allow 0 silently
2024-02-27 12:34:36 -08:00
Caldwell
3d6692b292 MISC: clamping numbers (#1104) 2024-02-27 09:47:00 -05:00
Snarling
153dbfff12 Changelog + doc update 2024-02-26 09:51:48 -05:00
hydroflame
483d554fc2 MISC: Update donation counter (#1118) 2024-02-26 09:42:31 -05:00
Snarling
91105c6d8c TESTS: Prevent some test spam (#1126) 2024-02-26 08:22:33 -05:00
Snarling
373ced2efe GO: Various changes before 2.6.0 (#1120) 2024-02-26 08:05:10 -05:00
LJ
f6871f0911 GANG: Clarify install behavior & add getInstallResult() (#1119)
New function returns post-install ascension ratios.

* Add ascension penalty to Gang constants
* Improve wording of Gang install message
* Add GangMember#getInstallResults()
* Update prestiging to use getInstallResults()
* Add ns.gang.getInstallResults(memberName)
* Update definitions
* Add ram cost for ns.gang.getInstallResult()
* Fix typo
* More specific wording in documentation
* Fix another typo
* Run prettier
* Rename getInstallResults to getPostInstallPoints
* Update Prestige.ts
* Update Gang.ts
2024-02-23 12:58:22 -08:00
hydroflame
d00fad472e Merge pull request #1117 from bitburner-official/hydroflame-patch-1
Update package.json
2024-02-21 16:11:48 -05:00
hydroflame
b655b7a44e Update package.json 2024-02-21 16:11:22 -05:00
LJ
1577467fe1 BUGFIX: Prevent renaming servers to hacknet. (#1112)
* Add hacknet check to renaming
* Handle manual server purchases
* Handle automated server purchases
* Remove unnecessary parenthesis

fixes #1111
2024-02-20 18:22:24 -08:00
Michael Ficocelli
ac05135f59 IPVGO: Ensure favor text is only shown for even-numbered winstreaks, not even loss streaks (#1110)
closes #1109

Ensure that loss streak tracking does not display the favor gain text, to avoid misleading players
2024-02-20 14:36:06 -08:00
Caldwell
47cf5c1610 SETTINGS: add tailRenderInterval (#1107)
currently tails are on a static rerender time of 1000ms
there are ways to force a rerender with ns.moveTail / ns.resizeTail
but i dont know why this shouldnt be a setting set by the player

currently its static set on creation of the tail window but that could be expanded to allow setting it per script
and maybe through a ns function
2024-02-19 11:19:03 -08:00
David Walker
e6755afcb3 Changelog (#1106) 2024-02-17 20:28:19 -08:00
LJ
27a8abbdec PORTS: Support all serializable data. (#1089)
A significant portion of players who use ports are passing objects through them. Currently they are required to handle that themselves via JSON serialization. This PR adds better support for passing objects; which is more convenient, extensive, and optimized (probably, more on this one later).

This adds zero overhead to existing (or when passing any primitive types) port usage, and also isn't a breaking change. The questions to debate here are:

Should objects be supported in the first place?
If so, how exactly do we want to serialize objects?
Based on an extensive discussion in Discord, the overwhelming majority answered "yes" to question one. As for question two, that has been much more hotly contested.

Ultimately, `structuredClone` was used, despite less-than-stellar performance, because other options were worse either in safety, speed, error-handling, or multiple of the above.
2024-02-17 19:15:17 -08:00
Shy
aba2336093 add purchasedPlayer to RFA server data (#1103) 2024-02-17 00:11:29 -05:00
Snarling
9b483bdd8a Servers are sorted on Active Scripts page (#1102) 2024-02-16 21:06:18 -05:00
Caldwell
8c8af38a3a MISC: refactor weaken effect calculation (#1076)
so far we calculate the effect of weaken in three +1 places
ns.weaken
ns.weakenAnalyze
terminal weaken

and server.weaken where the bn mult is applied

i extracted the logic into a new netscript helper function getWeakenEffect
this gives us one place if we want to change the formula

a side effect i added the server.cpuCores to the terminal weaken to future proof it if the npc server core pr (#963) is merged
2024-02-16 17:18:16 -08:00
adeilt
93b9a10e41 UI: Improve theme support. (#1079) 2024-02-15 23:51:07 -05:00
adeilt
22aec2a8b9 DOC: Fix outdated example for ns.spawn() (#1101) 2024-02-15 23:44:25 -05:00
Shy
ef334cb851 BUGFIX: make hacknet node a bit bigger and change unit to em (#1094)
PR #1070 caused some overflow when having hacknet servers.
2024-02-15 16:33:08 -08:00
Shy
c894aba8f5 BUGFIX: fix double stringify on server array (#1100)
The server array that the RFA currently sends is stringified twice. I fixed that and also added a proper ResultType for the new data
2024-02-15 16:27:03 -08:00
LJ
ddb10f833c TERMINAL: Add --ram-override flag to the run command (#1055)
* Add --ram-override flag to run command
* Update help command
* Fix whitespace
* Update run usage message
* Update autocomplete for run command
* Format
2024-02-15 05:51:37 -08:00
catloversg
733f2ccb5b CORPORATION: Improve performance of cycle valuation (#1088)
This PR is an alternative for PR #1085. It includes these changes:

* Create a new property: numberOfOfficesAndWarehouses. It's used for calculating cycle valuation.
* Hardcode 1.0079741404289038 instead of calculating Math.pow(1.1, 1 / 12).
2024-02-15 05:43:37 -08:00
LJ
dc7c9bb065 BUGFIX: Attach hostname to script links in ls command (#1062)
fixes #1051

* Add hostname to script editor page options
* Add hostname option to script editor page
* Attach hostname to script links in ls
* Fix script editor page option type
2024-02-15 05:39:50 -08:00
Caldwell
b79df29ef4 nerf n00dles (#1020)
the n00dles buff is meant as a meme as far as iam aware

but the corp changes made it the core part of a "fraud" strategy
because the corp funds added have now an alot bigger effect on the valuation
thats why i think a few more 0's are needed to tune it down back to a meme
2024-02-15 05:36:04 -08:00
LJ
078f94cbc0 BUGFIX: Fix script editor documentation button using wrong URL (#1099)
* Fix script editor documentation button
* Fix lint and import url
2024-02-15 04:55:36 -08:00
Caldwell
0ba337f091 BUGFIX: few bandaids for Bladeburner (#1093)
bandaids for 3 bugs in bladeburner
this really needs proper fixes and a alot of refactoring!

the manual action start didnt start tasks the right way, modifying an existing action object instead of creating a new one
therefore the current action wasnt shown on the stats overview

the api start action didnt check for the BladesSimulacrum Aug and didnt stop current Player tasks
so the next time Bladeburner proccessed it stopped the bladeburner tasks again
when the player was doing something else like crimes

sometimes blops had an action.count of 0 even when they wherent done in that bladeburner instance yet

this happends because the BlackOps class instances are only initialized on game load
and then later on BlackOps completion manipulated
this change doesnt reset on a bitnode change or when bladeburner is deleted through the dev Menu
as a quick fix i added a new resetBlackOps function that always runs when Bladeburner processes
this isnt the best solution but any proper fix i came up with requires a refactor that i couldnt do at this moment

credits to @TheAimMan for finding the clue that the count is the problem not the rank!

edit,;
added a 4th bandaid to avoid NaN Stamina Penalty when stamina is infinite
2024-02-15 04:48:04 -08:00
Snarling
fca414e7c9 changelog
Also undid a weird style change from #1083 that I accidentally included.
2024-02-10 08:24:05 -05:00
Michael Ficocelli
ca374076b8 [IPvGO] Remove testing flag (#1016) 2024-02-10 08:04:21 -05:00
Caldwell
84c4dba1e2 UI: fix scripts recorded offline income (#1025) 2024-02-10 07:24:55 -05:00
Caldwell
fccc27fe58 MISC: HGWOptions accepts non integer (#1035) 2024-02-10 07:24:11 -05:00
catloversg
65214c0322 Change the calculation of valuation (#1056) 2024-02-10 06:48:52 -05:00
Shy
903f812424 REMOTE: add 'getAllServers' method to RFA (#1058) 2024-02-10 06:31:35 -05:00
Rinne
e8311d4f05 Changing color of stocks going up (#1065) 2024-02-10 06:28:18 -05:00
Caldwell
8c2a23f2ba MISC: change all nextUpdates to use one Promise (#1069) 2024-02-10 06:27:47 -05:00
Shy
fbc41d0278 make hacknet node grid dynamic (#1070) 2024-02-10 04:15:27 -05:00
TheAimMan
e966e78b72 MISC: Add an option to run b1t_flume with a "quick" option (#1072) 2024-02-10 04:14:11 -05:00
Caldwell
4d551915b3 MISC: move server constants into their own constant (#1075) 2024-02-10 04:13:42 -05:00
LJ
fd5b0f8241 MISC: Use structuredClone() for deep cloning (#1077) 2024-02-10 04:10:19 -05:00
Rinne
6bd50e6f24 BUGFIX: Fixed bug that returned Infinity cost for most skills (#1084) 2024-02-10 04:01:42 -05:00
Snarling
9697a82e0c UI: Active Scripts changes (followup to #933) (#1083) 2024-02-10 03:59:20 -05:00
Snarling
187226a30f Changelog 2024-02-01 18:20:36 -05:00
LJ
2f2355942f Kill all scripts upon entering the bitverse (#1042) 2024-01-31 19:44:31 -05:00
TheAimMan
330a32e1d0 MISC: Don't include temporary scripts into Recently Killed (#1045) 2024-01-31 19:43:48 -05:00
LJ
011d5e8fd6 BUGFIX: Properly deep copy array data for coding contracts (#1064) 2024-01-31 19:43:04 -05:00
Rinne
5277db2c65 API: Changing return value of ns.bladeburner.getSkillUpgradeCost to return Infinity when the skill's level overshoot the maximum level (#1060) 2024-01-31 19:40:27 -05:00
Snarling
497618dc2f Generate missing docs 2024-01-31 19:37:08 -05:00
Snarling
0ded11af53 TERMINAL: Fix inconsistent / janky scrolling behavior (#1063) 2024-01-31 19:32:42 -05:00
Michael Ficocelli
cf45981cd2 [PATCH][IPVGO] Use colors from theme for white and black, to support lower-contrast options (#1074) 2024-01-31 19:32:28 -05:00
David Walker
55e21d1e19 Make grow formulas faster and more accurate. (#1044) 2024-01-31 19:27:31 -05:00
LJ
b6b4788845 GANG: Reuse one promise for ns.gang.nextUpdate() (#1068) 2024-01-27 17:25:30 -05:00
LJ
05295598a4 BUGFIX: Format money requirement in fl1ght.exe (#1061) 2024-01-25 01:45:39 -05:00
deansvendsen
cb7c75a3ce MISC: Gang Expenses category in MoneySource (#1043) 2024-01-23 18:18:56 -05:00
catloversg
51ac4d009c Fix wrong demandRange of Minerals (#1053) 2024-01-23 16:18:32 -05:00
deansvendsen
f79470148e DOCS: Adding information to CONTRIBUTING.md (#1049) 2024-01-23 16:18:00 -05:00
Snarling
788a7549da Update Constants.ts 2024-01-15 06:18:55 -05:00
Justin
39c5a356b1 BUGFIX: Fix writePort() error where deconstructing the Port class caused the reduce() function to lose its 'this' reference (#1037) 2024-01-15 06:14:13 -05:00
LJ
157ff8ea88 PORTS: Add ns.nextPortWrite() as a safer option (#1036) 2024-01-15 06:10:39 -05:00
Snarling
d0e66d5be2 Changelog update 2024-01-14 16:48:14 -05:00
Caldwell
2ac0470cea adding int stat to sleeve overview and more stats overview (#1030) 2024-01-14 16:34:48 -05:00
Jesse Clark
c5ca30d796 add descriptions for hacknet_node_level_cost and hacknet_node_core_cost (#1032) 2024-01-14 16:12:49 -05:00
Shockwave
63574bca0c MISC: Several typo fix in corporation modals (#1029) 2024-01-14 16:12:28 -05:00
Snarling
44f0a77c4e PORTS: One promise, one resolver (test) (#1022) 2024-01-14 16:05:57 -05:00
Michael Ficocelli
87c4cbbc57 [IPvGO] Performance enhancement: async move option lookup (#1028) 2024-01-09 18:46:01 -05:00
Caldwell
6f8a59593a EDITOR: fix disposing models (#1026) 2024-01-09 18:45:31 -05:00
TheAimMan
82511e5030 BUGFIX: Update formatPercent to not use a suffixStart of 0 (#1024) 2024-01-08 10:25:20 -05:00
Shockwave
7017f3c2f8 API: Fix serverExists() return true for not revealed servers (#1013) 2024-01-07 11:40:07 -05:00
Snarling
f0f335e09a changelog update, regenerate docs 2024-01-07 08:37:38 -05:00
LJ
a433c8284c NETSCRIPT: Add .script deprecation notice & migration guide (#1007) 2024-01-07 08:15:24 -05:00
TheAimMan
9827fda4a4 BUGFIX: formatNumber throws an error if suffixStart is too low (#957) 2024-01-07 08:14:02 -05:00
TheAimMan
dd9ace7891 PROGRAMS: Change flight.exe to easily display unmet requirements (#939) 2024-01-07 08:12:16 -05:00
Miłosz Giera
1b03618555 REMOTE: Added possibility to change target IP of remote API (#943) 2024-01-07 07:57:54 -05:00
Shy
68a8427838 EDITOR: Add file URI's to monaco to improve intellisense (#1017) 2024-01-07 07:13:52 -05:00
Michael Ficocelli
7e721c144e [IPvGO] Docs improvements and other feedback (#1011) 2024-01-05 20:50:28 -05:00
Collin Pearce
0da9d9d3c0 fix player input parsing for coding contracts that accept arrays of strings (#937) 2024-01-02 09:26:34 -05:00
Jesse Clark
8742df9588 fix for stanek.acceptGift not working (#1001) 2024-01-02 09:12:14 -05:00
catloversg
4db4b77954 Change import declaration of arg library (#962) 2023-12-28 02:00:12 -05:00
Jesse Clark
1dac133ef4 Align columns in warehouse storage breakdown (#970) 2023-12-28 00:25:57 -05:00
Shockwave
e096456c29 Update StaneksGiftRoot.tsx (#987) 2023-12-27 06:10:35 -05:00
Rinne
eba840dcd3 API: Updating typing for ns.singularity.getCurrentWork() (#989) 2023-12-27 06:06:45 -05:00
Snarling
550829a1c3 Fix #944 merge errors 2023-12-27 04:35:58 -05:00
draughtnyan
ccf0aa4771 UI: 'Disable Text Effects' setting applies to "corrupted text" (#944) 2023-12-27 03:30:08 -05:00
Snarling
e7b68676f5 UI: Hash upgrade descriptions use number formatting options (#996) 2023-12-27 03:26:40 -05:00
Snarling
498bb6128a Handle br tag in tables (#995) 2023-12-27 02:04:52 -05:00
Snarling
a42b72d31a INFILTRATION: Different visual rework for CheatCodeGame (#994) 2023-12-27 00:45:40 -05:00
Snarling
489ba595f3 VERSION: Begin 2.6.0 dev cycle (#992) 2023-12-26 11:53:27 -05:00
Michael Ficocelli
7ef12a0323 BITNODE: IPvGO territory control strategy game (#934) 2023-12-26 11:45:27 -05:00
Snarling
c6141f2adf RELEASE: 2.5.2 (#990) 2023-12-26 10:59:33 -05:00
Snarling
2b7f6381eb Changelog update 2023-12-22 06:54:53 -05:00
Kelenius
5789003d46 Gave bit fluming its own message (#974) 2023-12-19 05:28:34 -05:00
Snarling
3a7ff7880d COMPANY: Show unqualified direct promotion (followup) (#983) 2023-12-19 05:27:26 -05:00
Snarling
09b74a3868 BLADEBURNER: Different solution for Enter key support in team member modal (#984) 2023-12-19 05:21:25 -05:00
Shockwave
28d1610bac Update Prestige.ts (#985) 2023-12-19 05:21:05 -05:00
Tibo De Peuter
1ce22e9788 MISC: Fix various typos (#982) 2023-12-18 08:21:47 -05:00
Jesse Clark
28ef5df880 COMPANY: Much better job location interface (#927) 2023-12-18 07:23:47 -05:00
Snarling
97d679bdac MISC: Protect against reassigning certain globals (#972) 2023-12-16 05:03:52 -05:00
Kelenius
da1b8533e0 Added "prev" and "next" buttons to job screen (#932) 2023-12-16 05:00:19 -05:00
Jesse Clark
417671ecb8 CORPORATION: Account for CapEx and Cap Gains differently (#977) 2023-12-16 04:56:57 -05:00
DJMatch3000
a6436ca4b3 MISC: Revert default HGW threads from 1 to number of script threads (#978) 2023-12-16 04:38:39 -05:00
Jesse Clark
473217ef31 API: Programming-friendly interface to getFactionInviteRequirements (#953) 2023-12-16 04:27:22 -05:00
TheAimMan
e957864c4b Fix missing check on singularity.getCurrentWork (#971) 2023-12-09 06:11:46 -05:00
Snarling
c6434e2297 Quick changelog update 2023-12-09 06:06:14 -05:00
Snarling
a3c26caf2c npm run doc 2023-12-07 21:26:28 -05:00
TheAimMan
5482848eeb SLEEVE: Add task counter to Crimes and BladeBurner (#930) 2023-12-07 21:24:50 -05:00
Jesse Clark
902306530c CORPORATION: Use accounting methods for all funds transactions (#949) 2023-12-07 21:22:21 -05:00
Snarling
b114fb9eed Changelog update 2023-12-07 21:20:58 -05:00
Jesse Clark
ecc63eb07e FACTIONS: Fix for faction names staying scrambled after joining (#968) 2023-12-07 20:53:28 -05:00
Kelenius
107b4e90e9 Changed message when buying tor router (#948) 2023-12-07 20:51:29 -05:00
David Walker
61ffed9b3a BUGFIX: Fix additionalMsec overflow issue (#941) 2023-12-07 20:34:49 -05:00
Sphyxis
21c7f56d23 TERMINAL: Updated Alias/Unalias (#914) 2023-12-07 20:15:55 -05:00
TheAimMan
89fc22f28f IMPROVEMENT: Apply core bonus for share and stanek (#913) 2023-12-07 20:10:21 -05:00
Jesse Clark
544c38065e DOC: Create factions-list documentation page (#904) 2023-12-07 20:07:01 -05:00
LJ
1ce0584b25 MISC: Switch port.nextWrite() from LIFO to FIFO (#965) 2023-12-07 18:00:01 -05:00
TheAimMan
375cf453b3 BUGFIX: Properly apply entropy to hacknet multiplers (#969) 2023-12-07 17:57:54 -05:00
catloversg
4dd4f920c3 Remove unused code in OfficeSpace (#961) 2023-12-07 07:55:30 -05:00
David Walker
019f2d6a11 DOCS: Add type of return for 3 formulas functions. (#967) 2023-12-07 07:33:15 -05:00
draughtnyan
b46b6e62bc Fix script autocompletion bug w/ subdirectories (#947) 2023-12-04 14:39:08 -05:00
Sphyxis
79b0f83b5f DEVMENU: Easier to add/remove sleeves (#908) 2023-12-04 14:36:00 -05:00
Kelenius
76f0f3d6d3 Remove inter-fragment borders in Stanek's gift (#929) 2023-12-03 04:55:13 -05:00
Sphyxis
3b4cac5584 BITVERSE: Updated BN 3 from easy to hard (#909) 2023-12-03 04:21:24 -05:00
Kelenius
aee353a54e Fix warehouse not updating after product sale (#925) 2023-12-03 04:13:06 -05:00
Shockwave
1dc4d01d64 Fix bug in SF9.3 reward server cpuCores (#938) 2023-12-03 04:12:20 -05:00
Jesse Clark
99383eb1c7 Only show "joining this faction will prevent you from joining enemies" for factions that have enemies (#921) 2023-12-03 04:07:59 -05:00
Jesse Clark
7fc46649f9 FACTIONS: fix unstable display order (#920) 2023-12-03 04:06:30 -05:00
Jesse Clark
34cc0441c2 Remove cooldown from "Sell corporation and start over" (#919) 2023-12-03 04:03:30 -05:00
Trambelus
f2baa04f45 CCT: Fewer money coding contracts if the reward would be $0 (#918) 2023-12-03 04:00:15 -05:00
Caldwell
8b6caeb68b STOCKMARKET: Added slight randomization to when stock forecasts can flip (#911) 2023-12-03 03:45:42 -05:00
Snarling
997ae8c176 Changelog reset for 2.5.2 dev cycle 2023-11-30 17:21:31 -05:00
Snarling
05875e4f3e Bump version number
Missed this in previous release update
2023-11-30 17:01:56 -05:00
Snarling
f93bbfbd5d UPDATE: 2.5.1 Release (#952) 2023-11-30 16:46:56 -05:00
Snarling
6a76e1a9ab Changeog 2023-11-07 19:38:50 -05:00
Snarling
aaf80a9a33 SLEEVE: Add a nextCompletion promise to SleeveBladeburnerWork (#916) 2023-11-05 20:09:34 -05:00
Sphyxis
0c4cf81f66 FIX: #896 - Establish a base growth in Bladeburner (#899) 2023-11-05 04:43:33 -05:00
Snarling
99afd2ff2a Fix FactionsDev issue
Receive all invites button was only setting the alreadyInvited flag for the selected faction, instead of all factions.

Also some slight refactoring / variable name improvements.
2023-11-05 04:40:30 -05:00
Jesse Clark
9585913e0a FACTIONS: fix invite requirement for slum snakes (#915) 2023-11-05 01:07:05 -04:00
Sphyxis
b06b8bbdde BLADEBURNER: Updated descriptions (#906) 2023-11-03 21:48:46 -04:00
Caldwell
4e8c43fdbe install latest eslint (#912) 2023-11-03 21:20:32 -04:00
TheAimMan
14b4722210 Clear Stanek before applying entropy on prestige (#907) 2023-11-03 21:12:08 -04:00
Sphyxis
2df04bc567 SLEEVES: Set to Idle in UI (#903) 2023-11-03 21:01:53 -04:00
omuretsu
e56e3dddf1 Fix stuff I broke in #910 2023-11-02 18:57:22 -04:00
Snarling
2997384403 FACTIONS: Followup changes for Rumors PR (#910) 2023-11-02 11:02:12 -04:00
Jesse Clark
fdcb8306d9 FACTIONS: Add "Rumors" system for learning about faction join requirements (#888) 2023-11-02 10:20:24 -04:00
Shockwave
023f32bce3 FORMULAS: Removing the possible exception when gymGains/universityGains is called (#898) 2023-11-01 20:22:17 -04:00
François Gannaz
87e2f5c23b TERMINAL: Fix autocompletion when running scripts with the "./" command (#900) 2023-10-30 12:32:11 -04:00
TheAimMan
6f67224146 BUGFIX: Add effect definition to fragmentObject (#891) 2023-10-30 04:00:31 -04:00
Caldwell
009622069f add size property to getProduct (#893) 2023-10-30 03:56:54 -04:00
TheAimMan
2a149df13e BUGFIX: Contracts now fail if there are 0 of them remaining (#889) 2023-10-30 03:11:51 -04:00
Caldwell
0bdab7bec8 CORPORATION: move product productionCost into cityData (#887) 2023-10-30 03:10:45 -04:00
TheAimMan
ca12bddaf5 BUGFIX: Check Corp Research pre-reqs in research api call (#884) 2023-10-30 03:09:34 -04:00
Zonoia
bc5789af60 MISC: Readthedocs configuration that redirects to this repo (#833) 2023-10-24 05:11:14 -04:00
Snarling
cb2f530b88 dedupe + audit fix (#890) 2023-10-24 04:32:48 -04:00
omuretsu
d58e2ec7cf Changelog 10/23/23 2023-10-23 08:34:11 -04:00
omuretsu
e608e07879 Doc update 2023-10-23 07:32:46 -04:00
Snarling
87925f1900 EDITOR: Reorganization and minor efficiency improvements (#886) 2023-10-23 07:02:33 -04:00
David Walker
e339b5dc5f Tweak Illuminati .lit to provide a join hint (#883) 2023-10-23 05:34:04 -04:00
Squirlll
62be77b3f4 UI: grammar/typo fixes (#878) 2023-10-23 05:31:27 -04:00
TheAimMan
848fc9905a BUGFIX: SleeveCrimeWork.ts works through all cyclesWorked if its greater than cyclesNeeded (#881) 2023-10-23 05:31:11 -04:00
TheAimMan
5d266e01a6 Fix rm on .cct files (#880) 2023-10-23 05:19:49 -04:00
alutman
445c0c3134 Offline hacking income now shown for scripts (#873) 2023-10-23 05:00:16 -04:00
alutman
36a8b35cfb Prevent faction invitations appearing after prestige (#872) 2023-10-23 04:55:08 -04:00
TheAimMan
71e37823dd BUGFIX: Update warehouseSizeUsed after bulk purchase (#871) 2023-10-23 04:54:43 -04:00
Snarling
36312c660d CODE: Enable es2023 features (#870) 2023-10-23 04:49:12 -04:00
Caldwell
e992cb966a CORPORATION: adding prevState and changed state display in the warehouse UI (#861) 2023-10-23 04:48:06 -04:00
TheAimMan
eed2c5d6d4 BUGFIX: Update NetscriptHelpers.tsx to verify servers are on network when getServer is called (#855) 2023-10-23 04:37:19 -04:00
Jesse Clark
61c311a126 API: Add nextUpdate() promise for systems with bonus time (#845) 2023-10-23 04:24:30 -04:00
Snarling
daa7a22786 UI: General devmenu followup changes (#885) 2023-10-23 04:22:11 -04:00
missymae#2783
ff0118f2f4 UI: Update general devmenu page (#835) 2023-10-23 04:01:21 -04:00
Daniele Basso
9dd8275be1 Replace electron-config with electron-store. (#813) 2023-10-23 02:43:18 -04:00
Jesse Clark
62ab9f33be UI: Clarify wording in Corporation (#866) 2023-10-17 09:59:52 -04:00
omuretsu
d4120fa688 Update changelog date 2023-10-17 09:00:57 -04:00
omuretsu
45cf414e9c Changelog update 10/17 2023-10-17 07:20:35 -04:00
Snarling
38f693e2c1 ENUMS: Followup for #859 (#868) 2023-10-17 07:19:32 -04:00
Caldwell
9c41995e59 increment employees the right way (#869)
move the incrementation of employees after the avg calc
2023-10-17 07:07:26 -04:00
Warrobot10
ad03e4ee82 Update CONTRIBUTING.md (#862) 2023-10-17 07:06:50 -04:00
alutman
1a052a7daf API: Change singularity.applyToCompany() to use an enum for job field (#859) 2023-10-17 05:33:16 -04:00
Tyasuh
686d2e2b9b Remove territory warfare toggle from main gang management page (#849) 2023-10-17 03:47:54 -04:00
missymae#2783
1007ce5e68 API: Add ns.bladeburner.getNextBlackOp() (#815) 2023-10-17 02:18:54 -04:00
omuretsu
7e94a8653e Fix electron w/ unsupported arch for greenworks 2023-10-09 19:14:53 -04:00
Caldwell
6fa149ff08 CORPORATION: remove unneeded "state" property from Divisions (#857) 2023-10-07 23:25:46 -04:00
Jesse Clark
2f40b66789 CORPORATION: UI to display production and sales multipliers (#838) 2023-10-07 23:22:28 -04:00
Caldwell
269a74d5c0 CODEBASE: update dependencies (#852) 2023-10-07 18:52:48 -04:00
Warrobot10
79cfbb5f2e Fix a doc typo (#858) 2023-10-07 18:44:28 -04:00
Snarling
1b271d6e29 Update electron to latest (#850) 2023-10-04 19:46:08 -04:00
omuretsu
feb3f1a5db Dev changelog 2023-10-04 10:50:14 -04:00
omuretsu
32197e024d Actually fix faction invite spam 2023-10-04 10:32:33 -04:00
omuretsu
7226a9effa Update changelog.md 2023-10-04 10:30:06 -04:00
Snarling
74fe6af595 Hotfix: Popups no longer show up during infiltration (#847) 2023-10-04 09:52:04 -04:00
Noah Harris
e22527e7b7 fix: check for purchased program before enough money (#839) 2023-10-03 02:02:28 -04:00
Jesse Clark
f4cd4b3362 Fix check for "True Recursion" achievement (#827) 2023-10-03 01:29:09 -04:00
omuretsu
a4e9fd9705 Update SourceFilesDev.tsx
Remove unused sfData state variable
Removed the custom coloring for the SF buttons from #830.
Added a text indicator for the current SF level.
Other minor organizational changes
2023-10-03 01:19:10 -04:00
missymae#2783
aa5d37c7c1 UI: Make Source-Files devmenu page reactive (#830) 2023-10-03 00:36:51 -04:00
missymae#2783
673efb427f UI: Fix some DevMenu react errors, add number of exploits to savegame comparison (#825) 2023-10-02 23:28:16 -04:00
Michael Ficocelli
7b00fcc5b1 MISC: spelling and consistency fixes in the NetscriptDefinitions.ts file (#821) 2023-10-02 20:14:44 -04:00
Jesse Clark
7f575eb34c UI: Clean up typesetting of Corp ingredient formulas (#819) 2023-10-02 20:13:41 -04:00
Yichi Zhang
3f0c10adf4 STANEK: Re-apply stanek boosts when applying entropy (#816) 2023-10-02 20:11:22 -04:00
omuretsu
7f82ceaf24 npm audit fix 2023-10-02 20:07:22 -04:00
missymae#2783
3c52984d61 UI: Add a Credits button in options menu (#836) 2023-10-02 20:00:52 -04:00
omuretsu
a8e48ddb12 2.5.1 dev start 2023-10-02 19:46:57 -04:00
584 changed files with 22393 additions and 21564 deletions

16
.readthedocs.yaml Normal file
View File

@@ -0,0 +1,16 @@
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Set the version of Python and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.11"
# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: doc/conf.py

View File

@@ -1,10 +1,13 @@
import JSDOMEnvironment from "jest-environment-jsdom";
import { cloneDeep } from "lodash";
// https://github.com/facebook/jest/blob/v29.4.3/website/versioned_docs/version-29.4/Configuration.md#testenvironment-string
export default class FixJSDOMEnvironment extends JSDOMEnvironment {
constructor(...args: ConstructorParameters<typeof JSDOMEnvironment>) {
super(...args);
// TODO Tests aren't polyfilled.
this.global.structuredClone = cloneDeep;
// FIXME https://github.com/nodejs/node/issues/35889
// Add missing importActual() function to mirror requireActual(),
// which lets us work around the ESM bug.

View File

@@ -60,7 +60,7 @@ called `npm` is installed as well.
Not all code contributions will be accepted. The safest way to ensure
that you don't waste time working on something that gets rejected is to
run your idea(s)/plan(s) past the developpers first.
run your idea(s)/plan(s) past the developers first.
You can contact him through Discord.
Otherwise, here are some general guidelines for determining what types of
@@ -207,9 +207,17 @@ the following rules:
- Ensure you have run `npm run lint` to make sure your changes conform to the
rules enforced across the code base. The command will fail if any of the
linters find a violation.
- Ensure you have run `npm run format` to make sure your changes conform to the
style guide.
- Also, ensure you have run `npm run test` to make sure your changes pass
the automated tests.
- Do not check in any bundled files (`dist\*.bundle.js`) or the `index.html`
in the root of the repository. These will be updated as part of official
releases.
- The title of your Pull Request will need to be formatted like
`MISC: Reticulated the splines`, where the first word must be capitalised
and relate to the kind of change being implemented. Possible examples
are UI, BUGFIX, SERVERS, NETSCRIPT... You get the idea.
## As a Documenter
@@ -232,7 +240,7 @@ rules:
## Deploying a new version
Update the following
Update the following:
- `src/Constants.ts` `Version` and `LatestUpdate`
- `package.json` `version`

34
doc/conf.py Normal file
View File

@@ -0,0 +1,34 @@
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
import os
import sys
# -- Project information -----------------------------------------------------
project = 'Bitburner'
# -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
]
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ['*']
exclude_patterns = ['doc/index.rst']
# -- Options for HTML output -------------------------------------------------

5
doc/index.rst Normal file
View File

@@ -0,0 +1,5 @@
.. meta::
:http-equiv=Refresh: 0; url='https://github.com/bitburner-official/bitburner-src/blob/stable/src/Documentation/doc/index.md'
This link is outdated as documentation for Bitburner has been migrated to an in-game menu, this page should have redirected you to the new location.
You can also click `here to go to the game's documentation <https://github.com/bitburner-official/bitburner-src/blob/stable/src/Documentation/doc/index.md/>`_.

View File

@@ -2,8 +2,8 @@
const http = require("http");
const crypto = require("crypto");
const log = require("electron-log");
const Config = require("electron-config");
const config = new Config();
const Store = require("electron-store");
const store = new Store();
let server;
let window;
@@ -100,7 +100,7 @@ async function initialize(win) {
});
});
const autostart = config.get("autostart", false);
const autostart = store.get("autostart", false);
if (autostart) {
try {
await enable();
@@ -118,8 +118,8 @@ function enable() {
return Promise.resolve();
}
const port = config.get("port", 9990);
const host = config.get("host", "127.0.0.1");
const port = store.get("port", 9990);
const host = store.get("host", "127.0.0.1");
log.log(`Starting http server on port ${port} - listening on ${host}`);
// https://stackoverflow.com/a/62289870
@@ -165,20 +165,20 @@ function isListening() {
function toggleAutostart() {
const newValue = !isAutostart();
config.set("autostart", newValue);
store.set("autostart", newValue);
log.log(`New autostart value is '${newValue}'`);
}
function isAutostart() {
return config.get("autostart");
return store.get("autostart");
}
function getAuthenticationToken() {
const token = config.get("token");
const token = store.get("token");
if (token) return token;
const newToken = generateToken();
config.set("token", newToken);
store.set("token", newToken);
return newToken;
}

View File

@@ -7,15 +7,10 @@ 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.arch === "x64") {
if (process.platform === "darwin") greenworks = require("./lib/greenworks-osx64");
else if (process.platform === "win32") greenworks = require("./lib/greenworks-win64");
else if (process.platform === "linux") greenworks = require("./lib/greenworks-linux64");
}
function error_process(err, error_callback) {

3
electron/jsconfig.json Normal file
View File

@@ -0,0 +1,3 @@
{
"compilerOptions": { "target": "ESNext" }
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -9,13 +9,13 @@ 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();
const Store = require("electron-store");
const store = new Store();
const path = require("path");
const { fileURLToPath } = require("url");
log.transports.file.level = config.get("file-log-level", "info");
log.transports.console.level = config.get("console-log-level", "debug");
log.transports.file.level = store.get("file-log-level", "info");
log.transports.console.level = store.get("console-log-level", "debug");
log.catchErrors();
log.info(`Started app: ${JSON.stringify(process.argv)}`);
@@ -105,7 +105,7 @@ function setStopProcessHandler(app, window) {
window.gameInfo = { ...arg };
await storage.prepareSaveFolders(window);
const restoreNewest = config.get("onload-restore-newest", true);
const restoreNewest = store.get("onload-restore-newest", true);
if (restoreNewest && !isRestoreDisabled) {
try {
await storage.restoreIfNewerExists(window);
@@ -159,7 +159,7 @@ function setStopProcessHandler(app, window) {
utils.writeToast(window, "Could not save to Steam Cloud.", "error", 5000);
}
},
config.get("cloud-save-min-time", 1000 * 60 * 15),
store.get("cloud-save-min-time", 1000 * 60 * 15),
{ leading: true },
);
@@ -174,7 +174,7 @@ function setStopProcessHandler(app, window) {
utils.writeToast(window, "Could not save to disk", "error", 5000);
}
},
config.get("disk-save-min-time", 1000 * 60 * 5),
store.get("disk-save-min-time", 1000 * 60 * 5),
{ leading: true },
);

View File

@@ -1,11 +1,11 @@
/* eslint-disable @typescript-eslint/no-var-requires */
const { app, Menu, clipboard, dialog, shell } = require("electron");
const log = require("electron-log");
const Config = require("electron-config");
const Store = require("electron-store");
const api = require("./api-server");
const utils = require("./utils");
const storage = require("./storage");
const config = new Config();
const store = new Store();
function getMenu(window) {
const canZoomIn = utils.getZoomFactor() <= 2;
@@ -153,9 +153,9 @@ function getMenu(window) {
{
label: "Restore Newest on Load",
type: "checkbox",
checked: config.get("onload-restore-newest", true),
checked: store.get("onload-restore-newest", true),
click: (menuItem) => {
config.set("onload-restore-newest", menuItem.checked);
store.set("onload-restore-newest", menuItem.checked);
utils.writeToast(
window,
`${menuItem.checked ? "Enabled" : "Disabled"} Restore Newest on Load`,

View File

@@ -1,51 +1,106 @@
{
"name": "bitburner",
"version": "2.5.0",
"lockfileVersion": 2,
"version": "2.6.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "bitburner",
"version": "2.5.0",
"version": "2.5.2",
"dependencies": {
"electron-config": "^2.0.0",
"electron-log": "^4.4.8",
"electron-store": "^8.1.0",
"lodash": "^4.17.21"
}
},
"node_modules/conf": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/conf/-/conf-1.4.0.tgz",
"integrity": "sha512-bzlVWS2THbMetHqXKB8ypsXN4DQ/1qopGwNJi1eYbpwesJcd86FBjFciCQX/YwAhp9bM7NVnPFqZ5LpV7gP0Dg==",
"node_modules/ajv": {
"version": "8.12.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
"integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
"dependencies": {
"dot-prop": "^4.1.0",
"env-paths": "^1.0.0",
"make-dir": "^1.0.0",
"pkg-up": "^2.0.0",
"write-file-atomic": "^2.3.0"
"fast-deep-equal": "^3.1.1",
"json-schema-traverse": "^1.0.0",
"require-from-string": "^2.0.2",
"uri-js": "^4.2.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/ajv-formats": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
"dependencies": {
"ajv": "^8.0.0"
},
"peerDependencies": {
"ajv": "^8.0.0"
},
"peerDependenciesMeta": {
"ajv": {
"optional": true
}
}
},
"node_modules/atomically": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz",
"integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==",
"engines": {
"node": ">=10.12.0"
}
},
"node_modules/conf": {
"version": "10.2.0",
"resolved": "https://registry.npmjs.org/conf/-/conf-10.2.0.tgz",
"integrity": "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==",
"dependencies": {
"ajv": "^8.6.3",
"ajv-formats": "^2.1.1",
"atomically": "^1.7.0",
"debounce-fn": "^4.0.0",
"dot-prop": "^6.0.1",
"env-paths": "^2.2.1",
"json-schema-typed": "^7.0.3",
"onetime": "^5.1.2",
"pkg-up": "^3.1.0",
"semver": "^7.3.5"
},
"engines": {
"node": ">=4"
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/debounce-fn": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz",
"integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==",
"dependencies": {
"mimic-fn": "^3.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/dot-prop": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz",
"integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==",
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
"integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
"dependencies": {
"is-obj": "^1.0.0"
"is-obj": "^2.0.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/electron-config": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/electron-config/-/electron-config-2.0.0.tgz",
"integrity": "sha512-5mGwRK4lsAo6tiy4KNF/zUInYpUGr7JJzLA8FHOoqBWV3kkKJWSrDXo4Uk2Ffm5aeQ1o73XuorfkYhaWFV2O4g==",
"deprecated": "Renamed to `electron-store`.",
"dependencies": {
"conf": "^1.0.0"
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/electron-log": {
@@ -53,56 +108,70 @@
"resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.8.tgz",
"integrity": "sha512-QQ4GvrXO+HkgqqEOYbi+DHL7hj5JM+nHi/j+qrN9zeeXVKy8ZABgbu4CnG+BBqDZ2+tbeq9tUC4DZfIWFU5AZA=="
},
"node_modules/env-paths": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz",
"integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=",
"engines": {
"node": ">=4"
"node_modules/electron-store": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/electron-store/-/electron-store-8.1.0.tgz",
"integrity": "sha512-2clHg/juMjOH0GT9cQ6qtmIvK183B39ZXR0bUoPwKwYHJsEF3quqyDzMFUAu+0OP8ijmN2CbPRAelhNbWUbzwA==",
"dependencies": {
"conf": "^10.2.0",
"type-fest": "^2.17.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/env-paths": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
"integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
"engines": {
"node": ">=6"
}
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"node_modules/find-up": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"dependencies": {
"locate-path": "^2.0.0"
"locate-path": "^3.0.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/graceful-fs": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
},
"node_modules/imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"engines": {
"node": ">=0.8.19"
"node": ">=6"
}
},
"node_modules/is-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
"integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
"integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
"engines": {
"node": ">=0.10.0"
"node": ">=8"
}
},
"node_modules/json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
},
"node_modules/json-schema-typed": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz",
"integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A=="
},
"node_modules/locate-path": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dependencies": {
"p-locate": "^2.0.0",
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
},
"engines": {
"node": ">=4"
"node": ">=6"
}
},
"node_modules/lodash": {
@@ -110,227 +179,152 @@
"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",
"integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
"node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dependencies": {
"pify": "^3.0.0"
"yallist": "^4.0.0"
},
"engines": {
"node": ">=4"
"node": ">=10"
}
},
"node_modules/mimic-fn": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz",
"integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/onetime": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
"integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
"dependencies": {
"mimic-fn": "^2.1.0"
},
"engines": {
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/onetime/node_modules/mimic-fn": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"engines": {
"node": ">=6"
}
},
"node_modules/p-limit": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dependencies": {
"p-try": "^1.0.0"
"p-try": "^2.0.0"
},
"engines": {
"node": ">=4"
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-locate": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dependencies": {
"p-limit": "^1.1.0"
"p-limit": "^2.0.0"
},
"engines": {
"node": ">=4"
"node": ">=6"
}
},
"node_modules/p-try": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"engines": {
"node": ">=4"
"node": ">=6"
}
},
"node_modules/path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
"engines": {
"node": ">=4"
}
},
"node_modules/pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
"integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
"engines": {
"node": ">=4"
}
},
"node_modules/pkg-up": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz",
"integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
"integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
"dependencies": {
"find-up": "^2.1.0"
"find-up": "^3.0.0"
},
"engines": {
"node": ">=4"
"node": ">=8"
}
},
"node_modules/signal-exit": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz",
"integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ=="
"node_modules/punycode": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
"integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
"engines": {
"node": ">=6"
}
},
"node_modules/write-file-atomic": {
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
"integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
"node_modules/require-from-string": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/semver": {
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dependencies": {
"graceful-fs": "^4.1.11",
"imurmurhash": "^0.1.4",
"signal-exit": "^3.0.2"
}
}
},
"dependencies": {
"conf": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/conf/-/conf-1.4.0.tgz",
"integrity": "sha512-bzlVWS2THbMetHqXKB8ypsXN4DQ/1qopGwNJi1eYbpwesJcd86FBjFciCQX/YwAhp9bM7NVnPFqZ5LpV7gP0Dg==",
"requires": {
"dot-prop": "^4.1.0",
"env-paths": "^1.0.0",
"make-dir": "^1.0.0",
"pkg-up": "^2.0.0",
"write-file-atomic": "^2.3.0"
"lru-cache": "^6.0.0"
},
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"dot-prop": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz",
"integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==",
"requires": {
"is-obj": "^1.0.0"
"node_modules/type-fest": {
"version": "2.19.0",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
"integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"engines": {
"node": ">=12.20"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"electron-config": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/electron-config/-/electron-config-2.0.0.tgz",
"integrity": "sha512-5mGwRK4lsAo6tiy4KNF/zUInYpUGr7JJzLA8FHOoqBWV3kkKJWSrDXo4Uk2Ffm5aeQ1o73XuorfkYhaWFV2O4g==",
"requires": {
"conf": "^1.0.0"
"node_modules/uri-js": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dependencies": {
"punycode": "^2.1.0"
}
},
"electron-log": {
"version": "4.4.8",
"resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.8.tgz",
"integrity": "sha512-QQ4GvrXO+HkgqqEOYbi+DHL7hj5JM+nHi/j+qrN9zeeXVKy8ZABgbu4CnG+BBqDZ2+tbeq9tUC4DZfIWFU5AZA=="
},
"env-paths": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz",
"integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA="
},
"find-up": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"requires": {
"locate-path": "^2.0.0"
}
},
"graceful-fs": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
},
"imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
},
"is-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
"integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
},
"locate-path": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
"requires": {
"p-locate": "^2.0.0",
"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",
"integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
"requires": {
"pify": "^3.0.0"
}
},
"p-limit": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"requires": {
"p-try": "^1.0.0"
}
},
"p-locate": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
"requires": {
"p-limit": "^1.1.0"
}
},
"p-try": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
},
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
},
"pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
},
"pkg-up": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz",
"integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
"requires": {
"find-up": "^2.1.0"
}
},
"signal-exit": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz",
"integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ=="
},
"write-file-atomic": {
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
"integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
"requires": {
"graceful-fs": "^4.1.11",
"imurmurhash": "^0.1.4",
"signal-exit": "^3.0.2"
}
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
}
}
}

View File

@@ -1,9 +1,9 @@
{
"name": "bitburner",
"version": "2.5.0",
"version": "2.6.0",
"description": "A cyberpunk-themed programming incremental game",
"main": "main.js",
"author": "Daniel Xie, Olivier Gagnon, et al.",
"author": "Daniel Xie, hydroflame, et al.",
"mac": {
"icon": "./public/icons/mac/icon.icns",
"category": "public.app-category.games"
@@ -24,7 +24,7 @@
"buildResources": "public"
},
"dependencies": {
"electron-config": "^2.0.0",
"electron-store": "^8.1.0",
"electron-log": "^4.4.8",
"lodash": "^4.17.21"
}

View File

@@ -10,8 +10,8 @@ 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();
const Store = require("electron-store");
const store = new Store();
// https://stackoverflow.com/a/69418940
const dirSize = async (directory) => {
@@ -79,23 +79,23 @@ async function getFolderSizeInBytes(saveFolder) {
}
function setAutosaveConfig(value) {
config.set("autosave-enabled", value);
store.set("autosave-enabled", value);
}
function isAutosaveEnabled() {
return config.get("autosave-enabled", true);
return store.get("autosave-enabled", true);
}
function setSaveCompressionConfig(value) {
config.set("save-compression-enabled", value);
store.set("save-compression-enabled", value);
}
function isSaveCompressionEnabled() {
return config.get("save-compression-enabled", true);
return store.get("save-compression-enabled", true);
}
function setCloudEnabledConfig(value) {
config.set("cloud-enabled", value);
store.set("cloud-enabled", value);
}
async function getSaveFolder(window, root = false) {
@@ -112,7 +112,7 @@ function isCloudEnabled() {
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);
const enabledInConf = store.get("cloud-enabled", true);
if (!enabledInConf) return false;
const isAppEnabled = greenworks.isCloudEnabled();
@@ -214,7 +214,7 @@ async function getSteamCloudSaveString() {
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 maxFolderSizeBytes = store.get("autosave-quota", 1e8); // 100Mb per playerIndentifier
const remainingSpaceBytes = maxFolderSizeBytes - saveFolderSizeBytes;
log.debug(`Folder Usage: ${saveFolderSizeBytes} bytes`);
log.debug(`Folder Capacity: ${maxFolderSizeBytes} bytes`);

View File

@@ -2,8 +2,8 @@
const { dialog, shell } = require("electron");
const log = require("electron-log");
const Config = require("electron-config");
const config = new Config();
const Store = require("electron-store");
const store = new Store();
function reloadAndKill(window, killScripts) {
log.info("Reloading & Killing all scripts...");
@@ -88,7 +88,7 @@ async function writeToast(window, message, type = "info", duration = 2000) {
}
function getZoomFactor() {
const configZoom = config.get("zoom", 1);
const configZoom = store.get("zoom", 1);
return configZoom;
}
@@ -96,7 +96,7 @@ function setZoomFactor(window, zoom = null) {
if (zoom === null) {
zoom = 1;
} else {
config.set("zoom", zoom);
store.set("zoom", zoom);
}
window.webContents.setZoomFactor(zoom);
}

View File

@@ -2,8 +2,8 @@
const { screen } = require("electron");
const log = require("electron-log");
const debounce = require("lodash/debounce");
const Config = require("electron-config");
const config = new Config();
const Store = require("electron-store");
const store = new Store();
// https://stackoverflow.com/a/68627253
const windowTracker = (windowName) => {
@@ -11,8 +11,8 @@ const windowTracker = (windowName) => {
const setBounds = () => {
// Restore from appConfig
if (config.has(`window.${windowName}`)) {
windowState = config.get(`window.${windowName}`);
if (store.has(`window.${windowName}`)) {
windowState = store.get(`window.${windowName}`);
return;
}
@@ -40,7 +40,7 @@ const windowTracker = (windowName) => {
windowState.isMaximized = window.isMaximized();
log.silly(`Saving window.${windowName} to configs`);
config.set(`window.${windowName}`, windowState);
store.set(`window.${windowName}`, windowState);
log.silly(windowState);
}, 1000);

View File

@@ -7,15 +7,17 @@ module.exports = {
transformIgnorePatterns: ["node_modules/(?!react-markdown)/"],
testPathIgnorePatterns: [".cypress", "node_modules", "dist"],
testEnvironment: "./FixJSDOMEnvironment.ts",
setupFiles: ["./jest.polyfills.js"],
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",
"\\.(css|less)$": "<rootDir>/test/__mocks__/NullMock.js",
"\\!!raw-loader!.*$": "<rootDir>/test/__mocks__/NullMock.js",
"@player": "<rootDir>/src/Player",
"@enums": "<rootDir>/src/Enums",
"@nsdefs": "<rootDir>/src/ScriptEditor/NetscriptDefinitions",
"^monaco-editor$": "<rootDir>/test/__mocks__/monacoMock.js",
"^monaco-vim$": "<rootDir>/test/__mocks__/monacoMock.js",
"^monaco-editor$": "<rootDir>/test/__mocks__/NullMock.js",
"^monaco-vim$": "<rootDir>/test/__mocks__/NullMock.js",
"/utils/Protections$": "<rootDir>/test/__mocks__/NullMock.js",
},
};

6
jest.polyfills.js Normal file
View File

@@ -0,0 +1,6 @@
const { TextEncoder, TextDecoder } = require("node:util");
Object.defineProperties(globalThis, {
TextEncoder: { value: TextEncoder },
TextDecoder: { value: TextDecoder },
});

View File

@@ -0,0 +1,21 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [BackdoorRequirement](./bitburner.backdoorrequirement.md)
## BackdoorRequirement interface
Player must have installed a backdoor on this server.
**Signature:**
```typescript
interface BackdoorRequirement
```
## Properties
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [server](./bitburner.backdoorrequirement.server.md) | | string | |
| [type](./bitburner.backdoorrequirement.type.md) | | "backdoorInstalled" | |

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [BackdoorRequirement](./bitburner.backdoorrequirement.md) &gt; [server](./bitburner.backdoorrequirement.server.md)
## BackdoorRequirement.server property
**Signature:**
```typescript
server: string;
```

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [BackdoorRequirement](./bitburner.backdoorrequirement.md) &gt; [type](./bitburner.backdoorrequirement.type.md)
## BackdoorRequirement.type property
**Signature:**
```typescript
type: "backdoorInstalled";
```

View File

@@ -18,5 +18,5 @@ interface BasicHGWOptions
| --- | --- | --- | --- |
| [additionalMsec?](./bitburner.basichgwoptions.additionalmsec.md) | | number | _(Optional)_ Number of additional milliseconds that will be spent waiting between the start of the function and when it completes. |
| [stock?](./bitburner.basichgwoptions.stock.md) | | boolean | _(Optional)_ Set to true this action will affect the stock market. |
| [threads?](./bitburner.basichgwoptions.threads.md) | | number | _(Optional)_ Number of threads to use for this function. Must be less than or equal to the number of threads the script is running with. |
| [threads?](./bitburner.basichgwoptions.threads.md) | | number | _(Optional)_ Number of threads to use for this function. Must be less than or equal to the number of threads the script is running with. Accepts positive non integer values. |

View File

@@ -4,7 +4,7 @@
## BasicHGWOptions.threads property
Number of threads to use for this function. Must be less than or equal to the number of threads the script is running with.
Number of threads to use for this function. Must be less than or equal to the number of threads the script is running with. Accepts positive non integer values.
**Signature:**

View File

@@ -4,7 +4,7 @@
## BitNodeMultipliers.CorporationDivisions property
Influences the amount of divisions a corporation can have have at the same time
Influences the amount of divisions a corporation can have at the same time
**Signature:**

View File

@@ -26,7 +26,7 @@ interface BitNodeMultipliers
| [CodingContractMoney](./bitburner.bitnodemultipliers.codingcontractmoney.md) | | number | Influences the amount of money gained from completing Coding Contracts |
| [CompanyWorkExpGain](./bitburner.bitnodemultipliers.companyworkexpgain.md) | | number | Influences the experience gained for each ability when the player completes working their job. |
| [CompanyWorkMoney](./bitburner.bitnodemultipliers.companyworkmoney.md) | | number | Influences how much money the player earns when completing working their job. |
| [CorporationDivisions](./bitburner.bitnodemultipliers.corporationdivisions.md) | | number | Influences the amount of divisions a corporation can have have at the same time |
| [CorporationDivisions](./bitburner.bitnodemultipliers.corporationdivisions.md) | | number | Influences the amount of divisions a corporation can have at the same time |
| [CorporationSoftcap](./bitburner.bitnodemultipliers.corporationsoftcap.md) | | number | Influences the money gain from dividends of corporations created by the player. |
| [CorporationValuation](./bitburner.bitnodemultipliers.corporationvaluation.md) | | number | Influences the valuation of corporations created by the player. |
| [CrimeExpGain](./bitburner.bitnodemultipliers.crimeexpgain.md) | | number | Influences the base experience gained for each ability when the player commits a crime. |

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [BitNodeRequirement](./bitburner.bitnoderequirement.md) &gt; [bitNodeN](./bitburner.bitnoderequirement.bitnoden.md)
## BitNodeRequirement.bitNodeN property
**Signature:**
```typescript
bitNodeN: number;
```

View File

@@ -0,0 +1,21 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [BitNodeRequirement](./bitburner.bitnoderequirement.md)
## BitNodeRequirement interface
Player must be located in this BitNode.
**Signature:**
```typescript
interface BitNodeRequirement
```
## Properties
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [bitNodeN](./bitburner.bitnoderequirement.bitnoden.md) | | number | |
| [type](./bitburner.bitnoderequirement.type.md) | | "bitNodeN" | |

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [BitNodeRequirement](./bitburner.bitnoderequirement.md) &gt; [type](./bitburner.bitnoderequirement.type.md)
## BitNodeRequirement.type property
**Signature:**
```typescript
type: "bitNodeN";
```

View File

@@ -29,5 +29,5 @@ Estimated success chance for the specified action.
RAM cost: 4 GB
Returns the estimated success chance for the specified action. This chance is returned as a decimal value, NOT a percentage (e.g. if you have an estimated success chance of 80%, then this function will return 0.80, NOT 80).
Returns the estimated success chance for the specified action. This chance is returned as a decimal value, NOT a percentage (e.g. if you have an estimated success chance of 80%, then this function will return 0.80, NOT 80). Returns 2 values, value\[0\] - MIN Chance, value\[1\] - MAX Chance

View File

@@ -4,7 +4,7 @@
## Bladeburner.getBonusTime() method
Get bladeburner bonus time.
Get Bladeburner bonus time.
**Signature:**
@@ -25,5 +25,5 @@ Returns the amount of accumulated “bonus time” (milliseconds) for the Bladeb
“Bonus time” is accumulated when the game is offline or if the game is inactive in the browser.
“Bonus time” makes the game progress faster, up to 5x the normal speed. For example, if an action takes 30 seconds to complete but youve accumulated over 30 seconds in bonus time, then the action will only take 6 seconds in real life to complete.
“Bonus time” makes the game progress faster, up to 5x the normal speed. For example, if an action takes 30 seconds to complete, but youve accumulated over 30 seconds in bonus time, then the action will only take 6 seconds in real life to complete.

View File

@@ -0,0 +1,25 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Bladeburner](./bitburner.bladeburner.md) &gt; [getNextBlackOp](./bitburner.bladeburner.getnextblackop.md)
## Bladeburner.getNextBlackOp() method
Get an object with the name and rank requirement of the next BlackOp that can be completed.
**Signature:**
```typescript
getNextBlackOp(): { name: string; rank: number } | null;
```
**Returns:**
{ name: string; rank: number } \| null
An object with the `.name` and `.rank` properties of the available BlackOp, or `null`<!-- -->.
## Remarks
RAM cost: 2 GB
Returns the name and rank requirement for the available BlackOp. Returns `null` if no BlackOps remain in the BitNode.

View File

@@ -9,14 +9,14 @@ Get skill level.
**Signature:**
```typescript
getSkillLevel(name: string): number;
getSkillLevel(skillName: string): number;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| name | string | |
| skillName | string | Name of skill. Case-sensitive and must be an exact match. |
**Returns:**

View File

@@ -9,14 +9,14 @@ Get cost to upgrade skill.
**Signature:**
```typescript
getSkillUpgradeCost(name: string, count?: number): number;
getSkillUpgradeCost(skillName: string, count?: number): number;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| name | string | |
| skillName | string | Name of skill. Case-sensitive and must be an exact match. |
| count | number | _(Optional)_ Number of times to upgrade the skill. Defaults to 1 if not specified. |
**Returns:**
@@ -31,5 +31,5 @@ RAM cost: 4 GB
This function returns the number of skill points needed to upgrade the specified skill the specified number of times.
The function returns -1 if an invalid skill name is passed in.
The function returns -1 if an invalid skill name is passed in, and Infinity if the count overflows the maximum level.

View File

@@ -4,7 +4,7 @@
## Bladeburner.getStamina() method
Get bladeburner stamina.
Get Bladeburner stamina.
**Signature:**

View File

@@ -4,7 +4,7 @@
## Bladeburner.inBladeburner() method
Returns whether player is a member of bladeburner division. Does not require API access.
Returns whether player is a member of Bladeburner division. Does not require API access.
**Signature:**
@@ -15,7 +15,7 @@ inBladeburner(): boolean;
boolean
whether player is a member of bladeburner division.
whether player is a member of Bladeburner division.
## Remarks

View File

@@ -4,7 +4,7 @@
## Bladeburner.joinBladeburnerDivision() method
Join the bladeburner division.
Join the Bladeburner division.
**Signature:**

View File

@@ -4,7 +4,7 @@
## Bladeburner.joinBladeburnerFaction() method
Join the bladeburner faction.
Join the Bladeburner faction.
**Signature:**

View File

@@ -31,7 +31,7 @@ You have to be employed in the Bladeburner division and be in BitNode-7 or have
| [getActionTime(type, name)](./bitburner.bladeburner.getactiontime.md) | Get the time to complete an action. |
| [getBlackOpNames()](./bitburner.bladeburner.getblackopnames.md) | List all black ops. |
| [getBlackOpRank(name)](./bitburner.bladeburner.getblackoprank.md) | Get black op required rank. |
| [getBonusTime()](./bitburner.bladeburner.getbonustime.md) | Get bladeburner bonus time. |
| [getBonusTime()](./bitburner.bladeburner.getbonustime.md) | Get Bladeburner bonus time. |
| [getCity()](./bitburner.bladeburner.getcity.md) | Get current city. |
| [getCityChaos(city)](./bitburner.bladeburner.getcitychaos.md) | Get chaos of a city. |
| [getCityCommunities(city)](./bitburner.bladeburner.getcitycommunities.md) | Get number of communities in a city. |
@@ -39,22 +39,24 @@ You have to be employed in the Bladeburner division and be in BitNode-7 or have
| [getContractNames()](./bitburner.bladeburner.getcontractnames.md) | List all contracts. |
| [getCurrentAction()](./bitburner.bladeburner.getcurrentaction.md) | Get current action. |
| [getGeneralActionNames()](./bitburner.bladeburner.getgeneralactionnames.md) | List all general actions. |
| [getNextBlackOp()](./bitburner.bladeburner.getnextblackop.md) | Get an object with the name and rank requirement of the next BlackOp that can be completed. |
| [getOperationNames()](./bitburner.bladeburner.getoperationnames.md) | List all operations. |
| [getRank()](./bitburner.bladeburner.getrank.md) | Get player bladeburner rank. |
| [getSkillLevel(name)](./bitburner.bladeburner.getskilllevel.md) | Get skill level. |
| [getSkillLevel(skillName)](./bitburner.bladeburner.getskilllevel.md) | Get skill level. |
| [getSkillNames()](./bitburner.bladeburner.getskillnames.md) | List all skills. |
| [getSkillPoints()](./bitburner.bladeburner.getskillpoints.md) | Get bladeburner skill points. |
| [getSkillUpgradeCost(name, count)](./bitburner.bladeburner.getskillupgradecost.md) | Get cost to upgrade skill. |
| [getStamina()](./bitburner.bladeburner.getstamina.md) | Get bladeburner stamina. |
| [getSkillUpgradeCost(skillName, count)](./bitburner.bladeburner.getskillupgradecost.md) | Get cost to upgrade skill. |
| [getStamina()](./bitburner.bladeburner.getstamina.md) | Get Bladeburner stamina. |
| [getTeamSize(type, name)](./bitburner.bladeburner.getteamsize.md) | Get team size. |
| [inBladeburner()](./bitburner.bladeburner.inbladeburner.md) | Returns whether player is a member of bladeburner division. Does not require API access. |
| [joinBladeburnerDivision()](./bitburner.bladeburner.joinbladeburnerdivision.md) | Join the bladeburner division. |
| [joinBladeburnerFaction()](./bitburner.bladeburner.joinbladeburnerfaction.md) | Join the bladeburner faction. |
| [inBladeburner()](./bitburner.bladeburner.inbladeburner.md) | Returns whether player is a member of Bladeburner division. Does not require API access. |
| [joinBladeburnerDivision()](./bitburner.bladeburner.joinbladeburnerdivision.md) | Join the Bladeburner division. |
| [joinBladeburnerFaction()](./bitburner.bladeburner.joinbladeburnerfaction.md) | Join the Bladeburner faction. |
| [nextUpdate()](./bitburner.bladeburner.nextupdate.md) | Sleep until the next Bladeburner update has happened. |
| [setActionAutolevel(type, name, autoLevel)](./bitburner.bladeburner.setactionautolevel.md) | Set an action autolevel. |
| [setActionLevel(type, name, level)](./bitburner.bladeburner.setactionlevel.md) | Set the level of an action. |
| [setTeamSize(type, name, size)](./bitburner.bladeburner.setteamsize.md) | Set team size. |
| [startAction(type, name)](./bitburner.bladeburner.startaction.md) | Start an action. |
| [stopBladeburnerAction()](./bitburner.bladeburner.stopbladeburneraction.md) | Stop current action. |
| [switchCity(city)](./bitburner.bladeburner.switchcity.md) | Travel to another city in bladeburner. |
| [upgradeSkill(name, count)](./bitburner.bladeburner.upgradeskill.md) | Upgrade skill. |
| [switchCity(city)](./bitburner.bladeburner.switchcity.md) | Travel to another city in Bladeburner. |
| [upgradeSkill(skillName, count)](./bitburner.bladeburner.upgradeskill.md) | Upgrade skill. |

View File

@@ -0,0 +1,37 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Bladeburner](./bitburner.bladeburner.md) &gt; [nextUpdate](./bitburner.bladeburner.nextupdate.md)
## Bladeburner.nextUpdate() method
Sleep until the next Bladeburner update has happened.
**Signature:**
```typescript
nextUpdate(): Promise<number>;
```
**Returns:**
Promise&lt;number&gt;
Promise that resolves to the number of milliseconds of Bladeburner time that were processed in the previous update (1000 - 5000 ms).
## Remarks
RAM cost: 1 GB
The amount of real time spent asleep between updates can vary due to "bonus time" (usually 1 second).
## Example
```js
while (true) {
const duration = await ns.bladeburner.nextUpdate();
ns.print(`Bladeburner Division completed ${ns.tFormat(duration)} of actions.`);
ns.print(`Bonus time remaining: ${ns.tFormat(ns.bladeburner.getBonusTime())}`);
// Manage the Bladeburner division
}
```

View File

@@ -31,3 +31,12 @@ RAM cost: 4 GB
Attempts to start the specified Bladeburner action. Returns true if the action was started successfully, and false otherwise.
## Example
```js
ns.bladeburner.startAction("Contracts", "Tracking")
// This will start the Bladeburner Contracts action of Tracking
```

View File

@@ -4,7 +4,7 @@
## Bladeburner.switchCity() method
Travel to another city in bladeburner.
Travel to another city in Bladeburner.
**Signature:**

View File

@@ -9,14 +9,14 @@ Upgrade skill.
**Signature:**
```typescript
upgradeSkill(name: string, count?: number): boolean;
upgradeSkill(skillName: string, count?: number): boolean;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| name | string | |
| skillName | string | Name of skill to be upgraded. Case-sensitive and must be an exact match. |
| count | number | _(Optional)_ Number of times to upgrade the skill. Defaults to 1 if not specified. |
**Returns:**

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [BladeburnerRankRequirement](./bitburner.bladeburnerrankrequirement.md) &gt; [bladeburnerRank](./bitburner.bladeburnerrankrequirement.bladeburnerrank.md)
## BladeburnerRankRequirement.bladeburnerRank property
**Signature:**
```typescript
bladeburnerRank: number;
```

View File

@@ -0,0 +1,21 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [BladeburnerRankRequirement](./bitburner.bladeburnerrankrequirement.md)
## BladeburnerRankRequirement interface
Player must have at least this rank in the Bladeburner Division.
**Signature:**
```typescript
interface BladeburnerRankRequirement
```
## Properties
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [bladeburnerRank](./bitburner.bladeburnerrankrequirement.bladeburnerrank.md) | | number | |
| [type](./bitburner.bladeburnerrankrequirement.type.md) | | "bladeburnerRank" | |

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [BladeburnerRankRequirement](./bitburner.bladeburnerrankrequirement.md) &gt; [type](./bitburner.bladeburnerrankrequirement.type.md)
## BladeburnerRankRequirement.type property
**Signature:**
```typescript
type: "bladeburnerRank";
```

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CityRequirement](./bitburner.cityrequirement.md) &gt; [city](./bitburner.cityrequirement.city.md)
## CityRequirement.city property
**Signature:**
```typescript
city: CityName;
```

View File

@@ -0,0 +1,21 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CityRequirement](./bitburner.cityrequirement.md)
## CityRequirement interface
Player must be located in this city.
**Signature:**
```typescript
interface CityRequirement
```
## Properties
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [city](./bitburner.cityrequirement.city.md) | | [CityName](./bitburner.cityname.md) | |
| [type](./bitburner.cityrequirement.type.md) | | "city" | |

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CityRequirement](./bitburner.cityrequirement.md) &gt; [type](./bitburner.cityrequirement.type.md)
## CityRequirement.type property
**Signature:**
```typescript
type: "city";
```

View File

@@ -9,7 +9,7 @@ Generate a dummy contract.
**Signature:**
```typescript
createDummyContract(type: string): void;
createDummyContract(type: string): string;
```
## Parameters
@@ -20,7 +20,9 @@ createDummyContract(type: string): void;
**Returns:**
void
string
Filename of the contract.
## Remarks

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CompanyPositionInfo](./bitburner.companypositioninfo.md) &gt; [field](./bitburner.companypositioninfo.field.md)
## CompanyPositionInfo.field property
**Signature:**
```typescript
field: JobField;
```

View File

@@ -16,6 +16,7 @@ export interface CompanyPositionInfo
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [field](./bitburner.companypositioninfo.field.md) | | [JobField](./bitburner.jobfield.md) | |
| [name](./bitburner.companypositioninfo.name.md) | | [JobName](./bitburner.jobname.md) | |
| [nextPosition](./bitburner.companypositioninfo.nextposition.md) | | [JobName](./bitburner.jobname.md) \| null | |
| [requiredReputation](./bitburner.companypositioninfo.requiredreputation.md) | | number | |

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CompanyReputationRequirement](./bitburner.companyreputationrequirement.md) &gt; [company](./bitburner.companyreputationrequirement.company.md)
## CompanyReputationRequirement.company property
**Signature:**
```typescript
company: CompanyName;
```

View File

@@ -0,0 +1,22 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CompanyReputationRequirement](./bitburner.companyreputationrequirement.md)
## CompanyReputationRequirement interface
Player must have at least this much reputation with this company.
**Signature:**
```typescript
interface CompanyReputationRequirement
```
## Properties
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [company](./bitburner.companyreputationrequirement.company.md) | | [CompanyName](./bitburner.companyname.md) | |
| [reputation](./bitburner.companyreputationrequirement.reputation.md) | | number | |
| [type](./bitburner.companyreputationrequirement.type.md) | | "companyReputation" | |

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CompanyReputationRequirement](./bitburner.companyreputationrequirement.md) &gt; [reputation](./bitburner.companyreputationrequirement.reputation.md)
## CompanyReputationRequirement.reputation property
**Signature:**
```typescript
reputation: number;
```

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CompanyReputationRequirement](./bitburner.companyreputationrequirement.md) &gt; [type](./bitburner.companyreputationrequirement.type.md)
## CompanyReputationRequirement.type property
**Signature:**
```typescript
type: "companyReputation";
```

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CompanyWorkTask](./bitburner.companyworktask.md) &gt; [companyName](./bitburner.companyworktask.companyname.md)
## CompanyWorkTask.companyName property
**Signature:**
```typescript
companyName: CompanyName;
```

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CompanyWorkTask](./bitburner.companyworktask.md) &gt; [cyclesWorked](./bitburner.companyworktask.cyclesworked.md)
## CompanyWorkTask.cyclesWorked property
**Signature:**
```typescript
cyclesWorked: number;
```

View File

@@ -0,0 +1,26 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CompanyWorkTask](./bitburner.companyworktask.md)
## CompanyWorkTask interface
Company Work
**Signature:**
```typescript
export interface CompanyWorkTask
```
## Remarks
An object representing the current work for a company
## Properties
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [companyName](./bitburner.companyworktask.companyname.md) | | [CompanyName](./bitburner.companyname.md) | |
| [cyclesWorked](./bitburner.companyworktask.cyclesworked.md) | | number | |
| [type](./bitburner.companyworktask.type.md) | | "COMPANY" | |

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CompanyWorkTask](./bitburner.companyworktask.md) &gt; [type](./bitburner.companyworktask.type.md)
## CompanyWorkTask.type property
**Signature:**
```typescript
type: "COMPANY";
```

View File

@@ -39,6 +39,7 @@ export interface Corporation extends WarehouseAPI, OfficeAPI
| [issueDividends(rate)](./bitburner.corporation.issuedividends.md) | Issue dividends |
| [issueNewShares(amount)](./bitburner.corporation.issuenewshares.md) | Issue new shares |
| [levelUpgrade(upgradeName)](./bitburner.corporation.levelupgrade.md) | Level an upgrade. |
| [nextUpdate()](./bitburner.corporation.nextupdate.md) | Sleep until the next Corporation update has happened. |
| [purchaseUnlock(upgradeName)](./bitburner.corporation.purchaseunlock.md) | Unlock an upgrade |
| [sellShares(amount)](./bitburner.corporation.sellshares.md) | Sell Shares. Transfer shares from the CEO to public traders to receive money in the player's wallet. |

View File

@@ -0,0 +1,41 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Corporation](./bitburner.corporation.md) &gt; [nextUpdate](./bitburner.corporation.nextupdate.md)
## Corporation.nextUpdate() method
Sleep until the next Corporation update has happened.
**Signature:**
```typescript
nextUpdate(): Promise<CorpStateName>;
```
**Returns:**
Promise&lt;[CorpStateName](./bitburner.corpstatename.md)<!-- -->&gt;
Promise that resolves to the name of the state that was just processed.
I.e. when the state is PURCHASE, it means purchasing has just happened. Note that this is the state just before `getCorporation().state`<!-- -->.
Possible states are START, PURCHASE, PRODUCTION, EXPORT, SALE.
## Remarks
RAM cost: 1 GB
The amount of real time spent asleep between updates can vary due to "bonus time" (usually 200 milliseconds - 2 seconds).
## Example
```js
while (true) {
const prevState = await ns.corporation.nextUpdate();
const nextState = ns.corporation.getCorporation().state;
ns.print(`Corporation finished with ${prevState}, next will be ${nextState}.`);
// Manage the Corporation
}
```

View File

@@ -26,11 +26,12 @@ interface CorporationInfo
| [issuedShares](./bitburner.corporationinfo.issuedshares.md) | | number | Amount of shares owned by public traders. Available for CEO buyback. |
| [issueNewSharesCooldown](./bitburner.corporationinfo.issuenewsharescooldown.md) | | number | Cooldown until new shares can be issued |
| [name](./bitburner.corporationinfo.name.md) | | string | Name of the corporation |
| [nextState](./bitburner.corporationinfo.nextstate.md) | | [CorpStateName](./bitburner.corpstatename.md) | <p>The next state to be processed.</p><p>I.e. when the state is PURCHASE, it means purchasing will occur during the next state transition.</p><p>Possible states are START, PURCHASE, PRODUCTION, EXPORT, SALE.</p> |
| [numShares](./bitburner.corporationinfo.numshares.md) | | number | Amount of shares owned by the CEO. |
| [prevState](./bitburner.corporationinfo.prevstate.md) | | [CorpStateName](./bitburner.corpstatename.md) | <p>The last state that got processed.</p><p>I.e. when that state is PURCHASE, it means purchasing just happened.</p><p>Possible states are START, PURCHASE, PRODUCTION, EXPORT, SALE.</p> |
| [public](./bitburner.corporationinfo.public.md) | | boolean | Indicating if the company is public |
| [revenue](./bitburner.corporationinfo.revenue.md) | | number | Revenue per second this cycle |
| [sharePrice](./bitburner.corporationinfo.shareprice.md) | | number | Price of the shares |
| [shareSaleCooldown](./bitburner.corporationinfo.sharesalecooldown.md) | | number | Cooldown until shares can be sold again |
| [state](./bitburner.corporationinfo.state.md) | | string | <p>The next state to be processed.</p><p>I.e. when the state is PURCHASE, it means purchasing will occur during the next state transition.</p><p>Possible states are START, PURCHASE, PRODUCTION, EXPORT, SALE.</p> |
| [totalShares](./bitburner.corporationinfo.totalshares.md) | | number | Total number of shares issued by this corporation. |

View File

@@ -1,8 +1,8 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CorporationInfo](./bitburner.corporationinfo.md) &gt; [state](./bitburner.corporationinfo.state.md)
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CorporationInfo](./bitburner.corporationinfo.md) &gt; [nextState](./bitburner.corporationinfo.nextstate.md)
## CorporationInfo.state property
## CorporationInfo.nextState property
The next state to be processed.
@@ -13,5 +13,5 @@ Possible states are START, PURCHASE, PRODUCTION, EXPORT, SALE.
**Signature:**
```typescript
state: string;
nextState: CorpStateName;
```

View File

@@ -0,0 +1,17 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CorporationInfo](./bitburner.corporationinfo.md) &gt; [prevState](./bitburner.corporationinfo.prevstate.md)
## CorporationInfo.prevState property
The last state that got processed.
I.e. when that state is PURCHASE, it means purchasing just happened.
Possible states are START, PURCHASE, PRODUCTION, EXPORT, SALE.
**Signature:**
```typescript
prevState: CorpStateName;
```

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CreateProgramWorkTask](./bitburner.createprogramworktask.md) &gt; [cyclesWorked](./bitburner.createprogramworktask.cyclesworked.md)
## CreateProgramWorkTask.cyclesWorked property
**Signature:**
```typescript
cyclesWorked: number;
```

View File

@@ -0,0 +1,26 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CreateProgramWorkTask](./bitburner.createprogramworktask.md)
## CreateProgramWorkTask interface
Create Program
**Signature:**
```typescript
export interface CreateProgramWorkTask
```
## Remarks
An object representing the status of the program being created
## Properties
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [cyclesWorked](./bitburner.createprogramworktask.cyclesworked.md) | | number | |
| [programName](./bitburner.createprogramworktask.programname.md) | | string | |
| [type](./bitburner.createprogramworktask.type.md) | | "CREATE\_PROGRAM" | |

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CreateProgramWorkTask](./bitburner.createprogramworktask.md) &gt; [programName](./bitburner.createprogramworktask.programname.md)
## CreateProgramWorkTask.programName property
**Signature:**
```typescript
programName: string;
```

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CreateProgramWorkTask](./bitburner.createprogramworktask.md) &gt; [type](./bitburner.createprogramworktask.type.md)
## CreateProgramWorkTask.type property
**Signature:**
```typescript
type: "CREATE_PROGRAM";
```

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CrimeTask](./bitburner.crimetask.md) &gt; [crimeType](./bitburner.crimetask.crimetype.md)
## CrimeTask.crimeType property
**Signature:**
```typescript
crimeType: CrimeType;
```

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CrimeTask](./bitburner.crimetask.md) &gt; [cyclesWorked](./bitburner.crimetask.cyclesworked.md)
## CrimeTask.cyclesWorked property
**Signature:**
```typescript
cyclesWorked: number;
```

View File

@@ -0,0 +1,26 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CrimeTask](./bitburner.crimetask.md)
## CrimeTask interface
Crime
**Signature:**
```typescript
export interface CrimeTask
```
## Remarks
An object representing the crime being commited
## Properties
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [crimeType](./bitburner.crimetask.crimetype.md) | | [CrimeType](./bitburner.crimetype.md) | |
| [cyclesWorked](./bitburner.crimetask.cyclesworked.md) | | number | |
| [type](./bitburner.crimetask.type.md) | | "CRIME" | |

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CrimeTask](./bitburner.crimetask.md) &gt; [type](./bitburner.crimetask.type.md)
## CrimeTask.type property
**Signature:**
```typescript
type: "CRIME";
```

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [EmployedByRequirement](./bitburner.employedbyrequirement.md) &gt; [company](./bitburner.employedbyrequirement.company.md)
## EmployedByRequirement.company property
**Signature:**
```typescript
company: CompanyName;
```

View File

@@ -0,0 +1,21 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [EmployedByRequirement](./bitburner.employedbyrequirement.md)
## EmployedByRequirement interface
Player must be working for this company.
**Signature:**
```typescript
interface EmployedByRequirement
```
## Properties
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [company](./bitburner.employedbyrequirement.company.md) | | [CompanyName](./bitburner.companyname.md) | |
| [type](./bitburner.employedbyrequirement.type.md) | | "employedBy" | |

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [EmployedByRequirement](./bitburner.employedbyrequirement.md) &gt; [type](./bitburner.employedbyrequirement.type.md)
## EmployedByRequirement.type property
**Signature:**
```typescript
type: "employedBy";
```

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [EveryRequirement](./bitburner.everyrequirement.md) &gt; [conditions](./bitburner.everyrequirement.conditions.md)
## EveryRequirement.conditions property
**Signature:**
```typescript
conditions: PlayerRequirement[];
```

View File

@@ -0,0 +1,21 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [EveryRequirement](./bitburner.everyrequirement.md)
## EveryRequirement interface
All sub-conditions must be satisfied.
**Signature:**
```typescript
interface EveryRequirement
```
## Properties
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [conditions](./bitburner.everyrequirement.conditions.md) | | [PlayerRequirement](./bitburner.playerrequirement.md)<!-- -->\[\] | |
| [type](./bitburner.everyrequirement.type.md) | | "everyCondition" | |

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [EveryRequirement](./bitburner.everyrequirement.md) &gt; [type](./bitburner.everyrequirement.type.md)
## EveryRequirement.type property
**Signature:**
```typescript
type: "everyCondition";
```

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [FactionWorkTask](./bitburner.factionworktask.md) &gt; [cyclesWorked](./bitburner.factionworktask.cyclesworked.md)
## FactionWorkTask.cyclesWorked property
**Signature:**
```typescript
cyclesWorked: number;
```

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [FactionWorkTask](./bitburner.factionworktask.md) &gt; [factionName](./bitburner.factionworktask.factionname.md)
## FactionWorkTask.factionName property
**Signature:**
```typescript
factionName: string;
```

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [FactionWorkTask](./bitburner.factionworktask.md) &gt; [factionWorkType](./bitburner.factionworktask.factionworktype.md)
## FactionWorkTask.factionWorkType property
**Signature:**
```typescript
factionWorkType: FactionWorkType;
```

View File

@@ -0,0 +1,27 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [FactionWorkTask](./bitburner.factionworktask.md)
## FactionWorkTask interface
Faction Work
**Signature:**
```typescript
export interface FactionWorkTask
```
## Remarks
An object representing the current work for a faction
## Properties
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [cyclesWorked](./bitburner.factionworktask.cyclesworked.md) | | number | |
| [factionName](./bitburner.factionworktask.factionname.md) | | string | |
| [factionWorkType](./bitburner.factionworktask.factionworktype.md) | | [FactionWorkType](./bitburner.factionworktype.md) | |
| [type](./bitburner.factionworktask.type.md) | | "FACTION" | |

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [FactionWorkTask](./bitburner.factionworktask.md) &gt; [type](./bitburner.factionworktask.type.md)
## FactionWorkTask.type property
**Signature:**
```typescript
type: "FACTION";
```

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [FileRequirement](./bitburner.filerequirement.md) &gt; [file](./bitburner.filerequirement.file.md)
## FileRequirement.file property
**Signature:**
```typescript
file: string;
```

View File

@@ -0,0 +1,21 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [FileRequirement](./bitburner.filerequirement.md)
## FileRequirement interface
Player must have a specific Literature or Message file on their home computer.
**Signature:**
```typescript
interface FileRequirement
```
## Properties
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [file](./bitburner.filerequirement.file.md) | | string | |
| [type](./bitburner.filerequirement.type.md) | | "file" | |

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [FileRequirement](./bitburner.filerequirement.md) &gt; [type](./bitburner.filerequirement.type.md)
## FileRequirement.type property
**Signature:**
```typescript
type: "file";
```

View File

@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Fragment](./bitburner.fragment.md) &gt; [effect](./bitburner.fragment.effect.md)
## Fragment.effect property
**Signature:**
```typescript
effect: string;
```

View File

@@ -15,6 +15,7 @@ interface Fragment
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [effect](./bitburner.fragment.effect.md) | | string | |
| [id](./bitburner.fragment.id.md) | | number | |
| [limit](./bitburner.fragment.limit.md) | | number | |
| [power](./bitburner.fragment.power.md) | | number | |

View File

@@ -0,0 +1,32 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Gang](./bitburner.gang.md) &gt; [getInstallResult](./bitburner.gang.getinstallresult.md)
## Gang.getInstallResult() method
Get the effect of an install on ascension multipliers without installing.
**Signature:**
```typescript
getInstallResult(memberName: string): GangMemberInstall | undefined;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| memberName | string | Name of member. |
**Returns:**
[GangMemberInstall](./bitburner.gangmemberinstall.md) \| undefined
Object with info about the install results on ascension multipliers, or undefined if ascension is not possible.
## Remarks
RAM cost: 2 GB
Get [GangMemberInstall](./bitburner.gangmemberinstall.md) effects on ascension multipliers for a gang member after installing without performing the install.

View File

@@ -31,6 +31,7 @@ If you are not in BitNode-2, then you must have Source-File 2 in order to use th
| [getEquipmentStats(equipName)](./bitburner.gang.getequipmentstats.md) | Get stats of an equipment. |
| [getEquipmentType(equipName)](./bitburner.gang.getequipmenttype.md) | Get type of an equipment. |
| [getGangInformation()](./bitburner.gang.getganginformation.md) | Get information about your gang. |
| [getInstallResult(memberName)](./bitburner.gang.getinstallresult.md) | Get the effect of an install on ascension multipliers without installing. |
| [getMemberInformation(name)](./bitburner.gang.getmemberinformation.md) | Get information about a specific gang member. |
| [getMemberNames()](./bitburner.gang.getmembernames.md) | List all gang members. |
| [getOtherGangInformation()](./bitburner.gang.getotherganginformation.md) | Get information about the other gangs. |
@@ -38,10 +39,11 @@ If you are not in BitNode-2, then you must have Source-File 2 in order to use th
| [getTaskNames()](./bitburner.gang.gettasknames.md) | List member task names. |
| [getTaskStats(name)](./bitburner.gang.gettaskstats.md) | Get stats of a task. |
| [inGang()](./bitburner.gang.ingang.md) | Check if you're in a gang. |
| [nextUpdate()](./bitburner.gang.nextupdate.md) | Sleeps until the next Gang update has happened. |
| [purchaseEquipment(memberName, equipName)](./bitburner.gang.purchaseequipment.md) | Purchase an equipment for a gang member. |
| [recruitMember(name)](./bitburner.gang.recruitmember.md) | Recruit a new gang member. |
| [renameMember(memberName, newName)](./bitburner.gang.renamemember.md) | Rename a Gang member to a new unique name. |
| [respectForNextRecruit()](./bitburner.gang.respectfornextrecruit.md) | Check the amount of Respect needed for your next gang recruit. |
| [setMemberTask(memberName, taskName)](./bitburner.gang.setmembertask.md) | Set gang member to task. |
| [setTerritoryWarfare(engage)](./bitburner.gang.setterritorywarfare.md) | Enable/Disable territory warfare. |
| [setTerritoryWarfare(engage)](./bitburner.gang.setterritorywarfare.md) | Enable/Disable territory clashes. |

View File

@@ -0,0 +1,37 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Gang](./bitburner.gang.md) &gt; [nextUpdate](./bitburner.gang.nextupdate.md)
## Gang.nextUpdate() method
Sleeps until the next Gang update has happened.
**Signature:**
```typescript
nextUpdate(): Promise<number>;
```
**Returns:**
Promise&lt;number&gt;
Promise that resolves to the number of milliseconds of Gang time that were processed in the previous update (2000 - 5000 ms).
## Remarks
RAM cost: 1 GB
The amount of real time spent asleep between updates can vary due to "bonus time".
## Example
```js
while (true) {
const duration = await ns.gang.nextUpdate();
ns.print(`Gang completed ${ns.tFormat(duration)} of activity.`);
ns.print(`Bonus time remaining: ${ns.tFormat(ns.gang.getBonusTime())}`);
// Manage the Gang
}
```

View File

@@ -4,7 +4,7 @@
## Gang.setTerritoryWarfare() method
Enable/Disable territory warfare.
Enable/Disable territory clashes.
**Signature:**
@@ -16,7 +16,7 @@ setTerritoryWarfare(engage: boolean): void;
| Parameter | Type | Description |
| --- | --- | --- |
| engage | boolean | Whether or not to engage in territory warfare. |
| engage | boolean | Whether or not to engage in territory clashes. |
**Returns:**
@@ -26,5 +26,5 @@ void
RAM cost: 2 GB
Set whether or not the gang should engage in territory warfare
Set whether or not the gang should engage in territory clashes

View File

@@ -25,7 +25,7 @@ interface GangGenInfo
| [respectGainRate](./bitburner.ganggeninfo.respectgainrate.md) | | number | Respect earned per game cycle |
| [territory](./bitburner.ganggeninfo.territory.md) | | number | Amount of territory held |
| [territoryClashChance](./bitburner.ganggeninfo.territoryclashchance.md) | | number | Clash chance |
| [territoryWarfareEngaged](./bitburner.ganggeninfo.territorywarfareengaged.md) | | boolean | Indicating if territory warfare is enabled |
| [territoryWarfareEngaged](./bitburner.ganggeninfo.territorywarfareengaged.md) | | boolean | Indicating if territory clashes are enabled |
| [wantedLevel](./bitburner.ganggeninfo.wantedlevel.md) | | number | Gang's wanted level |
| [wantedLevelGainRate](./bitburner.ganggeninfo.wantedlevelgainrate.md) | | number | Wanted level gained/lost per game cycle (negative for losses) |
| [wantedPenalty](./bitburner.ganggeninfo.wantedpenalty.md) | | number | Number indicating the current wanted penalty |

View File

@@ -4,7 +4,7 @@
## GangGenInfo.territoryWarfareEngaged property
Indicating if territory warfare is enabled
Indicating if territory clashes are enabled
**Signature:**

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [GangMemberInstall](./bitburner.gangmemberinstall.md) &gt; [agi](./bitburner.gangmemberinstall.agi.md)
## GangMemberInstall.agi property
Factor by which the agility ascension multiplier was decreased (newMult / oldMult)
**Signature:**
```typescript
agi: number;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [GangMemberInstall](./bitburner.gangmemberinstall.md) &gt; [cha](./bitburner.gangmemberinstall.cha.md)
## GangMemberInstall.cha property
Factor by which the charisma ascension multiplier was decreased (newMult / oldMult)
**Signature:**
```typescript
cha: number;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [GangMemberInstall](./bitburner.gangmemberinstall.md) &gt; [def](./bitburner.gangmemberinstall.def.md)
## GangMemberInstall.def property
Factor by which the defense ascension multiplier was decreased (newMult / oldMult)
**Signature:**
```typescript
def: number;
```

View File

@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [GangMemberInstall](./bitburner.gangmemberinstall.md) &gt; [dex](./bitburner.gangmemberinstall.dex.md)
## GangMemberInstall.dex property
Factor by which the dexterity ascension multiplier was decreased (newMult / oldMult)
**Signature:**
```typescript
dex: number;
```

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