mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-12-18 12:15:44 +01:00
DOCUMENTATION: Add GoAnalysis and GoCheat (#1548)
This commit is contained in:
parent
9a77b47241
commit
180dae1d2c
@ -9,15 +9,5 @@ Tools to analyze the IPvGO subnet.
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
analysis: {
|
||||
getValidMoves(): boolean[][];
|
||||
|
||||
getChains(): (number | null)[][];
|
||||
|
||||
getLiberties(): number[][];
|
||||
|
||||
getControlledEmptyNodes(): string[];
|
||||
|
||||
getStats(): Partial<Record<GoOpponent, SimpleOpponentStats>>;
|
||||
};
|
||||
analysis: GoAnalysis;
|
||||
```
|
||||
|
@ -9,43 +9,5 @@ Illicit and dangerous IPvGO tools. Not for the faint of heart. Requires BitNode
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
cheat: {
|
||||
getCheatSuccessChance(): number;
|
||||
removeRouter(
|
||||
x: number,
|
||||
y: number,
|
||||
): Promise<{
|
||||
type: "move" | "pass" | "gameOver";
|
||||
x: number | null;
|
||||
y: number | null;
|
||||
}>;
|
||||
playTwoMoves(
|
||||
x1: number,
|
||||
y1: number,
|
||||
x2: number,
|
||||
y2: number,
|
||||
): Promise<{
|
||||
type: "move" | "pass" | "gameOver";
|
||||
x: number | null;
|
||||
y: number | null;
|
||||
}>;
|
||||
|
||||
repairOfflineNode(
|
||||
x: number,
|
||||
y: number,
|
||||
): Promise<{
|
||||
type: "move" | "pass" | "gameOver";
|
||||
x: number | null;
|
||||
y: number | null;
|
||||
}>;
|
||||
|
||||
destroyNode(
|
||||
x: number,
|
||||
y: number,
|
||||
): Promise<{
|
||||
type: "move" | "pass" | "gameOver";
|
||||
x: number | null;
|
||||
y: number | null;
|
||||
}>;
|
||||
};
|
||||
cheat: GoCheat;
|
||||
```
|
||||
|
@ -16,8 +16,8 @@ export interface Go
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [analysis](./bitburner.go.analysis.md) | | { getValidMoves(): boolean\[\]\[\]; getChains(): (number \| null)\[\]\[\]; getLiberties(): number\[\]\[\]; getControlledEmptyNodes(): string\[\]; getStats(): Partial<Record<[GoOpponent](./bitburner.goopponent.md)<!-- -->, [SimpleOpponentStats](./bitburner.simpleopponentstats.md)<!-- -->>>; } | Tools to analyze the IPvGO subnet. |
|
||||
| [cheat](./bitburner.go.cheat.md) | | { getCheatSuccessChance(): number; removeRouter( x: number, y: number, ): Promise<{ type: "move" \| "pass" \| "gameOver"; x: number \| null; y: number \| null; }>; playTwoMoves( x1: number, y1: number, x2: number, y2: number, ): Promise<{ type: "move" \| "pass" \| "gameOver"; x: number \| null; y: number \| null; }>; repairOfflineNode( x: number, y: number, ): Promise<{ type: "move" \| "pass" \| "gameOver"; x: number \| null; y: number \| null; }>; destroyNode( x: number, y: number, ): Promise<{ type: "move" \| "pass" \| "gameOver"; x: number \| null; y: number \| null; }>; } | Illicit and dangerous IPvGO tools. Not for the faint of heart. Requires BitNode 14.2 to use. |
|
||||
| [analysis](./bitburner.go.analysis.md) | | [GoAnalysis](./bitburner.goanalysis.md) | Tools to analyze the IPvGO subnet. |
|
||||
| [cheat](./bitburner.go.cheat.md) | | [GoCheat](./bitburner.gocheat.md) | Illicit and dangerous IPvGO tools. Not for the faint of heart. Requires BitNode 14.2 to use. |
|
||||
|
||||
## Methods
|
||||
|
||||
|
25
markdown/bitburner.goanalysis.getchains.md
Normal file
25
markdown/bitburner.goanalysis.getchains.md
Normal file
@ -0,0 +1,25 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GoAnalysis](./bitburner.goanalysis.md) > [getChains](./bitburner.goanalysis.getchains.md)
|
||||
|
||||
## GoAnalysis.getChains() method
|
||||
|
||||
Returns an ID for each point. All points that share an ID are part of the same network (or "chain"). Empty points are also given chain IDs to represent continuous empty space. Dead nodes are given the value `null.`
|
||||
|
||||
The data from getChains() can be used with the data from getBoardState() to see which player (or empty) each chain is
|
||||
|
||||
For example, a 5x5 board might look like this. There is a large chain \#1 on the left side, smaller chains 2 and 3 on the right, and a large chain 0 taking up the center of the board. <pre lang="javascript"> \[ \[ 0,0,0,3,4\], \[ 1,0,0,3,3\], \[ 1,1,0,0,0\], \[null,1,0,2,2\], \[null,1,0,2,5\], \] </pre>
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
getChains(): (number | null)[][];
|
||||
```
|
||||
**Returns:**
|
||||
|
||||
(number \| null)\[\]\[\]
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 16 GB (This is intentionally expensive; you can derive this info from just getBoardState() )
|
||||
|
27
markdown/bitburner.goanalysis.getcontrolledemptynodes.md
Normal file
27
markdown/bitburner.goanalysis.getcontrolledemptynodes.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) > [GoAnalysis](./bitburner.goanalysis.md) > [getControlledEmptyNodes](./bitburner.goanalysis.getcontrolledemptynodes.md)
|
||||
|
||||
## GoAnalysis.getControlledEmptyNodes() method
|
||||
|
||||
Returns 'X', 'O', or '?' for each empty point to indicate which player controls that empty point. If no single player fully encircles the empty space, it is shown as contested with '?'. "\#" are dead nodes that are not part of the subnet.
|
||||
|
||||
Filled points of any color are indicated with '.'
|
||||
|
||||
In this example, white encircles some space in the top-left, black encircles some in the top-right, and between their routers is contested space in the center:
|
||||
|
||||
<pre lang="javascript"> \[ "OO..?", "OO.?.", "O.?.X", ".?.XX", "?..X\#", \] </pre>
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
getControlledEmptyNodes(): string[];
|
||||
```
|
||||
**Returns:**
|
||||
|
||||
string\[\]
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 16 GB (This is intentionally expensive; you can derive this info from just getBoardState() )
|
||||
|
25
markdown/bitburner.goanalysis.getliberties.md
Normal file
25
markdown/bitburner.goanalysis.getliberties.md
Normal file
@ -0,0 +1,25 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GoAnalysis](./bitburner.goanalysis.md) > [getLiberties](./bitburner.goanalysis.getliberties.md)
|
||||
|
||||
## GoAnalysis.getLiberties() method
|
||||
|
||||
Returns a number for each point, representing how many open nodes its network/chain is connected to. Empty nodes and dead nodes are shown as -1 liberties.
|
||||
|
||||
For example, a 5x5 board might look like this. The chain in the top-left touches 5 total empty nodes, and the one in the center touches four. The group in the bottom-right only has one liberty; it is in danger of being captured!
|
||||
|
||||
<pre lang="javascript"> \[ \[-1, 5,-1,-1, 2\], \[ 5, 5,-1,-1,-1\], \[-1,-1, 4,-1,-1\], \[ 3,-1,-1, 3, 1\], \[ 3,-1,-1, 3, 1\], \] </pre>
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
getLiberties(): number[][];
|
||||
```
|
||||
**Returns:**
|
||||
|
||||
number\[\]\[\]
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 16 GB (This is intentionally expensive; you can derive this info from just getBoardState() )
|
||||
|
21
markdown/bitburner.goanalysis.getstats.md
Normal file
21
markdown/bitburner.goanalysis.getstats.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) > [GoAnalysis](./bitburner.goanalysis.md) > [getStats](./bitburner.goanalysis.getstats.md)
|
||||
|
||||
## GoAnalysis.getStats() method
|
||||
|
||||
Displays the game history, captured nodes, and gained bonuses for each opponent you have played against.
|
||||
|
||||
The details are keyed by opponent name, in this structure:
|
||||
|
||||
<pre lang="javascript"> { <OpponentName>: { wins: number, losses: number, winStreak: number, highestWinStreak: number, favor: number, bonusPercent: number, bonusDescription: string, } } </pre>
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
getStats(): Partial<Record<GoOpponent, SimpleOpponentStats>>;
|
||||
```
|
||||
**Returns:**
|
||||
|
||||
Partial<Record<[GoOpponent](./bitburner.goopponent.md)<!-- -->, [SimpleOpponentStats](./bitburner.simpleopponentstats.md)<!-- -->>>
|
||||
|
27
markdown/bitburner.goanalysis.getvalidmoves.md
Normal file
27
markdown/bitburner.goanalysis.getvalidmoves.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) > [GoAnalysis](./bitburner.goanalysis.md) > [getValidMoves](./bitburner.goanalysis.getvalidmoves.md)
|
||||
|
||||
## GoAnalysis.getValidMoves() method
|
||||
|
||||
Shows if each point on the board is a valid move for the player.
|
||||
|
||||
The true/false validity of each move can be retrieved via the X and Y coordinates of the move. `const validMoves = ns.go.analysis.getValidMoves();`
|
||||
|
||||
`const moveIsValid = validMoves[x][y];`
|
||||
|
||||
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
|
||||
getValidMoves(): boolean[][];
|
||||
```
|
||||
**Returns:**
|
||||
|
||||
boolean\[\]\[\]
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 8 GB (This is intentionally expensive; you can derive this info from just getBoardState() )
|
||||
|
24
markdown/bitburner.goanalysis.md
Normal file
24
markdown/bitburner.goanalysis.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) > [GoAnalysis](./bitburner.goanalysis.md)
|
||||
|
||||
## GoAnalysis interface
|
||||
|
||||
Tools to analyze the IPvGO subnet.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
export interface GoAnalysis
|
||||
```
|
||||
|
||||
## Methods
|
||||
|
||||
| Method | Description |
|
||||
| --- | --- |
|
||||
| [getChains()](./bitburner.goanalysis.getchains.md) | <p>Returns an ID for each point. All points that share an ID are part of the same network (or "chain"). Empty points are also given chain IDs to represent continuous empty space. Dead nodes are given the value <code>null.</code></p><p>The data from getChains() can be used with the data from getBoardState() to see which player (or empty) each chain is</p><p>For example, a 5x5 board might look like this. There is a large chain \#1 on the left side, smaller chains 2 and 3 on the right, and a large chain 0 taking up the center of the board. <pre lang="javascript"> \[ \[ 0,0,0,3,4\], \[ 1,0,0,3,3\], \[ 1,1,0,0,0\], \[null,1,0,2,2\], \[null,1,0,2,5\], \] </pre></p> |
|
||||
| [getControlledEmptyNodes()](./bitburner.goanalysis.getcontrolledemptynodes.md) | <p>Returns 'X', 'O', or '?' for each empty point to indicate which player controls that empty point. If no single player fully encircles the empty space, it is shown as contested with '?'. "\#" are dead nodes that are not part of the subnet.</p><p>Filled points of any color are indicated with '.'</p><p>In this example, white encircles some space in the top-left, black encircles some in the top-right, and between their routers is contested space in the center:</p><p><pre lang="javascript"> \[ "OO..?", "OO.?.", "O.?.X", ".?.XX", "?..X\#", \] </pre></p> |
|
||||
| [getLiberties()](./bitburner.goanalysis.getliberties.md) | <p>Returns a number for each point, representing how many open nodes its network/chain is connected to. Empty nodes and dead nodes are shown as -1 liberties.</p><p>For example, a 5x5 board might look like this. The chain in the top-left touches 5 total empty nodes, and the one in the center touches four. The group in the bottom-right only has one liberty; it is in danger of being captured!</p><p><pre lang="javascript"> \[ \[-1, 5,-1,-1, 2\], \[ 5, 5,-1,-1,-1\], \[-1,-1, 4,-1,-1\], \[ 3,-1,-1, 3, 1\], \[ 3,-1,-1, 3, 1\], \] </pre></p> |
|
||||
| [getStats()](./bitburner.goanalysis.getstats.md) | <p>Displays the game history, captured nodes, and gained bonuses for each opponent you have played against.</p><p>The details are keyed by opponent name, in this structure:</p><p><pre lang="javascript"> { <OpponentName>: { wins: number, losses: number, winStreak: number, highestWinStreak: number, favor: number, bonusPercent: number, bonusDescription: string, } } </pre></p> |
|
||||
| [getValidMoves()](./bitburner.goanalysis.getvalidmoves.md) | <p>Shows if each point on the board is a valid move for the player.</p><p>The true/false validity of each move can be retrieved via the X and Y coordinates of the move. <code>const validMoves = ns.go.analysis.getValidMoves();</code></p><p><code>const moveIsValid = validMoves[x][y];</code></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> |
|
||||
|
42
markdown/bitburner.gocheat.destroynode.md
Normal file
42
markdown/bitburner.gocheat.destroynode.md
Normal file
@ -0,0 +1,42 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GoCheat](./bitburner.gocheat.md) > [destroyNode](./bitburner.gocheat.destroynode.md)
|
||||
|
||||
## GoCheat.destroyNode() method
|
||||
|
||||
Attempts to destroy an empty node, leaving an offline dead space that does not count as territory or provide open node access to adjacent routers.
|
||||
|
||||
Success chance can be seen via ns.go.getCheatSuccessChance()
|
||||
|
||||
Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a small (\~10%) chance you will instantly be ejected from the subnet.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
destroyNode(
|
||||
x: number,
|
||||
y: number,
|
||||
): Promise<{
|
||||
type: "move" | "pass" | "gameOver";
|
||||
x: number | null;
|
||||
y: number | null;
|
||||
}>;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| x | number | |
|
||||
| y | number | |
|
||||
|
||||
**Returns:**
|
||||
|
||||
Promise<{ type: "move" \| "pass" \| "gameOver"; x: number \| null; y: number \| null; }>
|
||||
|
||||
a promise that contains the opponent move's x and y coordinates (or pass) in response, or an indication if the game has ended
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 8 GB Requires BitNode 14.2 to use
|
||||
|
23
markdown/bitburner.gocheat.getcheatsuccesschance.md
Normal file
23
markdown/bitburner.gocheat.getcheatsuccesschance.md
Normal file
@ -0,0 +1,23 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GoCheat](./bitburner.gocheat.md) > [getCheatSuccessChance](./bitburner.gocheat.getcheatsuccesschance.md)
|
||||
|
||||
## GoCheat.getCheatSuccessChance() method
|
||||
|
||||
Returns your chance of successfully playing one of the special moves in the ns.go.cheat API. Scales with your crime success rate stat.
|
||||
|
||||
Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a small (\~10%) chance you will instantly be ejected from the subnet.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
getCheatSuccessChance(): number;
|
||||
```
|
||||
**Returns:**
|
||||
|
||||
number
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 1 GB Requires BitNode 14.2 to use
|
||||
|
24
markdown/bitburner.gocheat.md
Normal file
24
markdown/bitburner.gocheat.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) > [GoCheat](./bitburner.gocheat.md)
|
||||
|
||||
## GoCheat interface
|
||||
|
||||
Illicit and dangerous IPvGO tools. Not for the faint of heart. Requires BitNode 14.2 to use.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
export interface GoCheat
|
||||
```
|
||||
|
||||
## Methods
|
||||
|
||||
| Method | Description |
|
||||
| --- | --- |
|
||||
| [destroyNode(x, y)](./bitburner.gocheat.destroynode.md) | <p>Attempts to destroy an empty node, leaving an offline dead space that does not count as territory or provide open node access to adjacent routers.</p><p>Success chance can be seen via ns.go.getCheatSuccessChance()</p><p>Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a small (\~10%) chance you will instantly be ejected from the subnet.</p> |
|
||||
| [getCheatSuccessChance()](./bitburner.gocheat.getcheatsuccesschance.md) | <p>Returns your chance of successfully playing one of the special moves in the ns.go.cheat API. Scales with your crime success rate stat.</p><p>Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a small (\~10%) chance you will instantly be ejected from the subnet.</p> |
|
||||
| [playTwoMoves(x1, y1, x2, y2)](./bitburner.gocheat.playtwomoves.md) | <p>Attempts to place two routers at once on empty nodes. Note that this ignores other move restrictions, so you can suicide your own routers if they have no access to empty ports and do not capture any enemy routers.</p><p>Success chance can be seen via ns.go.getCheatSuccessChance()</p><p>Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a small (\~10%) chance you will instantly be ejected from the subnet.</p> |
|
||||
| [removeRouter(x, y)](./bitburner.gocheat.removerouter.md) | <p>Attempts to remove an existing router, leaving an empty node behind.</p><p>Success chance can be seen via ns.go.getCheatSuccessChance()</p><p>Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a small (\~10%) chance you will instantly be ejected from the subnet.</p> |
|
||||
| [repairOfflineNode(x, y)](./bitburner.gocheat.repairofflinenode.md) | <p>Attempts to repair an offline node, leaving an empty playable node behind.</p><p>Success chance can be seen via ns.go.getCheatSuccessChance()</p><p>Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a small (\~10%) chance you will instantly be ejected from the subnet.</p> |
|
||||
|
46
markdown/bitburner.gocheat.playtwomoves.md
Normal file
46
markdown/bitburner.gocheat.playtwomoves.md
Normal file
@ -0,0 +1,46 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GoCheat](./bitburner.gocheat.md) > [playTwoMoves](./bitburner.gocheat.playtwomoves.md)
|
||||
|
||||
## GoCheat.playTwoMoves() method
|
||||
|
||||
Attempts to place two routers at once on empty nodes. Note that this ignores other move restrictions, so you can suicide your own routers if they have no access to empty ports and do not capture any enemy routers.
|
||||
|
||||
Success chance can be seen via ns.go.getCheatSuccessChance()
|
||||
|
||||
Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a small (\~10%) chance you will instantly be ejected from the subnet.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
playTwoMoves(
|
||||
x1: number,
|
||||
y1: number,
|
||||
x2: number,
|
||||
y2: number,
|
||||
): Promise<{
|
||||
type: "move" | "pass" | "gameOver";
|
||||
x: number | null;
|
||||
y: number | null;
|
||||
}>;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| x1 | number | |
|
||||
| y1 | number | |
|
||||
| x2 | number | |
|
||||
| y2 | number | |
|
||||
|
||||
**Returns:**
|
||||
|
||||
Promise<{ type: "move" \| "pass" \| "gameOver"; x: number \| null; y: number \| null; }>
|
||||
|
||||
a promise that contains the opponent move's x and y coordinates (or pass) in response, or an indication if the game has ended
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 8 GB Requires BitNode 14.2 to use
|
||||
|
42
markdown/bitburner.gocheat.removerouter.md
Normal file
42
markdown/bitburner.gocheat.removerouter.md
Normal file
@ -0,0 +1,42 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GoCheat](./bitburner.gocheat.md) > [removeRouter](./bitburner.gocheat.removerouter.md)
|
||||
|
||||
## GoCheat.removeRouter() method
|
||||
|
||||
Attempts to remove an existing router, leaving an empty node behind.
|
||||
|
||||
Success chance can be seen via ns.go.getCheatSuccessChance()
|
||||
|
||||
Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a small (\~10%) chance you will instantly be ejected from the subnet.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
removeRouter(
|
||||
x: number,
|
||||
y: number,
|
||||
): Promise<{
|
||||
type: "move" | "pass" | "gameOver";
|
||||
x: number | null;
|
||||
y: number | null;
|
||||
}>;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| x | number | |
|
||||
| y | number | |
|
||||
|
||||
**Returns:**
|
||||
|
||||
Promise<{ type: "move" \| "pass" \| "gameOver"; x: number \| null; y: number \| null; }>
|
||||
|
||||
a promise that contains the opponent move's x and y coordinates (or pass) in response, or an indication if the game has ended
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 8 GB Requires BitNode 14.2 to use
|
||||
|
42
markdown/bitburner.gocheat.repairofflinenode.md
Normal file
42
markdown/bitburner.gocheat.repairofflinenode.md
Normal file
@ -0,0 +1,42 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GoCheat](./bitburner.gocheat.md) > [repairOfflineNode](./bitburner.gocheat.repairofflinenode.md)
|
||||
|
||||
## GoCheat.repairOfflineNode() method
|
||||
|
||||
Attempts to repair an offline node, leaving an empty playable node behind.
|
||||
|
||||
Success chance can be seen via ns.go.getCheatSuccessChance()
|
||||
|
||||
Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a small (\~10%) chance you will instantly be ejected from the subnet.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
repairOfflineNode(
|
||||
x: number,
|
||||
y: number,
|
||||
): Promise<{
|
||||
type: "move" | "pass" | "gameOver";
|
||||
x: number | null;
|
||||
y: number | null;
|
||||
}>;
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| x | number | |
|
||||
| y | number | |
|
||||
|
||||
**Returns:**
|
||||
|
||||
Promise<{ type: "move" \| "pass" \| "gameOver"; x: number \| null; y: number \| null; }>
|
||||
|
||||
a promise that contains the opponent move's x and y coordinates (or pass) in response, or an indication if the game has ended
|
||||
|
||||
## Remarks
|
||||
|
||||
RAM cost: 8 GB Requires BitNode 14.2 to use
|
||||
|
@ -72,6 +72,8 @@
|
||||
| [GangTaskStats](./bitburner.gangtaskstats.md) | Object representing data representing a gang member task. |
|
||||
| [GangTerritory](./bitburner.gangterritory.md) | |
|
||||
| [Go](./bitburner.go.md) | IPvGO api |
|
||||
| [GoAnalysis](./bitburner.goanalysis.md) | Tools to analyze the IPvGO subnet. |
|
||||
| [GoCheat](./bitburner.gocheat.md) | Illicit and dangerous IPvGO tools. Not for the faint of heart. Requires BitNode 14.2 to use. |
|
||||
| [Grafting](./bitburner.grafting.md) | Grafting API |
|
||||
| [GraftingTask](./bitburner.graftingtask.md) | Faction Work |
|
||||
| [HackingFormulas](./bitburner.hackingformulas.md) | Hacking formulas |
|
||||
|
456
src/ScriptEditor/NetscriptDefinitions.d.ts
vendored
456
src/ScriptEditor/NetscriptDefinitions.d.ts
vendored
@ -4035,6 +4035,239 @@ type SimpleOpponentStats = {
|
||||
bonusDescription: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* Tools to analyze the IPvGO subnet.
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export interface GoAnalysis {
|
||||
/**
|
||||
* Shows if each point on the board is a valid move for the player.
|
||||
*
|
||||
* The true/false validity of each move can be retrieved via the X and Y coordinates of the move.
|
||||
* `const validMoves = ns.go.analysis.getValidMoves();`
|
||||
*
|
||||
* `const moveIsValid = validMoves[x][y];`
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* @remarks
|
||||
* RAM cost: 8 GB
|
||||
* (This is intentionally expensive; you can derive this info from just getBoardState() )
|
||||
*/
|
||||
getValidMoves(): boolean[][];
|
||||
|
||||
/**
|
||||
* Returns an ID for each point. All points that share an ID are part of the same network (or "chain"). Empty points
|
||||
* are also given chain IDs to represent continuous empty space. Dead nodes are given the value `null.`
|
||||
*
|
||||
* The data from getChains() can be used with the data from getBoardState() to see which player (or empty) each chain is
|
||||
*
|
||||
* For example, a 5x5 board might look like this. There is a large chain #1 on the left side, smaller chains
|
||||
* 2 and 3 on the right, and a large chain 0 taking up the center of the board.
|
||||
* <pre lang="javascript">
|
||||
* [
|
||||
* [ 0,0,0,3,4],
|
||||
* [ 1,0,0,3,3],
|
||||
* [ 1,1,0,0,0],
|
||||
* [null,1,0,2,2],
|
||||
* [null,1,0,2,5],
|
||||
* ]
|
||||
* </pre>
|
||||
* @remarks
|
||||
* RAM cost: 16 GB
|
||||
* (This is intentionally expensive; you can derive this info from just getBoardState() )
|
||||
*
|
||||
*/
|
||||
getChains(): (number | null)[][];
|
||||
|
||||
/**
|
||||
* Returns a number for each point, representing how many open nodes its network/chain is connected to.
|
||||
* Empty nodes and dead nodes are shown as -1 liberties.
|
||||
*
|
||||
* For example, a 5x5 board might look like this. The chain in the top-left touches 5 total empty nodes, and the one
|
||||
* in the center touches four. The group in the bottom-right only has one liberty; it is in danger of being captured!
|
||||
*
|
||||
* <pre lang="javascript">
|
||||
* [
|
||||
* [-1, 5,-1,-1, 2],
|
||||
* [ 5, 5,-1,-1,-1],
|
||||
* [-1,-1, 4,-1,-1],
|
||||
* [ 3,-1,-1, 3, 1],
|
||||
* [ 3,-1,-1, 3, 1],
|
||||
* ]
|
||||
* </pre>
|
||||
*
|
||||
* @remarks
|
||||
* RAM cost: 16 GB
|
||||
* (This is intentionally expensive; you can derive this info from just getBoardState() )
|
||||
*/
|
||||
getLiberties(): number[][];
|
||||
|
||||
/**
|
||||
* Returns 'X', 'O', or '?' for each empty point to indicate which player controls that empty point.
|
||||
* If no single player fully encircles the empty space, it is shown as contested with '?'.
|
||||
* "#" are dead nodes that are not part of the subnet.
|
||||
*
|
||||
* Filled points of any color are indicated with '.'
|
||||
*
|
||||
* In this example, white encircles some space in the top-left, black encircles some in the top-right, and between their routers is contested space in the center:
|
||||
*
|
||||
* <pre lang="javascript">
|
||||
* [
|
||||
* "OO..?",
|
||||
* "OO.?.",
|
||||
* "O.?.X",
|
||||
* ".?.XX",
|
||||
* "?..X#",
|
||||
* ]
|
||||
* </pre>
|
||||
*
|
||||
* @remarks
|
||||
* RAM cost: 16 GB
|
||||
* (This is intentionally expensive; you can derive this info from just getBoardState() )
|
||||
*/
|
||||
getControlledEmptyNodes(): string[];
|
||||
|
||||
/**
|
||||
* Displays the game history, captured nodes, and gained bonuses for each opponent you have played against.
|
||||
*
|
||||
* The details are keyed by opponent name, in this structure:
|
||||
*
|
||||
* <pre lang="javascript">
|
||||
* {
|
||||
* <OpponentName>: {
|
||||
* wins: number,
|
||||
* losses: number,
|
||||
* winStreak: number,
|
||||
* highestWinStreak: number,
|
||||
* favor: number,
|
||||
* bonusPercent: number,
|
||||
* bonusDescription: string,
|
||||
* }
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
*/
|
||||
getStats(): Partial<Record<GoOpponent, SimpleOpponentStats>>;
|
||||
}
|
||||
|
||||
/**
|
||||
* Illicit and dangerous IPvGO tools. Not for the faint of heart. Requires BitNode 14.2 to use.
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export interface GoCheat {
|
||||
/**
|
||||
* Returns your chance of successfully playing one of the special moves in the ns.go.cheat API.
|
||||
* Scales with your crime success rate stat.
|
||||
*
|
||||
* Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a
|
||||
* small (~10%) chance you will instantly be ejected from the subnet.
|
||||
*
|
||||
* @remarks
|
||||
* RAM cost: 1 GB
|
||||
* Requires BitNode 14.2 to use
|
||||
*/
|
||||
getCheatSuccessChance(): number;
|
||||
/**
|
||||
* Attempts to remove an existing router, leaving an empty node behind.
|
||||
*
|
||||
* Success chance can be seen via ns.go.getCheatSuccessChance()
|
||||
*
|
||||
* Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a
|
||||
* small (~10%) chance you will instantly be ejected from the subnet.
|
||||
*
|
||||
* @remarks
|
||||
* RAM cost: 8 GB
|
||||
* Requires BitNode 14.2 to use
|
||||
*
|
||||
* @returns a promise that contains the opponent move's x and y coordinates (or pass) in response, or an indication if the game has ended
|
||||
*/
|
||||
removeRouter(
|
||||
x: number,
|
||||
y: number,
|
||||
): Promise<{
|
||||
type: "move" | "pass" | "gameOver";
|
||||
x: number | null;
|
||||
y: number | null;
|
||||
}>;
|
||||
/**
|
||||
* Attempts to place two routers at once on empty nodes. Note that this ignores other move restrictions, so you can
|
||||
* suicide your own routers if they have no access to empty ports and do not capture any enemy routers.
|
||||
*
|
||||
* Success chance can be seen via ns.go.getCheatSuccessChance()
|
||||
*
|
||||
* Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a
|
||||
* small (~10%) chance you will instantly be ejected from the subnet.
|
||||
*
|
||||
* @remarks
|
||||
* RAM cost: 8 GB
|
||||
* Requires BitNode 14.2 to use
|
||||
*
|
||||
* @returns a promise that contains the opponent move's x and y coordinates (or pass) in response, or an indication if the game has ended
|
||||
*/
|
||||
playTwoMoves(
|
||||
x1: number,
|
||||
y1: number,
|
||||
x2: number,
|
||||
y2: number,
|
||||
): Promise<{
|
||||
type: "move" | "pass" | "gameOver";
|
||||
x: number | null;
|
||||
y: number | null;
|
||||
}>;
|
||||
|
||||
/**
|
||||
* Attempts to repair an offline node, leaving an empty playable node behind.
|
||||
*
|
||||
* Success chance can be seen via ns.go.getCheatSuccessChance()
|
||||
*
|
||||
* Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a
|
||||
* small (~10%) chance you will instantly be ejected from the subnet.
|
||||
*
|
||||
* @remarks
|
||||
* RAM cost: 8 GB
|
||||
* Requires BitNode 14.2 to use
|
||||
*
|
||||
* @returns a promise that contains the opponent move's x and y coordinates (or pass) in response, or an indication if the game has ended
|
||||
*/
|
||||
repairOfflineNode(
|
||||
x: number,
|
||||
y: number,
|
||||
): Promise<{
|
||||
type: "move" | "pass" | "gameOver";
|
||||
x: number | null;
|
||||
y: number | null;
|
||||
}>;
|
||||
|
||||
/**
|
||||
* Attempts to destroy an empty node, leaving an offline dead space that does not count as territory or
|
||||
* provide open node access to adjacent routers.
|
||||
*
|
||||
* Success chance can be seen via ns.go.getCheatSuccessChance()
|
||||
*
|
||||
* Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a
|
||||
* small (~10%) chance you will instantly be ejected from the subnet.
|
||||
*
|
||||
* @remarks
|
||||
* RAM cost: 8 GB
|
||||
* Requires BitNode 14.2 to use
|
||||
*
|
||||
* @returns a promise that contains the opponent move's x and y coordinates (or pass) in response, or an indication if the game has ended
|
||||
*/
|
||||
destroyNode(
|
||||
x: number,
|
||||
y: number,
|
||||
): Promise<{
|
||||
type: "move" | "pass" | "gameOver";
|
||||
x: number | null;
|
||||
y: number | null;
|
||||
}>;
|
||||
}
|
||||
|
||||
/**
|
||||
* IPvGO api
|
||||
* @public
|
||||
@ -4180,231 +4413,12 @@ export interface Go {
|
||||
/**
|
||||
* Tools to analyze the IPvGO subnet.
|
||||
*/
|
||||
analysis: {
|
||||
/**
|
||||
* Shows if each point on the board is a valid move for the player.
|
||||
*
|
||||
* The true/false validity of each move can be retrieved via the X and Y coordinates of the move.
|
||||
* `const validMoves = ns.go.analysis.getValidMoves();`
|
||||
*
|
||||
* `const moveIsValid = validMoves[x][y];`
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* @remarks
|
||||
* RAM cost: 8 GB
|
||||
* (This is intentionally expensive; you can derive this info from just getBoardState() )
|
||||
*/
|
||||
getValidMoves(): boolean[][];
|
||||
|
||||
/**
|
||||
* Returns an ID for each point. All points that share an ID are part of the same network (or "chain"). Empty points
|
||||
* are also given chain IDs to represent continuous empty space. Dead nodes are given the value `null.`
|
||||
*
|
||||
* The data from getChains() can be used with the data from getBoardState() to see which player (or empty) each chain is
|
||||
*
|
||||
* For example, a 5x5 board might look like this. There is a large chain #1 on the left side, smaller chains
|
||||
* 2 and 3 on the right, and a large chain 0 taking up the center of the board.
|
||||
* <pre lang="javascript">
|
||||
* [
|
||||
* [ 0,0,0,3,4],
|
||||
* [ 1,0,0,3,3],
|
||||
* [ 1,1,0,0,0],
|
||||
* [null,1,0,2,2],
|
||||
* [null,1,0,2,5],
|
||||
* ]
|
||||
* </pre>
|
||||
* @remarks
|
||||
* RAM cost: 16 GB
|
||||
* (This is intentionally expensive; you can derive this info from just getBoardState() )
|
||||
*
|
||||
*/
|
||||
getChains(): (number | null)[][];
|
||||
|
||||
/**
|
||||
* Returns a number for each point, representing how many open nodes its network/chain is connected to.
|
||||
* Empty nodes and dead nodes are shown as -1 liberties.
|
||||
*
|
||||
* For example, a 5x5 board might look like this. The chain in the top-left touches 5 total empty nodes, and the one
|
||||
* in the center touches four. The group in the bottom-right only has one liberty; it is in danger of being captured!
|
||||
*
|
||||
* <pre lang="javascript">
|
||||
* [
|
||||
* [-1, 5,-1,-1, 2],
|
||||
* [ 5, 5,-1,-1,-1],
|
||||
* [-1,-1, 4,-1,-1],
|
||||
* [ 3,-1,-1, 3, 1],
|
||||
* [ 3,-1,-1, 3, 1],
|
||||
* ]
|
||||
* </pre>
|
||||
*
|
||||
* @remarks
|
||||
* RAM cost: 16 GB
|
||||
* (This is intentionally expensive; you can derive this info from just getBoardState() )
|
||||
*/
|
||||
getLiberties(): number[][];
|
||||
|
||||
/**
|
||||
* Returns 'X', 'O', or '?' for each empty point to indicate which player controls that empty point.
|
||||
* If no single player fully encircles the empty space, it is shown as contested with '?'.
|
||||
* "#" are dead nodes that are not part of the subnet.
|
||||
*
|
||||
* Filled points of any color are indicated with '.'
|
||||
*
|
||||
* In this example, white encircles some space in the top-left, black encircles some in the top-right, and between their routers is contested space in the center:
|
||||
*
|
||||
* <pre lang="javascript">
|
||||
* [
|
||||
* "OO..?",
|
||||
* "OO.?.",
|
||||
* "O.?.X",
|
||||
* ".?.XX",
|
||||
* "?..X#",
|
||||
* ]
|
||||
* </pre>
|
||||
*
|
||||
* @remarks
|
||||
* RAM cost: 16 GB
|
||||
* (This is intentionally expensive; you can derive this info from just getBoardState() )
|
||||
*/
|
||||
getControlledEmptyNodes(): string[];
|
||||
|
||||
/**
|
||||
* Displays the game history, captured nodes, and gained bonuses for each opponent you have played against.
|
||||
*
|
||||
* The details are keyed by opponent name, in this structure:
|
||||
*
|
||||
* <pre lang="javascript">
|
||||
* {
|
||||
* <OpponentName>: {
|
||||
* wins: number,
|
||||
* losses: number,
|
||||
* winStreak: number,
|
||||
* highestWinStreak: number,
|
||||
* favor: number,
|
||||
* bonusPercent: number,
|
||||
* bonusDescription: string,
|
||||
* }
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
*/
|
||||
getStats(): Partial<Record<GoOpponent, SimpleOpponentStats>>;
|
||||
};
|
||||
analysis: GoAnalysis;
|
||||
|
||||
/**
|
||||
* Illicit and dangerous IPvGO tools. Not for the faint of heart. Requires BitNode 14.2 to use.
|
||||
*/
|
||||
cheat: {
|
||||
/**
|
||||
* Returns your chance of successfully playing one of the special moves in the ns.go.cheat API.
|
||||
* Scales with your crime success rate stat.
|
||||
*
|
||||
* Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a
|
||||
* small (~10%) chance you will instantly be ejected from the subnet.
|
||||
*
|
||||
* @remarks
|
||||
* RAM cost: 1 GB
|
||||
* Requires BitNode 14.2 to use
|
||||
*/
|
||||
getCheatSuccessChance(): number;
|
||||
/**
|
||||
* Attempts to remove an existing router, leaving an empty node behind.
|
||||
*
|
||||
* Success chance can be seen via ns.go.getCheatSuccessChance()
|
||||
*
|
||||
* Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a
|
||||
* small (~10%) chance you will instantly be ejected from the subnet.
|
||||
*
|
||||
* @remarks
|
||||
* RAM cost: 8 GB
|
||||
* Requires BitNode 14.2 to use
|
||||
*
|
||||
* @returns a promise that contains the opponent move's x and y coordinates (or pass) in response, or an indication if the game has ended
|
||||
*/
|
||||
removeRouter(
|
||||
x: number,
|
||||
y: number,
|
||||
): Promise<{
|
||||
type: "move" | "pass" | "gameOver";
|
||||
x: number | null;
|
||||
y: number | null;
|
||||
}>;
|
||||
/**
|
||||
* Attempts to place two routers at once on empty nodes. Note that this ignores other move restrictions, so you can
|
||||
* suicide your own routers if they have no access to empty ports and do not capture any enemy routers.
|
||||
*
|
||||
* Success chance can be seen via ns.go.getCheatSuccessChance()
|
||||
*
|
||||
* Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a
|
||||
* small (~10%) chance you will instantly be ejected from the subnet.
|
||||
*
|
||||
* @remarks
|
||||
* RAM cost: 8 GB
|
||||
* Requires BitNode 14.2 to use
|
||||
*
|
||||
* @returns a promise that contains the opponent move's x and y coordinates (or pass) in response, or an indication if the game has ended
|
||||
*/
|
||||
playTwoMoves(
|
||||
x1: number,
|
||||
y1: number,
|
||||
x2: number,
|
||||
y2: number,
|
||||
): Promise<{
|
||||
type: "move" | "pass" | "gameOver";
|
||||
x: number | null;
|
||||
y: number | null;
|
||||
}>;
|
||||
|
||||
/**
|
||||
* Attempts to repair an offline node, leaving an empty playable node behind.
|
||||
*
|
||||
* Success chance can be seen via ns.go.getCheatSuccessChance()
|
||||
*
|
||||
* Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a
|
||||
* small (~10%) chance you will instantly be ejected from the subnet.
|
||||
*
|
||||
* @remarks
|
||||
* RAM cost: 8 GB
|
||||
* Requires BitNode 14.2 to use
|
||||
*
|
||||
* @returns a promise that contains the opponent move's x and y coordinates (or pass) in response, or an indication if the game has ended
|
||||
*/
|
||||
repairOfflineNode(
|
||||
x: number,
|
||||
y: number,
|
||||
): Promise<{
|
||||
type: "move" | "pass" | "gameOver";
|
||||
x: number | null;
|
||||
y: number | null;
|
||||
}>;
|
||||
|
||||
/**
|
||||
* Attempts to destroy an empty node, leaving an offline dead space that does not count as territory or
|
||||
* provide open node access to adjacent routers.
|
||||
*
|
||||
* Success chance can be seen via ns.go.getCheatSuccessChance()
|
||||
*
|
||||
* Warning: if you fail to play a cheat move, your turn will be skipped. After your first cheat attempt, if you fail, there is a
|
||||
* small (~10%) chance you will instantly be ejected from the subnet.
|
||||
*
|
||||
* @remarks
|
||||
* RAM cost: 8 GB
|
||||
* Requires BitNode 14.2 to use
|
||||
*
|
||||
* @returns a promise that contains the opponent move's x and y coordinates (or pass) in response, or an indication if the game has ended
|
||||
*/
|
||||
destroyNode(
|
||||
x: number,
|
||||
y: number,
|
||||
): Promise<{
|
||||
type: "move" | "pass" | "gameOver";
|
||||
x: number | null;
|
||||
y: number | null;
|
||||
}>;
|
||||
};
|
||||
cheat: GoCheat;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user