mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-16 14:28:36 +02:00
Compare commits
98 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0bf01aacab | ||
|
|
69babf02b2 | ||
|
|
d61e12fdd1 | ||
|
|
4aaf845fca | ||
|
|
4f4c6fe7e5 | ||
|
|
d801743842 | ||
|
|
a5f5c81912 | ||
|
|
65082f677e | ||
|
|
ffc34387f0 | ||
|
|
6a3d22d7bd | ||
|
|
4c7f192645 | ||
|
|
6288eec6d7 | ||
|
|
3d6692b292 | ||
|
|
153dbfff12 | ||
|
|
483d554fc2 | ||
|
|
91105c6d8c | ||
|
|
373ced2efe | ||
|
|
f6871f0911 | ||
|
|
d00fad472e | ||
|
|
b655b7a44e | ||
|
|
1577467fe1 | ||
|
|
ac05135f59 | ||
|
|
47cf5c1610 | ||
|
|
e6755afcb3 | ||
|
|
27a8abbdec | ||
|
|
aba2336093 | ||
|
|
9b483bdd8a | ||
|
|
8c8af38a3a | ||
|
|
93b9a10e41 | ||
|
|
22aec2a8b9 | ||
|
|
ef334cb851 | ||
|
|
c894aba8f5 | ||
|
|
ddb10f833c | ||
|
|
733f2ccb5b | ||
|
|
dc7c9bb065 | ||
|
|
b79df29ef4 | ||
|
|
078f94cbc0 | ||
|
|
0ba337f091 | ||
|
|
fca414e7c9 | ||
|
|
ca374076b8 | ||
|
|
84c4dba1e2 | ||
|
|
fccc27fe58 | ||
|
|
65214c0322 | ||
|
|
903f812424 | ||
|
|
e8311d4f05 | ||
|
|
8c2a23f2ba | ||
|
|
fbc41d0278 | ||
|
|
e966e78b72 | ||
|
|
4d551915b3 | ||
|
|
fd5b0f8241 | ||
|
|
6bd50e6f24 | ||
|
|
9697a82e0c | ||
|
|
187226a30f | ||
|
|
2f2355942f | ||
|
|
330a32e1d0 | ||
|
|
011d5e8fd6 | ||
|
|
5277db2c65 | ||
|
|
497618dc2f | ||
|
|
0ded11af53 | ||
|
|
cf45981cd2 | ||
|
|
55e21d1e19 | ||
|
|
b6b4788845 | ||
|
|
05295598a4 | ||
|
|
cb7c75a3ce | ||
|
|
51ac4d009c | ||
|
|
f79470148e | ||
|
|
788a7549da | ||
|
|
39c5a356b1 | ||
|
|
157ff8ea88 | ||
|
|
d0e66d5be2 | ||
|
|
2ac0470cea | ||
|
|
c5ca30d796 | ||
|
|
63574bca0c | ||
|
|
44f0a77c4e | ||
|
|
87c4cbbc57 | ||
|
|
6f8a59593a | ||
|
|
82511e5030 | ||
|
|
7017f3c2f8 | ||
|
|
f0f335e09a | ||
|
|
a433c8284c | ||
|
|
9827fda4a4 | ||
|
|
dd9ace7891 | ||
|
|
1b03618555 | ||
|
|
68a8427838 | ||
|
|
7e721c144e | ||
|
|
0da9d9d3c0 | ||
|
|
8742df9588 | ||
|
|
4db4b77954 | ||
|
|
1dac133ef4 | ||
|
|
e096456c29 | ||
|
|
eba840dcd3 | ||
|
|
550829a1c3 | ||
|
|
ccf0aa4771 | ||
|
|
e7b68676f5 | ||
|
|
498bb6128a | ||
|
|
a42b72d31a | ||
|
|
489ba595f3 | ||
|
|
7ef12a0323 |
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
2
electron/package-lock.json
generated
2
electron/package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "bitburner",
|
||||
"version": "2.5.2",
|
||||
"version": "2.6.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"name": "bitburner",
|
||||
"version": "2.5.2",
|
||||
"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"
|
||||
|
||||
@@ -7,6 +7,7 @@ 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",
|
||||
|
||||
6
jest.polyfills.js
Normal file
6
jest.polyfills.js
Normal file
@@ -0,0 +1,6 @@
|
||||
const { TextEncoder, TextDecoder } = require("node:util");
|
||||
|
||||
Object.defineProperties(globalThis, {
|
||||
TextEncoder: { value: TextEncoder },
|
||||
TextDecoder: { value: TextDecoder },
|
||||
});
|
||||
@@ -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. |
|
||||
|
||||
|
||||
@@ -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:**
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
11
markdown/bitburner.companyworktask.companyname.md
Normal file
11
markdown/bitburner.companyworktask.companyname.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CompanyWorkTask](./bitburner.companyworktask.md) > [companyName](./bitburner.companyworktask.companyname.md)
|
||||
|
||||
## CompanyWorkTask.companyName property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
companyName: CompanyName;
|
||||
```
|
||||
11
markdown/bitburner.companyworktask.cyclesworked.md
Normal file
11
markdown/bitburner.companyworktask.cyclesworked.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CompanyWorkTask](./bitburner.companyworktask.md) > [cyclesWorked](./bitburner.companyworktask.cyclesworked.md)
|
||||
|
||||
## CompanyWorkTask.cyclesWorked property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
cyclesWorked: number;
|
||||
```
|
||||
26
markdown/bitburner.companyworktask.md
Normal file
26
markdown/bitburner.companyworktask.md
Normal file
@@ -0,0 +1,26 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [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" | |
|
||||
|
||||
11
markdown/bitburner.companyworktask.type.md
Normal file
11
markdown/bitburner.companyworktask.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CompanyWorkTask](./bitburner.companyworktask.md) > [type](./bitburner.companyworktask.type.md)
|
||||
|
||||
## CompanyWorkTask.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "COMPANY";
|
||||
```
|
||||
11
markdown/bitburner.createprogramworktask.cyclesworked.md
Normal file
11
markdown/bitburner.createprogramworktask.cyclesworked.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CreateProgramWorkTask](./bitburner.createprogramworktask.md) > [cyclesWorked](./bitburner.createprogramworktask.cyclesworked.md)
|
||||
|
||||
## CreateProgramWorkTask.cyclesWorked property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
cyclesWorked: number;
|
||||
```
|
||||
26
markdown/bitburner.createprogramworktask.md
Normal file
26
markdown/bitburner.createprogramworktask.md
Normal file
@@ -0,0 +1,26 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [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" | |
|
||||
|
||||
11
markdown/bitburner.createprogramworktask.programname.md
Normal file
11
markdown/bitburner.createprogramworktask.programname.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CreateProgramWorkTask](./bitburner.createprogramworktask.md) > [programName](./bitburner.createprogramworktask.programname.md)
|
||||
|
||||
## CreateProgramWorkTask.programName property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
programName: string;
|
||||
```
|
||||
11
markdown/bitburner.createprogramworktask.type.md
Normal file
11
markdown/bitburner.createprogramworktask.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CreateProgramWorkTask](./bitburner.createprogramworktask.md) > [type](./bitburner.createprogramworktask.type.md)
|
||||
|
||||
## CreateProgramWorkTask.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "CREATE_PROGRAM";
|
||||
```
|
||||
11
markdown/bitburner.crimetask.crimetype.md
Normal file
11
markdown/bitburner.crimetask.crimetype.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CrimeTask](./bitburner.crimetask.md) > [crimeType](./bitburner.crimetask.crimetype.md)
|
||||
|
||||
## CrimeTask.crimeType property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
crimeType: CrimeType;
|
||||
```
|
||||
11
markdown/bitburner.crimetask.cyclesworked.md
Normal file
11
markdown/bitburner.crimetask.cyclesworked.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CrimeTask](./bitburner.crimetask.md) > [cyclesWorked](./bitburner.crimetask.cyclesworked.md)
|
||||
|
||||
## CrimeTask.cyclesWorked property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
cyclesWorked: number;
|
||||
```
|
||||
26
markdown/bitburner.crimetask.md
Normal file
26
markdown/bitburner.crimetask.md
Normal file
@@ -0,0 +1,26 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [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" | |
|
||||
|
||||
11
markdown/bitburner.crimetask.type.md
Normal file
11
markdown/bitburner.crimetask.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [CrimeTask](./bitburner.crimetask.md) > [type](./bitburner.crimetask.type.md)
|
||||
|
||||
## CrimeTask.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "CRIME";
|
||||
```
|
||||
11
markdown/bitburner.factionworktask.cyclesworked.md
Normal file
11
markdown/bitburner.factionworktask.cyclesworked.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [FactionWorkTask](./bitburner.factionworktask.md) > [cyclesWorked](./bitburner.factionworktask.cyclesworked.md)
|
||||
|
||||
## FactionWorkTask.cyclesWorked property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
cyclesWorked: number;
|
||||
```
|
||||
11
markdown/bitburner.factionworktask.factionname.md
Normal file
11
markdown/bitburner.factionworktask.factionname.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [FactionWorkTask](./bitburner.factionworktask.md) > [factionName](./bitburner.factionworktask.factionname.md)
|
||||
|
||||
## FactionWorkTask.factionName property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
factionName: string;
|
||||
```
|
||||
11
markdown/bitburner.factionworktask.factionworktype.md
Normal file
11
markdown/bitburner.factionworktask.factionworktype.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [FactionWorkTask](./bitburner.factionworktask.md) > [factionWorkType](./bitburner.factionworktask.factionworktype.md)
|
||||
|
||||
## FactionWorkTask.factionWorkType property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
factionWorkType: FactionWorkType;
|
||||
```
|
||||
27
markdown/bitburner.factionworktask.md
Normal file
27
markdown/bitburner.factionworktask.md
Normal file
@@ -0,0 +1,27 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [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" | |
|
||||
|
||||
11
markdown/bitburner.factionworktask.type.md
Normal file
11
markdown/bitburner.factionworktask.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [FactionWorkTask](./bitburner.factionworktask.md) > [type](./bitburner.factionworktask.type.md)
|
||||
|
||||
## FactionWorkTask.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "FACTION";
|
||||
```
|
||||
32
markdown/bitburner.gang.getinstallresult.md
Normal file
32
markdown/bitburner.gang.getinstallresult.md
Normal file
@@ -0,0 +1,32 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [Gang](./bitburner.gang.md) > [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.
|
||||
|
||||
@@ -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. |
|
||||
|
||||
13
markdown/bitburner.gangmemberinstall.agi.md
Normal file
13
markdown/bitburner.gangmemberinstall.agi.md
Normal file
@@ -0,0 +1,13 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GangMemberInstall](./bitburner.gangmemberinstall.md) > [agi](./bitburner.gangmemberinstall.agi.md)
|
||||
|
||||
## GangMemberInstall.agi property
|
||||
|
||||
Factor by which the agility ascension multiplier was decreased (newMult / oldMult)
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
agi: number;
|
||||
```
|
||||
13
markdown/bitburner.gangmemberinstall.cha.md
Normal file
13
markdown/bitburner.gangmemberinstall.cha.md
Normal file
@@ -0,0 +1,13 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GangMemberInstall](./bitburner.gangmemberinstall.md) > [cha](./bitburner.gangmemberinstall.cha.md)
|
||||
|
||||
## GangMemberInstall.cha property
|
||||
|
||||
Factor by which the charisma ascension multiplier was decreased (newMult / oldMult)
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
cha: number;
|
||||
```
|
||||
13
markdown/bitburner.gangmemberinstall.def.md
Normal file
13
markdown/bitburner.gangmemberinstall.def.md
Normal file
@@ -0,0 +1,13 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GangMemberInstall](./bitburner.gangmemberinstall.md) > [def](./bitburner.gangmemberinstall.def.md)
|
||||
|
||||
## GangMemberInstall.def property
|
||||
|
||||
Factor by which the defense ascension multiplier was decreased (newMult / oldMult)
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
def: number;
|
||||
```
|
||||
13
markdown/bitburner.gangmemberinstall.dex.md
Normal file
13
markdown/bitburner.gangmemberinstall.dex.md
Normal file
@@ -0,0 +1,13 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GangMemberInstall](./bitburner.gangmemberinstall.md) > [dex](./bitburner.gangmemberinstall.dex.md)
|
||||
|
||||
## GangMemberInstall.dex property
|
||||
|
||||
Factor by which the dexterity ascension multiplier was decreased (newMult / oldMult)
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
dex: number;
|
||||
```
|
||||
13
markdown/bitburner.gangmemberinstall.hack.md
Normal file
13
markdown/bitburner.gangmemberinstall.hack.md
Normal file
@@ -0,0 +1,13 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GangMemberInstall](./bitburner.gangmemberinstall.md) > [hack](./bitburner.gangmemberinstall.hack.md)
|
||||
|
||||
## GangMemberInstall.hack property
|
||||
|
||||
Factor by which the hacking ascension multiplier was decreased (newMult / oldMult)
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
hack: number;
|
||||
```
|
||||
24
markdown/bitburner.gangmemberinstall.md
Normal file
24
markdown/bitburner.gangmemberinstall.md
Normal file
@@ -0,0 +1,24 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GangMemberInstall](./bitburner.gangmemberinstall.md)
|
||||
|
||||
## GangMemberInstall interface
|
||||
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
interface GangMemberInstall
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [agi](./bitburner.gangmemberinstall.agi.md) | | number | Factor by which the agility ascension multiplier was decreased (newMult / oldMult) |
|
||||
| [cha](./bitburner.gangmemberinstall.cha.md) | | number | Factor by which the charisma ascension multiplier was decreased (newMult / oldMult) |
|
||||
| [def](./bitburner.gangmemberinstall.def.md) | | number | Factor by which the defense ascension multiplier was decreased (newMult / oldMult) |
|
||||
| [dex](./bitburner.gangmemberinstall.dex.md) | | number | Factor by which the dexterity ascension multiplier was decreased (newMult / oldMult) |
|
||||
| [hack](./bitburner.gangmemberinstall.hack.md) | | number | Factor by which the hacking ascension multiplier was decreased (newMult / oldMult) |
|
||||
| [str](./bitburner.gangmemberinstall.str.md) | | number | Factor by which the strength ascension multiplier was decreased (newMult / oldMult) |
|
||||
|
||||
13
markdown/bitburner.gangmemberinstall.str.md
Normal file
13
markdown/bitburner.gangmemberinstall.str.md
Normal file
@@ -0,0 +1,13 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GangMemberInstall](./bitburner.gangmemberinstall.md) > [str](./bitburner.gangmemberinstall.str.md)
|
||||
|
||||
## GangMemberInstall.str property
|
||||
|
||||
Factor by which the strength ascension multiplier was decreased (newMult / oldMult)
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
str: number;
|
||||
```
|
||||
21
markdown/bitburner.go.analysis.md
Normal file
21
markdown/bitburner.go.analysis.md
Normal file
@@ -0,0 +1,21 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [Go](./bitburner.go.md) > [analysis](./bitburner.go.analysis.md)
|
||||
|
||||
## Go.analysis property
|
||||
|
||||
Tools to analyze the IPvGO subnet.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
analysis: {
|
||||
getValidMoves(): boolean[][];
|
||||
|
||||
getChains(): (number | null)[][];
|
||||
|
||||
getLiberties(): number[][];
|
||||
|
||||
getControlledEmptyNodes(): string[];
|
||||
};
|
||||
```
|
||||
55
markdown/bitburner.go.cheat.md
Normal file
55
markdown/bitburner.go.cheat.md
Normal file
@@ -0,0 +1,55 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [Go](./bitburner.go.md) > [cheat](./bitburner.go.cheat.md)
|
||||
|
||||
## Go.cheat property
|
||||
|
||||
Illicit and dangerous IPvGO tools. Not for the faint of heart. Requires Bitnode 14.2 to use.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
cheat: {
|
||||
getCheatSuccessChance(): number;
|
||||
removeRouter(
|
||||
x: number,
|
||||
y: number,
|
||||
): Promise<{
|
||||
type: "invalid" | "move" | "pass" | "gameOver";
|
||||
x: number;
|
||||
y: number;
|
||||
success: boolean;
|
||||
}>;
|
||||
playTwoMoves(
|
||||
x1: number,
|
||||
y1: number,
|
||||
x2: number,
|
||||
y2: number,
|
||||
): Promise<{
|
||||
type: "invalid" | "move" | "pass" | "gameOver";
|
||||
x: number;
|
||||
y: number;
|
||||
success: boolean;
|
||||
}>;
|
||||
|
||||
repairOfflineNode(
|
||||
x: number,
|
||||
y: number,
|
||||
): Promise<{
|
||||
type: "invalid" | "move" | "pass" | "gameOver";
|
||||
x: number;
|
||||
y: number;
|
||||
success: boolean;
|
||||
}>;
|
||||
|
||||
destroyNode(
|
||||
x: number,
|
||||
y: number,
|
||||
): Promise<{
|
||||
type: "invalid" | "move" | "pass" | "gameOver";
|
||||
x: number;
|
||||
y: number;
|
||||
success: boolean;
|
||||
}>;
|
||||
};
|
||||
```
|
||||
38
markdown/bitburner.go.getboardstate.md
Normal file
38
markdown/bitburner.go.getboardstate.md
Normal file
@@ -0,0 +1,38 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [Go](./bitburner.go.md) > [getBoardState](./bitburner.go.getboardstate.md)
|
||||
|
||||
## Go.getBoardState() method
|
||||
|
||||
Retrieves a simplified version of the board state. "X" represents black pieces, "O" white, and "." empty points. "\#" are dead nodes that are not part of the subnet. (They are not territory nor open nodes.)
|
||||
|
||||
For example, a 5x5 board might look like this:
|
||||
|
||||
```
|
||||
[
|
||||
"XX.O.",
|
||||
"X..OO",
|
||||
".XO..",
|
||||
"XXO.#",
|
||||
".XO.#",
|
||||
]
|
||||
```
|
||||
Each string represents a vertical column on the board, and each character in the string represents a point.
|
||||
|
||||
Traditional notation for Go is e.g. "B,1" referring to second ("B") column, first rank. This is the equivalent of index \[1\]\[0\].
|
||||
|
||||
Note that the \[0\]\[0\] point is shown on the bottom-left on the visual board (as is traditional), and each string represents a vertical column on the board. In other words, the printed example above can be understood to be rotated 90 degrees clockwise compared to the board UI as shown in the IPvGO subnet tab.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
getBoardState(): string[];
|
||||
```
|
||||
**Returns:**
|
||||
|
||||
string\[\]
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 4 GB
|
||||
|
||||
17
markdown/bitburner.go.getopponent.md
Normal file
17
markdown/bitburner.go.getopponent.md
Normal file
@@ -0,0 +1,17 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [Go](./bitburner.go.md) > [getOpponent](./bitburner.go.getopponent.md)
|
||||
|
||||
## Go.getOpponent() method
|
||||
|
||||
Returns the name of the opponent faction in the current subnet.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
getOpponent(): GoOpponent | "No AI" | "????????????";
|
||||
```
|
||||
**Returns:**
|
||||
|
||||
[GoOpponent](./bitburner.goopponent.md) \| "No AI" \| "????????????"
|
||||
|
||||
39
markdown/bitburner.go.makemove.md
Normal file
39
markdown/bitburner.go.makemove.md
Normal file
@@ -0,0 +1,39 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [Go](./bitburner.go.md) > [makeMove](./bitburner.go.makemove.md)
|
||||
|
||||
## Go.makeMove() method
|
||||
|
||||
Make a move on the IPvGO subnet gameboard, and await the opponent's response. x:0 y:0 represents the bottom-left corner of the board in the UI.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
makeMove(
|
||||
x: number,
|
||||
y: number,
|
||||
): Promise<{
|
||||
type: "invalid" | "move" | "pass" | "gameOver";
|
||||
x: number;
|
||||
y: number;
|
||||
success: boolean;
|
||||
}>;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| x | number | |
|
||||
| y | number | |
|
||||
|
||||
**Returns:**
|
||||
|
||||
Promise<{ type: "invalid" \| "move" \| "pass" \| "gameOver"; x: number; y: number; success: boolean; }>
|
||||
|
||||
a promise that contains if your move was valid and successful, the opponent move's x and y coordinates (or pass) in response, or an indication if the game has ended
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 4 GB
|
||||
|
||||
41
markdown/bitburner.go.md
Normal file
41
markdown/bitburner.go.md
Normal file
@@ -0,0 +1,41 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [Go](./bitburner.go.md)
|
||||
|
||||
## Go interface
|
||||
|
||||
IPvGO api
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
export interface Go
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [analysis](./bitburner.go.analysis.md) | | { getValidMoves(): boolean\[\]\[\]; getChains(): (number \| null)\[\]\[\]; getLiberties(): number\[\]\[\]; getControlledEmptyNodes(): string\[\]; } | Tools to analyze the IPvGO subnet. |
|
||||
| [cheat](./bitburner.go.cheat.md) | | { getCheatSuccessChance(): number; removeRouter( x: number, y: number, ): Promise<{ type: "invalid" \| "move" \| "pass" \| "gameOver"; x: number; y: number; success: boolean; }>; playTwoMoves( x1: number, y1: number, x2: number, y2: number, ): Promise<{ type: "invalid" \| "move" \| "pass" \| "gameOver"; x: number; y: number; success: boolean; }>; repairOfflineNode( x: number, y: number, ): Promise<{ type: "invalid" \| "move" \| "pass" \| "gameOver"; x: number; y: number; success: boolean; }>; destroyNode( x: number, y: number, ): Promise<{ type: "invalid" \| "move" \| "pass" \| "gameOver"; x: number; y: number; success: boolean; }>; } | Illicit and dangerous IPvGO tools. Not for the faint of heart. Requires Bitnode 14.2 to use. |
|
||||
|
||||
## Methods
|
||||
|
||||
| Method | Description |
|
||||
| --- | --- |
|
||||
| [getBoardState()](./bitburner.go.getboardstate.md) | <p>Retrieves a simplified version of the board state. "X" represents black pieces, "O" white, and "." empty points. "\#" are dead nodes that are not part of the subnet. (They are not territory nor open nodes.)</p><p>For example, a 5x5 board might look like this:</p>
|
||||
```
|
||||
[
|
||||
"XX.O.",
|
||||
"X..OO",
|
||||
".XO..",
|
||||
"XXO.#",
|
||||
".XO.#",
|
||||
]
|
||||
```
|
||||
<p>Each string represents a vertical column on the board, and each character in the string represents a point.</p><p>Traditional notation for Go is e.g. "B,1" referring to second ("B") column, first rank. This is the equivalent of index \[1\]\[0\].</p><p>Note that the \[0\]\[0\] point is shown on the bottom-left on the visual board (as is traditional), and each string represents a vertical column on the board. In other words, the printed example above can be understood to be rotated 90 degrees clockwise compared to the board UI as shown in the IPvGO subnet tab.</p> |
|
||||
| [getOpponent()](./bitburner.go.getopponent.md) | Returns the name of the opponent faction in the current subnet. |
|
||||
| [makeMove(x, y)](./bitburner.go.makemove.md) | Make a move on the IPvGO subnet gameboard, and await the opponent's response. x:0 y:0 represents the bottom-left corner of the board in the UI. |
|
||||
| [passTurn()](./bitburner.go.passturn.md) | <p>Pass the player's turn rather than making a move, and await the opponent's response. This ends the game if the opponent passed on the previous turn, or if the opponent passes on their following turn.</p><p>This can also be used if you pick up the game in a state where the opponent needs to play next. For example: if BitBurner was closed while waiting for the opponent to make a move, you may need to call passTurn() to get them to play their move on game start.</p> |
|
||||
| [resetBoardState(opponent, boardSize)](./bitburner.go.resetboardstate.md) | <p>Gets new IPvGO subnet with the specified size owned by the listed faction, ready for the player to make a move. This will reset your win streak if the current game is not complete and you have already made moves.</p><p>Note that some factions will have a few routers on the subnet at this state.</p><p>opponent is "Netburners" or "Slum Snakes" or "The Black Hand" or "Daedalus" or "Illuminati",</p> |
|
||||
|
||||
30
markdown/bitburner.go.passturn.md
Normal file
30
markdown/bitburner.go.passturn.md
Normal file
@@ -0,0 +1,30 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [Go](./bitburner.go.md) > [passTurn](./bitburner.go.passturn.md)
|
||||
|
||||
## Go.passTurn() method
|
||||
|
||||
Pass the player's turn rather than making a move, and await the opponent's response. This ends the game if the opponent passed on the previous turn, or if the opponent passes on their following turn.
|
||||
|
||||
This can also be used if you pick up the game in a state where the opponent needs to play next. For example: if BitBurner was closed while waiting for the opponent to make a move, you may need to call passTurn() to get them to play their move on game start.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
passTurn(): Promise<{
|
||||
type: "invalid" | "move" | "pass" | "gameOver";
|
||||
x: number;
|
||||
y: number;
|
||||
success: boolean;
|
||||
}>;
|
||||
```
|
||||
**Returns:**
|
||||
|
||||
Promise<{ type: "invalid" \| "move" \| "pass" \| "gameOver"; x: number; y: number; success: boolean; }>
|
||||
|
||||
a promise that contains if your move was valid and successful, the opponent move's x and y coordinates (or pass) in response, or an indication if the game has ended
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 0 GB
|
||||
|
||||
35
markdown/bitburner.go.resetboardstate.md
Normal file
35
markdown/bitburner.go.resetboardstate.md
Normal file
@@ -0,0 +1,35 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [Go](./bitburner.go.md) > [resetBoardState](./bitburner.go.resetboardstate.md)
|
||||
|
||||
## Go.resetBoardState() method
|
||||
|
||||
Gets new IPvGO subnet with the specified size owned by the listed faction, ready for the player to make a move. This will reset your win streak if the current game is not complete and you have already made moves.
|
||||
|
||||
Note that some factions will have a few routers on the subnet at this state.
|
||||
|
||||
opponent is "Netburners" or "Slum Snakes" or "The Black Hand" or "Daedalus" or "Illuminati",
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
resetBoardState(opponent: GoOpponent, boardSize: 5 | 7 | 9 | 13): string[] | undefined;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| opponent | [GoOpponent](./bitburner.goopponent.md) | |
|
||||
| boardSize | 5 \| 7 \| 9 \| 13 | |
|
||||
|
||||
**Returns:**
|
||||
|
||||
string\[\] \| undefined
|
||||
|
||||
a simplified version of the board state as an array of strings representing the board columns. See ns.Go.getBoardState() for full details
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 0 GB
|
||||
|
||||
12
markdown/bitburner.goopponent.md
Normal file
12
markdown/bitburner.goopponent.md
Normal file
@@ -0,0 +1,12 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GoOpponent](./bitburner.goopponent.md)
|
||||
|
||||
## GoOpponent type
|
||||
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type GoOpponent = "Netburners" | "Slum Snakes" | "The Black Hand" | "Tetrads" | "Daedalus" | "Illuminati";
|
||||
```
|
||||
11
markdown/bitburner.graftingtask.augmentation.md
Normal file
11
markdown/bitburner.graftingtask.augmentation.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GraftingTask](./bitburner.graftingtask.md) > [augmentation](./bitburner.graftingtask.augmentation.md)
|
||||
|
||||
## GraftingTask.augmentation property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
augmentation: string;
|
||||
```
|
||||
11
markdown/bitburner.graftingtask.cyclesworked.md
Normal file
11
markdown/bitburner.graftingtask.cyclesworked.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GraftingTask](./bitburner.graftingtask.md) > [cyclesWorked](./bitburner.graftingtask.cyclesworked.md)
|
||||
|
||||
## GraftingTask.cyclesWorked property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
cyclesWorked: number;
|
||||
```
|
||||
26
markdown/bitburner.graftingtask.md
Normal file
26
markdown/bitburner.graftingtask.md
Normal file
@@ -0,0 +1,26 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GraftingTask](./bitburner.graftingtask.md)
|
||||
|
||||
## GraftingTask interface
|
||||
|
||||
Faction Work
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
export interface GraftingTask
|
||||
```
|
||||
|
||||
## Remarks
|
||||
|
||||
An object representing the current grafting status
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [augmentation](./bitburner.graftingtask.augmentation.md) | | string | |
|
||||
| [cyclesWorked](./bitburner.graftingtask.cyclesworked.md) | | number | |
|
||||
| [type](./bitburner.graftingtask.type.md) | | "GRAFTING" | |
|
||||
|
||||
11
markdown/bitburner.graftingtask.type.md
Normal file
11
markdown/bitburner.graftingtask.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GraftingTask](./bitburner.graftingtask.md) > [type](./bitburner.graftingtask.type.md)
|
||||
|
||||
## GraftingTask.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "GRAFTING";
|
||||
```
|
||||
@@ -39,18 +39,22 @@
|
||||
| [CodingContract](./bitburner.codingcontract.md) | Coding Contract API |
|
||||
| [CompanyPositionInfo](./bitburner.companypositioninfo.md) | Company position requirements and salary. |
|
||||
| [CompanyReputationRequirement](./bitburner.companyreputationrequirement.md) | Player must have at least this much reputation with this company. |
|
||||
| [CompanyWorkTask](./bitburner.companyworktask.md) | Company Work |
|
||||
| [CorpConstants](./bitburner.corpconstants.md) | Corporation related constants |
|
||||
| [CorpIndustryData](./bitburner.corpindustrydata.md) | Data for an individual industry |
|
||||
| [CorpMaterialConstantData](./bitburner.corpmaterialconstantdata.md) | Corporation material information |
|
||||
| [Corporation](./bitburner.corporation.md) | Corporation API |
|
||||
| [CorporationInfo](./bitburner.corporationinfo.md) | General info about a corporation |
|
||||
| [CorpProductData](./bitburner.corpproductdata.md) | Product rating information |
|
||||
| [CreateProgramWorkTask](./bitburner.createprogramworktask.md) | Create Program |
|
||||
| [CrimeStats](./bitburner.crimestats.md) | Data representing the internal values of a crime. |
|
||||
| [CrimeTask](./bitburner.crimetask.md) | Crime |
|
||||
| [Division](./bitburner.division.md) | Corporation division |
|
||||
| [EmployedByRequirement](./bitburner.employedbyrequirement.md) | Player must be working for this company. |
|
||||
| [EquipmentStats](./bitburner.equipmentstats.md) | Object representing data representing a gang member equipment. |
|
||||
| [EveryRequirement](./bitburner.everyrequirement.md) | All sub-conditions must be satisfied. |
|
||||
| [Export](./bitburner.export.md) | Export order for a material |
|
||||
| [FactionWorkTask](./bitburner.factionworktask.md) | Faction Work |
|
||||
| [FileRequirement](./bitburner.filerequirement.md) | Player must have a specific Literature or Message file on their home computer. |
|
||||
| [Formulas](./bitburner.formulas.md) | Formulas API |
|
||||
| [Fragment](./bitburner.fragment.md) | |
|
||||
@@ -60,11 +64,14 @@
|
||||
| [GangGenInfo](./bitburner.ganggeninfo.md) | Gang general info. |
|
||||
| [GangMemberAscension](./bitburner.gangmemberascension.md) | |
|
||||
| [GangMemberInfo](./bitburner.gangmemberinfo.md) | |
|
||||
| [GangMemberInstall](./bitburner.gangmemberinstall.md) | |
|
||||
| [GangOtherInfo](./bitburner.gangotherinfo.md) | |
|
||||
| [GangOtherInfoObject](./bitburner.gangotherinfoobject.md) | |
|
||||
| [GangTaskStats](./bitburner.gangtaskstats.md) | Object representing data representing a gang member task. |
|
||||
| [GangTerritory](./bitburner.gangterritory.md) | |
|
||||
| [Go](./bitburner.go.md) | IPvGO api |
|
||||
| [Grafting](./bitburner.grafting.md) | Grafting API |
|
||||
| [GraftingTask](./bitburner.graftingtask.md) | Faction Work |
|
||||
| [HackingFormulas](./bitburner.hackingformulas.md) | Hacking formulas |
|
||||
| [HackingMultipliers](./bitburner.hackingmultipliers.md) | Hack related multipliers. |
|
||||
| [Hacknet](./bitburner.hacknet.md) | Hacknet API |
|
||||
@@ -126,6 +133,7 @@
|
||||
| [StockMarketConstants](./bitburner.stockmarketconstants.md) | Constants used for the stockmarket game mechanic. |
|
||||
| [StockOrder](./bitburner.stockorder.md) | <p>Return value of [getOrders](./bitburner.tix.getorders.md)</p><p>Keys are stock symbols, properties are arrays of [StockOrderObject](./bitburner.stockorderobject.md)</p> |
|
||||
| [StockOrderObject](./bitburner.stockorderobject.md) | Value in map of [StockOrder](./bitburner.stockorder.md) |
|
||||
| [StudyTask](./bitburner.studytask.md) | Study |
|
||||
| [TailProperties](./bitburner.tailproperties.md) | |
|
||||
| [TIX](./bitburner.tix.md) | Stock market API |
|
||||
| [UserInterface](./bitburner.userinterface.md) | User Interface API. |
|
||||
@@ -149,9 +157,9 @@
|
||||
| [CorpUnlockName](./bitburner.corpunlockname.md) | |
|
||||
| [CorpUpgradeName](./bitburner.corpupgradename.md) | |
|
||||
| [FilenameOrPID](./bitburner.filenameorpid.md) | |
|
||||
| [GoOpponent](./bitburner.goopponent.md) | |
|
||||
| [NSEnums](./bitburner.nsenums.md) | |
|
||||
| [PlayerRequirement](./bitburner.playerrequirement.md) | Structured interface to requirements for joining a faction or company. For fields with numerical value > 0, the player must have at least this value. For fields with numerical value <<!-- -->= 0, the player must have at most this value. For "not", the sub-condition must be failed instead of passed. For "someCondition", at least one sub-condition must be passed. |
|
||||
| [PortData](./bitburner.portdata.md) | |
|
||||
| [ReactNode](./bitburner.reactnode.md) | <p>A stand-in for the real React.ReactNode. A [ReactElement](./bitburner.reactelement.md) is rendered dynamically with React. number and string are displayed directly. boolean, null, and undefined are ignored and not rendered. An array of ReactNodes will display all members of that array sequentially.</p><p>Use React.createElement to make the ReactElement type, see [creating an element without jsx](https://react.dev/reference/react/createElement#creating-an-element-without-jsx) from the official React documentation.</p> |
|
||||
| [ScriptArg](./bitburner.scriptarg.md) | |
|
||||
| [SleeveBladeburnerTask](./bitburner.sleevebladeburnertask.md) | |
|
||||
@@ -164,4 +172,5 @@
|
||||
| [SleeveSupportTask](./bitburner.sleevesupporttask.md) | |
|
||||
| [SleeveSynchroTask](./bitburner.sleevesynchrotask.md) | |
|
||||
| [SleeveTask](./bitburner.sleevetask.md) | Object representing a sleeve current task. |
|
||||
| [Task](./bitburner.task.md) | Task |
|
||||
|
||||
|
||||
11
markdown/bitburner.moneysource.gang_expenses.md
Normal file
11
markdown/bitburner.moneysource.gang_expenses.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [MoneySource](./bitburner.moneysource.md) > [gang\_expenses](./bitburner.moneysource.gang_expenses.md)
|
||||
|
||||
## MoneySource.gang\_expenses property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
gang_expenses: number;
|
||||
```
|
||||
@@ -22,6 +22,7 @@ interface MoneySource
|
||||
| [codingcontract](./bitburner.moneysource.codingcontract.md) | | number | |
|
||||
| [corporation](./bitburner.moneysource.corporation.md) | | number | |
|
||||
| [crime](./bitburner.moneysource.crime.md) | | number | |
|
||||
| [gang\_expenses](./bitburner.moneysource.gang_expenses.md) | | number | |
|
||||
| [gang](./bitburner.moneysource.gang.md) | | number | |
|
||||
| [hacking](./bitburner.moneysource.hacking.md) | | number | |
|
||||
| [hacknet\_expenses](./bitburner.moneysource.hacknet_expenses.md) | | number | |
|
||||
|
||||
@@ -19,7 +19,7 @@ export interface NetscriptPort
|
||||
| [clear()](./bitburner.netscriptport.clear.md) | Empties all data from the port. |
|
||||
| [empty()](./bitburner.netscriptport.empty.md) | Check if the port is empty. |
|
||||
| [full()](./bitburner.netscriptport.full.md) | Check if the port is full. |
|
||||
| [nextWrite()](./bitburner.netscriptport.nextwrite.md) | Sleeps until the port is written to. |
|
||||
| [nextWrite()](./bitburner.netscriptport.nextwrite.md) | Waits until the port is written to. |
|
||||
| [peek()](./bitburner.netscriptport.peek.md) | Retrieve the first element from the port without removing it. |
|
||||
| [read()](./bitburner.netscriptport.read.md) | Shift an element out of the port. |
|
||||
| [tryWrite(value)](./bitburner.netscriptport.trywrite.md) | Attempt to write data to the port. |
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## NetscriptPort.nextWrite() method
|
||||
|
||||
Sleeps until the port is written to.
|
||||
Waits until the port is written to.
|
||||
|
||||
**Signature:**
|
||||
|
||||
|
||||
@@ -9,11 +9,11 @@ Retrieve the first element from the port without removing it.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
peek(): PortData;
|
||||
peek(): any;
|
||||
```
|
||||
**Returns:**
|
||||
|
||||
[PortData](./bitburner.portdata.md)
|
||||
any
|
||||
|
||||
the data read
|
||||
|
||||
|
||||
@@ -9,11 +9,11 @@ Shift an element out of the port.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
read(): PortData;
|
||||
read(): any;
|
||||
```
|
||||
**Returns:**
|
||||
|
||||
[PortData](./bitburner.portdata.md)
|
||||
any
|
||||
|
||||
the data read.
|
||||
|
||||
|
||||
@@ -9,14 +9,14 @@ Attempt to write data to the port.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
tryWrite(value: string | number): boolean;
|
||||
tryWrite(value: any): boolean;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| value | string \| number | |
|
||||
| value | any | Data to write, it's cloned with structuredClone(). |
|
||||
|
||||
**Returns:**
|
||||
|
||||
|
||||
@@ -9,18 +9,18 @@ Write data to a port.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
write(value: string | number): PortData | null;
|
||||
write(value: any): any;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| value | string \| number | |
|
||||
| value | any | Data to write, it's cloned with structuredClone(). |
|
||||
|
||||
**Returns:**
|
||||
|
||||
[PortData](./bitburner.portdata.md) \| null
|
||||
any
|
||||
|
||||
The data popped off the queue if it was full.
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ Add callback function when the script dies
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
atExit(f: () => void): void;
|
||||
atExit(f: () => void, id?: string): void;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
@@ -17,6 +17,7 @@ atExit(f: () => void): void;
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| f | () => void | |
|
||||
| id | string | _(Optional)_ |
|
||||
|
||||
**Returns:**
|
||||
|
||||
|
||||
18
markdown/bitburner.ns.go.md
Normal file
18
markdown/bitburner.ns.go.md
Normal file
@@ -0,0 +1,18 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [NS](./bitburner.ns.md) > [go](./bitburner.ns.go.md)
|
||||
|
||||
## NS.go property
|
||||
|
||||
Namespace for Go functions.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
readonly go: Go;
|
||||
```
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 0 GB
|
||||
|
||||
13
markdown/bitburner.ns.heart.md
Normal file
13
markdown/bitburner.ns.heart.md
Normal file
@@ -0,0 +1,13 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [NS](./bitburner.ns.md) > [heart](./bitburner.ns.heart.md)
|
||||
|
||||
## NS.heart property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
readonly heart: {
|
||||
break(): number;
|
||||
};
|
||||
```
|
||||
@@ -38,8 +38,10 @@ export async function main(ns) {
|
||||
| [enums](./bitburner.ns.enums.md) | | [NSEnums](./bitburner.nsenums.md) | |
|
||||
| [formulas](./bitburner.ns.formulas.md) | <code>readonly</code> | [Formulas](./bitburner.formulas.md) | Namespace for formulas functions. |
|
||||
| [gang](./bitburner.ns.gang.md) | <code>readonly</code> | [Gang](./bitburner.gang.md) | Namespace for gang functions. Contains spoilers. |
|
||||
| [go](./bitburner.ns.go.md) | <code>readonly</code> | [Go](./bitburner.go.md) | Namespace for Go functions. |
|
||||
| [grafting](./bitburner.ns.grafting.md) | <code>readonly</code> | [Grafting](./bitburner.grafting.md) | Namespace for grafting functions. Contains spoilers. |
|
||||
| [hacknet](./bitburner.ns.hacknet.md) | <code>readonly</code> | [Hacknet](./bitburner.hacknet.md) | Namespace for hacknet functions. Some of this API contains spoilers. |
|
||||
| [heart](./bitburner.ns.heart.md) | <code>readonly</code> | { break(): number; } | |
|
||||
| [infiltration](./bitburner.ns.infiltration.md) | <code>readonly</code> | [Infiltration](./bitburner.infiltration.md) | Namespace for infiltration functions. |
|
||||
| [pid](./bitburner.ns.pid.md) | <code>readonly</code> | number | The current script's PID |
|
||||
| [singularity](./bitburner.ns.singularity.md) | <code>readonly</code> | [Singularity](./bitburner.singularity.md) | Namespace for singularity functions. Contains spoilers. |
|
||||
@@ -54,7 +56,7 @@ export async function main(ns) {
|
||||
| --- | --- |
|
||||
| [alert(msg)](./bitburner.ns.alert.md) | Open up a message box. |
|
||||
| [asleep(millis)](./bitburner.ns.asleep.md) | Suspends the script for n milliseconds. Doesn't block with concurrent calls. |
|
||||
| [atExit(f)](./bitburner.ns.atexit.md) | Add callback function when the script dies |
|
||||
| [atExit(f, id)](./bitburner.ns.atexit.md) | Add callback function when the script dies |
|
||||
| [brutessh(host)](./bitburner.ns.brutessh.md) | Runs BruteSSH.exe on a server. |
|
||||
| [clear(handle)](./bitburner.ns.clear.md) | Clear data from a file. |
|
||||
| [clearLog()](./bitburner.ns.clearlog.md) | Clears the script’s logs. |
|
||||
@@ -131,6 +133,7 @@ export async function main(ns) {
|
||||
| [ls(host, substring)](./bitburner.ns.ls.md) | List files on a server. |
|
||||
| [moveTail(x, y, pid)](./bitburner.ns.movetail.md) | Move a tail window. |
|
||||
| [mv(host, source, destination)](./bitburner.ns.mv.md) | Move a file on the target server. |
|
||||
| [nextPortWrite(port)](./bitburner.ns.nextportwrite.md) | Listen for a port write. |
|
||||
| [nFormat(n, format)](./bitburner.ns.nformat.md) | Format a number using the numeral library. This function is deprecated and will be removed in 2.4. |
|
||||
| [nuke(host)](./bitburner.ns.nuke.md) | Runs NUKE.exe on a server. |
|
||||
| [peek(portNumber)](./bitburner.ns.peek.md) | Get a copy of the data from a port without popping it. |
|
||||
|
||||
30
markdown/bitburner.ns.nextportwrite.md
Normal file
30
markdown/bitburner.ns.nextportwrite.md
Normal file
@@ -0,0 +1,30 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [NS](./bitburner.ns.md) > [nextPortWrite](./bitburner.ns.nextportwrite.md)
|
||||
|
||||
## NS.nextPortWrite() method
|
||||
|
||||
Listen for a port write.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
nextPortWrite(port: number): Promise<void>;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| port | number | Port to listen for a write on. Must be a positive integer. |
|
||||
|
||||
**Returns:**
|
||||
|
||||
Promise<void>
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 0 GB
|
||||
|
||||
Sleeps until the port is written to.
|
||||
|
||||
@@ -9,7 +9,7 @@ Get a copy of the data from a port without popping it.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
peek(portNumber: number): PortData;
|
||||
peek(portNumber: number): any;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
@@ -20,7 +20,7 @@ peek(portNumber: number): PortData;
|
||||
|
||||
**Returns:**
|
||||
|
||||
[PortData](./bitburner.portdata.md)
|
||||
any
|
||||
|
||||
Data in the specified port.
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ Read data from a port.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
readPort(portNumber: number): PortData;
|
||||
readPort(portNumber: number): any;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
@@ -20,7 +20,7 @@ readPort(portNumber: number): PortData;
|
||||
|
||||
**Returns:**
|
||||
|
||||
[PortData](./bitburner.portdata.md)
|
||||
any
|
||||
|
||||
The data read.
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ spawn(script: string, threadOrOptions?: number | SpawnOptions, ...args: (string
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| script | string | Filename of script to execute. |
|
||||
| threadOrOptions | number \| [SpawnOptions](./bitburner.spawnoptions.md) | _(Optional)_ Either an integer number of threads for new script, or a [SpawnOptions](./bitburner.spawnoptions.md) object. Threads defaults to 1. |
|
||||
| threadOrOptions | number \| [SpawnOptions](./bitburner.spawnoptions.md) | _(Optional)_ Either an integer number of threads for new script, or a [SpawnOptions](./bitburner.spawnoptions.md) object. Threads defaults to 1 and spawnDelay defaults to 10,000 ms. |
|
||||
| args | (string \| number \| boolean)\[\] | Additional arguments to pass into the new script that is being run. |
|
||||
|
||||
**Returns:**
|
||||
@@ -39,6 +39,6 @@ Running this function with 0 or fewer threads will cause a runtime error.
|
||||
|
||||
```js
|
||||
//The following example will execute the script ‘foo.js’ with 10 threads, in 500 milliseconds and the arguments ‘foodnstuff’ and 90:
|
||||
ns.spawn('foo.js', 10, 500, 'foodnstuff', 90);
|
||||
ns.spawn('foo.js', {threads: 10, spawnDelay: 500}, 'foodnstuff', 90);
|
||||
```
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ Attempt to write to a port.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
tryWritePort(portNumber: number, data: string | number): boolean;
|
||||
tryWritePort(portNumber: number, data: any): boolean;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
@@ -17,7 +17,7 @@ tryWritePort(portNumber: number, data: string | number): boolean;
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| portNumber | number | Port to attempt to write to. Must be a positive integer. |
|
||||
| data | string \| number | Data to write. |
|
||||
| data | any | Data to write, it's cloned with structuredClone(). |
|
||||
|
||||
**Returns:**
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ Write data to a port.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
writePort(portNumber: number, data: string | number): PortData | null;
|
||||
writePort(portNumber: number, data: any): any;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
@@ -17,11 +17,11 @@ writePort(portNumber: number, data: string | number): PortData | null;
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| portNumber | number | Port to write to. Must be a positive integer. |
|
||||
| data | string \| number | Data to write. |
|
||||
| data | any | Data to write, it's cloned with structuredClone(). |
|
||||
|
||||
**Returns:**
|
||||
|
||||
[PortData](./bitburner.portdata.md) \| null
|
||||
any
|
||||
|
||||
The data popped off the queue if it was full, or null if it was not full.
|
||||
|
||||
|
||||
11
markdown/bitburner.player.karma.md
Normal file
11
markdown/bitburner.player.karma.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [Player](./bitburner.player.md) > [karma](./bitburner.player.karma.md)
|
||||
|
||||
## Player.karma property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
karma: number;
|
||||
```
|
||||
@@ -19,6 +19,7 @@ interface Player extends Person
|
||||
| [entropy](./bitburner.player.entropy.md) | | number | |
|
||||
| [factions](./bitburner.player.factions.md) | | string\[\] | |
|
||||
| [jobs](./bitburner.player.jobs.md) | | Partial<Record<[CompanyName](./bitburner.companyname.md)<!-- -->, [JobName](./bitburner.jobname.md)<!-- -->>> | |
|
||||
| [karma](./bitburner.player.karma.md) | | number | |
|
||||
| [location](./bitburner.player.location.md) | | string | |
|
||||
| [money](./bitburner.player.money.md) | | number | |
|
||||
| [numPeopleKilled](./bitburner.player.numpeoplekilled.md) | | number | |
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [PortData](./bitburner.portdata.md)
|
||||
|
||||
## PortData type
|
||||
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type PortData = string | number;
|
||||
```
|
||||
@@ -9,11 +9,11 @@ Get the current work the player is doing.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
getCurrentWork(): any | null;
|
||||
getCurrentWork(): Task | null;
|
||||
```
|
||||
**Returns:**
|
||||
|
||||
any \| null
|
||||
[Task](./bitburner.task.md) \| null
|
||||
|
||||
- An object representing the current work. Fields depend on the kind of work.
|
||||
|
||||
|
||||
11
markdown/bitburner.studytask.classtype.md
Normal file
11
markdown/bitburner.studytask.classtype.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [StudyTask](./bitburner.studytask.md) > [classType](./bitburner.studytask.classtype.md)
|
||||
|
||||
## StudyTask.classType property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
classType: string;
|
||||
```
|
||||
11
markdown/bitburner.studytask.cyclesworked.md
Normal file
11
markdown/bitburner.studytask.cyclesworked.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [StudyTask](./bitburner.studytask.md) > [cyclesWorked](./bitburner.studytask.cyclesworked.md)
|
||||
|
||||
## StudyTask.cyclesWorked property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
cyclesWorked: number;
|
||||
```
|
||||
11
markdown/bitburner.studytask.location.md
Normal file
11
markdown/bitburner.studytask.location.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [StudyTask](./bitburner.studytask.md) > [location](./bitburner.studytask.location.md)
|
||||
|
||||
## StudyTask.location property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
location: string;
|
||||
```
|
||||
27
markdown/bitburner.studytask.md
Normal file
27
markdown/bitburner.studytask.md
Normal file
@@ -0,0 +1,27 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [StudyTask](./bitburner.studytask.md)
|
||||
|
||||
## StudyTask interface
|
||||
|
||||
Study
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
export interface StudyTask
|
||||
```
|
||||
|
||||
## Remarks
|
||||
|
||||
An object representing the current study task
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [classType](./bitburner.studytask.classtype.md) | | string | |
|
||||
| [cyclesWorked](./bitburner.studytask.cyclesworked.md) | | number | |
|
||||
| [location](./bitburner.studytask.location.md) | | string | |
|
||||
| [type](./bitburner.studytask.type.md) | | "CLASS" | |
|
||||
|
||||
11
markdown/bitburner.studytask.type.md
Normal file
11
markdown/bitburner.studytask.type.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [StudyTask](./bitburner.studytask.md) > [type](./bitburner.studytask.type.md)
|
||||
|
||||
## StudyTask.type property
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
type: "CLASS";
|
||||
```
|
||||
19
markdown/bitburner.task.md
Normal file
19
markdown/bitburner.task.md
Normal file
@@ -0,0 +1,19 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [Task](./bitburner.task.md)
|
||||
|
||||
## Task type
|
||||
|
||||
Task
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
export type Task = StudyTask | CompanyWorkTask | CreateProgramWorkTask | CrimeTask | FactionWorkTask | GraftingTask;
|
||||
```
|
||||
**References:** [StudyTask](./bitburner.studytask.md)<!-- -->, [CompanyWorkTask](./bitburner.companyworktask.md)<!-- -->, [CreateProgramWorkTask](./bitburner.createprogramworktask.md)<!-- -->, [CrimeTask](./bitburner.crimetask.md)<!-- -->, [FactionWorkTask](./bitburner.factionworktask.md)<!-- -->, [GraftingTask](./bitburner.graftingtask.md)
|
||||
|
||||
## Remarks
|
||||
|
||||
Represents any task, such as studying, working for a faction etc.
|
||||
|
||||
211
package-lock.json
generated
211
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "bitburner",
|
||||
"version": "2.5.2",
|
||||
"version": "2.6.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "bitburner",
|
||||
"version": "2.5.2",
|
||||
"version": "2.6.0",
|
||||
"hasInstallScript": true,
|
||||
"license": "SEE LICENSE IN license.txt",
|
||||
"dependencies": {
|
||||
@@ -90,6 +90,8 @@
|
||||
"prettier": "^2.8.8",
|
||||
"raw-loader": "^4.0.2",
|
||||
"react-refresh": "^0.14.0",
|
||||
"rehype-mathjax": "^4.0.3",
|
||||
"remark-math": "^5.1.1",
|
||||
"source-map": "^0.7.4",
|
||||
"start-server-and-test": "^1.15.4",
|
||||
"style-loader": "^3.3.3",
|
||||
@@ -4465,6 +4467,12 @@
|
||||
"integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/katex": {
|
||||
"version": "0.16.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz",
|
||||
"integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/keyv": {
|
||||
"version": "3.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz",
|
||||
@@ -4480,6 +4488,12 @@
|
||||
"integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/mathjax": {
|
||||
"version": "0.0.37",
|
||||
"resolved": "https://registry.npmjs.org/@types/mathjax/-/mathjax-0.0.37.tgz",
|
||||
"integrity": "sha512-y0WSZBtBNQwcYipTU/BhgeFu1EZNlFvUNCmkMXV9kBQZq7/o5z82dNVyH3yy2Xv5zzeNeQoHSL4Xm06+EQiH+g==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/mdast": {
|
||||
"version": "3.0.13",
|
||||
"resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.13.tgz",
|
||||
@@ -9518,6 +9532,64 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/hast-util-from-dom": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-4.2.0.tgz",
|
||||
"integrity": "sha512-t1RJW/OpJbCAJQeKi3Qrj1cAOLA0+av/iPFori112+0X7R3wng+jxLA+kXec8K4szqPRGI8vPxbbpEYvvpwaeQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"hastscript": "^7.0.0",
|
||||
"web-namespaces": "^2.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/unified"
|
||||
}
|
||||
},
|
||||
"node_modules/hast-util-from-dom/node_modules/hast-util-parse-selector": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz",
|
||||
"integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/hast": "^2.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/unified"
|
||||
}
|
||||
},
|
||||
"node_modules/hast-util-from-dom/node_modules/hastscript": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz",
|
||||
"integrity": "sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/hast": "^2.0.0",
|
||||
"comma-separated-tokens": "^2.0.0",
|
||||
"hast-util-parse-selector": "^3.0.0",
|
||||
"property-information": "^6.0.0",
|
||||
"space-separated-tokens": "^2.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/unified"
|
||||
}
|
||||
},
|
||||
"node_modules/hast-util-is-element": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz",
|
||||
"integrity": "sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/hast": "^2.0.0",
|
||||
"@types/unist": "^2.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/unified"
|
||||
}
|
||||
},
|
||||
"node_modules/hast-util-parse-selector": {
|
||||
"version": "2.2.5",
|
||||
"resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz",
|
||||
@@ -9527,6 +9599,22 @@
|
||||
"url": "https://opencollective.com/unified"
|
||||
}
|
||||
},
|
||||
"node_modules/hast-util-to-text": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-3.1.2.tgz",
|
||||
"integrity": "sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/hast": "^2.0.0",
|
||||
"@types/unist": "^2.0.0",
|
||||
"hast-util-is-element": "^2.0.0",
|
||||
"unist-util-find-after": "^4.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/unified"
|
||||
}
|
||||
},
|
||||
"node_modules/hast-util-whitespace": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz",
|
||||
@@ -12713,6 +12801,31 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/katex": {
|
||||
"version": "0.16.9",
|
||||
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.9.tgz",
|
||||
"integrity": "sha512-fsSYjWS0EEOwvy81j3vRA8TEAhQhKiqO+FQaKWp0m39qwOzHVBgAUBIXWj1pB+O2W3fIpNa6Y9KSKCVbfPhyAQ==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
"https://opencollective.com/katex",
|
||||
"https://github.com/sponsors/katex"
|
||||
],
|
||||
"dependencies": {
|
||||
"commander": "^8.3.0"
|
||||
},
|
||||
"bin": {
|
||||
"katex": "cli.js"
|
||||
}
|
||||
},
|
||||
"node_modules/katex/node_modules/commander": {
|
||||
"version": "8.3.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
|
||||
"integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 12"
|
||||
}
|
||||
},
|
||||
"node_modules/keyv": {
|
||||
"version": "4.5.4",
|
||||
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
|
||||
@@ -13245,6 +13358,21 @@
|
||||
"url": "https://opencollective.com/unified"
|
||||
}
|
||||
},
|
||||
"node_modules/mdast-util-math": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-2.0.2.tgz",
|
||||
"integrity": "sha512-8gmkKVp9v6+Tgjtq6SYx9kGPpTf6FVYRa53/DLh479aldR9AyP48qeVOgNZ5X7QUK7nOy4yw7vg6mbiGcs9jWQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/mdast": "^3.0.0",
|
||||
"longest-streak": "^3.0.0",
|
||||
"mdast-util-to-markdown": "^1.3.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/unified"
|
||||
}
|
||||
},
|
||||
"node_modules/mdast-util-phrasing": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz",
|
||||
@@ -13550,6 +13678,25 @@
|
||||
"url": "https://opencollective.com/unified"
|
||||
}
|
||||
},
|
||||
"node_modules/micromark-extension-math": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-2.1.2.tgz",
|
||||
"integrity": "sha512-es0CcOV89VNS9wFmyn+wyFTKweXGW4CEvdaAca6SWRWPyYCbBisnjaHLjWO4Nszuiud84jCpkHsqAJoa768Pvg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/katex": "^0.16.0",
|
||||
"katex": "^0.16.0",
|
||||
"micromark-factory-space": "^1.0.0",
|
||||
"micromark-util-character": "^1.0.0",
|
||||
"micromark-util-symbol": "^1.0.0",
|
||||
"micromark-util-types": "^1.0.0",
|
||||
"uvu": "^0.5.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/unified"
|
||||
}
|
||||
},
|
||||
"node_modules/micromark-factory-destination": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz",
|
||||
@@ -15732,6 +15879,26 @@
|
||||
"jsesc": "bin/jsesc"
|
||||
}
|
||||
},
|
||||
"node_modules/rehype-mathjax": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/rehype-mathjax/-/rehype-mathjax-4.0.3.tgz",
|
||||
"integrity": "sha512-QIwWH9U+r54nMQklVkT1qluxhKyzdPWz9dFwgel3BrseQsWZafRTDTUj8VR8/14nFuRIV2ChuCMz4zpACPoYvg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/hast": "^2.0.0",
|
||||
"@types/mathjax": "^0.0.37",
|
||||
"hast-util-from-dom": "^4.0.0",
|
||||
"hast-util-to-text": "^3.1.0",
|
||||
"jsdom": "^20.0.0",
|
||||
"mathjax-full": "^3.0.0",
|
||||
"unified": "^10.0.0",
|
||||
"unist-util-visit": "^4.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/unified"
|
||||
}
|
||||
},
|
||||
"node_modules/relateurl": {
|
||||
"version": "0.2.7",
|
||||
"resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
|
||||
@@ -15756,6 +15923,22 @@
|
||||
"url": "https://opencollective.com/unified"
|
||||
}
|
||||
},
|
||||
"node_modules/remark-math": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/remark-math/-/remark-math-5.1.1.tgz",
|
||||
"integrity": "sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/mdast": "^3.0.0",
|
||||
"mdast-util-math": "^2.0.0",
|
||||
"micromark-extension-math": "^2.0.0",
|
||||
"unified": "^10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/unified"
|
||||
}
|
||||
},
|
||||
"node_modules/remark-parse": {
|
||||
"version": "10.0.2",
|
||||
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz",
|
||||
@@ -17371,6 +17554,20 @@
|
||||
"node": ">= 0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/unist-util-find-after": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz",
|
||||
"integrity": "sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/unist": "^2.0.0",
|
||||
"unist-util-is": "^5.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/unified"
|
||||
}
|
||||
},
|
||||
"node_modules/unist-util-generated": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz",
|
||||
@@ -17710,6 +17907,16 @@
|
||||
"minimalistic-assert": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/web-namespaces": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
|
||||
"integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
|
||||
"dev": true,
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/wooorm"
|
||||
}
|
||||
},
|
||||
"node_modules/webidl-conversions": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"name": "bitburner",
|
||||
"license": "SEE LICENSE IN license.txt",
|
||||
"version": "2.5.2",
|
||||
"version": "2.6.0",
|
||||
"main": "electron-main.js",
|
||||
"author": {
|
||||
"name": "Daniel Xie, Olivier Gagnon, et al."
|
||||
"name": "Daniel Xie, hydroflame, et al."
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/bitburner-official/bitburner-src/issues"
|
||||
@@ -97,7 +97,9 @@
|
||||
"typescript": "^5.2.2",
|
||||
"webpack": "^5.88.2",
|
||||
"webpack-cli": "^5.1.4",
|
||||
"webpack-dev-server": "^4.15.1"
|
||||
"webpack-dev-server": "^4.15.1",
|
||||
"remark-math": "^5.1.1",
|
||||
"rehype-mathjax": "^4.0.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
|
||||
@@ -118,7 +118,7 @@ export function AchievementList({ achievements, playerAchievements }: IProps): J
|
||||
<Typography color="secondary" sx={{ mt: 1 }}>
|
||||
{secret.map((item) => (
|
||||
<span key={`secret_${item.achievement.ID}`}>
|
||||
<CorruptableText content={item.achievement.ID}></CorruptableText>
|
||||
<CorruptableText content={item.achievement.ID} spoiler={true}></CorruptableText>
|
||||
<br />
|
||||
</span>
|
||||
))}
|
||||
|
||||
@@ -30,6 +30,7 @@ import { currentNodeMults } from "../BitNode/BitNodeMultipliers";
|
||||
import { workerScripts } from "../Netscript/WorkerScripts";
|
||||
|
||||
import { getRecordValues } from "../Types/Record";
|
||||
import { ServerConstants } from "../Server/data/Constants";
|
||||
|
||||
// Unable to correctly cast the JSON data into AchievementDataJson type otherwise...
|
||||
const achievementData = (<AchievementDataJson>(<unknown>data)).achievements;
|
||||
@@ -232,7 +233,7 @@ export const achievements: Record<string, Achievement> = {
|
||||
MAX_RAM: {
|
||||
...achievementData.MAX_RAM,
|
||||
Icon: "maxram",
|
||||
Condition: () => Player.getHomeComputer().maxRam === CONSTANTS.HomeComputerMaxRam,
|
||||
Condition: () => Player.getHomeComputer().maxRam === ServerConstants.HomeComputerMaxRam,
|
||||
},
|
||||
MAX_CORES: {
|
||||
...achievementData.MAX_CORES,
|
||||
|
||||
@@ -144,8 +144,15 @@ function generateStatsDescription(mults: Multipliers, programs?: string[], start
|
||||
desc += `\n-${f(-(mults.hacknet_node_purchase_cost - 1))} hacknet nodes cost`;
|
||||
}
|
||||
if (mults.hacknet_node_level_cost !== 1) {
|
||||
desc += `\n-${f(-(mults.hacknet_node_level_cost - 1))} hacknet nodes upgrade cost`;
|
||||
desc += `\n-${f(-(mults.hacknet_node_level_cost - 1))} hacknet level upgrade cost`;
|
||||
}
|
||||
if (mults.hacknet_node_ram_cost !== 1) {
|
||||
desc += `\n-${f(-(mults.hacknet_node_ram_cost - 1))} hacknet RAM cost`;
|
||||
}
|
||||
if (mults.hacknet_node_core_cost !== 1) {
|
||||
desc += `\n-${f(-(mults.hacknet_node_core_cost - 1))} hacknet core cost`;
|
||||
}
|
||||
|
||||
// Bladeburner
|
||||
if (mults.bladeburner_max_stamina !== 1) desc += `\n+${f(mults.bladeburner_max_stamina - 1)} Bladeburner Max Stamina`;
|
||||
if (mults.bladeburner_stamina_gain !== 1) {
|
||||
|
||||
@@ -1781,7 +1781,7 @@ export const Augmentations: Record<AugmentationName, Augmentation> = (() => {
|
||||
repCost: 1e4,
|
||||
moneyCost: 1e6,
|
||||
info: "Penta-dynamo-neurovascular-valve inserted in the carpal ligament, enhances dexterity.",
|
||||
stats: "This augmentation makes the Cheat Code minigame easier by allowing the opposite character.",
|
||||
stats: "This augmentation makes the Cheat Code minigame easier by showing what character will come next.",
|
||||
isSpecial: true,
|
||||
factions: [FactionName.ShadowsOfAnarchy],
|
||||
},
|
||||
|
||||
@@ -96,6 +96,7 @@ export function PlayerMultipliers(): React.ReactElement {
|
||||
mult: "Hacking Speed",
|
||||
current: Player.mults.hacking_speed,
|
||||
augmented: Player.mults.hacking_speed * mults.hacking_speed,
|
||||
bnMult: currentNodeMults.HackingSpeedMultiplier,
|
||||
},
|
||||
{
|
||||
mult: "Hacking Money",
|
||||
@@ -220,6 +221,7 @@ export function PlayerMultipliers(): React.ReactElement {
|
||||
mult: "Company Reputation Gain",
|
||||
current: Player.mults.company_rep,
|
||||
augmented: Player.mults.company_rep * mults.company_rep,
|
||||
bnMult: currentNodeMults.CompanyWorkRepGain,
|
||||
color: Settings.theme.combat,
|
||||
},
|
||||
{
|
||||
@@ -240,6 +242,7 @@ export function PlayerMultipliers(): React.ReactElement {
|
||||
mult: "Crime Success Chance",
|
||||
current: Player.mults.crime_success,
|
||||
augmented: Player.mults.crime_success * mults.crime_success,
|
||||
bnMult: currentNodeMults.CrimeSuccessRate,
|
||||
color: Settings.theme.combat,
|
||||
},
|
||||
{
|
||||
|
||||
@@ -445,6 +445,41 @@ export function initBitNodes() {
|
||||
</>
|
||||
),
|
||||
);
|
||||
BitNodes.BitNode14 = new BitNode(
|
||||
14,
|
||||
1,
|
||||
"IPvGO Subnet Takeover",
|
||||
"Territory exists only in the 'net",
|
||||
(
|
||||
<>
|
||||
In late 2070, the .org bubble burst, and most of the newly-implemented IPvGO 'net collapsed overnight. Since
|
||||
then, various factions have been fighting over small subnets to control their computational power. These subnets
|
||||
are very valuable in the right hands, if you can wrest them from their current owners. You will be opposed by
|
||||
the other factions, but you can overcome them with careful choices. Prevent their attempts to destroy your
|
||||
networks by controlling the open space in the 'net!
|
||||
<br />
|
||||
<br />
|
||||
Destroying this BitNode will give you Source-File 14, or if you already have this Source-File it will upgrade
|
||||
its level up to a maximum of 3. This Source-File grants the following benefits:
|
||||
<br />
|
||||
<br />
|
||||
Level 1: 25% increased stat multipliers from Node Power
|
||||
<br />
|
||||
Level 2: Permanently unlocks the go.cheat API
|
||||
<br />
|
||||
Level 3: 25% increased success rate for the go.cheat API
|
||||
<br />
|
||||
<br />
|
||||
This Source-File also increases the maximum favor you can gain for each faction from IPvGO by:
|
||||
<br />
|
||||
Level 1: +10
|
||||
<br />
|
||||
Level 2: +20
|
||||
<br />
|
||||
Level 3: +40
|
||||
</>
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
export const defaultMultipliers = new BitNodeMultipliers();
|
||||
@@ -909,6 +944,49 @@ export function getBitNodeMultipliers(n: number, lvl: number): BitNodeMultiplier
|
||||
WorldDaemonDifficulty: 3,
|
||||
});
|
||||
}
|
||||
case 14: {
|
||||
return new BitNodeMultipliers({
|
||||
GoPower: 4,
|
||||
|
||||
HackingLevelMultiplier: 0.4,
|
||||
HackingSpeedMultiplier: 0.3,
|
||||
|
||||
ServerMaxMoney: 0.7,
|
||||
ServerStartingMoney: 0.5,
|
||||
ServerStartingSecurity: 1.5,
|
||||
|
||||
CrimeMoney: 0.75,
|
||||
CrimeSuccessRate: 0.4,
|
||||
HacknetNodeMoney: 0.25,
|
||||
ScriptHackMoney: 0.3,
|
||||
|
||||
StrengthLevelMultiplier: 0.5,
|
||||
DexterityLevelMultiplier: 0.5,
|
||||
AgilityLevelMultiplier: 0.5,
|
||||
|
||||
AugmentationMoneyCost: 1.5,
|
||||
|
||||
InfiltrationMoney: 0.75,
|
||||
|
||||
FactionWorkRepGain: 0.2,
|
||||
CompanyWorkRepGain: 0.2,
|
||||
|
||||
CorporationValuation: 0.4,
|
||||
CorporationSoftcap: 0.9,
|
||||
CorporationDivisions: 0.8,
|
||||
|
||||
BladeburnerRank: 0.6,
|
||||
BladeburnerSkillCost: 2,
|
||||
|
||||
GangSoftcap: 0.7,
|
||||
GangUniqueAugs: 0.4,
|
||||
|
||||
StaneksGiftPowerMultiplier: 0.5,
|
||||
StaneksGiftExtraSize: -1,
|
||||
|
||||
WorldDaemonDifficulty: 5,
|
||||
});
|
||||
}
|
||||
default: {
|
||||
throw new Error("Invalid BitNodeN");
|
||||
}
|
||||
|
||||
@@ -36,6 +36,9 @@ export class BitNodeMultipliers {
|
||||
/** Influences how much money the player earns when completing working their job. */
|
||||
CompanyWorkMoney = 1;
|
||||
|
||||
/** Influences how much rep the player gains when performing work for a company. */
|
||||
CompanyWorkRepGain = 1;
|
||||
|
||||
/** Influences the valuation of corporations created by the player. */
|
||||
CorporationValuation = 1;
|
||||
|
||||
@@ -45,6 +48,9 @@ export class BitNodeMultipliers {
|
||||
/** Influences the base money gained when the player commits a crime. */
|
||||
CrimeMoney = 1;
|
||||
|
||||
/** influences the success chance of committing crimes */
|
||||
CrimeSuccessRate = 1;
|
||||
|
||||
/** Influences how many Augmentations you need in order to get invited to the Daedalus faction */
|
||||
DaedalusAugsRequirement = 30;
|
||||
|
||||
@@ -75,12 +81,18 @@ export class BitNodeMultipliers {
|
||||
/** Percentage of unique augs that the gang has. */
|
||||
GangUniqueAugs = 1;
|
||||
|
||||
/** Percentage multiplier on the effect of the IPvGO rewards **/
|
||||
GoPower = 1;
|
||||
|
||||
/** Influences the experienced gained when hacking a server. */
|
||||
HackExpGain = 1;
|
||||
|
||||
/** Influences how quickly the player's hacking level (not experience) scales */
|
||||
HackingLevelMultiplier = 1;
|
||||
|
||||
/** Influences how quickly the player's hack(), grow() and weaken() calls run */
|
||||
HackingSpeedMultiplier = 1;
|
||||
|
||||
/**
|
||||
* Influences how much money is produced by Hacknet Nodes.
|
||||
* Influences the hash rate of Hacknet Servers (unlocked in BitNode-9)
|
||||
|
||||
@@ -58,6 +58,7 @@ export const BitNodeMultipliersDisplay = ({ n, level }: IProps): React.ReactElem
|
||||
<CorporationMults n={n} mults={mults} />
|
||||
<BladeburnerMults n={n} mults={mults} />
|
||||
<StanekMults n={n} mults={mults} />
|
||||
<GoMults n={n} mults={mults} />
|
||||
</Box>
|
||||
);
|
||||
};
|
||||
@@ -351,3 +352,11 @@ function CorporationMults({ mults }: IMultsProps): React.ReactElement {
|
||||
|
||||
return <BNMultTable sectionName="Corporation" rowData={rows} mults={mults} />;
|
||||
}
|
||||
|
||||
function GoMults({ mults }: IMultsProps): React.ReactElement {
|
||||
const rows: IBNMultRows = {
|
||||
GoPower: { name: "IPvGO Node Power bonus" },
|
||||
};
|
||||
|
||||
return <BNMultTable sectionName="IPvGO Subnet Takeover" rowData={rows} mults={mults} />;
|
||||
}
|
||||
|
||||
@@ -26,16 +26,16 @@ const useStyles = makeStyles(() =>
|
||||
},
|
||||
},
|
||||
level0: {
|
||||
color: "red",
|
||||
color: Settings.theme.bnlvl0,
|
||||
},
|
||||
level1: {
|
||||
color: "yellow",
|
||||
color: Settings.theme.bnlvl1,
|
||||
},
|
||||
level2: {
|
||||
color: "#48d1cc",
|
||||
color: Settings.theme.bnlvl2,
|
||||
},
|
||||
level3: {
|
||||
color: "blue",
|
||||
color: Settings.theme.bnlvl3,
|
||||
},
|
||||
}),
|
||||
);
|
||||
@@ -241,7 +241,7 @@ export function BitverseRoot(props: IProps): React.ReactElement {
|
||||
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}> O | | / __| \ | | O </Typography>
|
||||
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}> O | O | | O / | O | | O | O </Typography>
|
||||
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}> | | | | |_/ |/ | \_ \_| | | | | </Typography>
|
||||
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}> O | | | O | | O__/ | / \__ | | O | | | O </Typography>
|
||||
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}> O | | | <BitNodePortal n={14} level={n(4)} flume={props.flume} destroyedBitNode={destroyed} /> | | O__/ | / \__ | | O | | | O </Typography>
|
||||
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}> | | | | | | | / /| O / \| | | | | | | </Typography>
|
||||
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}>O | | | \| | O / _/ | / O | |/ | | | O</Typography>
|
||||
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}>| | | |O / | | O / | O O | | \ O| | | |</Typography>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import type { PromisePair } from "../Types/Promises";
|
||||
import { AugmentationName, CityName, FactionName } from "@enums";
|
||||
import { constructorsForReviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from "../utils/JSONReviver";
|
||||
import { ActionIdentifier } from "./ActionIdentifier";
|
||||
@@ -42,8 +43,7 @@ export interface BlackOpsAttempt {
|
||||
isAvailable?: boolean;
|
||||
action?: BlackOperation;
|
||||
}
|
||||
|
||||
export const BladeburnerResolvers: ((msProcessed: number) => void)[] = [];
|
||||
export const BladeburnerPromise: PromisePair<number> = { promise: null, resolve: null };
|
||||
|
||||
export class Bladeburner {
|
||||
numHosp = 0;
|
||||
@@ -109,12 +109,23 @@ export class Bladeburner {
|
||||
this.stamina = this.maxStamina;
|
||||
this.create();
|
||||
}
|
||||
/*
|
||||
just a quick fix for the broken implementation
|
||||
BlackOperations are only initialized on game load with a count of 1
|
||||
and are not reset on BitNode change or dev menu reset of bladeburner
|
||||
*/
|
||||
resetBlackOps(): void {
|
||||
for (const [blackopName, blackop] of Object.entries(BlackOperations)) {
|
||||
blackop.count = Number(!this.blackops[blackopName]);
|
||||
}
|
||||
}
|
||||
|
||||
getCurrentCity(): City {
|
||||
return this.cities[this.city];
|
||||
}
|
||||
|
||||
calculateStaminaPenalty(): number {
|
||||
if (this.stamina === this.maxStamina) return 1;
|
||||
return Math.min(1, this.stamina / (0.5 * this.maxStamina));
|
||||
}
|
||||
|
||||
@@ -1998,6 +2009,8 @@ export class Bladeburner {
|
||||
process(): void {
|
||||
// Edge race condition when the engine checks the processing counters and attempts to route before the router is initialized.
|
||||
if (!Router.isInitialized) return;
|
||||
//safety measure this needs to be removed in a bigger refactor
|
||||
this.resetBlackOps();
|
||||
|
||||
// If the Player starts doing some other actions, set action to idle and alert
|
||||
if (!Player.hasAugmentation(AugmentationName.BladesSimulacrum, true) && Player.currentWork) {
|
||||
@@ -2085,9 +2098,11 @@ export class Bladeburner {
|
||||
}
|
||||
}
|
||||
|
||||
// Handle "nextUpdate" resolvers after this update
|
||||
for (const resolve of BladeburnerResolvers.splice(0)) {
|
||||
resolve(seconds * 1000);
|
||||
// Handle "nextUpdate" resolver after this update
|
||||
if (BladeburnerPromise.resolve) {
|
||||
BladeburnerPromise.resolve(seconds * 1000);
|
||||
BladeburnerPromise.resolve = null;
|
||||
BladeburnerPromise.promise = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2164,6 +2179,7 @@ export class Bladeburner {
|
||||
|
||||
try {
|
||||
this.startAction(actionId);
|
||||
if (!Player.hasAugmentation(AugmentationName.BladesSimulacrum, true)) Player.finishWork(true);
|
||||
workerScript.log(
|
||||
"bladeburner.startAction",
|
||||
() => `Starting bladeburner action with type '${type}' and name '${name}'`,
|
||||
@@ -2299,11 +2315,13 @@ export class Bladeburner {
|
||||
}
|
||||
|
||||
const skill = Skills[skillName];
|
||||
if (this.skills[skillName] == null) {
|
||||
return skill.calculateCost(0, count);
|
||||
} else {
|
||||
return skill.calculateCost(this.skills[skillName], count);
|
||||
const currentLevel = this.skills[skillName] ?? 0;
|
||||
|
||||
if (skill.maxLvl !== 0 && currentLevel + count > skill.maxLvl) {
|
||||
return Infinity;
|
||||
}
|
||||
|
||||
return skill.calculateCost(currentLevel, count);
|
||||
}
|
||||
|
||||
upgradeSkillNetscriptFn(skillName: string, count: number, workerScript: WorkerScript): boolean {
|
||||
|
||||
@@ -30,7 +30,7 @@ export function BlackOpPage(props: IProps): React.ReactElement {
|
||||
</Typography>
|
||||
{props.bladeburner.blackops[BlackOperationName.OperationDaedalus] ? (
|
||||
<Button sx={{ my: 1, p: 1 }} onClick={() => Router.toPage(Page.BitVerse, { flume: false, quick: false })}>
|
||||
<CorruptableText content="Destroy w0rld_d34mon"></CorruptableText>
|
||||
<CorruptableText content="Destroy w0rld_d34mon" spoiler={false}></CorruptableText>
|
||||
</Button>
|
||||
) : (
|
||||
<BlackOpList bladeburner={props.bladeburner} />
|
||||
|
||||
@@ -31,10 +31,11 @@ export function StartButton(props: IProps): React.ReactElement {
|
||||
}
|
||||
function onStart(): void {
|
||||
if (disabled) return;
|
||||
props.bladeburner.action.type = props.type;
|
||||
props.bladeburner.action.name = props.name;
|
||||
const action = new ActionIdentifier();
|
||||
action.type = props.type;
|
||||
action.name = props.name;
|
||||
if (!Player.hasAugmentation(AugmentationName.BladesSimulacrum, true)) Player.finishWork(true);
|
||||
props.bladeburner.startAction(props.bladeburner.action);
|
||||
props.bladeburner.startAction(action);
|
||||
props.rerender();
|
||||
}
|
||||
|
||||
|
||||
@@ -47,13 +47,15 @@ export function generateRandomContractOnHome(): void {
|
||||
serv.addContract(contract);
|
||||
}
|
||||
|
||||
export const generateDummyContract = (problemType: string): void => {
|
||||
export const generateDummyContract = (problemType: string): string => {
|
||||
if (!CodingContractTypes[problemType]) throw new Error(`Invalid problem type: '${problemType}'`);
|
||||
const serv = Player.getHomeComputer();
|
||||
|
||||
const contractFn = getRandomFilename(serv);
|
||||
const contract = new CodingContract(contractFn, problemType, null);
|
||||
serv.addContract(contract);
|
||||
|
||||
return contractFn;
|
||||
};
|
||||
|
||||
interface IGenerateContractParams {
|
||||
|
||||
146
src/Constants.ts
146
src/Constants.ts
@@ -12,8 +12,6 @@ export const CONSTANTS: {
|
||||
OfflineHackingIncome: number;
|
||||
CorpFactionRepRequirement: number;
|
||||
BaseFocusBonus: number;
|
||||
BaseCostFor1GBOfRamHome: number;
|
||||
BaseCostFor1GBOfRamServer: number;
|
||||
TravelCost: number;
|
||||
BaseFavorToDonate: number;
|
||||
DonateMoneyToRepDivisor: number;
|
||||
@@ -23,13 +21,6 @@ export const CONSTANTS: {
|
||||
CompanyReputationToFavorMult: number;
|
||||
NeuroFluxGovernorLevelMult: number;
|
||||
NumNetscriptPorts: number;
|
||||
HomeComputerMaxRam: number;
|
||||
ServerBaseGrowthRate: number;
|
||||
ServerMaxGrowthRate: number;
|
||||
ServerFortifyAmount: number;
|
||||
ServerWeakenAmount: number;
|
||||
PurchasedServerLimit: number;
|
||||
PurchasedServerMaxRam: number;
|
||||
MultipleAugMultiplier: number;
|
||||
TorRouterCost: number;
|
||||
HospitalCostPerHp: number;
|
||||
@@ -84,9 +75,9 @@ export const CONSTANTS: {
|
||||
Donations: number; // number of blood/plasma/palette donation the dev have verified., boosts NFG
|
||||
LatestUpdate: string;
|
||||
} = {
|
||||
VersionString: "2.5.2",
|
||||
VersionString: "2.6.0",
|
||||
isDevBranch: false,
|
||||
VersionNumber: 37,
|
||||
VersionNumber: 38,
|
||||
|
||||
/** Max level for any skill, assuming no multipliers. Determined by max numerical value in javascript for experience
|
||||
* and the skill level formula in Player.js. Note that all this means it that when experience hits MAX_INT, then
|
||||
@@ -103,10 +94,6 @@ export const CONSTANTS: {
|
||||
// How much reputation is needed to join a megacorporation's faction
|
||||
CorpFactionRepRequirement: 400e3,
|
||||
|
||||
// Base RAM costs
|
||||
BaseCostFor1GBOfRamHome: 32000,
|
||||
BaseCostFor1GBOfRamServer: 55000, //1 GB of RAM
|
||||
|
||||
// Cost to travel to another city
|
||||
TravelCost: 200e3,
|
||||
|
||||
@@ -123,16 +110,6 @@ export const CONSTANTS: {
|
||||
|
||||
NumNetscriptPorts: Number.MAX_SAFE_INTEGER,
|
||||
|
||||
// Server-related constants
|
||||
HomeComputerMaxRam: 1073741824, // 2 ^ 30
|
||||
ServerBaseGrowthRate: 1.03, // Unadjusted Growth rate
|
||||
ServerMaxGrowthRate: 1.0035, // Maximum possible growth rate (max rate accounting for server security)
|
||||
ServerFortifyAmount: 0.002, // Amount by which server's security increases when its hacked/grown
|
||||
ServerWeakenAmount: 0.05, // Amount by which server's security decreases when weakened
|
||||
|
||||
PurchasedServerLimit: 25,
|
||||
PurchasedServerMaxRam: 1048576, // 2^20
|
||||
|
||||
// Augmentation Constants
|
||||
MultipleAugMultiplier: 1.9,
|
||||
|
||||
@@ -219,57 +196,90 @@ export const CONSTANTS: {
|
||||
|
||||
InfiniteLoopLimit: 2000,
|
||||
|
||||
Donations: 113,
|
||||
Donations: 151,
|
||||
|
||||
// Also update doc/source/changelog.rst
|
||||
LatestUpdate: `
|
||||
## v2.5.2 - 26 December 2023
|
||||
## v2.6.0 - IPvGO: 5 Mar 2024
|
||||
|
||||
### MAJOR ADDITIONS
|
||||
|
||||
- A new minigame IPvGO, based on the game Go. Visit DefComm in New Tokyo or the CIA in Sector-12 for access. Documentation for the mechanic is available ingame under "How to Play" once the mechanic is available. (@ficocelliguy)
|
||||
- A new BitNode has been added which focuses on the IPvGO mechanic (@ficocelliguy)
|
||||
|
||||
### API
|
||||
|
||||
- Added limit of 1e9 for additionalMsec property of HGWOptions (@d0sboots)
|
||||
- ns.share effect is now boosted by host server core count (@TheAimMan)
|
||||
- Fix a bug with HGWOptions that caused the default value to be 1 thread even for scripts running multiple threads (@DJMatch3000)
|
||||
- (Singularity) ns.singularity.applyToCompany now returns the JobName if a job was obtained, or null otherwise - previously was boolean (@jjclark1982)
|
||||
- (Singularity) ns.singularity.getCurrentWork now requires access to the singularity API (@TheAimMan)
|
||||
- (Singularity) Added ns.singularity.getFactionInviteRequirements (@jjclark1982)
|
||||
- (Stanek) ns.stanek.chargeFragment is now boosted by host server core count (@TheAimMan)
|
||||
|
||||
### BUGFIX
|
||||
|
||||
- (Bladeburner) Operation team size modal now handles keyboard submission correctly (@Snarling)
|
||||
- (Corporation) Fixed an issue with Warehouse size being out of sync following prduct sale (@Kelenius)
|
||||
- (Factions) Fixed some display order issues, and possible multiple entries for a faction (@jjclark1982)
|
||||
- (Factions) Fixed an issue with certain factions not becoming "known" when joining them (@jjclark1982)
|
||||
- (Grafting) Entropy now has the correct negative effect on hacknet multipliers (@TheAimMan)
|
||||
- (Hashnet) Fixed an issue where the SF9.3 reward server had an incorrect number of cores (@cigarmemr)
|
||||
- (Terminal) Fixed a bug with script autocompletion when the script is inside a subdirectory (@draughtnyan)
|
||||
|
||||
### MISC
|
||||
|
||||
- Added basic protection for certain global values that could cause a recovery screen if reassigned (@Snarling)
|
||||
- Fixed conditions for an easter egg message (@cigarmemr)
|
||||
- (Bitverse) Changed listed difficulty for BN3 to "hard"
|
||||
- (CodingContract) Reduce incidence of $0 coding contract rewards in circumstances where the reward would be $0 (@trambelus)
|
||||
- (Corporation) Added better accounting of funds transactions (@jjclark1982)
|
||||
- (Corporation) Remove cooldown on starting over corporation, but maintain remaining cooldown for selling shares (@jjclark1982)
|
||||
- (Corporation) Removed some legacy code that was not doing anything (@catloversg)
|
||||
- (DevMenu) Added the ability to add/remove sleeves from the dev menu (@Sphyxis, @Snarling)
|
||||
- (Docs) Fixed various typos in documentation (@tdpeuter)
|
||||
- (Factions) Added a documentation page for faction join requirements (@jjclark1982)
|
||||
- (Formulas) Added clarification for the unit of time returned by hackTime, growTime, and weakenTime functions (@d0sboots)
|
||||
- (Ports) Promises from port.nextWrite resolve in the same order they were created, instead of reverse order (@LJNeon)
|
||||
- (Sleeve) Add task counters for Crime and Bladeburner tasks (@TheAimMan)
|
||||
- (Stock) Add some randomization to timing for stockmarket forecast change events (@Caldwell-74)
|
||||
- (Terminal) Added the --all option for unalias, to allow removing all aliases (@Sphyxis)
|
||||
- Nerf noodle bar (various contributors)
|
||||
- (Bladeburner) ns.bladeburner.getSkillUpgradeCost now returns infinity if requesting a cost above the maximum skill level (@Semanual)
|
||||
- (CodingContract) Fixed an issue where ns.codingcontract.getData was leaking internal arrays when contract data was a 2-d array (@LJNeon)
|
||||
- (CodingContract) ns.codingcontract.createDummyContract now returns the filename of the created contract (@Spartelfant)
|
||||
- (Gang) Added ns.gang.getInstallResult for determining the effect an augmentation install will have on gang member ascension multipliers (@LJNeon)
|
||||
- (Go) Added the ns.go API, which allows interaction with the new IPvGO mechanic. While this is in development, the API may undergo changes (@ficocelliguy)
|
||||
- (Hashnet) Fixed a bug that allowed spending negative hashes (@yichizhng)
|
||||
- (Ports) Added ns.nextPortWrite, which allows waiting for the next write to a port without creating a port handle object (@LJNeon)
|
||||
- (Ports) Ports now support all clonable data (@LJNeon)
|
||||
- (Singularity) Add type information for ns.singularity.getCurrentWork return value (@Semanual)
|
||||
- (Stanek) Fix ns.stanek.acceptGift which was not working in 2.5.2 (@jjclark1982)
|
||||
- ns.getPlayer now also provides the player's karma. ns.heart.break is no longer a hidden function (@LJNeon)
|
||||
- ns.atExit can be provided a string id as a second parameter, to set multiple atExit callbacks for the same script (@shyguy1412)
|
||||
- Improved the efficiency and accuracy of growth formulas (@d0sboots)
|
||||
- ns.formatNumber now throws an error if specifying a suffixStart less than 1000 (@TheAimMan)
|
||||
- HGWOptions now accepts a non-integer number of threads (@Caldwell-74)
|
||||
- Fixed outdated docs for ns.spawn() (@adeilt)
|
||||
- Fixed ns.serverExists returning incorrect value for an endgame server (@cigarmemr)
|
||||
- Refactored weaken effect calculation (@Caldwell-74)
|
||||
|
||||
### UI
|
||||
|
||||
- Message for buying TOR router no longer implies the need to connect to darkweb (@Kelenius)
|
||||
- (Company) Rework of the job location details (@jjclark1982)
|
||||
- (Company) Added previous/next buttons for job location if the player has multiple jobs (@Kelenius)
|
||||
- (Factions) Only show warning about enemy factions for factions with enemies (@jjclark1982)
|
||||
- (Stanek) Improved the display of the Stanek grid (@Kelenius)
|
||||
- (Augmentations) Fixed some missing description text for Hacknet multipliers (@jjclark1982)
|
||||
- (Corporation) Align columns correctly in warehouse breakdown table (@jjclark1982)
|
||||
- (Corporation) Several typo fixes in Corporation modals (@cigarmemr)
|
||||
- (Documentation) Ingame documentation now displays line breaks inside tables correctly (@Snarling)
|
||||
- (Documentation) Added a documentation page for converting .script to .js (@LJNeon, @jjclark1982, @Snarling)
|
||||
- (Documentation) Script editor doc button points to correct docs (@LJNeon)
|
||||
- (Hashnet) Hash upgrade descriptions use proper number formatting options (@Snarling)
|
||||
- (Hacknet) Hacknet display shows a dynamic amount of columns based on screen width (@shyguy1412)
|
||||
- (Infiltration) Changed how the CheatCodeGame is displayed (@alutman, @Snarling)
|
||||
- (Infiltration) If currently performing faction work, UI defaults to trading info for rep with that faction (@LJNeon)
|
||||
- (Sleeve) If intelligence is unlocked, sleeve intelligence is shown in the UI (@Caldwell-74)
|
||||
- (Stockmarket) Changed color of stocks increasing in value (@Semanual)
|
||||
- (Terminal) Improved scroll behavior on the Terminal (@Snarling)
|
||||
- (Theme) Added 3 new theme elements to properly support light themes (@adeilt)
|
||||
- Added a tail render interval setting, changing how frequently tail windows redraw their contents (@Caldwell-74)
|
||||
- Reorganization of some content and sorting of scripts on the Active Scripts page (@Snarling, @TheAimMan)
|
||||
- "Disable Text Effects" option also disables the corrupted text display (@draughtnyan)
|
||||
- fl1ght.exe now displays the related requirements in a more readable way (@TheAimMan, @LJNeon)
|
||||
- Miscellaneous wording fixes (@cigarmemr)
|
||||
|
||||
### MISC
|
||||
|
||||
- (CodingContract) Improve parsing of player input for arrays in coding contracts (@rocket3989)
|
||||
- (Corporation) Fix an incorrect demand range for Minerals (@catloversg)
|
||||
- (Corporation) Added ingame documentation (@catloversg)
|
||||
- (Corporation) Divisions impact on corporation valuation is now based on number of offices and warehouses (@catloversg)
|
||||
- (Corporation) Improve performance of calculations (@catloversg)
|
||||
- (Bladeburner) Band-aid fix Blops count and action stopping (@Caldwell-74)
|
||||
- (Gang) Add separate money tracking for gang expenses (@deansvendsen)
|
||||
- (Ports) Port objects no longer track a separate promise for every use of nextWrite (@Snarling)
|
||||
- (Ports) Fixed a crashing bug related to the changes above (@Jman420)
|
||||
- (RemoteAPI) Remote API can be targeted to a remote device instead of the default of localhost (@Specker)
|
||||
- (RemoteAPI) Added a getAllServers method (@shyguy1412)
|
||||
- (ScriptEditor) When importing from other files that are also open in the editor, type information is now available in the IDE (@shyguy1412)
|
||||
- (ScriptEditor) Links from "ls" are now tied to that host, instead of your connected machine (@LJNeon)
|
||||
- (ScriptEditor) Script "models" in the script editor are now properly disposed (@Caldwell-74)
|
||||
- (Terminal) Add --ram-override flag to the run command (@LJNeon)
|
||||
- (Terminal) Fix incorrect help text for rm command (@LJNeon)
|
||||
- Add a helper for clamping numbers to an allowable range, and use this for player skill formulas (@Caldwell-74)
|
||||
- Protect against renaming servers to invalid names (@LJNeon)
|
||||
- All running scripts are killed upon entering the BitVerse (@LJNeon)
|
||||
- Scripts with the "temporary" flag set do not populate the Recently Killed script list on script death (@TheAimMan)
|
||||
- Fix an issue with offline income for scripts (@Caldwell-74)
|
||||
- Various "nextUpdate" promises are not tracked internally as a single promise instead of an array of promises (@Caldwell-74, @LJNeon)
|
||||
- Fix inconsistent importing of the arg library (@catloversg)
|
||||
- Clarify some information in the CONTRIBUTING.md file (@deansvendsen)
|
||||
- Internal changes to method used for cloning objects (@LJNeon)
|
||||
- Rearrange some internal constants (@Caldwell-74)
|
||||
- b1t_flum3.exe can be ran in "quick" mode (@TheAimMan)
|
||||
- Nerf noodle bar (various)
|
||||
- Nerf noodle bar moar (@Caldwell-74)
|
||||
`,
|
||||
};
|
||||
|
||||
@@ -43,14 +43,16 @@ export function NewDivision(corporation: Corporation, industry: IndustryType, na
|
||||
type: industry,
|
||||
}),
|
||||
);
|
||||
corporation.numberOfOfficesAndWarehouses += 2;
|
||||
}
|
||||
}
|
||||
|
||||
export function removeDivision(corporation: Corporation, name: string): number {
|
||||
const division = corporation.divisions.get(name);
|
||||
if (!division) throw new Error("There is no division called " + name);
|
||||
const price = division.calculateRecoupableValue();
|
||||
corporation.divisions.delete(name);
|
||||
corporation.numberOfOfficesAndWarehouses -= getRecordValues(division.offices).length;
|
||||
corporation.numberOfOfficesAndWarehouses -= getRecordValues(division.warehouses).length;
|
||||
|
||||
// We also need to remove any exports that were pointing to the old division
|
||||
for (const otherDivision of corporation.divisions.values()) {
|
||||
@@ -63,6 +65,7 @@ export function removeDivision(corporation: Corporation, name: string): number {
|
||||
}
|
||||
}
|
||||
}
|
||||
const price = division.calculateRecoupableValue();
|
||||
corporation.gainFunds(price, "division");
|
||||
return price;
|
||||
}
|
||||
@@ -79,6 +82,7 @@ export function purchaseOffice(corporation: Corporation, division: Division, cit
|
||||
city: city,
|
||||
size: corpConstants.officeInitialSize,
|
||||
});
|
||||
++corporation.numberOfOfficesAndWarehouses;
|
||||
}
|
||||
|
||||
export function IssueDividends(corporation: Corporation, rate: number): void {
|
||||
@@ -397,6 +401,7 @@ export function purchaseWarehouse(corp: Corporation, division: Division, city: C
|
||||
loc: city,
|
||||
size: corpConstants.warehouseInitialSize,
|
||||
});
|
||||
++corp.numberOfOfficesAndWarehouses;
|
||||
}
|
||||
|
||||
export function UpgradeWarehouseCost(warehouse: Warehouse, amt: number): number {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import type { PromisePair } from "../Types/Promises";
|
||||
import { Player } from "@player";
|
||||
import { CorpStateName, InvestmentOffer } from "@nsdefs";
|
||||
import { CorpUnlockName, CorpUpgradeName, LiteratureName } from "@enums";
|
||||
@@ -18,8 +19,9 @@ import { JSONMap, JSONSet } from "../Types/Jsonable";
|
||||
import { formatMoney } from "../ui/formatNumber";
|
||||
import { isPositiveInteger } from "../types";
|
||||
import { createEnumKeyedRecord, getRecordValues } from "../Types/Record";
|
||||
import { getKeyList } from "../utils/helpers/getKeyList";
|
||||
|
||||
export const CorporationResolvers: ((prevState: CorpStateName) => void)[] = [];
|
||||
export const CorporationPromise: PromisePair<CorpStateName> = { promise: null, resolve: null };
|
||||
|
||||
interface ICorporationParams {
|
||||
name?: string;
|
||||
@@ -71,6 +73,9 @@ export class Corporation {
|
||||
|
||||
state = new CorporationState();
|
||||
|
||||
// This is used for calculating cycle valuation.
|
||||
numberOfOfficesAndWarehouses = 0;
|
||||
|
||||
constructor(params: ICorporationParams = {}) {
|
||||
this.name = params.name || "The Corporation";
|
||||
this.seedFunded = params.seedFunded ?? false;
|
||||
@@ -175,9 +180,11 @@ export class Corporation {
|
||||
|
||||
this.state.incrementState();
|
||||
|
||||
// Handle "nextUpdate" resolvers after this update
|
||||
for (const resolve of CorporationResolvers.splice(0)) {
|
||||
resolve(state);
|
||||
// Handle "nextUpdate" resolver after this update
|
||||
if (CorporationPromise.resolve) {
|
||||
CorporationPromise.resolve(state);
|
||||
CorporationPromise.resolve = null;
|
||||
CorporationPromise.promise = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -203,14 +210,16 @@ export class Corporation {
|
||||
}
|
||||
|
||||
val = this.funds + assetDelta * 85e3;
|
||||
val *= Math.pow(1.1, this.divisions.size);
|
||||
// Math.pow(1.1, 1 / 12) = 1.0079741404289038
|
||||
val *= Math.pow(1.0079741404289038, this.numberOfOfficesAndWarehouses);
|
||||
val = Math.max(val, 0);
|
||||
} else {
|
||||
val = 10e9 + this.funds / 3;
|
||||
if (assetDelta > 0) {
|
||||
val += assetDelta * 315e3;
|
||||
}
|
||||
val *= Math.pow(1.1, this.divisions.size);
|
||||
// Math.pow(1.1, 1 / 12) = 1.0079741404289038
|
||||
val *= Math.pow(1.0079741404289038, this.numberOfOfficesAndWarehouses);
|
||||
val -= val % 1e6; //Round down to nearest million
|
||||
}
|
||||
if (val < 10e9) val = 10e9; // Base valuation
|
||||
@@ -452,14 +461,23 @@ export class Corporation {
|
||||
return;
|
||||
}
|
||||
|
||||
// Exclude numberOfOfficesAndWarehouses
|
||||
static includedProperties = getKeyList(Corporation, { removedKeys: ["numberOfOfficesAndWarehouses"] });
|
||||
|
||||
/** Serialize the current object to a JSON save state. */
|
||||
toJSON(): IReviverValue {
|
||||
return Generic_toJSON("Corporation", this);
|
||||
return Generic_toJSON("Corporation", this, Corporation.includedProperties);
|
||||
}
|
||||
|
||||
/** Initializes a Corporation object from a JSON save state. */
|
||||
static fromJSON(value: IReviverValue): Corporation {
|
||||
return Generic_fromJSON(Corporation, value.data);
|
||||
const corporation = Generic_fromJSON(Corporation, value.data, Corporation.includedProperties);
|
||||
// numberOfOfficesAndWarehouses is not in the included properties and must be calculated
|
||||
for (const division of corporation.divisions.values()) {
|
||||
corporation.numberOfOfficesAndWarehouses += getRecordValues(division.offices).length;
|
||||
corporation.numberOfOfficesAndWarehouses += getRecordValues(division.warehouses).length;
|
||||
}
|
||||
return corporation;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ export const MaterialInfo: Record<CorpMaterialName, CorpMaterialConstantData> =
|
||||
name: "Minerals",
|
||||
size: 0.04,
|
||||
demandBase: 75,
|
||||
demandRange: [90, 60],
|
||||
demandRange: [60, 90],
|
||||
competitionBase: 80,
|
||||
competitionRange: [65, 95],
|
||||
baseCost: 500,
|
||||
|
||||
@@ -22,6 +22,7 @@ import { purchaseWarehouse } from "../Actions";
|
||||
import { useCorporation, useDivision } from "./Context";
|
||||
import { gameCyclesPerCorpStateCycle } from "../data/Constants";
|
||||
import { ButtonWithTooltip } from "../../ui/Components/ButtonWithTooltip";
|
||||
import { StatsTable } from "../../ui/React/StatsTable";
|
||||
|
||||
interface WarehouseProps {
|
||||
corp: Corporation;
|
||||
@@ -95,25 +96,21 @@ function WarehouseRoot(props: WarehouseProps): React.ReactElement {
|
||||
}
|
||||
}
|
||||
|
||||
const breakdownItems: string[] = [];
|
||||
const breakdownItems: string[][] = [];
|
||||
for (const matName of corpConstants.materialNames) {
|
||||
const mat = props.warehouse.materials[matName];
|
||||
if (mat.stored === 0) continue;
|
||||
breakdownItems.push(`${matName}: ${formatMaterialSize(mat.stored * MaterialInfo[matName].size)}`);
|
||||
breakdownItems.push([`${matName}:`, `${formatMaterialSize(mat.stored * MaterialInfo[matName].size)}`]);
|
||||
}
|
||||
|
||||
for (const [prodName, product] of division.products) {
|
||||
breakdownItems.push(
|
||||
`${prodName}: ${formatMaterialSize(product.cityData[props.currentCity].stored * product.size)}`,
|
||||
);
|
||||
breakdownItems.push([
|
||||
`${prodName}:`,
|
||||
`${formatMaterialSize(product.cityData[props.currentCity].stored * product.size)}`,
|
||||
]);
|
||||
}
|
||||
|
||||
let breakdown;
|
||||
if (breakdownItems.length > 0) {
|
||||
breakdown = breakdownItems.map((item, i) => <p key={i}>{item}</p>);
|
||||
} else {
|
||||
breakdown = <>No items in storage.</>;
|
||||
}
|
||||
const breakdown = breakdownItems.length > 0 ? <StatsTable rows={breakdownItems} /> : <>No items in storage.</>;
|
||||
|
||||
return (
|
||||
<Paper>
|
||||
|
||||
@@ -144,7 +144,7 @@ export function PurchaseMaterialModal(props: IProps): React.ReactElement {
|
||||
<Typography>
|
||||
Enter the amount of {props.mat.name} you would like to purchase per second. This material's cost changes
|
||||
constantly.
|
||||
{props.disablePurchaseLimit ? "Note: Purchase amount is disabled as smart supply is enabled" : ""}
|
||||
{props.disablePurchaseLimit ? " Note: Purchase amount is disabled as smart supply is enabled" : ""}
|
||||
</Typography>
|
||||
<TextField
|
||||
value={buyAmt}
|
||||
|
||||
@@ -2,6 +2,8 @@ import React, { useState } from "react";
|
||||
|
||||
import { Modal } from "../../../ui/React/Modal";
|
||||
import { Money } from "../../../ui/React/Money";
|
||||
import { MoneyRate } from "../../../ui/React/MoneyRate";
|
||||
import { StatsTable } from "../../../ui/React/StatsTable";
|
||||
import Typography from "@mui/material/Typography";
|
||||
import Button from "@mui/material/Button";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
@@ -34,7 +36,7 @@ export function SellDivisionModal(props: IProps): React.ReactElement {
|
||||
props.onClose();
|
||||
dialogBoxCreate(
|
||||
<Typography>
|
||||
Sold <b>{divisionToSell.name}</b> for <Money money={soldPrice} />, you now have space for
|
||||
Sold <b>{divisionToSell.name}</b> for <Money money={soldPrice} />, you now have space for{" "}
|
||||
{corp.maxDivisions - corp.divisions.size} more divisions.
|
||||
</Typography>,
|
||||
);
|
||||
@@ -56,12 +58,20 @@ export function SellDivisionModal(props: IProps): React.ReactElement {
|
||||
))}
|
||||
</Select>
|
||||
<Typography>Division {divisionToSell.name} has:</Typography>
|
||||
<Typography>
|
||||
Profit: <Money money={(divisionToSell.lastCycleRevenue - divisionToSell.lastCycleExpenses) / 10} /> / sec{" "}
|
||||
</Typography>
|
||||
<Typography>Cities:{getRecordKeys(divisionToSell.offices).length}</Typography>
|
||||
<Typography>Warehouses:{getRecordKeys(divisionToSell.warehouses).length}</Typography>
|
||||
{divisionToSell.makesProducts ?? <Typography>Products: {divisionToSell.products.size}</Typography>}
|
||||
<StatsTable
|
||||
rows={[
|
||||
[
|
||||
"Profit:",
|
||||
<MoneyRate
|
||||
key="profit"
|
||||
money={(divisionToSell.lastCycleRevenue - divisionToSell.lastCycleExpenses) / 10}
|
||||
/>,
|
||||
],
|
||||
["Cities:", getRecordKeys(divisionToSell.offices).length],
|
||||
["Warehouses:", getRecordKeys(divisionToSell.warehouses).length],
|
||||
divisionToSell.makesProducts ? ["Products:", divisionToSell.products.size] : [],
|
||||
]}
|
||||
/>
|
||||
<br />
|
||||
<Typography>
|
||||
Sell price: <Money money={price} />
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user