From cacecda72f34e7948b86695503fae9d57031bc9e Mon Sep 17 00:00:00 2001
From: catloversg <152669316+catloversg@users.noreply.github.com>
Date: Sun, 18 Aug 2024 04:08:55 +0700
Subject: [PATCH] API: Add types for parameters of gym-university-bladeburner
API (Fix merging error) (#1596)
* API: Add types for parameters of gym-university-bladeburner API
* Fix merging error
---
...itburner.bladeburner.getactionautolevel.md | 9 +-
...ner.bladeburner.getactioncountremaining.md | 9 +-
...urner.bladeburner.getactioncurrentlevel.md | 9 +-
...eburner.getactionestimatedsuccesschance.md | 10 +-
...bitburner.bladeburner.getactionmaxlevel.md | 9 +-
.../bitburner.bladeburner.getactionrepgain.md | 10 +-
...itburner.bladeburner.getactionsuccesses.md | 9 +-
.../bitburner.bladeburner.getactiontime.md | 9 +-
.../bitburner.bladeburner.getblackopnames.md | 4 +-
.../bitburner.bladeburner.getblackoprank.md | 4 +-
.../bitburner.bladeburner.getcontractnames.md | 4 +-
...urner.bladeburner.getgeneralactionnames.md | 4 +-
.../bitburner.bladeburner.getnextblackop.md | 4 +-
...bitburner.bladeburner.getoperationnames.md | 4 +-
.../bitburner.bladeburner.getskilllevel.md | 4 +-
.../bitburner.bladeburner.getskillnames.md | 4 +-
...tburner.bladeburner.getskillupgradecost.md | 4 +-
markdown/bitburner.bladeburner.getteamsize.md | 9 +-
...itburner.bladeburner.setactionautolevel.md | 10 +-
.../bitburner.bladeburner.setactionlevel.md | 10 +-
markdown/bitburner.bladeburner.setteamsize.md | 10 +-
markdown/bitburner.bladeburner.startaction.md | 9 +-
.../bitburner.bladeburner.upgradeskill.md | 4 +-
markdown/bitburner.bladeburneractionname.md | 18 ++
markdown/bitburner.bladeburneractiontype.md | 23 ++
...itburner.bladeburneractiontypeforsleeve.md | 16 ++
markdown/bitburner.bladeburnerblackopname.md | 40 +++
markdown/bitburner.bladeburnercontractname.md | 22 ++
.../bitburner.bladeburnergeneralactionname.md | 25 ++
.../bitburner.bladeburneroperationname.md | 25 ++
markdown/bitburner.bladeburnerskillname.md | 31 ++
markdown/bitburner.gymlocationname.md | 24 ++
markdown/bitburner.md | 11 +
markdown/bitburner.singularity.gymworkout.md | 6 +-
.../bitburner.singularity.universitycourse.md | 10 +-
markdown/bitburner.sleeve.md | 2 +-
...bitburner.sleeve.settobladeburneraction.md | 10 +-
markdown/bitburner.sleeve.settogymworkout.md | 10 +-
.../bitburner.sleeve.settouniversitycourse.md | 10 +-
...r.specialbladeburneractiontypeforsleeve.md | 22 ++
markdown/bitburner.universitylocationname.md | 22 ++
src/Achievements/Achievements.ts | 5 +-
src/Bladeburner/Actions/Action.ts | 10 +-
src/Bladeburner/Actions/BlackOperation.ts | 8 +-
src/Bladeburner/Actions/Contract.ts | 10 +-
src/Bladeburner/Actions/GeneralAction.ts | 8 +-
src/Bladeburner/Actions/Operation.ts | 12 +-
src/Bladeburner/Bladeburner.ts | 151 +++++-----
src/Bladeburner/Enums.ts | 110 +++----
src/Bladeburner/Skill.ts | 12 +-
src/Bladeburner/Types.ts | 18 +-
src/Bladeburner/data/BlackOperations.ts | 100 +++----
src/Bladeburner/data/Contracts.ts | 22 +-
src/Bladeburner/data/GeneralActions.ts | 28 +-
src/Bladeburner/data/Operations.ts | 34 +--
src/Bladeburner/data/Skills.ts | 82 +++---
src/Bladeburner/ui/OperationElem.tsx | 5 +-
src/Bladeburner/utils/loadActionIdentifier.ts | 18 +-
src/DevMenu/ui/BladeburnerDev.tsx | 10 +-
src/NetscriptFunctions/Bladeburner.ts | 54 ++--
src/NetscriptFunctions/Formulas.ts | 2 +-
src/NetscriptFunctions/Sleeve.ts | 8 +-
src/PersonObjects/Sleeve/Sleeve.ts | 20 +-
.../Sleeve/Work/SleeveBladeburnerWork.ts | 15 +-
src/PersonObjects/Sleeve/ui/TaskSelector.tsx | 12 +-
src/ScriptEditor/NetscriptDefinitions.d.ts | 271 ++++++++++++++++--
test/jest/Netscript/Bladeburner.test.ts | 4 +-
67 files changed, 1047 insertions(+), 471 deletions(-)
create mode 100644 markdown/bitburner.bladeburneractionname.md
create mode 100644 markdown/bitburner.bladeburneractiontype.md
create mode 100644 markdown/bitburner.bladeburneractiontypeforsleeve.md
create mode 100644 markdown/bitburner.bladeburnerblackopname.md
create mode 100644 markdown/bitburner.bladeburnercontractname.md
create mode 100644 markdown/bitburner.bladeburnergeneralactionname.md
create mode 100644 markdown/bitburner.bladeburneroperationname.md
create mode 100644 markdown/bitburner.bladeburnerskillname.md
create mode 100644 markdown/bitburner.gymlocationname.md
create mode 100644 markdown/bitburner.specialbladeburneractiontypeforsleeve.md
create mode 100644 markdown/bitburner.universitylocationname.md
diff --git a/markdown/bitburner.bladeburner.getactionautolevel.md b/markdown/bitburner.bladeburner.getactionautolevel.md
index 1a68f5429..50161a7f2 100644
--- a/markdown/bitburner.bladeburner.getactionautolevel.md
+++ b/markdown/bitburner.bladeburner.getactionautolevel.md
@@ -9,15 +9,18 @@ Get whether an action is set to autolevel.
**Signature:**
```typescript
-getActionAutolevel(type: string, name: string): boolean;
+getActionAutolevel(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ ): boolean;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| type | string | Type of action. |
-| name | string | Name of action. Must be an exact match. |
+| type | [BladeburnerActionType](./bitburner.bladeburneractiontype.md) \| \`${[BladeburnerActionType](./bitburner.bladeburneractiontype.md)}\` | Type of action. |
+| name | [BladeburnerActionName](./bitburner.bladeburneractionname.md) \| \`${[BladeburnerActionName](./bitburner.bladeburneractionname.md)}\` | Name of action. Must be an exact match. |
**Returns:**
diff --git a/markdown/bitburner.bladeburner.getactioncountremaining.md b/markdown/bitburner.bladeburner.getactioncountremaining.md
index 052ad6032..cc23e84de 100644
--- a/markdown/bitburner.bladeburner.getactioncountremaining.md
+++ b/markdown/bitburner.bladeburner.getactioncountremaining.md
@@ -9,15 +9,18 @@ Get action count remaining.
**Signature:**
```typescript
-getActionCountRemaining(type: string, name: string): number;
+getActionCountRemaining(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ ): number;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| type | string | Type of action. |
-| name | string | Name of action. Must be an exact match. |
+| type | [BladeburnerActionType](./bitburner.bladeburneractiontype.md) \| \`${[BladeburnerActionType](./bitburner.bladeburneractiontype.md)}\` | Type of action. |
+| name | [BladeburnerActionName](./bitburner.bladeburneractionname.md) \| \`${[BladeburnerActionName](./bitburner.bladeburneractionname.md)}\` | Name of action. Must be an exact match. |
**Returns:**
diff --git a/markdown/bitburner.bladeburner.getactioncurrentlevel.md b/markdown/bitburner.bladeburner.getactioncurrentlevel.md
index 384f3adb5..e991ff523 100644
--- a/markdown/bitburner.bladeburner.getactioncurrentlevel.md
+++ b/markdown/bitburner.bladeburner.getactioncurrentlevel.md
@@ -9,15 +9,18 @@ Get the current level of an action.
**Signature:**
```typescript
-getActionCurrentLevel(type: string, name: string): number;
+getActionCurrentLevel(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ ): number;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| type | string | Type of action. |
-| name | string | Name of action. Must be an exact match. |
+| type | [BladeburnerActionType](./bitburner.bladeburneractiontype.md) \| \`${[BladeburnerActionType](./bitburner.bladeburneractiontype.md)}\` | Type of action. |
+| name | [BladeburnerActionName](./bitburner.bladeburneractionname.md) \| \`${[BladeburnerActionName](./bitburner.bladeburneractionname.md)}\` | Name of action. Must be an exact match. |
**Returns:**
diff --git a/markdown/bitburner.bladeburner.getactionestimatedsuccesschance.md b/markdown/bitburner.bladeburner.getactionestimatedsuccesschance.md
index 5b028c00e..599c59668 100644
--- a/markdown/bitburner.bladeburner.getactionestimatedsuccesschance.md
+++ b/markdown/bitburner.bladeburner.getactionestimatedsuccesschance.md
@@ -9,15 +9,19 @@ Get estimate success chance of an action.
**Signature:**
```typescript
-getActionEstimatedSuccessChance(type: string, name: string, sleeveNumber?: number): [number, number];
+getActionEstimatedSuccessChance(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ sleeveNumber?: number,
+ ): [number, number];
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| type | string | Type of action. |
-| name | string | Name of action. Must be an exact match. |
+| type | [BladeburnerActionType](./bitburner.bladeburneractiontype.md) \| \`${[BladeburnerActionType](./bitburner.bladeburneractiontype.md)}\` | Type of action. |
+| name | [BladeburnerActionName](./bitburner.bladeburneractionname.md) \| \`${[BladeburnerActionName](./bitburner.bladeburneractionname.md)}\` | Name of action. Must be an exact match. |
| sleeveNumber | number | _(Optional)_ Optional. Index of the sleeve to retrieve information. |
**Returns:**
diff --git a/markdown/bitburner.bladeburner.getactionmaxlevel.md b/markdown/bitburner.bladeburner.getactionmaxlevel.md
index dee2743eb..10ce0c9c9 100644
--- a/markdown/bitburner.bladeburner.getactionmaxlevel.md
+++ b/markdown/bitburner.bladeburner.getactionmaxlevel.md
@@ -9,15 +9,18 @@ Get the maximum level of an action.
**Signature:**
```typescript
-getActionMaxLevel(type: string, name: string): number;
+getActionMaxLevel(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ ): number;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| type | string | Type of action. |
-| name | string | Name of action. Must be an exact match. |
+| type | [BladeburnerActionType](./bitburner.bladeburneractiontype.md) \| \`${[BladeburnerActionType](./bitburner.bladeburneractiontype.md)}\` | Type of action. |
+| name | [BladeburnerActionName](./bitburner.bladeburneractionname.md) \| \`${[BladeburnerActionName](./bitburner.bladeburneractionname.md)}\` | Name of action. Must be an exact match. |
**Returns:**
diff --git a/markdown/bitburner.bladeburner.getactionrepgain.md b/markdown/bitburner.bladeburner.getactionrepgain.md
index 6caabcaeb..b8a302900 100644
--- a/markdown/bitburner.bladeburner.getactionrepgain.md
+++ b/markdown/bitburner.bladeburner.getactionrepgain.md
@@ -9,15 +9,19 @@ Get the reputation gain of an action.
**Signature:**
```typescript
-getActionRepGain(type: string, name: string, level?: number): number;
+getActionRepGain(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ level?: number,
+ ): number;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| type | string | Type of action. |
-| name | string | Name of action. Must be an exact match. |
+| type | [BladeburnerActionType](./bitburner.bladeburneractiontype.md) \| \`${[BladeburnerActionType](./bitburner.bladeburneractiontype.md)}\` | Type of action. |
+| name | [BladeburnerActionName](./bitburner.bladeburneractionname.md) \| \`${[BladeburnerActionName](./bitburner.bladeburneractionname.md)}\` | Name of action. Must be an exact match. |
| level | number | _(Optional)_ Optional number. Action level at which to calculate the gain. Will be the action's current level if not given. |
**Returns:**
diff --git a/markdown/bitburner.bladeburner.getactionsuccesses.md b/markdown/bitburner.bladeburner.getactionsuccesses.md
index 349b243ad..b1ce5a332 100644
--- a/markdown/bitburner.bladeburner.getactionsuccesses.md
+++ b/markdown/bitburner.bladeburner.getactionsuccesses.md
@@ -9,15 +9,18 @@ Get action successes.
**Signature:**
```typescript
-getActionSuccesses(type: string, name: string): number;
+getActionSuccesses(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ ): number;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| type | string | Type of action. |
-| name | string | Name of action. Must be an exact match. |
+| type | [BladeburnerActionType](./bitburner.bladeburneractiontype.md) \| \`${[BladeburnerActionType](./bitburner.bladeburneractiontype.md)}\` | Type of action. |
+| name | [BladeburnerActionName](./bitburner.bladeburneractionname.md) \| \`${[BladeburnerActionName](./bitburner.bladeburneractionname.md)}\` | Name of action. Must be an exact match. |
**Returns:**
diff --git a/markdown/bitburner.bladeburner.getactiontime.md b/markdown/bitburner.bladeburner.getactiontime.md
index 08ac013ed..c53a89d45 100644
--- a/markdown/bitburner.bladeburner.getactiontime.md
+++ b/markdown/bitburner.bladeburner.getactiontime.md
@@ -9,15 +9,18 @@ Get the time to complete an action.
**Signature:**
```typescript
-getActionTime(type: string, name: string): number;
+getActionTime(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ ): number;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| type | string | Type of action. |
-| name | string | Name of action. Must be an exact match. |
+| type | [BladeburnerActionType](./bitburner.bladeburneractiontype.md) \| \`${[BladeburnerActionType](./bitburner.bladeburneractiontype.md)}\` | Type of action. |
+| name | [BladeburnerActionName](./bitburner.bladeburneractionname.md) \| \`${[BladeburnerActionName](./bitburner.bladeburneractionname.md)}\` | Name of action. Must be an exact match. |
**Returns:**
diff --git a/markdown/bitburner.bladeburner.getblackopnames.md b/markdown/bitburner.bladeburner.getblackopnames.md
index 3763d988c..fbacdffbb 100644
--- a/markdown/bitburner.bladeburner.getblackopnames.md
+++ b/markdown/bitburner.bladeburner.getblackopnames.md
@@ -9,11 +9,11 @@ List all black ops.
**Signature:**
```typescript
-getBlackOpNames(): string[];
+getBlackOpNames(): BladeburnerBlackOpName[];
```
**Returns:**
-string\[\]
+[BladeburnerBlackOpName](./bitburner.bladeburnerblackopname.md)\[\]
Array of strings containing the names of all Bladeburner Black Ops.
diff --git a/markdown/bitburner.bladeburner.getblackoprank.md b/markdown/bitburner.bladeburner.getblackoprank.md
index e4c87f7b6..109c14527 100644
--- a/markdown/bitburner.bladeburner.getblackoprank.md
+++ b/markdown/bitburner.bladeburner.getblackoprank.md
@@ -9,14 +9,14 @@ Get black op required rank.
**Signature:**
```typescript
-getBlackOpRank(name: string): number;
+getBlackOpRank(name: BladeburnerBlackOpName): number;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| name | string | Name of BlackOp. Must be an exact match. |
+| name | [BladeburnerBlackOpName](./bitburner.bladeburnerblackopname.md) | Name of BlackOp. Must be an exact match. |
**Returns:**
diff --git a/markdown/bitburner.bladeburner.getcontractnames.md b/markdown/bitburner.bladeburner.getcontractnames.md
index b77ada5fe..5e47af7f2 100644
--- a/markdown/bitburner.bladeburner.getcontractnames.md
+++ b/markdown/bitburner.bladeburner.getcontractnames.md
@@ -9,11 +9,11 @@ List all contracts.
**Signature:**
```typescript
-getContractNames(): string[];
+getContractNames(): BladeburnerContractName[];
```
**Returns:**
-string\[\]
+[BladeburnerContractName](./bitburner.bladeburnercontractname.md)\[\]
Array of strings containing the names of all Bladeburner contracts.
diff --git a/markdown/bitburner.bladeburner.getgeneralactionnames.md b/markdown/bitburner.bladeburner.getgeneralactionnames.md
index efe7b2be4..ad66e0462 100644
--- a/markdown/bitburner.bladeburner.getgeneralactionnames.md
+++ b/markdown/bitburner.bladeburner.getgeneralactionnames.md
@@ -9,11 +9,11 @@ List all general actions.
**Signature:**
```typescript
-getGeneralActionNames(): string[];
+getGeneralActionNames(): BladeburnerGeneralActionName[];
```
**Returns:**
-string\[\]
+[BladeburnerGeneralActionName](./bitburner.bladeburnergeneralactionname.md)\[\]
Array of strings containing the names of all general Bladeburner actions.
diff --git a/markdown/bitburner.bladeburner.getnextblackop.md b/markdown/bitburner.bladeburner.getnextblackop.md
index f64673b86..cfcdfe197 100644
--- a/markdown/bitburner.bladeburner.getnextblackop.md
+++ b/markdown/bitburner.bladeburner.getnextblackop.md
@@ -9,11 +9,11 @@ Get an object with the name and rank requirement of the next BlackOp that can be
**Signature:**
```typescript
-getNextBlackOp(): { name: string; rank: number } | null;
+getNextBlackOp(): { name: BladeburnerBlackOpName; rank: number } | null;
```
**Returns:**
-{ name: string; rank: number } \| null
+{ name: [BladeburnerBlackOpName](./bitburner.bladeburnerblackopname.md); rank: number } \| null
An object with the `.name` and `.rank` properties of the available BlackOp, or `null`.
diff --git a/markdown/bitburner.bladeburner.getoperationnames.md b/markdown/bitburner.bladeburner.getoperationnames.md
index 2352b3c84..3b93e1e68 100644
--- a/markdown/bitburner.bladeburner.getoperationnames.md
+++ b/markdown/bitburner.bladeburner.getoperationnames.md
@@ -9,11 +9,11 @@ List all operations.
**Signature:**
```typescript
-getOperationNames(): string[];
+getOperationNames(): BladeburnerOperationName[];
```
**Returns:**
-string\[\]
+[BladeburnerOperationName](./bitburner.bladeburneroperationname.md)\[\]
Array of strings containing the names of all Bladeburner operations.
diff --git a/markdown/bitburner.bladeburner.getskilllevel.md b/markdown/bitburner.bladeburner.getskilllevel.md
index 4ff8e3a4b..8976dd348 100644
--- a/markdown/bitburner.bladeburner.getskilllevel.md
+++ b/markdown/bitburner.bladeburner.getskilllevel.md
@@ -9,14 +9,14 @@ Get skill level.
**Signature:**
```typescript
-getSkillLevel(skillName: string): number;
+getSkillLevel(skillName: BladeburnerSkillName | `${BladeburnerSkillName}`): number;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| skillName | string | Name of skill. Case-sensitive and must be an exact match. |
+| skillName | [BladeburnerSkillName](./bitburner.bladeburnerskillname.md) \| \`${[BladeburnerSkillName](./bitburner.bladeburnerskillname.md)}\` | Name of skill. Case-sensitive and must be an exact match. |
**Returns:**
diff --git a/markdown/bitburner.bladeburner.getskillnames.md b/markdown/bitburner.bladeburner.getskillnames.md
index 9cfd053b1..cf3b367d2 100644
--- a/markdown/bitburner.bladeburner.getskillnames.md
+++ b/markdown/bitburner.bladeburner.getskillnames.md
@@ -9,11 +9,11 @@ List all skills.
**Signature:**
```typescript
-getSkillNames(): string[];
+getSkillNames(): BladeburnerSkillName[];
```
**Returns:**
-string\[\]
+[BladeburnerSkillName](./bitburner.bladeburnerskillname.md)\[\]
Array of strings containing the names of all general Bladeburner skills.
diff --git a/markdown/bitburner.bladeburner.getskillupgradecost.md b/markdown/bitburner.bladeburner.getskillupgradecost.md
index 83173bdad..f20f8dd62 100644
--- a/markdown/bitburner.bladeburner.getskillupgradecost.md
+++ b/markdown/bitburner.bladeburner.getskillupgradecost.md
@@ -9,14 +9,14 @@ Get cost to upgrade skill.
**Signature:**
```typescript
-getSkillUpgradeCost(skillName: string, count?: number): number;
+getSkillUpgradeCost(skillName: BladeburnerSkillName | `${BladeburnerSkillName}`, count?: number): number;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| skillName | string | Name of skill. Case-sensitive and must be an exact match. |
+| skillName | [BladeburnerSkillName](./bitburner.bladeburnerskillname.md) \| \`${[BladeburnerSkillName](./bitburner.bladeburnerskillname.md)}\` | Name of skill. Case-sensitive and must be an exact match. |
| count | number | _(Optional)_ Number of times to upgrade the skill. Defaults to 1 if not specified. |
**Returns:**
diff --git a/markdown/bitburner.bladeburner.getteamsize.md b/markdown/bitburner.bladeburner.getteamsize.md
index 02811fa95..8a9a93574 100644
--- a/markdown/bitburner.bladeburner.getteamsize.md
+++ b/markdown/bitburner.bladeburner.getteamsize.md
@@ -9,15 +9,18 @@ Get team size.
**Signature:**
```typescript
-getTeamSize(type?: string, name?: string): number;
+getTeamSize(
+ type?: BladeburnerActionType | `${BladeburnerActionType}`,
+ name?: BladeburnerActionName | `${BladeburnerActionName}`,
+ ): number;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| type | string | _(Optional)_ Type of action. |
-| name | string | _(Optional)_ Name of action. Must be an exact match. |
+| type | [BladeburnerActionType](./bitburner.bladeburneractiontype.md) \| \`${[BladeburnerActionType](./bitburner.bladeburneractiontype.md)}\` | _(Optional)_ Type of action. |
+| name | [BladeburnerActionName](./bitburner.bladeburneractionname.md) \| \`${[BladeburnerActionName](./bitburner.bladeburneractionname.md)}\` | _(Optional)_ Name of action. Must be an exact match. |
**Returns:**
diff --git a/markdown/bitburner.bladeburner.setactionautolevel.md b/markdown/bitburner.bladeburner.setactionautolevel.md
index cdf91610a..9958f487c 100644
--- a/markdown/bitburner.bladeburner.setactionautolevel.md
+++ b/markdown/bitburner.bladeburner.setactionautolevel.md
@@ -9,15 +9,19 @@ Set an action autolevel.
**Signature:**
```typescript
-setActionAutolevel(type: string, name: string, autoLevel: boolean): void;
+setActionAutolevel(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ autoLevel: boolean,
+ ): void;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| type | string | Type of action. |
-| name | string | Name of action. Must be an exact match. |
+| type | [BladeburnerActionType](./bitburner.bladeburneractiontype.md) \| \`${[BladeburnerActionType](./bitburner.bladeburneractiontype.md)}\` | Type of action. |
+| name | [BladeburnerActionName](./bitburner.bladeburneractionname.md) \| \`${[BladeburnerActionName](./bitburner.bladeburneractionname.md)}\` | Name of action. Must be an exact match. |
| autoLevel | boolean | Whether or not to autolevel this action |
**Returns:**
diff --git a/markdown/bitburner.bladeburner.setactionlevel.md b/markdown/bitburner.bladeburner.setactionlevel.md
index df40e0a6b..e9eafd0a8 100644
--- a/markdown/bitburner.bladeburner.setactionlevel.md
+++ b/markdown/bitburner.bladeburner.setactionlevel.md
@@ -9,15 +9,19 @@ Set the level of an action.
**Signature:**
```typescript
-setActionLevel(type: string, name: string, level: number): void;
+setActionLevel(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ level: number,
+ ): void;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| type | string | Type of action. |
-| name | string | Name of action. Must be an exact match. |
+| type | [BladeburnerActionType](./bitburner.bladeburneractiontype.md) \| \`${[BladeburnerActionType](./bitburner.bladeburneractiontype.md)}\` | Type of action. |
+| name | [BladeburnerActionName](./bitburner.bladeburneractionname.md) \| \`${[BladeburnerActionName](./bitburner.bladeburneractionname.md)}\` | Name of action. Must be an exact match. |
| level | number | Level to set this action to. |
**Returns:**
diff --git a/markdown/bitburner.bladeburner.setteamsize.md b/markdown/bitburner.bladeburner.setteamsize.md
index d70dec94e..e09292b29 100644
--- a/markdown/bitburner.bladeburner.setteamsize.md
+++ b/markdown/bitburner.bladeburner.setteamsize.md
@@ -9,15 +9,19 @@ Set team size.
**Signature:**
```typescript
-setTeamSize(type: string, name: string, size: number): number;
+setTeamSize(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ size: number,
+ ): number;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| type | string | Type of action. |
-| name | string | Name of action. Must be an exact match. |
+| type | [BladeburnerActionType](./bitburner.bladeburneractiontype.md) \| \`${[BladeburnerActionType](./bitburner.bladeburneractiontype.md)}\` | Type of action. |
+| name | [BladeburnerActionName](./bitburner.bladeburneractionname.md) \| \`${[BladeburnerActionName](./bitburner.bladeburneractionname.md)}\` | Name of action. Must be an exact match. |
| size | number | Number of team members to set. Will be converted using Math.round(). |
**Returns:**
diff --git a/markdown/bitburner.bladeburner.startaction.md b/markdown/bitburner.bladeburner.startaction.md
index 072c2b71b..f6c5f6577 100644
--- a/markdown/bitburner.bladeburner.startaction.md
+++ b/markdown/bitburner.bladeburner.startaction.md
@@ -9,15 +9,18 @@ Start an action.
**Signature:**
```typescript
-startAction(type: string, name: string): boolean;
+startAction(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ ): boolean;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| type | string | Type of action. |
-| name | string | Name of action. Must be an exact match |
+| type | [BladeburnerActionType](./bitburner.bladeburneractiontype.md) \| \`${[BladeburnerActionType](./bitburner.bladeburneractiontype.md)}\` | Type of action. |
+| name | [BladeburnerActionName](./bitburner.bladeburneractionname.md) \| \`${[BladeburnerActionName](./bitburner.bladeburneractionname.md)}\` | Name of action. Must be an exact match |
**Returns:**
diff --git a/markdown/bitburner.bladeburner.upgradeskill.md b/markdown/bitburner.bladeburner.upgradeskill.md
index ea2693225..15f958df0 100644
--- a/markdown/bitburner.bladeburner.upgradeskill.md
+++ b/markdown/bitburner.bladeburner.upgradeskill.md
@@ -9,14 +9,14 @@ Upgrade skill.
**Signature:**
```typescript
-upgradeSkill(skillName: string, count?: number): boolean;
+upgradeSkill(skillName: BladeburnerSkillName | `${BladeburnerSkillName}`, count?: number): boolean;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| skillName | string | Name of skill to be upgraded. Case-sensitive and must be an exact match. |
+| skillName | [BladeburnerSkillName](./bitburner.bladeburnerskillname.md) \| \`${[BladeburnerSkillName](./bitburner.bladeburnerskillname.md)}\` | Name of skill to be upgraded. Case-sensitive and must be an exact match. |
| count | number | _(Optional)_ Number of times to upgrade the skill. Defaults to 1 if not specified. |
**Returns:**
diff --git a/markdown/bitburner.bladeburneractionname.md b/markdown/bitburner.bladeburneractionname.md
new file mode 100644
index 000000000..d3704f06e
--- /dev/null
+++ b/markdown/bitburner.bladeburneractionname.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [bitburner](./bitburner.md) > [BladeburnerActionName](./bitburner.bladeburneractionname.md)
+
+## BladeburnerActionName type
+
+
+**Signature:**
+
+```typescript
+export type BladeburnerActionName =
+ | BladeburnerGeneralActionName
+ | BladeburnerContractName
+ | BladeburnerOperationName
+ | BladeburnerBlackOpName;
+```
+**References:** [BladeburnerGeneralActionName](./bitburner.bladeburnergeneralactionname.md), [BladeburnerContractName](./bitburner.bladeburnercontractname.md), [BladeburnerOperationName](./bitburner.bladeburneroperationname.md), [BladeburnerBlackOpName](./bitburner.bladeburnerblackopname.md)
+
diff --git a/markdown/bitburner.bladeburneractiontype.md b/markdown/bitburner.bladeburneractiontype.md
new file mode 100644
index 000000000..900098568
--- /dev/null
+++ b/markdown/bitburner.bladeburneractiontype.md
@@ -0,0 +1,23 @@
+
+
+[Home](./index.md) > [bitburner](./bitburner.md) > [BladeburnerActionType](./bitburner.bladeburneractiontype.md)
+
+## BladeburnerActionType enum
+
+Action types of Bladeburner
+
+**Signature:**
+
+```typescript
+declare enum BladeburnerActionType
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| BlackOp | "Black Operations"
| |
+| Contract | "Contracts"
| |
+| General | "General"
| |
+| Operation | "Operations"
| |
+
diff --git a/markdown/bitburner.bladeburneractiontypeforsleeve.md b/markdown/bitburner.bladeburneractiontypeforsleeve.md
new file mode 100644
index 000000000..dcfd5f57d
--- /dev/null
+++ b/markdown/bitburner.bladeburneractiontypeforsleeve.md
@@ -0,0 +1,16 @@
+
+
+[Home](./index.md) > [bitburner](./bitburner.md) > [BladeburnerActionTypeForSleeve](./bitburner.bladeburneractiontypeforsleeve.md)
+
+## BladeburnerActionTypeForSleeve type
+
+
+**Signature:**
+
+```typescript
+export type BladeburnerActionTypeForSleeve =
+ | Exclude
+ | SpecialBladeburnerActionTypeForSleeve;
+```
+**References:** [BladeburnerGeneralActionName](./bitburner.bladeburnergeneralactionname.md), [BladeburnerGeneralActionName.InciteViolence](./bitburner.bladeburnergeneralactionname.md), [SpecialBladeburnerActionTypeForSleeve](./bitburner.specialbladeburneractiontypeforsleeve.md)
+
diff --git a/markdown/bitburner.bladeburnerblackopname.md b/markdown/bitburner.bladeburnerblackopname.md
new file mode 100644
index 000000000..366752ccb
--- /dev/null
+++ b/markdown/bitburner.bladeburnerblackopname.md
@@ -0,0 +1,40 @@
+
+
+[Home](./index.md) > [bitburner](./bitburner.md) > [BladeburnerBlackOpName](./bitburner.bladeburnerblackopname.md)
+
+## BladeburnerBlackOpName enum
+
+Black Operation names of Bladeburner
+
+**Signature:**
+
+```typescript
+declare enum BladeburnerBlackOpName
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| OperationAnnihilus | "Operation Annihilus"
| |
+| OperationArchangel | "Operation Archangel"
| |
+| OperationAres | "Operation Ares"
| |
+| OperationCenturion | "Operation Centurion"
| |
+| OperationDaedalus | "Operation Daedalus"
| |
+| OperationDeckard | "Operation Deckard"
| |
+| OperationHyron | "Operation Hyron"
| |
+| OperationIonStorm | "Operation Ion Storm"
| |
+| OperationJuggernaut | "Operation Juggernaut"
| |
+| OperationK | "Operation K"
| |
+| OperationMorpheus | "Operation Morpheus"
| |
+| OperationRedDragon | "Operation Red Dragon"
| |
+| OperationShoulderOfOrion | "Operation Shoulder of Orion"
| |
+| OperationTitan | "Operation Titan"
| |
+| OperationTyphoon | "Operation Typhoon"
| |
+| OperationTyrell | "Operation Tyrell"
| |
+| OperationUltron | "Operation Ultron"
| |
+| OperationVindictus | "Operation Vindictus"
| |
+| OperationWallace | "Operation Wallace"
| |
+| OperationX | "Operation X"
| |
+| OperationZero | "Operation Zero"
| |
+
diff --git a/markdown/bitburner.bladeburnercontractname.md b/markdown/bitburner.bladeburnercontractname.md
new file mode 100644
index 000000000..804aa3c4b
--- /dev/null
+++ b/markdown/bitburner.bladeburnercontractname.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [bitburner](./bitburner.md) > [BladeburnerContractName](./bitburner.bladeburnercontractname.md)
+
+## BladeburnerContractName enum
+
+Contract names of Bladeburner
+
+**Signature:**
+
+```typescript
+declare enum BladeburnerContractName
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| BountyHunter | "Bounty Hunter"
| |
+| Retirement | "Retirement"
| |
+| Tracking | "Tracking"
| |
+
diff --git a/markdown/bitburner.bladeburnergeneralactionname.md b/markdown/bitburner.bladeburnergeneralactionname.md
new file mode 100644
index 000000000..5f82ec9af
--- /dev/null
+++ b/markdown/bitburner.bladeburnergeneralactionname.md
@@ -0,0 +1,25 @@
+
+
+[Home](./index.md) > [bitburner](./bitburner.md) > [BladeburnerGeneralActionName](./bitburner.bladeburnergeneralactionname.md)
+
+## BladeburnerGeneralActionName enum
+
+General action names of Bladeburner
+
+**Signature:**
+
+```typescript
+declare enum BladeburnerGeneralActionName
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| Diplomacy | "Diplomacy"
| |
+| FieldAnalysis | "Field Analysis"
| |
+| HyperbolicRegen | "Hyperbolic Regeneration Chamber"
| |
+| InciteViolence | "Incite Violence"
| |
+| Recruitment | "Recruitment"
| |
+| Training | "Training"
| |
+
diff --git a/markdown/bitburner.bladeburneroperationname.md b/markdown/bitburner.bladeburneroperationname.md
new file mode 100644
index 000000000..fd89e7277
--- /dev/null
+++ b/markdown/bitburner.bladeburneroperationname.md
@@ -0,0 +1,25 @@
+
+
+[Home](./index.md) > [bitburner](./bitburner.md) > [BladeburnerOperationName](./bitburner.bladeburneroperationname.md)
+
+## BladeburnerOperationName enum
+
+Operation names of Bladeburner
+
+**Signature:**
+
+```typescript
+declare enum BladeburnerOperationName
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| Assassination | "Assassination"
| |
+| Investigation | "Investigation"
| |
+| Raid | "Raid"
| |
+| StealthRetirement | "Stealth Retirement Operation"
| |
+| Sting | "Sting Operation"
| |
+| Undercover | "Undercover Operation"
| |
+
diff --git a/markdown/bitburner.bladeburnerskillname.md b/markdown/bitburner.bladeburnerskillname.md
new file mode 100644
index 000000000..5fdefb527
--- /dev/null
+++ b/markdown/bitburner.bladeburnerskillname.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [bitburner](./bitburner.md) > [BladeburnerSkillName](./bitburner.bladeburnerskillname.md)
+
+## BladeburnerSkillName enum
+
+Skill names type of Bladeburner
+
+**Signature:**
+
+```typescript
+declare enum BladeburnerSkillName
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| BladesIntuition | "Blade's Intuition"
| |
+| Cloak | "Cloak"
| |
+| CybersEdge | "Cyber's Edge"
| |
+| Datamancer | "Datamancer"
| |
+| DigitalObserver | "Digital Observer"
| |
+| EvasiveSystem | "Evasive System"
| |
+| HandsOfMidas | "Hands of Midas"
| |
+| Hyperdrive | "Hyperdrive"
| |
+| Overclock | "Overclock"
| |
+| Reaper | "Reaper"
| |
+| ShortCircuit | "Short-Circuit"
| |
+| Tracer | "Tracer"
| |
+
diff --git a/markdown/bitburner.gymlocationname.md b/markdown/bitburner.gymlocationname.md
new file mode 100644
index 000000000..ab3bf1097
--- /dev/null
+++ b/markdown/bitburner.gymlocationname.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [bitburner](./bitburner.md) > [GymLocationName](./bitburner.gymlocationname.md)
+
+## GymLocationName enum
+
+Locations of gym
+
+**Signature:**
+
+```typescript
+declare enum GymLocationName
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| AevumCrushFitnessGym | LocationName.AevumCrushFitnessGym
| |
+| AevumSnapFitnessGym | LocationName.AevumSnapFitnessGym
| |
+| Sector12IronGym | LocationName.Sector12IronGym
| |
+| Sector12PowerhouseGym | LocationName.Sector12PowerhouseGym
| |
+| VolhavenMilleniumFitnessGym | LocationName.VolhavenMilleniumFitnessGym
| |
+
diff --git a/markdown/bitburner.md b/markdown/bitburner.md
index 41de47a50..ca8aedde8 100644
--- a/markdown/bitburner.md
+++ b/markdown/bitburner.md
@@ -8,18 +8,27 @@
| Enumeration | Description |
| --- | --- |
+| [BladeburnerActionType](./bitburner.bladeburneractiontype.md) | Action types of Bladeburner |
+| [BladeburnerBlackOpName](./bitburner.bladeburnerblackopname.md) | Black Operation names of Bladeburner |
+| [BladeburnerContractName](./bitburner.bladeburnercontractname.md) | Contract names of Bladeburner |
+| [BladeburnerGeneralActionName](./bitburner.bladeburnergeneralactionname.md) | General action names of Bladeburner |
+| [BladeburnerOperationName](./bitburner.bladeburneroperationname.md) | Operation names of Bladeburner |
+| [BladeburnerSkillName](./bitburner.bladeburnerskillname.md) | Skill names type of Bladeburner |
| [CityName](./bitburner.cityname.md) | Names of all cities |
| [CompanyName](./bitburner.companyname.md) | Names of all companies |
| [CrimeType](./bitburner.crimetype.md) | |
| [FactionWorkType](./bitburner.factionworktype.md) | |
+| [GymLocationName](./bitburner.gymlocationname.md) | Locations of gym |
| [GymType](./bitburner.gymtype.md) | |
| [JobField](./bitburner.jobfield.md) | |
| [JobName](./bitburner.jobname.md) | |
| [LocationName](./bitburner.locationname.md) | Names of all locations |
| [OrderType](./bitburner.ordertype.md) | |
| [PositionType](./bitburner.positiontype.md) | |
+| [SpecialBladeburnerActionTypeForSleeve](./bitburner.specialbladeburneractiontypeforsleeve.md) | These special Bladeburner action types are only for Sleeve |
| [ToastVariant](./bitburner.toastvariant.md) | |
| [UniversityClassType](./bitburner.universityclasstype.md) | |
+| [UniversityLocationName](./bitburner.universitylocationname.md) | Locations of university |
## Interfaces
@@ -152,6 +161,8 @@
| Type Alias | Description |
| --- | --- |
+| [BladeburnerActionName](./bitburner.bladeburneractionname.md) | |
+| [BladeburnerActionTypeForSleeve](./bitburner.bladeburneractiontypeforsleeve.md) | |
| [CodingContractData](./bitburner.codingcontractdata.md) | Coding contract data will differ depending on coding contract. |
| [CorpEmployeePosition](./bitburner.corpemployeeposition.md) | |
| [CorpIndustryName](./bitburner.corpindustryname.md) | |
diff --git a/markdown/bitburner.singularity.gymworkout.md b/markdown/bitburner.singularity.gymworkout.md
index db0b75eca..e2999a3c3 100644
--- a/markdown/bitburner.singularity.gymworkout.md
+++ b/markdown/bitburner.singularity.gymworkout.md
@@ -9,15 +9,15 @@ Workout at the gym.
**Signature:**
```typescript
-gymWorkout(gymName: string, stat: string, focus?: boolean): boolean;
+gymWorkout(gymName: GymLocationName | `${GymLocationName}`, stat: GymType | `${GymType}`, focus?: boolean): boolean;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| gymName | string | Name of gym. You must be in the correct city for whatever gym you specify. |
-| stat | string | The stat you want to train. |
+| gymName | [GymLocationName](./bitburner.gymlocationname.md) \| \`${[GymLocationName](./bitburner.gymlocationname.md)}\` | Name of gym. You must be in the correct city for whatever gym you specify. |
+| stat | [GymType](./bitburner.gymtype.md) \| \`${[GymType](./bitburner.gymtype.md)}\` | The stat you want to train. |
| focus | boolean | _(Optional)_ Acquire player focus on this gym workout. Optional. Defaults to true. |
**Returns:**
diff --git a/markdown/bitburner.singularity.universitycourse.md b/markdown/bitburner.singularity.universitycourse.md
index 0388e0daf..38b63fe9d 100644
--- a/markdown/bitburner.singularity.universitycourse.md
+++ b/markdown/bitburner.singularity.universitycourse.md
@@ -9,15 +9,19 @@ Take university class.
**Signature:**
```typescript
-universityCourse(universityName: string, courseName: string, focus?: boolean): boolean;
+universityCourse(
+ universityName: UniversityLocationName | `${UniversityLocationName}`,
+ courseName: UniversityClassType | `${UniversityClassType}`,
+ focus?: boolean,
+ ): boolean;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
-| universityName | string | Name of university. You must be in the correct city for whatever university you specify. |
-| courseName | string | Name of course. |
+| universityName | [UniversityLocationName](./bitburner.universitylocationname.md) \| \`${[UniversityLocationName](./bitburner.universitylocationname.md)}\` | Name of university. You must be in the correct city for whatever university you specify. |
+| courseName | [UniversityClassType](./bitburner.universityclasstype.md) \| \`${[UniversityClassType](./bitburner.universityclasstype.md)}\` | Name of course. |
| focus | boolean | _(Optional)_ Acquire player focus on this class. Optional. Defaults to true. |
**Returns:**
diff --git a/markdown/bitburner.sleeve.md b/markdown/bitburner.sleeve.md
index c2d5f2ab3..66318687f 100644
--- a/markdown/bitburner.sleeve.md
+++ b/markdown/bitburner.sleeve.md
@@ -36,6 +36,6 @@ If you are not in BitNode-10, then you must have Source-File 10 in order to use
| [setToIdle(sleeveNumber)](./bitburner.sleeve.settoidle.md) | Set a sleeve to idle. |
| [setToShockRecovery(sleeveNumber)](./bitburner.sleeve.settoshockrecovery.md) | Set a sleeve to shock recovery. |
| [setToSynchronize(sleeveNumber)](./bitburner.sleeve.settosynchronize.md) | Set a sleeve to synchronize. |
-| [setToUniversityCourse(sleeveNumber, university, className)](./bitburner.sleeve.settouniversitycourse.md) | Set a sleeve to take a class at a university. |
+| [setToUniversityCourse(sleeveNumber, universityName, courseName)](./bitburner.sleeve.settouniversitycourse.md) | Set a sleeve to take a class at a university. |
| [travel(sleeveNumber, city)](./bitburner.sleeve.travel.md) | Make a sleeve travel to another city. The cost for using this function is the same as for a player. |
diff --git a/markdown/bitburner.sleeve.settobladeburneraction.md b/markdown/bitburner.sleeve.settobladeburneraction.md
index 08a176749..7e7d52410 100644
--- a/markdown/bitburner.sleeve.settobladeburneraction.md
+++ b/markdown/bitburner.sleeve.settobladeburneraction.md
@@ -9,7 +9,11 @@ Set a sleeve to perform Bladeburner actions.
**Signature:**
```typescript
-setToBladeburnerAction(sleeveNumber: number, action: string, contract?: string): boolean;
+setToBladeburnerAction(
+ sleeveNumber: number,
+ action: BladeburnerActionTypeForSleeve | `${BladeburnerActionTypeForSleeve}`,
+ contract?: BladeburnerContractName,
+ ): boolean;
```
## Parameters
@@ -17,8 +21,8 @@ setToBladeburnerAction(sleeveNumber: number, action: string, contract?: string):
| Parameter | Type | Description |
| --- | --- | --- |
| sleeveNumber | number | Index of the sleeve to perform a Bladeburner action. |
-| action | string | Name of the action to be performed. |
-| contract | string | _(Optional)_ Name of the contract if applicable. |
+| action | [BladeburnerActionTypeForSleeve](./bitburner.bladeburneractiontypeforsleeve.md) \| \`${[BladeburnerActionTypeForSleeve](./bitburner.bladeburneractiontypeforsleeve.md)}\` | Name of the action to be performed. |
+| contract | [BladeburnerContractName](./bitburner.bladeburnercontractname.md) | _(Optional)_ Name of the contract if applicable. |
**Returns:**
diff --git a/markdown/bitburner.sleeve.settogymworkout.md b/markdown/bitburner.sleeve.settogymworkout.md
index 07ee824c9..cd9859153 100644
--- a/markdown/bitburner.sleeve.settogymworkout.md
+++ b/markdown/bitburner.sleeve.settogymworkout.md
@@ -9,7 +9,11 @@ Set a sleeve to workout at the gym.
**Signature:**
```typescript
-setToGymWorkout(sleeveNumber: number, gymName: string, stat: string): boolean;
+setToGymWorkout(
+ sleeveNumber: number,
+ gymName: GymLocationName | `${GymLocationName}`,
+ stat: GymType | `${GymType}`,
+ ): boolean;
```
## Parameters
@@ -17,8 +21,8 @@ setToGymWorkout(sleeveNumber: number, gymName: string, stat: string): boolean;
| Parameter | Type | Description |
| --- | --- | --- |
| sleeveNumber | number | Index of the sleeve to workout at the gym. |
-| gymName | string | Name of the gym. |
-| stat | string | Name of the stat to train. |
+| gymName | [GymLocationName](./bitburner.gymlocationname.md) \| \`${[GymLocationName](./bitburner.gymlocationname.md)}\` | Name of the gym. |
+| stat | [GymType](./bitburner.gymtype.md) \| \`${[GymType](./bitburner.gymtype.md)}\` | Name of the stat to train. |
**Returns:**
diff --git a/markdown/bitburner.sleeve.settouniversitycourse.md b/markdown/bitburner.sleeve.settouniversitycourse.md
index 9fcf24ceb..4a7e9bd61 100644
--- a/markdown/bitburner.sleeve.settouniversitycourse.md
+++ b/markdown/bitburner.sleeve.settouniversitycourse.md
@@ -9,7 +9,11 @@ Set a sleeve to take a class at a university.
**Signature:**
```typescript
-setToUniversityCourse(sleeveNumber: number, university: string, className: string): boolean;
+setToUniversityCourse(
+ sleeveNumber: number,
+ universityName: UniversityLocationName | `${UniversityLocationName}`,
+ courseName: UniversityClassType | `${UniversityClassType}`,
+ ): boolean;
```
## Parameters
@@ -17,8 +21,8 @@ setToUniversityCourse(sleeveNumber: number, university: string, className: strin
| Parameter | Type | Description |
| --- | --- | --- |
| sleeveNumber | number | Index of the sleeve to start taking class. |
-| university | string | Name of the university to attend. |
-| className | string | Name of the class to follow. |
+| universityName | [UniversityLocationName](./bitburner.universitylocationname.md) \| \`${[UniversityLocationName](./bitburner.universitylocationname.md)}\` | Name of the university to attend. |
+| courseName | [UniversityClassType](./bitburner.universityclasstype.md) \| \`${[UniversityClassType](./bitburner.universityclasstype.md)}\` | Name of the course to follow. |
**Returns:**
diff --git a/markdown/bitburner.specialbladeburneractiontypeforsleeve.md b/markdown/bitburner.specialbladeburneractiontypeforsleeve.md
new file mode 100644
index 000000000..ab5cc205d
--- /dev/null
+++ b/markdown/bitburner.specialbladeburneractiontypeforsleeve.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [bitburner](./bitburner.md) > [SpecialBladeburnerActionTypeForSleeve](./bitburner.specialbladeburneractiontypeforsleeve.md)
+
+## SpecialBladeburnerActionTypeForSleeve enum
+
+These special Bladeburner action types are only for Sleeve
+
+**Signature:**
+
+```typescript
+declare enum SpecialBladeburnerActionTypeForSleeve
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| InfiltrateSynthoids | "Infiltrate Synthoids"
| |
+| SupportMainSleeve | "Support main sleeve"
| |
+| TakeOnContracts | "Take on contracts"
| |
+
diff --git a/markdown/bitburner.universitylocationname.md b/markdown/bitburner.universitylocationname.md
new file mode 100644
index 000000000..1d57cab3f
--- /dev/null
+++ b/markdown/bitburner.universitylocationname.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [bitburner](./bitburner.md) > [UniversityLocationName](./bitburner.universitylocationname.md)
+
+## UniversityLocationName enum
+
+Locations of university
+
+**Signature:**
+
+```typescript
+declare enum UniversityLocationName
+```
+
+## Enumeration Members
+
+| Member | Value | Description |
+| --- | --- | --- |
+| AevumSummitUniversity | LocationName.AevumSummitUniversity
| |
+| Sector12RothmanUniversity | LocationName.Sector12RothmanUniversity
| |
+| VolhavenZBInstituteOfTechnology | LocationName.VolhavenZBInstituteOfTechnology
| |
+
diff --git a/src/Achievements/Achievements.ts b/src/Achievements/Achievements.ts
index bbf32092a..9b3f28db1 100644
--- a/src/Achievements/Achievements.ts
+++ b/src/Achievements/Achievements.ts
@@ -1,6 +1,6 @@
import {
AugmentationName,
- BladeSkillName,
+ BladeburnerSkillName,
CityName,
CompletedProgramName,
CorpUnlockName,
@@ -417,7 +417,8 @@ export const achievements: Record = {
Icon: "BLADEOVERCLOCK",
Visible: () => canAccessBitNodeFeature(6),
Condition: () =>
- Player.bladeburner?.getSkillLevel(BladeSkillName.overclock) === Skills[BladeSkillName.overclock].maxLvl,
+ Player.bladeburner?.getSkillLevel(BladeburnerSkillName.Overclock) ===
+ Skills[BladeburnerSkillName.Overclock].maxLvl,
},
BLADEBURNER_UNSPENT_100000: {
...achievementData.BLADEBURNER_UNSPENT_100000,
diff --git a/src/Bladeburner/Actions/Action.ts b/src/Bladeburner/Actions/Action.ts
index c862f8e44..56491798e 100644
--- a/src/Bladeburner/Actions/Action.ts
+++ b/src/Bladeburner/Actions/Action.ts
@@ -6,7 +6,7 @@ import type { Skills as PersonSkills } from "../../PersonObjects/Skills";
import { addOffset } from "../../utils/helpers/addOffset";
import { BladeburnerConstants } from "../data/Constants";
import { calculateIntelligenceBonus } from "../../PersonObjects/formulas/intelligence";
-import { BladeMultName } from "../Enums";
+import { BladeburnerMultName } from "../Enums";
import { getRecordKeys } from "../../Types/Record";
import { clampNumber } from "../../utils/helpers/clampNumber";
@@ -100,7 +100,7 @@ export abstract class ActionClass {
getActionTime(bladeburner: Bladeburner, person: Person): number {
const difficulty = this.getDifficulty();
let baseTime = difficulty / BladeburnerConstants.DifficultyToTimeFactor;
- const skillFac = bladeburner.getSkillMult(BladeMultName.actionTime); // Always < 1
+ const skillFac = bladeburner.getSkillMult(BladeburnerMultName.ActionTime); // Always < 1
const effAgility = bladeburner.getEffectiveSkillLevel(person, "agility");
const effDexterity = bladeburner.getEffectiveSkillLevel(person, "dexterity");
@@ -175,10 +175,10 @@ export abstract class ActionClass {
difficulty *= this.getChaosSuccessFactor(inst);
// Factor skill multipliers into success chance
- competence *= inst.getSkillMult(BladeMultName.successChanceAll);
+ competence *= inst.getSkillMult(BladeburnerMultName.SuccessChanceAll);
competence *= this.getActionTypeSkillSuccessBonus(inst);
- if (this.isStealth) competence *= inst.getSkillMult(BladeMultName.successChanceStealth);
- if (this.isKill) competence *= inst.getSkillMult(BladeMultName.successChanceKill);
+ if (this.isStealth) competence *= inst.getSkillMult(BladeburnerMultName.SuccessChanceStealth);
+ if (this.isKill) competence *= inst.getSkillMult(BladeburnerMultName.SuccessChanceKill);
// Augmentation multiplier
competence *= person.mults.bladeburner_success_chance;
diff --git a/src/Bladeburner/Actions/BlackOperation.ts b/src/Bladeburner/Actions/BlackOperation.ts
index e015300d6..7810fca5e 100644
--- a/src/Bladeburner/Actions/BlackOperation.ts
+++ b/src/Bladeburner/Actions/BlackOperation.ts
@@ -1,19 +1,19 @@
import type { Bladeburner } from "../Bladeburner";
import type { Availability, ActionIdentifier } from "../Types";
-import { BladeActionType, BladeBlackOpName } from "@enums";
+import { BladeburnerActionType, BladeburnerBlackOpName } from "@enums";
import { ActionClass, ActionParams } from "./Action";
import { operationSkillSuccessBonus, operationTeamSuccessBonus } from "./Operation";
interface BlackOpParams {
- name: BladeBlackOpName;
+ name: BladeburnerBlackOpName;
reqdRank: number;
n: number;
}
export class BlackOperation extends ActionClass {
- type: BladeActionType.blackOp = BladeActionType.blackOp;
- name: BladeBlackOpName;
+ type: BladeburnerActionType.BlackOp = BladeburnerActionType.BlackOp;
+ name: BladeburnerBlackOpName;
n: number;
reqdRank: number;
teamCount = 0;
diff --git a/src/Bladeburner/Actions/Contract.ts b/src/Bladeburner/Actions/Contract.ts
index bae9e9638..5949d5dea 100644
--- a/src/Bladeburner/Actions/Contract.ts
+++ b/src/Bladeburner/Actions/Contract.ts
@@ -2,23 +2,23 @@ import type { Bladeburner } from "../Bladeburner";
import type { ActionIdentifier } from "../Types";
import { Generic_fromJSON, IReviverValue, constructorsForReviver } from "../../utils/JSONReviver";
-import { BladeActionType, BladeContractName, BladeMultName } from "../Enums";
+import { BladeburnerActionType, BladeburnerContractName, BladeburnerMultName } from "../Enums";
import { LevelableActionClass, LevelableActionParams } from "./LevelableAction";
export class Contract extends LevelableActionClass {
- type: BladeActionType.contract = BladeActionType.contract;
- name: BladeContractName = BladeContractName.tracking;
+ type: BladeburnerActionType.Contract = BladeburnerActionType.Contract;
+ name: BladeburnerContractName = BladeburnerContractName.Tracking;
get id(): ActionIdentifier {
return { type: this.type, name: this.name };
}
- constructor(params: (LevelableActionParams & { name: BladeContractName }) | null = null) {
+ constructor(params: (LevelableActionParams & { name: BladeburnerContractName }) | null = null) {
super(params);
if (params) this.name = params.name;
}
getActionTypeSkillSuccessBonus(inst: Bladeburner): number {
- return inst.getSkillMult(BladeMultName.successChanceContract);
+ return inst.getSkillMult(BladeburnerMultName.SuccessChanceContract);
}
toJSON(): IReviverValue {
diff --git a/src/Bladeburner/Actions/GeneralAction.ts b/src/Bladeburner/Actions/GeneralAction.ts
index 75b32365b..10a8d686a 100644
--- a/src/Bladeburner/Actions/GeneralAction.ts
+++ b/src/Bladeburner/Actions/GeneralAction.ts
@@ -2,19 +2,19 @@ import type { Person } from "../../PersonObjects/Person";
import type { Bladeburner } from "../Bladeburner";
import type { ActionIdentifier } from "../Types";
-import { BladeActionType, BladeGeneralActionName } from "@enums";
+import { BladeburnerActionType, BladeburnerGeneralActionName } from "@enums";
import { ActionClass, ActionParams } from "./Action";
import { clampNumber } from "../../utils/helpers/clampNumber";
type GeneralActionParams = ActionParams & {
- name: BladeGeneralActionName;
+ name: BladeburnerGeneralActionName;
getActionTime: (bladeburner: Bladeburner, person: Person) => number;
getSuccessChance?: (bladeburner: Bladeburner, person: Person) => number;
};
export class GeneralAction extends ActionClass {
- type: BladeActionType.general = BladeActionType.general;
- name: BladeGeneralActionName;
+ type: BladeburnerActionType.General = BladeburnerActionType.General;
+ name: BladeburnerGeneralActionName;
get id(): ActionIdentifier {
return { type: this.type, name: this.name };
}
diff --git a/src/Bladeburner/Actions/Operation.ts b/src/Bladeburner/Actions/Operation.ts
index 8770d4a20..93dafce7e 100644
--- a/src/Bladeburner/Actions/Operation.ts
+++ b/src/Bladeburner/Actions/Operation.ts
@@ -3,7 +3,7 @@ import type { BlackOperation } from "./BlackOperation";
import type { Bladeburner } from "../Bladeburner";
import type { Availability, ActionIdentifier, SuccessChanceParams } from "../Types";
-import { BladeActionType, BladeMultName, BladeOperationName } from "@enums";
+import { BladeburnerActionType, BladeburnerMultName, BladeburnerOperationName } from "@enums";
import { BladeburnerConstants } from "../data/Constants";
import { ActionClass } from "./Action";
import { Generic_fromJSON, IReviverValue, constructorsForReviver } from "../../utils/JSONReviver";
@@ -11,13 +11,13 @@ import { LevelableActionClass, LevelableActionParams } from "./LevelableAction";
import { clampInteger } from "../../utils/helpers/clampNumber";
export interface OperationParams extends LevelableActionParams {
- name: BladeOperationName;
+ name: BladeburnerOperationName;
getAvailability?: (bladeburner: Bladeburner) => Availability;
}
export class Operation extends LevelableActionClass {
- type: BladeActionType.operation = BladeActionType.operation;
- name = BladeOperationName.investigation;
+ type: BladeburnerActionType.Operation = BladeburnerActionType.Operation;
+ name = BladeburnerOperationName.Investigation;
teamCount = 0;
get id(): ActionIdentifier {
return { type: this.type, name: this.name };
@@ -46,7 +46,7 @@ export class Operation extends LevelableActionClass {
return 1;
}
getSuccessChance(inst: Bladeburner, person: Person, params: SuccessChanceParams) {
- if (this.name === BladeOperationName.raid && inst.getCurrentCity().comms <= 0) {
+ if (this.name === BladeburnerOperationName.Raid && inst.getCurrentCity().comms <= 0) {
return 0;
}
return ActionClass.prototype.getSuccessChance.call(this, inst, person, params);
@@ -75,7 +75,7 @@ constructorsForReviver.Operation = Operation;
// shared member functions for Operation and BlackOperation
export const operationSkillSuccessBonus = (inst: Bladeburner) => {
- return inst.getSkillMult(BladeMultName.successChanceOperation);
+ return inst.getSkillMult(BladeburnerMultName.SuccessChanceOperation);
};
export function operationTeamSuccessBonus(this: Operation | BlackOperation, inst: Bladeburner) {
diff --git a/src/Bladeburner/Bladeburner.ts b/src/Bladeburner/Bladeburner.ts
index 6ce16ac8f..76b041e3a 100644
--- a/src/Bladeburner/Bladeburner.ts
+++ b/src/Bladeburner/Bladeburner.ts
@@ -6,12 +6,12 @@ import type { Skills as PersonSkills } from "../PersonObjects/Skills";
import {
AugmentationName,
- BladeActionType,
- BladeContractName,
- BladeGeneralActionName,
- BladeMultName,
- BladeOperationName,
- BladeSkillName,
+ BladeburnerActionType,
+ BladeburnerContractName,
+ BladeburnerGeneralActionName,
+ BladeburnerMultName,
+ BladeburnerOperationName,
+ BladeburnerSkillName,
CityName,
FactionName,
} from "@enums";
@@ -78,14 +78,14 @@ export class Bladeburner {
cities = createEnumKeyedRecord(CityName, (name) => new City(name));
city = CityName.Sector12;
// Todo: better types for all these Record types. Will need custom types or enums for the named string categories (e.g. skills).
- skills: PartialRecord = {};
- skillMultipliers: PartialRecord = {};
+ skills: PartialRecord = {};
+ skillMultipliers: PartialRecord = {};
staminaBonus = 0;
maxStamina = 1;
stamina = 1;
// Contracts and operations are stored on the Bladeburner object even though they are global so that they can utilize save/load of the main bladeburner object
- contracts: Record;
- operations: Record;
+ contracts: Record;
+ operations: Record;
numBlackOpsComplete = 0;
logging = {
general: true,
@@ -142,13 +142,13 @@ export class Bladeburner {
}
/** Directly sets a skill level, with no validation */
- setSkillLevel(skillName: BladeSkillName, value: number) {
+ setSkillLevel(skillName: BladeburnerSkillName, value: number) {
this.skills[skillName] = clampInteger(value, 0, Number.MAX_VALUE);
this.updateSkillMultipliers();
}
/** Attempts to perform a skill upgrade, gives a message on both success and failure */
- upgradeSkill(skillName: BladeSkillName, count = 1): Attempt<{ message: string }> {
+ upgradeSkill(skillName: BladeburnerSkillName, count = 1): Attempt<{ message: string }> {
const currentSkillLevel = this.skills[skillName] ?? 0;
const actualCount = currentSkillLevel + count - currentSkillLevel;
if (actualCount === 0) {
@@ -284,7 +284,7 @@ export class Bladeburner {
}
case 3: {
const skillName = args[2];
- if (!getEnumHelper("BladeSkillName").isMember(skillName)) {
+ if (!getEnumHelper("BladeburnerSkillName").isMember(skillName)) {
this.postToConsole("Invalid skill name (Note that it is case-sensitive): " + skillName);
return;
}
@@ -450,31 +450,31 @@ export class Bladeburner {
return;
case "general":
case "gen": {
- if (!getEnumHelper("BladeGeneralActionName").isMember(name)) {
+ if (!getEnumHelper("BladeburnerGeneralActionName").isMember(name)) {
this.postToConsole("Invalid General Action name specified: " + name);
return;
}
- actionId = { type: BladeActionType.general, name };
+ actionId = { type: BladeburnerActionType.General, name };
break;
}
case "contract":
case "contracts": {
- if (!getEnumHelper("BladeContractName").isMember(name)) {
+ if (!getEnumHelper("BladeburnerContractName").isMember(name)) {
this.postToConsole("Invalid Contract name specified: " + name);
return;
}
- actionId = { type: BladeActionType.contract, name };
+ actionId = { type: BladeburnerActionType.Contract, name };
break;
}
case "ops":
case "op":
case "operations":
case "operation":
- if (!getEnumHelper("BladeOperationName").isMember(name)) {
+ if (!getEnumHelper("BladeburnerOperationName").isMember(name)) {
this.postToConsole("Invalid Operation name specified: " + name);
return;
}
- actionId = { type: BladeActionType.operation, name };
+ actionId = { type: BladeburnerActionType.Operation, name };
break;
default:
this.postToConsole("Invalid use of automate command.");
@@ -685,7 +685,7 @@ export class Bladeburner {
const unweightedGain = time * BladeburnerConstants.BaseStatGain * successMult * difficultyMult;
const unweightedIntGain = time * BladeburnerConstants.BaseIntGain * successMult * difficultyMult;
- const skillMult = this.getSkillMult(BladeMultName.expGain);
+ const skillMult = this.getSkillMult(BladeburnerMultName.ExpGain);
return {
hackExp: unweightedGain * action.weights.hacking * skillMult,
@@ -724,22 +724,22 @@ export class Bladeburner {
}
}
- getSkillMult(name: BladeMultName): number {
+ getSkillMult(name: BladeburnerMultName): number {
return this.skillMultipliers[name] ?? 1;
}
getEffectiveSkillLevel(person: Person, name: keyof PersonSkills): number {
switch (name) {
case "strength":
- return person.skills.strength * this.getSkillMult(BladeMultName.effStr);
+ return person.skills.strength * this.getSkillMult(BladeburnerMultName.EffStr);
case "defense":
- return person.skills.defense * this.getSkillMult(BladeMultName.effDef);
+ return person.skills.defense * this.getSkillMult(BladeburnerMultName.EffDef);
case "dexterity":
- return person.skills.dexterity * this.getSkillMult(BladeMultName.effDex);
+ return person.skills.dexterity * this.getSkillMult(BladeburnerMultName.EffDex);
case "agility":
- return person.skills.agility * this.getSkillMult(BladeMultName.effAgi);
+ return person.skills.agility * this.getSkillMult(BladeburnerMultName.EffAgi);
case "charisma":
- return person.skills.charisma * this.getSkillMult(BladeMultName.effCha);
+ return person.skills.charisma * this.getSkillMult(BladeburnerMultName.EffCha);
default:
return person.skills[name];
}
@@ -758,7 +758,7 @@ export class Bladeburner {
}
completeOperation(success: boolean): void {
- if (this.action?.type !== BladeActionType.operation) {
+ if (this.action?.type !== BladeburnerActionType.Operation) {
throw new Error("completeOperation() called even though current action is not an Operation");
}
const action = this.getActionObject(this.action);
@@ -786,21 +786,25 @@ export class Bladeburner {
const city = this.getCurrentCity();
switch (action.name) {
- case BladeOperationName.investigation:
+ case BladeburnerOperationName.Investigation:
if (success) {
- city.improvePopulationEstimateByPercentage(0.4 * this.getSkillMult(BladeMultName.successChanceEstimate));
+ city.improvePopulationEstimateByPercentage(
+ 0.4 * this.getSkillMult(BladeburnerMultName.SuccessChanceEstimate),
+ );
} else {
this.triggerPotentialMigration(this.city, 0.1);
}
break;
- case BladeOperationName.undercover:
+ case BladeburnerOperationName.Undercover:
if (success) {
- city.improvePopulationEstimateByPercentage(0.8 * this.getSkillMult(BladeMultName.successChanceEstimate));
+ city.improvePopulationEstimateByPercentage(
+ 0.8 * this.getSkillMult(BladeburnerMultName.SuccessChanceEstimate),
+ );
} else {
this.triggerPotentialMigration(this.city, 0.15);
}
break;
- case BladeOperationName.sting:
+ case BladeburnerOperationName.Sting:
if (success) {
city.changePopulationByPercentage(-0.1, {
changeEstEqually: true,
@@ -809,7 +813,7 @@ export class Bladeburner {
}
city.changeChaosByCount(0.1);
break;
- case BladeOperationName.raid:
+ case BladeburnerOperationName.Raid:
if (success) {
city.changePopulationByPercentage(-1, {
changeEstEqually: true,
@@ -825,7 +829,7 @@ export class Bladeburner {
}
city.changeChaosByPercentage(getRandomIntInclusive(1, 5));
break;
- case BladeOperationName.stealthRetirement:
+ case BladeburnerOperationName.StealthRetirement:
if (success) {
city.changePopulationByPercentage(-0.5, {
changeEstEqually: true,
@@ -834,7 +838,7 @@ export class Bladeburner {
}
city.changeChaosByPercentage(getRandomIntInclusive(-3, -1));
break;
- case BladeOperationName.assassination:
+ case BladeburnerOperationName.Assassination:
if (success) {
city.changePopulationByCount(-1, { estChange: -1, estOffset: 0 });
}
@@ -849,17 +853,17 @@ export class Bladeburner {
const city = this.getCurrentCity();
if (success) {
switch (action.name) {
- case BladeContractName.tracking:
+ case BladeburnerContractName.Tracking:
// Increase estimate accuracy by a relatively small amount
city.improvePopulationEstimateByCount(
- getRandomIntInclusive(100, 1e3) * this.getSkillMult(BladeMultName.successChanceEstimate),
+ getRandomIntInclusive(100, 1e3) * this.getSkillMult(BladeburnerMultName.SuccessChanceEstimate),
);
break;
- case BladeContractName.bountyHunter:
+ case BladeburnerContractName.BountyHunter:
city.changePopulationByCount(-1, { estChange: -1, estOffset: 0 });
city.changeChaosByCount(0.02);
break;
- case BladeContractName.retirement:
+ case BladeburnerContractName.Retirement:
city.changePopulationByCount(-1, { estChange: -1, estOffset: 0 });
city.changeChaosByCount(0.04);
break;
@@ -887,10 +891,10 @@ export class Bladeburner {
let retValue = newWorkStats();
const action = this.getActionObject(actionIdent);
switch (action.type) {
- case BladeActionType.contract:
- case BladeActionType.operation: {
+ case BladeburnerActionType.Contract:
+ case BladeburnerActionType.Operation: {
try {
- const isOperation = action.type === BladeActionType.operation;
+ const isOperation = action.type === BladeburnerActionType.Operation;
const difficulty = action.getDifficulty();
const difficultyMultiplier =
Math.pow(difficulty, BladeburnerConstants.DiffMultExponentialFactor) +
@@ -915,7 +919,9 @@ export class Bladeburner {
let moneyGain = 0;
if (!isOperation) {
moneyGain =
- BladeburnerConstants.ContractBaseMoneyGain * rewardMultiplier * this.getSkillMult(BladeMultName.money);
+ BladeburnerConstants.ContractBaseMoneyGain *
+ rewardMultiplier *
+ this.getSkillMult(BladeburnerMultName.Money);
retValue.money = moneyGain;
}
@@ -980,7 +986,7 @@ export class Bladeburner {
}
break;
}
- case BladeActionType.blackOp: {
+ case BladeburnerActionType.BlackOp: {
const difficulty = action.getDifficulty();
const difficultyMultiplier =
Math.pow(difficulty, BladeburnerConstants.DiffMultExponentialFactor) +
@@ -1064,15 +1070,15 @@ export class Bladeburner {
}
break;
}
- case BladeActionType.general:
+ case BladeburnerActionType.General:
switch (action.name) {
- case BladeGeneralActionName.training: {
+ case BladeburnerGeneralActionName.Training: {
this.stamina -= 0.5 * BladeburnerConstants.BaseStaminaLoss;
const strExpGain = 30 * person.mults.strength_exp,
defExpGain = 30 * person.mults.defense_exp,
dexExpGain = 30 * person.mults.dexterity_exp,
agiExpGain = 30 * person.mults.agility_exp,
- staminaGain = 0.04 * this.getSkillMult(BladeMultName.stamina);
+ staminaGain = 0.04 * this.getSkillMult(BladeburnerMultName.Stamina);
retValue.strExp = strExpGain;
retValue.defExp = defExpGain;
retValue.dexExp = dexExpGain;
@@ -1096,7 +1102,7 @@ export class Bladeburner {
}
break;
}
- case BladeGeneralActionName.fieldAnalysis: {
+ case BladeburnerGeneralActionName.FieldAnalysis: {
// Does not use stamina. Effectiveness depends on hacking, int, and cha
let eff =
0.04 * Math.pow(person.skills.hacking, 0.3) +
@@ -1114,7 +1120,7 @@ export class Bladeburner {
retValue.intExp = BladeburnerConstants.BaseIntGain;
this.changeRank(person, rankGain);
this.getCurrentCity().improvePopulationEstimateByPercentage(
- eff * this.getSkillMult(BladeMultName.successChanceEstimate),
+ eff * this.getSkillMult(BladeburnerMultName.SuccessChanceEstimate),
);
if (this.logging.general) {
this.log(
@@ -1126,7 +1132,7 @@ export class Bladeburner {
}
break;
}
- case BladeGeneralActionName.recruitment: {
+ case BladeburnerGeneralActionName.Recruitment: {
const actionTime = action.getActionTime(this, person) * 1000;
if (action.attempt(this, person)) {
const expGain = 2 * BladeburnerConstants.BaseStatGain * actionTime;
@@ -1154,7 +1160,7 @@ export class Bladeburner {
}
break;
}
- case BladeGeneralActionName.diplomacy: {
+ case BladeburnerGeneralActionName.Diplomacy: {
const diplomacyPct = this.getDiplomacyPercentage(person);
this.getCurrentCity().changeChaosByPercentage(-diplomacyPct);
if (this.logging.general) {
@@ -1166,7 +1172,7 @@ export class Bladeburner {
}
break;
}
- case BladeGeneralActionName.hyperbolicRegen: {
+ case BladeburnerGeneralActionName.HyperbolicRegen: {
person.regenerateHp(BladeburnerConstants.HrcHpGain);
const currentStamina = this.stamina;
@@ -1188,7 +1194,7 @@ export class Bladeburner {
}
break;
}
- case BladeGeneralActionName.inciteViolence: {
+ case BladeburnerGeneralActionName.InciteViolence: {
for (const contract of Object.values(this.contracts)) {
contract.count += (60 * 3 * contract.growthFunction()) / BladeburnerConstants.ActionCountGrowthPeriod;
}
@@ -1222,10 +1228,10 @@ export class Bladeburner {
infiltrateSynthoidCommunities(): void {
const infilSleeves = Player.sleeves.filter((s) => isSleeveInfiltrateWork(s.currentWork)).length;
const amt = Math.pow(infilSleeves, -0.5) / 2;
- for (const contract of Object.values(BladeContractName)) {
+ for (const contract of Object.values(BladeburnerContractName)) {
this.contracts[contract].count += amt;
}
- for (const operation of Object.values(BladeOperationName)) {
+ for (const operation of Object.values(BladeburnerOperationName)) {
this.operations[operation].count += amt;
}
if (this.logging.general) {
@@ -1280,7 +1286,7 @@ export class Bladeburner {
const retValue = this.completeAction(Player, action.id);
Player.gainMoney(retValue.money, "bladeburner");
Player.gainStats(retValue);
- if (action.type != BladeActionType.blackOp) {
+ if (action.type != BladeburnerActionType.BlackOp) {
this.startAction(action.id); // Attempt to repeat action
}
}
@@ -1290,7 +1296,10 @@ export class Bladeburner {
const effAgility = this.getEffectiveSkillLevel(Player, "agility");
const maxStaminaBonus = this.maxStamina / BladeburnerConstants.MaxStaminaToGainFactor;
const gain = (BladeburnerConstants.StaminaGainPerSecond + maxStaminaBonus) * Math.pow(effAgility, 0.17);
- return clampNumber(gain * (this.getSkillMult(BladeMultName.stamina) * Player.mults.bladeburner_stamina_gain), 0);
+ return clampNumber(
+ gain * (this.getSkillMult(BladeburnerMultName.Stamina) * Player.mults.bladeburner_stamina_gain),
+ 0,
+ );
}
calculateMaxStamina(): void {
@@ -1298,7 +1307,7 @@ export class Bladeburner {
// Min value of maxStamina is an arbitrarily small positive value. It must not be 0 to avoid NaN stamina penalty.
const maxStamina = clampNumber(
(baseStamina + this.staminaBonus) *
- this.getSkillMult(BladeMultName.stamina) *
+ this.getSkillMult(BladeburnerMultName.Stamina) *
Player.mults.bladeburner_max_stamina,
1e-9,
);
@@ -1311,7 +1320,7 @@ export class Bladeburner {
this.stamina = clampNumber((this.maxStamina * this.stamina) / oldMax, 0, maxStamina);
}
- getSkillLevel(skillName: BladeSkillName): number {
+ getSkillLevel(skillName: BladeburnerSkillName): number {
return this.skills[skillName] ?? 0;
}
@@ -1397,20 +1406,20 @@ export class Bladeburner {
}
/** Return the action based on an ActionIdentifier, discriminating types when possible */
- getActionObject(actionId: ActionIdentifier & { type: BladeActionType.blackOp }): BlackOperation;
- getActionObject(actionId: ActionIdentifier & { type: BladeActionType.operation }): Operation;
- getActionObject(actionId: ActionIdentifier & { type: BladeActionType.contract }): Contract;
- getActionObject(actionId: ActionIdentifier & { type: BladeActionType.general }): GeneralAction;
+ getActionObject(actionId: ActionIdentifier & { type: BladeburnerActionType.BlackOp }): BlackOperation;
+ getActionObject(actionId: ActionIdentifier & { type: BladeburnerActionType.Operation }): Operation;
+ getActionObject(actionId: ActionIdentifier & { type: BladeburnerActionType.Contract }): Contract;
+ getActionObject(actionId: ActionIdentifier & { type: BladeburnerActionType.General }): GeneralAction;
getActionObject(actionId: ActionIdentifier): Action;
getActionObject(actionId: ActionIdentifier): Action {
switch (actionId.type) {
- case BladeActionType.contract:
+ case BladeburnerActionType.Contract:
return this.contracts[actionId.name];
- case BladeActionType.operation:
+ case BladeburnerActionType.Operation:
return this.operations[actionId.name];
- case BladeActionType.blackOp:
+ case BladeburnerActionType.BlackOp:
return BlackOperations[actionId.name];
- case BladeActionType.general:
+ case BladeburnerActionType.General:
return GeneralActions[actionId.name];
}
}
@@ -1423,13 +1432,13 @@ export class Bladeburner {
case "contract":
case "contracts":
case "contr":
- if (!getEnumHelper("BladeContractName").isMember(name)) return null;
+ if (!getEnumHelper("BladeburnerContractName").isMember(name)) return null;
return this.contracts[name];
case "operation":
case "operations":
case "op":
case "ops":
- if (!getEnumHelper("BladeOperationName").isMember(name)) return null;
+ if (!getEnumHelper("BladeburnerOperationName").isMember(name)) return null;
return this.operations[name];
case "blackoperation":
case "black operation":
@@ -1438,12 +1447,12 @@ export class Bladeburner {
case "black ops":
case "blackop":
case "blackops":
- if (!getEnumHelper("BladeBlackOpName").isMember(name)) return null;
+ if (!getEnumHelper("BladeburnerBlackOpName").isMember(name)) return null;
return BlackOperations[name];
case "general":
case "general action":
case "gen": {
- if (!getEnumHelper("BladeGeneralActionName").isMember(name)) return null;
+ if (!getEnumHelper("BladeburnerGeneralActionName").isMember(name)) return null;
return GeneralActions[name];
}
}
diff --git a/src/Bladeburner/Enums.ts b/src/Bladeburner/Enums.ts
index 0b251c012..2b778cd49 100644
--- a/src/Bladeburner/Enums.ts
+++ b/src/Bladeburner/Enums.ts
@@ -1,31 +1,35 @@
-export enum BladeActionType {
- general = "General",
- contract = "Contracts",
- operation = "Operations",
- blackOp = "Black Operations",
+export enum BladeburnerActionType {
+ General = "General",
+ Contract = "Contracts",
+ Operation = "Operations",
+ BlackOp = "Black Operations",
}
-export enum BladeGeneralActionName {
- training = "Training",
- fieldAnalysis = "Field Analysis",
- recruitment = "Recruitment",
- diplomacy = "Diplomacy",
- hyperbolicRegen = "Hyperbolic Regeneration Chamber",
- inciteViolence = "Incite Violence",
+
+export enum BladeburnerGeneralActionName {
+ Training = "Training",
+ FieldAnalysis = "Field Analysis",
+ Recruitment = "Recruitment",
+ Diplomacy = "Diplomacy",
+ HyperbolicRegen = "Hyperbolic Regeneration Chamber",
+ InciteViolence = "Incite Violence",
}
-export enum BladeContractName {
- tracking = "Tracking",
- bountyHunter = "Bounty Hunter",
- retirement = "Retirement",
+
+export enum BladeburnerContractName {
+ Tracking = "Tracking",
+ BountyHunter = "Bounty Hunter",
+ Retirement = "Retirement",
}
-export enum BladeOperationName {
- investigation = "Investigation",
- undercover = "Undercover Operation",
- sting = "Sting Operation",
- raid = "Raid",
- stealthRetirement = "Stealth Retirement Operation",
- assassination = "Assassination",
+
+export enum BladeburnerOperationName {
+ Investigation = "Investigation",
+ Undercover = "Undercover Operation",
+ Sting = "Sting Operation",
+ Raid = "Raid",
+ StealthRetirement = "Stealth Retirement Operation",
+ Assassination = "Assassination",
}
-export enum BladeBlackOpName {
+
+export enum BladeburnerBlackOpName {
OperationTyphoon = "Operation Typhoon",
OperationZero = "Operation Zero",
OperationX = "Operation X",
@@ -49,35 +53,35 @@ export enum BladeBlackOpName {
OperationDaedalus = "Operation Daedalus",
}
-export enum BladeSkillName {
- bladesIntuition = "Blade's Intuition",
- cloak = "Cloak",
- shortCircuit = "Short-Circuit",
- digitalObserver = "Digital Observer",
- tracer = "Tracer",
- overclock = "Overclock",
- reaper = "Reaper",
- evasiveSystem = "Evasive System",
- datamancer = "Datamancer",
- cybersEdge = "Cyber's Edge",
- handsOfMidas = "Hands of Midas",
- hyperdrive = "Hyperdrive",
+export enum BladeburnerSkillName {
+ BladesIntuition = "Blade's Intuition",
+ Cloak = "Cloak",
+ ShortCircuit = "Short-Circuit",
+ DigitalObserver = "Digital Observer",
+ Tracer = "Tracer",
+ Overclock = "Overclock",
+ Reaper = "Reaper",
+ EvasiveSystem = "Evasive System",
+ Datamancer = "Datamancer",
+ CybersEdge = "Cyber's Edge",
+ HandsOfMidas = "Hands of Midas",
+ Hyperdrive = "Hyperdrive",
}
-export enum BladeMultName {
- successChanceAll = "Total Success Chance",
- successChanceStealth = "Stealth Success Chance",
- successChanceKill = "Retirement Success Chance",
- successChanceContract = "Contract Success Chance",
- successChanceOperation = "Operation Success Chance",
- successChanceEstimate = "Synthoid Data Estimate",
- actionTime = "Action Time",
- effStr = "Effective Strength",
- effDef = "Effective Defense",
- effDex = "Effective Dexterity",
- effAgi = "Effective Agility",
- effCha = "Effective Charisma",
- stamina = "Stamina",
- money = "Contract Money",
- expGain = "Experience Gain",
+export enum BladeburnerMultName {
+ SuccessChanceAll = "Total Success Chance",
+ SuccessChanceStealth = "Stealth Success Chance",
+ SuccessChanceKill = "Retirement Success Chance",
+ SuccessChanceContract = "Contract Success Chance",
+ SuccessChanceOperation = "Operation Success Chance",
+ SuccessChanceEstimate = "Synthoid Data Estimate",
+ ActionTime = "Action Time",
+ EffStr = "Effective Strength",
+ EffDef = "Effective Defense",
+ EffDex = "Effective Dexterity",
+ EffAgi = "Effective Agility",
+ EffCha = "Effective Charisma",
+ Stamina = "Stamina",
+ Money = "Contract Money",
+ ExpGain = "Experience Gain",
}
diff --git a/src/Bladeburner/Skill.ts b/src/Bladeburner/Skill.ts
index 54c1ca806..c14c0724a 100644
--- a/src/Bladeburner/Skill.ts
+++ b/src/Bladeburner/Skill.ts
@@ -1,4 +1,4 @@
-import type { BladeMultName, BladeSkillName } from "@enums";
+import type { BladeburnerMultName, BladeburnerSkillName } from "@enums";
import { currentNodeMults } from "../BitNode/BitNodeMultipliers";
import { Bladeburner } from "./Bladeburner";
@@ -7,23 +7,23 @@ import { PositiveInteger, PositiveNumber, isPositiveInteger } from "../types";
import { PartialRecord, getRecordEntries } from "../Types/Record";
interface SkillParams {
- name: BladeSkillName;
+ name: BladeburnerSkillName;
desc: string;
baseCost?: number;
costInc?: number;
maxLvl?: number;
- mults: PartialRecord;
+ mults: PartialRecord;
}
export class Skill {
- name: BladeSkillName;
+ name: BladeburnerSkillName;
desc: string;
// Cost is in Skill Points
baseCost: number;
// Additive cost increase per level
costInc: number;
maxLvl: number;
- mults: PartialRecord = {};
+ mults: PartialRecord = {};
constructor(params: SkillParams) {
this.name = params.name;
@@ -150,7 +150,7 @@ export class Skill {
return { available: true, cost };
}
- getMultiplier(name: BladeMultName): number {
+ getMultiplier(name: BladeburnerMultName): number {
return this.mults[name] ?? 0;
}
}
diff --git a/src/Bladeburner/Types.ts b/src/Bladeburner/Types.ts
index 0782e30bc..02a1204f8 100644
--- a/src/Bladeburner/Types.ts
+++ b/src/Bladeburner/Types.ts
@@ -1,10 +1,10 @@
import type { BlackOperation, Contract, GeneralAction, Operation } from "./Actions";
import type {
- BladeActionType,
- BladeBlackOpName,
- BladeContractName,
- BladeOperationName,
- BladeGeneralActionName,
+ BladeburnerActionType,
+ BladeburnerBlackOpName,
+ BladeburnerContractName,
+ BladeburnerOperationName,
+ BladeburnerGeneralActionName,
} from "@enums";
export interface SuccessChanceParams {
@@ -23,9 +23,9 @@ export type Attempt = AttemptSuccess | AttemptFail
export type Action = Contract | Operation | BlackOperation | GeneralAction;
export type ActionIdentifier =
- | { type: BladeActionType.blackOp; name: BladeBlackOpName }
- | { type: BladeActionType.contract; name: BladeContractName }
- | { type: BladeActionType.operation; name: BladeOperationName }
- | { type: BladeActionType.general; name: BladeGeneralActionName };
+ | { type: BladeburnerActionType.BlackOp; name: BladeburnerBlackOpName }
+ | { type: BladeburnerActionType.Contract; name: BladeburnerContractName }
+ | { type: BladeburnerActionType.Operation; name: BladeburnerOperationName }
+ | { type: BladeburnerActionType.General; name: BladeburnerGeneralActionName };
export type LevelableAction = Contract | Operation;
diff --git a/src/Bladeburner/data/BlackOperations.ts b/src/Bladeburner/data/BlackOperations.ts
index b5aba839d..3f29cc170 100644
--- a/src/Bladeburner/data/BlackOperations.ts
+++ b/src/Bladeburner/data/BlackOperations.ts
@@ -1,9 +1,9 @@
import { BlackOperation } from "../Actions/BlackOperation";
-import { BladeBlackOpName, CityName, FactionName } from "@enums";
+import { BladeburnerBlackOpName, CityName, FactionName } from "@enums";
-export const BlackOperations: Record = {
- [BladeBlackOpName.OperationTyphoon]: new BlackOperation({
- name: BladeBlackOpName.OperationTyphoon,
+export const BlackOperations: Record = {
+ [BladeburnerBlackOpName.OperationTyphoon]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationTyphoon,
n: 0,
baseDifficulty: 2000,
reqdRank: 2.5e3,
@@ -32,11 +32,11 @@ export const BlackOperations: Record = {
desc:
"Obadiah Zenyatta is the leader of a RedWater PMC. It has long been known among the intelligence community " +
"that Zenyatta, along with the rest of the PMC, is a Synthoid.\n\n" +
- `The goal of ${BladeBlackOpName.OperationTyphoon} is to find and eliminate Zenyatta and RedWater by any means ` +
+ `The goal of ${BladeburnerBlackOpName.OperationTyphoon} is to find and eliminate Zenyatta and RedWater by any means ` +
"necessary. After the task is completed, the actions must be covered up from the general public.",
}),
- [BladeBlackOpName.OperationZero]: new BlackOperation({
- name: BladeBlackOpName.OperationZero,
+ [BladeburnerBlackOpName.OperationZero]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationZero,
n: 1,
baseDifficulty: 2500,
reqdRank: 5e3,
@@ -65,13 +65,13 @@ export const BlackOperations: Record = {
desc:
"AeroCorp is one of the world's largest defense contractors. Its leader, Steve Watataki, is thought to be " +
"a supporter of Synthoid rights. He must be removed.\n\n" +
- `The goal of ${BladeBlackOpName.OperationZero} is to covertly infiltrate AeroCorp and uncover any incriminating ` +
+ `The goal of ${BladeburnerBlackOpName.OperationZero} is to covertly infiltrate AeroCorp and uncover any incriminating ` +
"evidence or information against Watataki that will cause him to be removed from his position at AeroCorp. " +
"Incriminating evidence can be fabricated as a last resort. Be warned that AeroCorp has some of the most advanced " +
"security measures in the world.",
}),
- [BladeBlackOpName.OperationX]: new BlackOperation({
- name: BladeBlackOpName.OperationX,
+ [BladeburnerBlackOpName.OperationX]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationX,
n: 2,
baseDifficulty: 3000,
reqdRank: 7.5e3,
@@ -106,8 +106,8 @@ export const BlackOperations: Record = {
`their base of operations is in ${CityName.Ishima}'s underground sewer systems. Your task is to investigate the ` +
"sewer systems, and eliminate Samizdat. They must never publish anything again.",
}),
- [BladeBlackOpName.OperationTitan]: new BlackOperation({
- name: BladeBlackOpName.OperationTitan,
+ [BladeburnerBlackOpName.OperationTitan]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationTitan,
n: 3,
baseDifficulty: 4000,
reqdRank: 10e3,
@@ -142,8 +142,8 @@ export const BlackOperations: Record = {
"just to retire the Synthoids there, but also to destroy any information or research at the facility that is " +
"relevant to the Synthoids and their goals.",
}),
- [BladeBlackOpName.OperationAres]: new BlackOperation({
- name: BladeBlackOpName.OperationAres,
+ [BladeburnerBlackOpName.OperationAres]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationAres,
n: 4,
baseDifficulty: 5000,
reqdRank: 12.5e3,
@@ -175,8 +175,8 @@ export const BlackOperations: Record = {
"weapons. It is critical for the safety of humanity that this deal does not happen.\n\n" +
"Your task is to intercept the deal. Leave no survivors.",
}),
- [BladeBlackOpName.OperationArchangel]: new BlackOperation({
- name: BladeBlackOpName.OperationArchangel,
+ [BladeburnerBlackOpName.OperationArchangel]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationArchangel,
n: 5,
baseDifficulty: 7500,
reqdRank: 15e3,
@@ -209,8 +209,8 @@ export const BlackOperations: Record = {
"The goal of this operation is to take out the leaders that are running the Red Rabbit brothel. Try to limit the " +
"number of other casualties, but do what you must to complete the mission.",
}),
- [BladeBlackOpName.OperationJuggernaut]: new BlackOperation({
- name: BladeBlackOpName.OperationJuggernaut,
+ [BladeburnerBlackOpName.OperationJuggernaut]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationJuggernaut,
n: 6,
baseDifficulty: 10e3,
reqdRank: 20e3,
@@ -244,8 +244,8 @@ export const BlackOperations: Record = {
"Synthoid, and have thus enlisted our help.\n\n" +
"Your mission is to eradicate Juggernaut and his followers.",
}),
- [BladeBlackOpName.OperationRedDragon]: new BlackOperation({
- name: BladeBlackOpName.OperationRedDragon,
+ [BladeburnerBlackOpName.OperationRedDragon]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationRedDragon,
n: 7,
baseDifficulty: 12.5e3,
reqdRank: 25e3,
@@ -278,8 +278,8 @@ export const BlackOperations: Record = {
`Your task is to infiltrate and destroy the ${FactionName.Tetrads}' base of operations in Los Angeles. ` +
"Intelligence tells us that their base houses one of their Synthoid manufacturing units.",
}),
- [BladeBlackOpName.OperationK]: new BlackOperation({
- name: BladeBlackOpName.OperationK,
+ [BladeburnerBlackOpName.OperationK]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationK,
n: 8,
baseDifficulty: 15e3,
reqdRank: 30e3,
@@ -315,8 +315,8 @@ export const BlackOperations: Record = {
"to a covert operation. Your goal is to destroy this technology and eliminate anyone who was involved in its " +
"creation.",
}),
- [BladeBlackOpName.OperationDeckard]: new BlackOperation({
- name: BladeBlackOpName.OperationDeckard,
+ [BladeburnerBlackOpName.OperationDeckard]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationDeckard,
n: 9,
baseDifficulty: 20e3,
reqdRank: 40e3,
@@ -344,14 +344,14 @@ export const BlackOperations: Record = {
isKill: true,
desc:
"Despite your success in eliminating VitaLife's new android-replicating technology in " +
- `${BladeBlackOpName.OperationK}, we've discovered that a small group of MK-VI Synthoids were able to make off with ` +
+ `${BladeburnerBlackOpName.OperationK}, we've discovered that a small group of MK-VI Synthoids were able to make off with ` +
"the schematics and design of the technology before the Operation. It is almost a certainty that these Synthoids " +
"are some of the rogue MK-VI ones from the Synthoid Uprising.\n\n" +
- `The goal of ${BladeBlackOpName.OperationDeckard} is to hunt down these Synthoids and retire them. I don't need to ` +
+ `The goal of ${BladeburnerBlackOpName.OperationDeckard} is to hunt down these Synthoids and retire them. I don't need to ` +
"tell you how critical this mission is.",
}),
- [BladeBlackOpName.OperationTyrell]: new BlackOperation({
- name: BladeBlackOpName.OperationTyrell,
+ [BladeburnerBlackOpName.OperationTyrell]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationTyrell,
n: 10,
baseDifficulty: 25e3,
reqdRank: 50e3,
@@ -384,8 +384,8 @@ export const BlackOperations: Record = {
"We cannot have Synthoids upgrading their already-enhanced abilities with Augmentations. Your task is to hunt " +
`down associated ${FactionName.TheDarkArmy} members and eliminate them.`,
}),
- [BladeBlackOpName.OperationWallace]: new BlackOperation({
- name: BladeBlackOpName.OperationWallace,
+ [BladeburnerBlackOpName.OperationWallace]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationWallace,
n: 11,
baseDifficulty: 30e3,
reqdRank: 75e3,
@@ -412,18 +412,18 @@ export const BlackOperations: Record = {
},
isKill: true,
desc:
- `Based on information gathered from ${BladeBlackOpName.OperationTyrell}, we've discovered that ` +
+ `Based on information gathered from ${BladeburnerBlackOpName.OperationTyrell}, we've discovered that ` +
`${FactionName.TheDarkArmy} was well aware that there were Synthoids amongst their ranks. Even worse, we believe ` +
`that ${FactionName.TheDarkArmy} is working together with other criminal organizations such as ` +
`${FactionName.TheSyndicate} and that they are planning some sort of large-scale takeover of multiple major ` +
`cities, most notably ${CityName.Aevum}. We suspect that Synthoids have infiltrated the ranks of these criminal ` +
"factions and are trying to stage another Synthoid uprising.\n\n" +
"The best way to deal with this is to prevent it before it even happens. The goal of " +
- `${BladeBlackOpName.OperationWallace} is to destroy ${FactionName.TheDarkArmy} and Syndicate factions in ` +
+ `${BladeburnerBlackOpName.OperationWallace} is to destroy ${FactionName.TheDarkArmy} and Syndicate factions in ` +
`${CityName.Aevum} immediately. Leave no survivors.`,
}),
- [BladeBlackOpName.OperationShoulderOfOrion]: new BlackOperation({
- name: BladeBlackOpName.OperationShoulderOfOrion,
+ [BladeburnerBlackOpName.OperationShoulderOfOrion]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationShoulderOfOrion,
n: 12,
baseDifficulty: 35e3,
reqdRank: 100e3,
@@ -456,8 +456,8 @@ export const BlackOperations: Record = {
"mission you will be officially disavowed by the NSA and the national government until after you successfully " +
"return. In the event of failure, all of the operation's team members must not let themselves be captured alive.",
}),
- [BladeBlackOpName.OperationHyron]: new BlackOperation({
- name: BladeBlackOpName.OperationHyron,
+ [BladeburnerBlackOpName.OperationHyron]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationHyron,
n: 13,
baseDifficulty: 40e3,
reqdRank: 125e3,
@@ -493,8 +493,8 @@ export const BlackOperations: Record = {
`facilities in ${CityName.Aevum}, codenamed 'Alpha Ranch'. Infiltrate the compound, delete and destroy the work, ` +
"and then find and kill the project lead.",
}),
- [BladeBlackOpName.OperationMorpheus]: new BlackOperation({
- name: BladeBlackOpName.OperationMorpheus,
+ [BladeburnerBlackOpName.OperationMorpheus]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationMorpheus,
n: 14,
baseDifficulty: 45e3,
reqdRank: 150e3,
@@ -527,8 +527,8 @@ export const BlackOperations: Record = {
"has been compromised by Synthoids and is being used to spread pro-Synthoid propaganda.\n\n" +
"The mission is to destroy this broadcast tower. Speed and stealth are of the utmost importance for this.",
}),
- [BladeBlackOpName.OperationIonStorm]: new BlackOperation({
- name: BladeBlackOpName.OperationIonStorm,
+ [BladeburnerBlackOpName.OperationIonStorm]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationIonStorm,
n: 15,
baseDifficulty: 50e3,
reqdRank: 175e3,
@@ -561,8 +561,8 @@ export const BlackOperations: Record = {
`This is a full-scale assault operation to find and retire all of these Synthoids in the ${CityName.Sector12} ` +
"Slums.",
}),
- [BladeBlackOpName.OperationAnnihilus]: new BlackOperation({
- name: BladeBlackOpName.OperationAnnihilus,
+ [BladeburnerBlackOpName.OperationAnnihilus]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationAnnihilus,
n: 16,
baseDifficulty: 55e3,
reqdRank: 200e3,
@@ -594,8 +594,8 @@ export const BlackOperations: Record = {
`organization called '${FactionName.TheCovenant}'. We have no prior intelligence about this organization, so you ` +
"are going in blind.",
}),
- [BladeBlackOpName.OperationUltron]: new BlackOperation({
- name: BladeBlackOpName.OperationUltron,
+ [BladeburnerBlackOpName.OperationUltron]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationUltron,
n: 17,
baseDifficulty: 60e3,
reqdRank: 250e3,
@@ -633,8 +633,8 @@ export const BlackOperations: Record = {
"moves to take control of and weaponize DeltaOne's Tactical High-Energy Satellite Laser Array (THESLA).\n\n" +
"Your task is to find and destroy Ultron.",
}),
- [BladeBlackOpName.OperationCenturion]: new BlackOperation({
- name: BladeBlackOpName.OperationCenturion,
+ [BladeburnerBlackOpName.OperationCenturion]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationCenturion,
n: 18,
baseDifficulty: 70e3,
reqdRank: 300e3,
@@ -667,8 +667,8 @@ export const BlackOperations: Record = {
"It seems that the universe is not without a sense of irony.\n\n" +
"D)@#)($M)C0293c40($*)@#D0JUMP3Rm0C<*@#)*$)#02c94830c(#$*D)",
}),
- [BladeBlackOpName.OperationVindictus]: new BlackOperation({
- name: BladeBlackOpName.OperationVindictus,
+ [BladeburnerBlackOpName.OperationVindictus]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationVindictus,
n: 19,
baseDifficulty: 75e3,
reqdRank: 350e3,
@@ -699,8 +699,8 @@ export const BlackOperations: Record = {
"ways.\n\n" +
"D)@#)($M)C0293c40($*)@#D0JUMP3Rm0C<*@#)*$)#02c94830c(#$*D)",
}),
- [BladeBlackOpName.OperationDaedalus]: new BlackOperation({
- name: BladeBlackOpName.OperationDaedalus,
+ [BladeburnerBlackOpName.OperationDaedalus]: new BlackOperation({
+ name: BladeburnerBlackOpName.OperationDaedalus,
n: 20,
baseDifficulty: 80e3,
reqdRank: 400e3,
diff --git a/src/Bladeburner/data/Contracts.ts b/src/Bladeburner/data/Contracts.ts
index e6a71113a..e05adbd81 100644
--- a/src/Bladeburner/data/Contracts.ts
+++ b/src/Bladeburner/data/Contracts.ts
@@ -1,12 +1,12 @@
-import { BladeContractName } from "@enums";
+import { BladeburnerContractName } from "@enums";
import { Contract } from "../Actions/Contract";
import { getRandomIntInclusive } from "../../utils/helpers/getRandomIntInclusive";
import { assertLoadingType } from "../../utils/TypeAssertion";
-export function createContracts(): Record {
+export function createContracts(): Record {
return {
- [BladeContractName.tracking]: new Contract({
- name: BladeContractName.tracking,
+ [BladeburnerContractName.Tracking]: new Contract({
+ name: BladeburnerContractName.Tracking,
desc:
"Identify and locate Synthoids. This contract involves reconnaissance and information-gathering ONLY. Do NOT " +
"engage. Stealth is of the utmost importance.\n\n" +
@@ -39,8 +39,8 @@ export function createContracts(): Record {
growthFunction: () => getRandomIntInclusive(5, 75) / 10,
minCount: 25,
}),
- [BladeContractName.bountyHunter]: new Contract({
- name: BladeContractName.bountyHunter,
+ [BladeburnerContractName.BountyHunter]: new Contract({
+ name: BladeburnerContractName.BountyHunter,
desc:
"Hunt down and capture fugitive Synthoids. These Synthoids are wanted alive.\n\n" +
"Successfully completing a Bounty Hunter contract will lower the population in your current city, and will also " +
@@ -72,8 +72,8 @@ export function createContracts(): Record {
growthFunction: () => getRandomIntInclusive(5, 75) / 10,
minCount: 5,
}),
- [BladeContractName.retirement]: new Contract({
- name: BladeContractName.retirement,
+ [BladeburnerContractName.Retirement]: new Contract({
+ name: BladeburnerContractName.Retirement,
desc:
"Hunt down and retire (kill) rogue Synthoids.\n\n" +
"Successfully completing a Retirement contract will lower the population in your current city, and will also " +
@@ -108,12 +108,12 @@ export function createContracts(): Record {
};
}
-export function loadContractsData(data: unknown, contracts: Record) {
+export function loadContractsData(data: unknown, contracts: Record) {
// loading data as "unknown" and typechecking it down is probably not necessary
// but this will prevent crashes even with malformed savedata
if (!data || typeof data !== "object") return;
- assertLoadingType>(data);
- for (const contractName of Object.values(BladeContractName)) {
+ assertLoadingType>(data);
+ for (const contractName of Object.values(BladeburnerContractName)) {
const loadedContract = data[contractName];
if (!(loadedContract instanceof Contract)) continue;
contracts[contractName].loadData(loadedContract);
diff --git a/src/Bladeburner/data/GeneralActions.ts b/src/Bladeburner/data/GeneralActions.ts
index 1a23ba6d2..d1baee3bc 100644
--- a/src/Bladeburner/data/GeneralActions.ts
+++ b/src/Bladeburner/data/GeneralActions.ts
@@ -1,17 +1,17 @@
-import { BladeGeneralActionName } from "@enums";
+import { BladeburnerGeneralActionName } from "@enums";
import { GeneralAction } from "../Actions/GeneralAction";
import { BladeburnerConstants } from "./Constants";
-export const GeneralActions: Record = {
- [BladeGeneralActionName.training]: new GeneralAction({
- name: BladeGeneralActionName.training,
+export const GeneralActions: Record = {
+ [BladeburnerGeneralActionName.Training]: new GeneralAction({
+ name: BladeburnerGeneralActionName.Training,
getActionTime: () => 30,
desc:
"Improve your abilities at the Bladeburner unit's specialized training center. Doing this gives experience for " +
"all combat stats and also increases your max stamina.",
}),
- [BladeGeneralActionName.fieldAnalysis]: new GeneralAction({
- name: BladeGeneralActionName.fieldAnalysis,
+ [BladeburnerGeneralActionName.FieldAnalysis]: new GeneralAction({
+ name: BladeburnerGeneralActionName.FieldAnalysis,
getActionTime: () => 30,
desc:
"Mine and analyze Synthoid-related data. This improves the Bladeburner unit's intelligence on Synthoid locations " +
@@ -19,8 +19,8 @@ export const GeneralActions: Record = {
"current city.\n\n" +
"Does NOT require stamina.",
}),
- [BladeGeneralActionName.recruitment]: new GeneralAction({
- name: BladeGeneralActionName.recruitment,
+ [BladeburnerGeneralActionName.Recruitment]: new GeneralAction({
+ name: BladeburnerGeneralActionName.Recruitment,
getActionTime: function (bladeburner, person) {
const effCharisma = bladeburner.getEffectiveSkillLevel(person, "charisma");
const charismaFactor = Math.pow(effCharisma, 0.81) + effCharisma / 90;
@@ -33,23 +33,23 @@ export const GeneralActions: Record = {
"Attempt to recruit members for your Bladeburner team. These members can help you conduct operations.\n\n" +
"Does NOT require stamina.",
}),
- [BladeGeneralActionName.diplomacy]: new GeneralAction({
- name: BladeGeneralActionName.diplomacy,
+ [BladeburnerGeneralActionName.Diplomacy]: new GeneralAction({
+ name: BladeburnerGeneralActionName.Diplomacy,
getActionTime: () => 60,
desc:
"Improve diplomatic relations with the Synthoid population. Completing this action will reduce the Chaos level in " +
"your current city.\n\n" +
"Does NOT require stamina.",
}),
- [BladeGeneralActionName.hyperbolicRegen]: new GeneralAction({
- name: BladeGeneralActionName.hyperbolicRegen,
+ [BladeburnerGeneralActionName.HyperbolicRegen]: new GeneralAction({
+ name: BladeburnerGeneralActionName.HyperbolicRegen,
getActionTime: () => 60,
desc:
"Enter cryogenic stasis using the Bladeburner division's hi-tech Regeneration Chamber. This will slowly heal your " +
"wounds and slightly increase your stamina.",
}),
- [BladeGeneralActionName.inciteViolence]: new GeneralAction({
- name: BladeGeneralActionName.inciteViolence,
+ [BladeburnerGeneralActionName.InciteViolence]: new GeneralAction({
+ name: BladeburnerGeneralActionName.InciteViolence,
getActionTime: () => 60,
desc:
"Purposefully stir trouble in the synthoid community in order to gain a political edge. This will generate " +
diff --git a/src/Bladeburner/data/Operations.ts b/src/Bladeburner/data/Operations.ts
index 72d4e6513..ca2f4d78e 100644
--- a/src/Bladeburner/data/Operations.ts
+++ b/src/Bladeburner/data/Operations.ts
@@ -1,13 +1,13 @@
-import { BladeOperationName } from "@enums";
+import { BladeburnerOperationName } from "@enums";
import { Operation } from "../Actions/Operation";
import { getRandomIntInclusive } from "../../utils/helpers/getRandomIntInclusive";
import { LevelableActionClass } from "../Actions/LevelableAction";
import { assertLoadingType } from "../../utils/TypeAssertion";
-export function createOperations(): Record {
+export function createOperations(): Record {
return {
- [BladeOperationName.investigation]: new Operation({
- name: BladeOperationName.investigation,
+ [BladeburnerOperationName.Investigation]: new Operation({
+ name: BladeburnerOperationName.Investigation,
desc:
"As a field agent, investigate and identify Synthoid populations, movements, and operations.\n\n" +
"Successful Investigation ops will increase the accuracy of your synthoid data.\n\n" +
@@ -39,8 +39,8 @@ export function createOperations(): Record {
growthFunction: () => getRandomIntInclusive(10, 40) / 10,
maxCount: 100,
}),
- [BladeOperationName.undercover]: new Operation({
- name: BladeOperationName.undercover,
+ [BladeburnerOperationName.Undercover]: new Operation({
+ name: BladeburnerOperationName.Undercover,
desc:
"Conduct undercover operations to identify hidden and underground Synthoid communities and organizations.\n\n" +
"Successful Undercover ops will increase the accuracy of your synthoid data.",
@@ -72,8 +72,8 @@ export function createOperations(): Record {
growthFunction: () => getRandomIntInclusive(10, 40) / 10,
maxCount: 100,
}),
- [BladeOperationName.sting]: new Operation({
- name: BladeOperationName.sting,
+ [BladeburnerOperationName.Sting]: new Operation({
+ name: BladeburnerOperationName.Sting,
desc: "Conduct a sting operation to bait and capture particularly notorious Synthoid criminals.",
baseDifficulty: 650,
difficultyFac: 1.04,
@@ -102,8 +102,8 @@ export function createOperations(): Record {
isStealth: true,
growthFunction: () => getRandomIntInclusive(3, 40) / 10,
}),
- [BladeOperationName.raid]: new Operation({
- name: BladeOperationName.raid,
+ [BladeburnerOperationName.Raid]: new Operation({
+ name: BladeburnerOperationName.Raid,
desc:
"Lead an assault on a known Synthoid community. Note that there must be an existing Synthoid community in your " +
"current city in order for this Operation to be successful.",
@@ -138,8 +138,8 @@ export function createOperations(): Record {
return LevelableActionClass.prototype.getAvailability.call(this, bladeburner);
},
}),
- [BladeOperationName.stealthRetirement]: new Operation({
- name: BladeOperationName.stealthRetirement,
+ [BladeburnerOperationName.StealthRetirement]: new Operation({
+ name: BladeburnerOperationName.StealthRetirement,
desc:
"Lead a covert operation to retire Synthoids. The objective is to complete the task without drawing any " +
"attention. Stealth and discretion are key.",
@@ -171,8 +171,8 @@ export function createOperations(): Record {
isKill: true,
growthFunction: () => getRandomIntInclusive(1, 20) / 10,
}),
- [BladeOperationName.assassination]: new Operation({
- name: BladeOperationName.assassination,
+ [BladeburnerOperationName.Assassination]: new Operation({
+ name: BladeburnerOperationName.Assassination,
desc:
"Assassinate Synthoids that have been identified as important, high-profile social and political leaders in the " +
"Synthoid communities.",
@@ -207,12 +207,12 @@ export function createOperations(): Record {
};
}
-export function loadOperationsData(data: unknown, operations: Record) {
+export function loadOperationsData(data: unknown, operations: Record) {
// loading data as "unknown" and typechecking it down is probably not necessary
// but this will prevent crashes even with malformed savedata
if (!data || typeof data !== "object") return;
- assertLoadingType>(data);
- for (const operationName of Object.values(BladeOperationName)) {
+ assertLoadingType>(data);
+ for (const operationName of Object.values(BladeburnerOperationName)) {
const loadedOperation = data[operationName];
if (!(loadedOperation instanceof Operation)) continue;
operations[operationName].loadData(loadedOperation);
diff --git a/src/Bladeburner/data/Skills.ts b/src/Bladeburner/data/Skills.ts
index 9b4a8e561..2dbcdf77f 100644
--- a/src/Bladeburner/data/Skills.ts
+++ b/src/Bladeburner/data/Skills.ts
@@ -1,77 +1,77 @@
-import { BladeMultName, BladeSkillName } from "@enums";
+import { BladeburnerMultName, BladeburnerSkillName } from "@enums";
import { Skill } from "../Skill";
-export const Skills: Record = {
- [BladeSkillName.bladesIntuition]: new Skill({
- name: BladeSkillName.bladesIntuition,
+export const Skills: Record = {
+ [BladeburnerSkillName.BladesIntuition]: new Skill({
+ name: BladeburnerSkillName.BladesIntuition,
desc: "Each level of this skill increases your success chance for all Contracts, Operations, and BlackOps by 3%",
baseCost: 3,
costInc: 2.1,
- mults: { [BladeMultName.successChanceAll]: 3 },
+ mults: { [BladeburnerMultName.SuccessChanceAll]: 3 },
}),
- [BladeSkillName.cloak]: new Skill({
- name: BladeSkillName.cloak,
+ [BladeburnerSkillName.Cloak]: new Skill({
+ name: BladeburnerSkillName.Cloak,
desc:
"Each level of this skill increases your " +
"success chance in stealth-related Contracts, Operations, and BlackOps by 5.5%",
baseCost: 2,
costInc: 1.1,
- mults: { [BladeMultName.successChanceStealth]: 5.5 },
+ mults: { [BladeburnerMultName.SuccessChanceStealth]: 5.5 },
}),
- [BladeSkillName.shortCircuit]: new Skill({
- name: BladeSkillName.shortCircuit,
+ [BladeburnerSkillName.ShortCircuit]: new Skill({
+ name: BladeburnerSkillName.ShortCircuit,
desc:
"Each level of this skill increases your success chance " +
"in Contracts, Operations, and BlackOps that involve retirement by 5.5%",
baseCost: 2,
costInc: 2.1,
- mults: { [BladeMultName.successChanceKill]: 5.5 },
+ mults: { [BladeburnerMultName.SuccessChanceKill]: 5.5 },
}),
- [BladeSkillName.digitalObserver]: new Skill({
- name: BladeSkillName.digitalObserver,
+ [BladeburnerSkillName.DigitalObserver]: new Skill({
+ name: BladeburnerSkillName.DigitalObserver,
desc: "Each level of this skill increases your success chance in all Operations and BlackOps by 4%",
baseCost: 2,
costInc: 2.1,
- mults: { [BladeMultName.successChanceOperation]: 4 },
+ mults: { [BladeburnerMultName.SuccessChanceOperation]: 4 },
}),
- [BladeSkillName.tracer]: new Skill({
- name: BladeSkillName.tracer,
+ [BladeburnerSkillName.Tracer]: new Skill({
+ name: BladeburnerSkillName.Tracer,
desc: "Each level of this skill increases your success chance in all Contracts by 4%",
baseCost: 2,
costInc: 2.1,
- mults: { [BladeMultName.successChanceContract]: 4 },
+ mults: { [BladeburnerMultName.SuccessChanceContract]: 4 },
}),
- [BladeSkillName.overclock]: new Skill({
- name: BladeSkillName.overclock,
+ [BladeburnerSkillName.Overclock]: new Skill({
+ name: BladeburnerSkillName.Overclock,
desc:
"Each level of this skill decreases the time it takes " +
"to attempt a Contract, Operation, and BlackOp by 1% (Max Level: 90)",
baseCost: 3,
costInc: 1.4,
maxLvl: 90,
- mults: { [BladeMultName.actionTime]: -1 },
+ mults: { [BladeburnerMultName.ActionTime]: -1 },
}),
- [BladeSkillName.reaper]: new Skill({
- name: BladeSkillName.reaper,
+ [BladeburnerSkillName.Reaper]: new Skill({
+ name: BladeburnerSkillName.Reaper,
desc: "Each level of this skill increases your effective combat stats for Bladeburner actions by 2%",
baseCost: 2,
costInc: 2.1,
mults: {
- [BladeMultName.effStr]: 2,
- [BladeMultName.effDef]: 2,
- [BladeMultName.effDex]: 2,
- [BladeMultName.effAgi]: 2,
+ [BladeburnerMultName.EffStr]: 2,
+ [BladeburnerMultName.EffDef]: 2,
+ [BladeburnerMultName.EffDex]: 2,
+ [BladeburnerMultName.EffAgi]: 2,
},
}),
- [BladeSkillName.evasiveSystem]: new Skill({
- name: BladeSkillName.evasiveSystem,
+ [BladeburnerSkillName.EvasiveSystem]: new Skill({
+ name: BladeburnerSkillName.EvasiveSystem,
desc: "Each level of this skill increases your effective dexterity and agility for Bladeburner actions by 4%",
baseCost: 2,
costInc: 2.1,
- mults: { [BladeMultName.effDex]: 4, [BladeMultName.effAgi]: 4 },
+ mults: { [BladeburnerMultName.EffDex]: 4, [BladeburnerMultName.EffAgi]: 4 },
}),
- [BladeSkillName.datamancer]: new Skill({
- name: BladeSkillName.datamancer,
+ [BladeburnerSkillName.Datamancer]: new Skill({
+ name: BladeburnerSkillName.Datamancer,
desc:
"Each level of this skill increases your effectiveness in " +
"synthoid population analysis and investigation by 5%. " +
@@ -79,27 +79,27 @@ export const Skills: Record = {
"the accuracy of your synthoid population/community estimates.",
baseCost: 3,
costInc: 1,
- mults: { [BladeMultName.successChanceEstimate]: 5 },
+ mults: { [BladeburnerMultName.SuccessChanceEstimate]: 5 },
}),
- [BladeSkillName.cybersEdge]: new Skill({
- name: BladeSkillName.cybersEdge,
+ [BladeburnerSkillName.CybersEdge]: new Skill({
+ name: BladeburnerSkillName.CybersEdge,
desc: "Each level of this skill increases your max stamina by 2%",
baseCost: 1,
costInc: 3,
- mults: { [BladeMultName.stamina]: 2 },
+ mults: { [BladeburnerMultName.Stamina]: 2 },
}),
- [BladeSkillName.handsOfMidas]: new Skill({
- name: BladeSkillName.handsOfMidas,
+ [BladeburnerSkillName.HandsOfMidas]: new Skill({
+ name: BladeburnerSkillName.HandsOfMidas,
desc: "Each level of this skill increases the amount of money you receive from Contracts by 10%",
baseCost: 2,
costInc: 2.5,
- mults: { [BladeMultName.money]: 10 },
+ mults: { [BladeburnerMultName.Money]: 10 },
}),
- [BladeSkillName.hyperdrive]: new Skill({
- name: BladeSkillName.hyperdrive,
+ [BladeburnerSkillName.Hyperdrive]: new Skill({
+ name: BladeburnerSkillName.Hyperdrive,
desc: "Each level of this skill increases the experience earned from Contracts, Operations, and BlackOps by 10%",
baseCost: 1,
costInc: 2.5,
- mults: { [BladeMultName.expGain]: 10 },
+ mults: { [BladeburnerMultName.ExpGain]: 10 },
}),
};
diff --git a/src/Bladeburner/ui/OperationElem.tsx b/src/Bladeburner/ui/OperationElem.tsx
index 83244ea4d..74e4679d5 100644
--- a/src/Bladeburner/ui/OperationElem.tsx
+++ b/src/Bladeburner/ui/OperationElem.tsx
@@ -11,7 +11,7 @@ import { ActionLevel } from "./ActionLevel";
import { Autolevel } from "./Autolevel";
import { formatBigNumber } from "../../ui/formatNumber";
import { useRerender } from "../../ui/React/hooks";
-import { BladeActionType } from "@enums";
+import { BladeburnerActionType } from "@enums";
import { ActionHeader } from "./ActionHeader";
interface OperationElemProps {
@@ -21,7 +21,8 @@ interface OperationElemProps {
export function OperationElem({ bladeburner, action }: OperationElemProps): React.ReactElement {
const rerender = useRerender();
- const isActive = bladeburner.action?.type === BladeActionType.operation && action.name === bladeburner.action?.name;
+ const isActive =
+ bladeburner.action?.type === BladeburnerActionType.Operation && action.name === bladeburner.action?.name;
const actionTime = action.getActionTime(bladeburner, Player);
return (
diff --git a/src/Bladeburner/utils/loadActionIdentifier.ts b/src/Bladeburner/utils/loadActionIdentifier.ts
index 4920d0881..83322ccb8 100644
--- a/src/Bladeburner/utils/loadActionIdentifier.ts
+++ b/src/Bladeburner/utils/loadActionIdentifier.ts
@@ -1,5 +1,5 @@
import type { ActionIdentifier } from "../Types";
-import { BladeActionType } from "@enums";
+import { BladeburnerActionType } from "@enums";
import { assertLoadingType } from "../../utils/TypeAssertion";
import { getEnumHelper } from "../../utils/EnumHelper";
@@ -9,17 +9,17 @@ import { getEnumHelper } from "../../utils/EnumHelper";
export function loadActionIdentifier(identifier: unknown): ActionIdentifier | null {
if (!identifier || typeof identifier !== "object") return null;
assertLoadingType(identifier);
- if (getEnumHelper("BladeBlackOpName").isMember(identifier.name)) {
- return { type: BladeActionType.blackOp, name: identifier.name };
+ if (getEnumHelper("BladeburnerBlackOpName").isMember(identifier.name)) {
+ return { type: BladeburnerActionType.BlackOp, name: identifier.name };
}
- if (getEnumHelper("BladeContractName").isMember(identifier.name)) {
- return { type: BladeActionType.contract, name: identifier.name };
+ if (getEnumHelper("BladeburnerContractName").isMember(identifier.name)) {
+ return { type: BladeburnerActionType.Contract, name: identifier.name };
}
- if (getEnumHelper("BladeOperationName").isMember(identifier.name)) {
- return { type: BladeActionType.operation, name: identifier.name };
+ if (getEnumHelper("BladeburnerOperationName").isMember(identifier.name)) {
+ return { type: BladeburnerActionType.Operation, name: identifier.name };
}
- if (getEnumHelper("BladeGeneralActionName").isMember(identifier.name)) {
- return { type: BladeActionType.general, name: identifier.name };
+ if (getEnumHelper("BladeburnerGeneralActionName").isMember(identifier.name)) {
+ return { type: BladeburnerActionType.General, name: identifier.name };
}
return null;
}
diff --git a/src/DevMenu/ui/BladeburnerDev.tsx b/src/DevMenu/ui/BladeburnerDev.tsx
index 1d5e0264e..b36c638b3 100644
--- a/src/DevMenu/ui/BladeburnerDev.tsx
+++ b/src/DevMenu/ui/BladeburnerDev.tsx
@@ -15,7 +15,7 @@ import Select, { SelectChangeEvent } from "@mui/material/Select";
import DeleteIcon from "@mui/icons-material/Delete";
import { Adjuster } from "./Adjuster";
import { Player } from "@player";
-import { BladeSkillName, CityName } from "@enums";
+import { BladeburnerSkillName, CityName } from "@enums";
import { Skills as AllSkills } from "../../Bladeburner/data/Skills";
import { Bladeburner } from "../../Bladeburner/Bladeburner";
import { getEnumHelper } from "../../utils/EnumHelper";
@@ -57,9 +57,9 @@ export function BladeburnerDev({ bladeburner }: { bladeburner: Bladeburner }): R
};
// Skill functions
- const [skillName, setSkillName] = useState(BladeSkillName.bladesIntuition);
+ const [skillName, setSkillName] = useState(BladeburnerSkillName.BladesIntuition);
function setSkillDropdown(event: SelectChangeEvent): void {
- if (!getEnumHelper("BladeSkillName").isMember(event.target.value)) return;
+ if (!getEnumHelper("BladeburnerSkillName").isMember(event.target.value)) return;
setSkillName(event.target.value);
}
const modifySkill = (modifier: number) => (levelchange: number) => {
@@ -81,7 +81,7 @@ export function BladeburnerDev({ bladeburner }: { bladeburner: Bladeburner }): R
const AllContracts = bladeburner.contracts;
const [contractTarget, setContract] = useState(AllContracts.Tracking.name);
function setContractDropdown(event: SelectChangeEvent): void {
- if (!getEnumHelper("BladeContractName").isMember(event.target.value)) return;
+ if (!getEnumHelper("BladeburnerContractName").isMember(event.target.value)) return;
setContract(event.target.value);
}
const modifyContractLevel = (modifier: number) => (levelchange: number) => {
@@ -117,7 +117,7 @@ export function BladeburnerDev({ bladeburner }: { bladeburner: Bladeburner }): R
const AllOperations = bladeburner.operations;
const [operationTarget, setOperation] = useState(AllOperations.Investigation.name);
function setOperationDropdown(event: SelectChangeEvent): void {
- if (!getEnumHelper("BladeOperationName").isMember(event.target.value)) return;
+ if (!getEnumHelper("BladeburnerOperationName").isMember(event.target.value)) return;
setOperation(event.target.value);
}
const modifyOperationLevel = (modifier: number) => (levelchange: number) => {
diff --git a/src/NetscriptFunctions/Bladeburner.ts b/src/NetscriptFunctions/Bladeburner.ts
index 3ad7e8367..6bc61c882 100644
--- a/src/NetscriptFunctions/Bladeburner.ts
+++ b/src/NetscriptFunctions/Bladeburner.ts
@@ -3,7 +3,13 @@ import type { Action, LevelableAction } from "../Bladeburner/Types";
import type { InternalAPI, NetscriptContext } from "../Netscript/APIWrapper";
import { Player } from "@player";
-import { BladeActionType, BladeContractName, BladeGeneralActionName, BladeOperationName, BladeSkillName } from "@enums";
+import {
+ BladeburnerActionType,
+ BladeburnerContractName,
+ BladeburnerGeneralActionName,
+ BladeburnerOperationName,
+ BladeburnerSkillName,
+} from "@enums";
import { Bladeburner, BladeburnerPromise } from "../Bladeburner/Bladeburner";
import { currentNodeMults } from "../BitNode/BitNodeMultipliers";
import { helpers } from "../Netscript/NetscriptHelpers";
@@ -40,7 +46,7 @@ export function NetscriptBladeburner(): InternalAPI {
}
function isLevelableAction(action: Action): action is LevelableAction {
- return action.type === BladeActionType.contract || action.type === BladeActionType.operation;
+ return action.type === BladeburnerActionType.Contract || action.type === BladeburnerActionType.Operation;
}
function getLevelableAction(ctx: NetscriptContext, type: unknown, name: unknown): LevelableAction {
@@ -58,11 +64,11 @@ export function NetscriptBladeburner(): InternalAPI {
inBladeburner: () => () => !!Player.bladeburner,
getContractNames: (ctx) => () => {
getBladeburner(ctx);
- return Object.values(BladeContractName);
+ return Object.values(BladeburnerContractName);
},
getOperationNames: (ctx) => () => {
getBladeburner(ctx);
- return Object.values(BladeOperationName);
+ return Object.values(BladeburnerOperationName);
},
getBlackOpNames: (ctx) => () => {
getBladeburner(ctx);
@@ -77,16 +83,16 @@ export function NetscriptBladeburner(): InternalAPI {
},
getBlackOpRank: (ctx) => (_blackOpName) => {
checkBladeburnerAccess(ctx);
- const blackOpName = getEnumHelper("BladeBlackOpName").nsGetMember(ctx, _blackOpName);
+ const blackOpName = getEnumHelper("BladeburnerBlackOpName").nsGetMember(ctx, _blackOpName);
return BlackOperations[blackOpName].reqdRank;
},
getGeneralActionNames: (ctx) => () => {
getBladeburner(ctx);
- return Object.values(BladeGeneralActionName);
+ return Object.values(BladeburnerGeneralActionName);
},
getSkillNames: (ctx) => () => {
getBladeburner(ctx);
- return Object.values(BladeSkillName);
+ return Object.values(BladeburnerSkillName);
},
startAction: (ctx) => (type, name) => {
const bladeburner = getBladeburner(ctx);
@@ -128,8 +134,8 @@ export function NetscriptBladeburner(): InternalAPI {
const sleeveNumber = helpers.number(ctx, "sleeve", _sleeve);
checkSleeveNumber(ctx, sleeveNumber);
switch (action.type) {
- case BladeActionType.general:
- case BladeActionType.contract: {
+ case BladeburnerActionType.General:
+ case BladeburnerActionType.Contract: {
const sleevePerson = Player.sleeves[sleeveNumber];
return action.getSuccessRange(bladeburner, sleevePerson);
}
@@ -148,12 +154,12 @@ export function NetscriptBladeburner(): InternalAPI {
const bladeburner = getBladeburner(ctx);
const action = getAction(ctx, type, name);
switch (action.type) {
- case BladeActionType.general:
+ case BladeburnerActionType.General:
return Infinity;
- case BladeActionType.blackOp:
+ case BladeburnerActionType.BlackOp:
return bladeburner.numBlackOpsComplete > action.n ? 0 : 1;
- case BladeActionType.contract:
- case BladeActionType.operation:
+ case BladeburnerActionType.Contract:
+ case BladeburnerActionType.Operation:
return action.count;
}
},
@@ -206,12 +212,12 @@ export function NetscriptBladeburner(): InternalAPI {
},
getSkillLevel: (ctx) => (_skillName) => {
const bladeburner = getBladeburner(ctx);
- const skillName = getEnumHelper("BladeSkillName").nsGetMember(ctx, _skillName, "skillName");
+ const skillName = getEnumHelper("BladeburnerSkillName").nsGetMember(ctx, _skillName, "skillName");
return bladeburner.getSkillLevel(skillName);
},
getSkillUpgradeCost: (ctx) => (_skillName, _count) => {
const bladeburner = getBladeburner(ctx);
- const skillName = getEnumHelper("BladeSkillName").nsGetMember(ctx, _skillName, "skillName");
+ const skillName = getEnumHelper("BladeburnerSkillName").nsGetMember(ctx, _skillName, "skillName");
const count = helpers.positiveInteger(ctx, "count", _count ?? 1);
const currentLevel = bladeburner.getSkillLevel(skillName);
const skill = Skills[skillName];
@@ -222,7 +228,7 @@ export function NetscriptBladeburner(): InternalAPI {
},
upgradeSkill: (ctx) => (_skillName, _count) => {
const bladeburner = getBladeburner(ctx);
- const skillName = getEnumHelper("BladeSkillName").nsGetMember(ctx, _skillName, "skillName");
+ const skillName = getEnumHelper("BladeburnerSkillName").nsGetMember(ctx, _skillName, "skillName");
const count = helpers.positiveInteger(ctx, "count", _count ?? 1);
const attempt = bladeburner.upgradeSkill(skillName, count);
helpers.log(ctx, () => attempt.message);
@@ -233,11 +239,11 @@ export function NetscriptBladeburner(): InternalAPI {
if (!type && !name) return bladeburner.teamSize;
const action = getAction(ctx, type, name);
switch (action.type) {
- case BladeActionType.general:
- case BladeActionType.contract:
+ case BladeburnerActionType.General:
+ case BladeburnerActionType.Contract:
return 0;
- case BladeActionType.blackOp:
- case BladeActionType.operation:
+ case BladeburnerActionType.BlackOp:
+ case BladeburnerActionType.Operation:
return action.teamCount;
}
},
@@ -250,12 +256,12 @@ export function NetscriptBladeburner(): InternalAPI {
return -1;
}
switch (action.type) {
- case BladeActionType.contract:
- case BladeActionType.general:
+ case BladeburnerActionType.Contract:
+ case BladeburnerActionType.General:
helpers.log(ctx, () => "Only valid for Operations and Black Operations");
return -1;
- case BladeActionType.blackOp:
- case BladeActionType.operation: {
+ case BladeburnerActionType.BlackOp:
+ case BladeburnerActionType.Operation: {
action.teamCount = size;
helpers.log(ctx, () => `Set team size for ${action.name} to ${size}`);
return size;
diff --git a/src/NetscriptFunctions/Formulas.ts b/src/NetscriptFunctions/Formulas.ts
index 10a59857b..032bbaa0a 100644
--- a/src/NetscriptFunctions/Formulas.ts
+++ b/src/NetscriptFunctions/Formulas.ts
@@ -431,7 +431,7 @@ export function NetscriptFormulas(): InternalAPI {
bladeburner: {
skillMaxUpgradeCount: (ctx) => (_name, _level, _skillPoints) => {
checkFormulasAccess(ctx);
- const name = getEnumHelper("BladeSkillName").nsGetMember(ctx, _name, "name");
+ const name = getEnumHelper("BladeburnerSkillName").nsGetMember(ctx, _name, "name");
const level = helpers.number(ctx, "level", _level);
if (level < 0) {
throw new Error(`Level must be a non-negative number.`);
diff --git a/src/NetscriptFunctions/Sleeve.ts b/src/NetscriptFunctions/Sleeve.ts
index 6079b9d18..cf91c009a 100644
--- a/src/NetscriptFunctions/Sleeve.ts
+++ b/src/NetscriptFunctions/Sleeve.ts
@@ -3,7 +3,7 @@ import type { Sleeve as NetscriptSleeve } from "@nsdefs";
import type { ActionIdentifier } from "../Bladeburner/Types";
import { Player } from "@player";
-import { BladeActionType, type BladeContractName } from "@enums";
+import { BladeburnerActionType, type BladeburnerContractName } from "@enums";
import { Augmentations } from "../Augmentation/Augmentations";
import { findCrime } from "../Crime/CrimeHelpers";
import { getEnumHelper } from "../utils/EnumHelper";
@@ -259,9 +259,9 @@ export function NetscriptSleeve(): InternalAPI {
const action = helpers.string(ctx, "action", _action);
checkSleeveAPIAccess(ctx);
checkSleeveNumber(ctx, sleeveNumber);
- let contract: BladeContractName | undefined = undefined;
+ let contract: BladeburnerContractName | undefined = undefined;
if (action === "Take on contracts") {
- contract = getEnumHelper("BladeContractName").nsGetMember(ctx, _contract);
+ contract = getEnumHelper("BladeburnerContractName").nsGetMember(ctx, _contract);
for (let i = 0; i < Player.sleeves.length; ++i) {
if (i === sleeveNumber) continue;
const otherWork = Player.sleeves[i].currentWork;
@@ -272,7 +272,7 @@ export function NetscriptSleeve(): InternalAPI {
);
}
}
- const actionId: ActionIdentifier = { type: BladeActionType.contract, name: contract };
+ const actionId: ActionIdentifier = { type: BladeburnerActionType.Contract, name: contract };
Player.sleeves[sleeveNumber].startWork(new SleeveBladeburnerWork({ actionId }));
}
return Player.sleeves[sleeveNumber].bladeburner(action, contract);
diff --git a/src/PersonObjects/Sleeve/Sleeve.ts b/src/PersonObjects/Sleeve/Sleeve.ts
index 0f56f63df..696d0f3bb 100644
--- a/src/PersonObjects/Sleeve/Sleeve.ts
+++ b/src/PersonObjects/Sleeve/Sleeve.ts
@@ -25,8 +25,8 @@ import {
UniversityClassType,
CompanyName,
FactionName,
- BladeActionType,
- BladeGeneralActionName,
+ BladeburnerActionType,
+ BladeburnerGeneralActionName,
AugmentationName,
} from "@enums";
@@ -482,7 +482,7 @@ export class Sleeve extends Person implements SleevePerson {
case "Training":
this.startWork(
new SleeveBladeburnerWork({
- actionId: { type: BladeActionType.general, name: BladeGeneralActionName.training },
+ actionId: { type: BladeburnerActionType.General, name: BladeburnerGeneralActionName.Training },
}),
);
return true;
@@ -490,28 +490,28 @@ export class Sleeve extends Person implements SleevePerson {
case "Field Analysis":
this.startWork(
new SleeveBladeburnerWork({
- actionId: { type: BladeActionType.general, name: BladeGeneralActionName.fieldAnalysis },
+ actionId: { type: BladeburnerActionType.General, name: BladeburnerGeneralActionName.FieldAnalysis },
}),
);
return true;
case "Recruitment":
this.startWork(
new SleeveBladeburnerWork({
- actionId: { type: BladeActionType.general, name: BladeGeneralActionName.recruitment },
+ actionId: { type: BladeburnerActionType.General, name: BladeburnerGeneralActionName.Recruitment },
}),
);
return true;
case "Diplomacy":
this.startWork(
new SleeveBladeburnerWork({
- actionId: { type: BladeActionType.general, name: BladeGeneralActionName.diplomacy },
+ actionId: { type: BladeburnerActionType.General, name: BladeburnerGeneralActionName.Diplomacy },
}),
);
return true;
case "Hyperbolic Regeneration Chamber":
this.startWork(
new SleeveBladeburnerWork({
- actionId: { type: BladeActionType.general, name: BladeGeneralActionName.hyperbolicRegen },
+ actionId: { type: BladeburnerActionType.General, name: BladeburnerGeneralActionName.HyperbolicRegen },
}),
);
return true;
@@ -523,8 +523,10 @@ export class Sleeve extends Person implements SleevePerson {
this.startWork(new SleeveSupportWork());
return true;
case "Take on contracts":
- if (!getEnumHelper("BladeContractName").isMember(contract)) return false;
- this.startWork(new SleeveBladeburnerWork({ actionId: { type: BladeActionType.contract, name: contract } }));
+ if (!getEnumHelper("BladeburnerContractName").isMember(contract)) return false;
+ this.startWork(
+ new SleeveBladeburnerWork({ actionId: { type: BladeburnerActionType.Contract, name: contract } }),
+ );
return true;
}
return false;
diff --git a/src/PersonObjects/Sleeve/Work/SleeveBladeburnerWork.ts b/src/PersonObjects/Sleeve/Work/SleeveBladeburnerWork.ts
index 308a0cf6b..3bfaa4992 100644
--- a/src/PersonObjects/Sleeve/Work/SleeveBladeburnerWork.ts
+++ b/src/PersonObjects/Sleeve/Work/SleeveBladeburnerWork.ts
@@ -2,7 +2,7 @@ import type { Sleeve } from "../Sleeve";
import type { ActionIdentifier } from "../../../Bladeburner/Types";
import type { PromisePair } from "../../../Types/Promises";
import { Player } from "@player";
-import { BladeActionType, BladeGeneralActionName } from "@enums";
+import { BladeburnerActionType, BladeburnerGeneralActionName } from "@enums";
import { Generic_fromJSON, Generic_toJSON, IReviverValue, constructorsForReviver } from "../../../utils/JSONReviver";
import { applySleeveGains, SleeveWorkClass, SleeveWorkType } from "./Work";
import { CONSTANTS } from "../../../Constants";
@@ -12,7 +12,7 @@ import { loadActionIdentifier } from "../../../Bladeburner/utils/loadActionIdent
import { invalidWork } from "../../../Work/InvalidWork";
interface SleeveBladeburnerWorkParams {
- actionId: ActionIdentifier & { type: BladeActionType.general | BladeActionType.contract };
+ actionId: ActionIdentifier & { type: BladeburnerActionType.General | BladeburnerActionType.Contract };
}
export const isSleeveBladeburnerWork = (w: SleeveWorkClass | null): w is SleeveBladeburnerWork =>
@@ -22,12 +22,15 @@ export class SleeveBladeburnerWork extends SleeveWorkClass {
type: SleeveWorkType.BLADEBURNER = SleeveWorkType.BLADEBURNER;
tasksCompleted = 0;
cyclesWorked = 0;
- actionId: ActionIdentifier & { type: BladeActionType.general | BladeActionType.contract };
+ actionId: ActionIdentifier & { type: BladeburnerActionType.General | BladeburnerActionType.Contract };
nextCompletionPair: PromisePair = { promise: null, resolve: null };
constructor(params?: SleeveBladeburnerWorkParams) {
super();
- this.actionId = params?.actionId ?? { type: BladeActionType.general, name: BladeGeneralActionName.fieldAnalysis };
+ this.actionId = params?.actionId ?? {
+ type: BladeburnerActionType.General,
+ name: BladeburnerGeneralActionName.FieldAnalysis,
+ };
}
cyclesNeeded(sleeve: Sleeve): number {
@@ -48,13 +51,13 @@ export class SleeveBladeburnerWork extends SleeveWorkClass {
process(sleeve: Sleeve, cycles: number) {
if (!Player.bladeburner) return sleeve.stopWork();
this.cyclesWorked += cycles;
- if (this.actionId.type === BladeActionType.contract) {
+ if (this.actionId.type === BladeburnerActionType.Contract) {
const action = Player.bladeburner.getActionObject(this.actionId);
if (action.count < 1) return sleeve.stopWork();
}
while (this.cyclesWorked >= this.cyclesNeeded(sleeve)) {
- if (this.actionId.type === BladeActionType.contract) {
+ if (this.actionId.type === BladeburnerActionType.Contract) {
const action = Player.bladeburner.getActionObject(this.actionId);
if (action.count < 1) return sleeve.stopWork();
}
diff --git a/src/PersonObjects/Sleeve/ui/TaskSelector.tsx b/src/PersonObjects/Sleeve/ui/TaskSelector.tsx
index 8fe58bfaf..a92810653 100644
--- a/src/PersonObjects/Sleeve/ui/TaskSelector.tsx
+++ b/src/PersonObjects/Sleeve/ui/TaskSelector.tsx
@@ -5,8 +5,8 @@ import { MenuItem, Select, SelectChangeEvent } from "@mui/material";
import { Player } from "@player";
import {
- BladeActionType,
- BladeContractName,
+ BladeburnerActionType,
+ BladeburnerContractName,
CityName,
FactionName,
FactionWorkType,
@@ -96,19 +96,19 @@ function possibleFactions(sleeve: Sleeve): string[] {
});
}
-function possibleContracts(sleeve: Sleeve): BladeContractName[] | ["------"] {
+function possibleContracts(sleeve: Sleeve): BladeburnerContractName[] | ["------"] {
const bb = Player.bladeburner;
if (bb === null) {
return ["------"];
}
- let contracts = Object.values(BladeContractName);
+ let contracts = Object.values(BladeburnerContractName);
for (const otherSleeve of Player.sleeves) {
if (sleeve === otherSleeve) {
continue;
}
if (
otherSleeve.currentWork?.type === SleeveWorkType.BLADEBURNER &&
- otherSleeve.currentWork.actionId.type === BladeActionType.contract
+ otherSleeve.currentWork.actionId.type === BladeburnerActionType.Contract
) {
const w = otherSleeve.currentWork;
contracts = contracts.filter((x) => x != w.actionId.name);
@@ -262,7 +262,7 @@ function getABC(sleeve: Sleeve): [string, string, string] {
return ["Work for Faction", work.factionName, workNames[work.factionWorkType] ?? ""];
}
case SleeveWorkType.BLADEBURNER:
- if (work.actionId.type === BladeActionType.contract) {
+ if (work.actionId.type === BladeburnerActionType.Contract) {
return ["Perform Bladeburner Actions", "Take on contracts", work.actionId.name];
}
return ["Perform Bladeburner Actions", work.actionId.name, "------"];
diff --git a/src/ScriptEditor/NetscriptDefinitions.d.ts b/src/ScriptEditor/NetscriptDefinitions.d.ts
index 810048c41..401cca43f 100644
--- a/src/ScriptEditor/NetscriptDefinitions.d.ts
+++ b/src/ScriptEditor/NetscriptDefinitions.d.ts
@@ -1787,7 +1787,11 @@ export interface Singularity {
* @param focus - Acquire player focus on this class. Optional. Defaults to true.
* @returns True if action is successfully started, false otherwise.
*/
- universityCourse(universityName: string, courseName: string, focus?: boolean): boolean;
+ universityCourse(
+ universityName: UniversityLocationName | `${UniversityLocationName}`,
+ courseName: UniversityClassType | `${UniversityClassType}`,
+ focus?: boolean,
+ ): boolean;
/**
* Workout at the gym.
@@ -1809,7 +1813,7 @@ export interface Singularity {
* @param focus - Acquire player focus on this gym workout. Optional. Defaults to true.
* @returns True if action is successfully started, false otherwise.
*/
- gymWorkout(gymName: string, stat: string, focus?: boolean): boolean;
+ gymWorkout(gymName: GymLocationName | `${GymLocationName}`, stat: GymType | `${GymType}`, focus?: boolean): boolean;
/**
* Travel to another city.
@@ -3033,6 +3037,133 @@ export interface Hacknet {
getTrainingMult(): number;
}
+/**
+ * Action types of Bladeburner
+ *
+ * @public
+ */
+declare enum BladeburnerActionType {
+ General = "General",
+ Contract = "Contracts",
+ Operation = "Operations",
+ BlackOp = "Black Operations",
+}
+
+/**
+ * General action names of Bladeburner
+ *
+ * @public
+ */
+declare enum BladeburnerGeneralActionName {
+ Training = "Training",
+ FieldAnalysis = "Field Analysis",
+ Recruitment = "Recruitment",
+ Diplomacy = "Diplomacy",
+ HyperbolicRegen = "Hyperbolic Regeneration Chamber",
+ InciteViolence = "Incite Violence",
+}
+
+/**
+ * Contract names of Bladeburner
+ *
+ * @public
+ */
+declare enum BladeburnerContractName {
+ Tracking = "Tracking",
+ BountyHunter = "Bounty Hunter",
+ Retirement = "Retirement",
+}
+
+/**
+ * Operation names of Bladeburner
+ *
+ * @public
+ */
+declare enum BladeburnerOperationName {
+ Investigation = "Investigation",
+ Undercover = "Undercover Operation",
+ Sting = "Sting Operation",
+ Raid = "Raid",
+ StealthRetirement = "Stealth Retirement Operation",
+ Assassination = "Assassination",
+}
+
+/**
+ * Black Operation names of Bladeburner
+ *
+ * @public
+ */
+declare enum BladeburnerBlackOpName {
+ OperationTyphoon = "Operation Typhoon",
+ OperationZero = "Operation Zero",
+ OperationX = "Operation X",
+ OperationTitan = "Operation Titan",
+ OperationAres = "Operation Ares",
+ OperationArchangel = "Operation Archangel",
+ OperationJuggernaut = "Operation Juggernaut",
+ OperationRedDragon = "Operation Red Dragon",
+ OperationK = "Operation K",
+ OperationDeckard = "Operation Deckard",
+ OperationTyrell = "Operation Tyrell",
+ OperationWallace = "Operation Wallace",
+ OperationShoulderOfOrion = "Operation Shoulder of Orion",
+ OperationHyron = "Operation Hyron",
+ OperationMorpheus = "Operation Morpheus",
+ OperationIonStorm = "Operation Ion Storm",
+ OperationAnnihilus = "Operation Annihilus",
+ OperationUltron = "Operation Ultron",
+ OperationCenturion = "Operation Centurion",
+ OperationVindictus = "Operation Vindictus",
+ OperationDaedalus = "Operation Daedalus",
+}
+
+/**
+ * Skill names type of Bladeburner
+ *
+ * @public
+ */
+declare enum BladeburnerSkillName {
+ BladesIntuition = "Blade's Intuition",
+ Cloak = "Cloak",
+ ShortCircuit = "Short-Circuit",
+ DigitalObserver = "Digital Observer",
+ Tracer = "Tracer",
+ Overclock = "Overclock",
+ Reaper = "Reaper",
+ EvasiveSystem = "Evasive System",
+ Datamancer = "Datamancer",
+ CybersEdge = "Cyber's Edge",
+ HandsOfMidas = "Hands of Midas",
+ Hyperdrive = "Hyperdrive",
+}
+
+/**
+ * @public
+ */
+export type BladeburnerActionName =
+ | BladeburnerGeneralActionName
+ | BladeburnerContractName
+ | BladeburnerOperationName
+ | BladeburnerBlackOpName;
+
+/**
+ * These special Bladeburner action types are only for Sleeve
+ *
+ * @public
+ */
+declare enum SpecialBladeburnerActionTypeForSleeve {
+ InfiltrateSynthoids = "Infiltrate Synthoids",
+ SupportMainSleeve = "Support main sleeve",
+ TakeOnContracts = "Take on contracts",
+}
+
+/**
+ * @public
+ */
+export type BladeburnerActionTypeForSleeve =
+ | Exclude
+ | SpecialBladeburnerActionTypeForSleeve;
+
/**
* Bladeburner API
* @remarks
@@ -3050,7 +3181,7 @@ export interface Bladeburner {
*
* @returns Array of strings containing the names of all Bladeburner contracts.
*/
- getContractNames(): string[];
+ getContractNames(): BladeburnerContractName[];
/**
* List all operations.
@@ -3061,7 +3192,7 @@ export interface Bladeburner {
*
* @returns Array of strings containing the names of all Bladeburner operations.
*/
- getOperationNames(): string[];
+ getOperationNames(): BladeburnerOperationName[];
/**
* List all black ops.
@@ -3072,7 +3203,7 @@ export interface Bladeburner {
*
* @returns Array of strings containing the names of all Bladeburner Black Ops.
*/
- getBlackOpNames(): string[];
+ getBlackOpNames(): BladeburnerBlackOpName[];
/**
* Get an object with the name and rank requirement of the next BlackOp that can be completed.
@@ -3084,7 +3215,7 @@ export interface Bladeburner {
*
* @returns An object with the `.name` and `.rank` properties of the available BlackOp, or `null`.
*/
- getNextBlackOp(): { name: string; rank: number } | null;
+ getNextBlackOp(): { name: BladeburnerBlackOpName; rank: number } | null;
/**
* List all general actions.
@@ -3095,7 +3226,7 @@ export interface Bladeburner {
*
* @returns Array of strings containing the names of all general Bladeburner actions.
*/
- getGeneralActionNames(): string[];
+ getGeneralActionNames(): BladeburnerGeneralActionName[];
/**
* List all skills.
@@ -3106,7 +3237,7 @@ export interface Bladeburner {
*
* @returns Array of strings containing the names of all general Bladeburner skills.
*/
- getSkillNames(): string[];
+ getSkillNames(): BladeburnerSkillName[];
/**
* Start an action.
@@ -3126,7 +3257,10 @@ export interface Bladeburner {
* @param name - Name of action. Must be an exact match
* @returns True if the action was started successfully, and false otherwise.
*/
- startAction(type: string, name: string): boolean;
+ startAction(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ ): boolean;
/**
* Stop current action.
@@ -3158,7 +3292,10 @@ export interface Bladeburner {
* @param name - Name of action. Must be an exact match.
* @returns Number of milliseconds it takes to complete the specified action.
*/
- getActionTime(type: string, name: string): number;
+ getActionTime(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ ): number;
/**
* Get the time elapsed on current action.
@@ -3186,7 +3323,11 @@ export interface Bladeburner {
* @param sleeveNumber - Optional. Index of the sleeve to retrieve information.
* @returns Estimated success chance for the specified action.
*/
- getActionEstimatedSuccessChance(type: string, name: string, sleeveNumber?: number): [number, number];
+ getActionEstimatedSuccessChance(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ sleeveNumber?: number,
+ ): [number, number];
/**
* Get the reputation gain of an action.
@@ -3202,7 +3343,11 @@ export interface Bladeburner {
* @param level - Optional number. Action level at which to calculate the gain. Will be the action's current level if not given.
* @returns Average Bladeburner reputation gain for successfully completing the specified action.
*/
- getActionRepGain(type: string, name: string, level?: number): number;
+ getActionRepGain(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ level?: number,
+ ): number;
/**
* Get action count remaining.
@@ -3220,7 +3365,10 @@ export interface Bladeburner {
* @param name - Name of action. Must be an exact match.
* @returns Remaining count of the specified action.
*/
- getActionCountRemaining(type: string, name: string): number;
+ getActionCountRemaining(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ ): number;
/**
* Get the maximum level of an action.
@@ -3235,7 +3383,10 @@ export interface Bladeburner {
* @param name - Name of action. Must be an exact match.
* @returns Maximum level of the specified action.
*/
- getActionMaxLevel(type: string, name: string): number;
+ getActionMaxLevel(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ ): number;
/**
* Get the current level of an action.
@@ -3250,7 +3401,10 @@ export interface Bladeburner {
* @param name - Name of action. Must be an exact match.
* @returns Current level of the specified action.
*/
- getActionCurrentLevel(type: string, name: string): number;
+ getActionCurrentLevel(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ ): number;
/**
* Get whether an action is set to autolevel.
@@ -3265,7 +3419,10 @@ export interface Bladeburner {
* @param name - Name of action. Must be an exact match.
* @returns True if the action is set to autolevel, and false otherwise.
*/
- getActionAutolevel(type: string, name: string): boolean;
+ getActionAutolevel(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ ): boolean;
/**
* Get action successes.
@@ -3278,7 +3435,10 @@ export interface Bladeburner {
* @param name - Name of action. Must be an exact match.
* @returns a number with how many successes you have with action.
*/
- getActionSuccesses(type: string, name: string): number;
+ getActionSuccesses(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ ): number;
/**
* Set an action autolevel.
@@ -3291,7 +3451,11 @@ export interface Bladeburner {
* @param name - Name of action. Must be an exact match.
* @param autoLevel - Whether or not to autolevel this action
*/
- setActionAutolevel(type: string, name: string, autoLevel: boolean): void;
+ setActionAutolevel(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ autoLevel: boolean,
+ ): void;
/**
* Set the level of an action.
@@ -3304,7 +3468,11 @@ export interface Bladeburner {
* @param name - Name of action. Must be an exact match.
* @param level - Level to set this action to.
*/
- setActionLevel(type: string, name: string, level: number): void;
+ setActionLevel(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ level: number,
+ ): void;
/**
* Get player bladeburner rank.
@@ -3329,7 +3497,7 @@ export interface Bladeburner {
* @param name - Name of BlackOp. Must be an exact match.
* @returns Rank required to complete this BlackOp.
*/
- getBlackOpRank(name: string): number;
+ getBlackOpRank(name: BladeburnerBlackOpName): number;
/**
* Get bladeburner skill points.
@@ -3354,7 +3522,7 @@ export interface Bladeburner {
* @param skillName - Name of skill. Case-sensitive and must be an exact match.
* @returns Level in the specified skill.
*/
- getSkillLevel(skillName: string): number;
+ getSkillLevel(skillName: BladeburnerSkillName | `${BladeburnerSkillName}`): number;
/**
* Get cost to upgrade skill.
@@ -3369,7 +3537,7 @@ export interface Bladeburner {
* @param count - Number of times to upgrade the skill. Defaults to 1 if not specified.
* @returns Number of skill points needed to upgrade the specified skill.
*/
- getSkillUpgradeCost(skillName: string, count?: number): number;
+ getSkillUpgradeCost(skillName: BladeburnerSkillName | `${BladeburnerSkillName}`, count?: number): number;
/**
* Upgrade skill.
@@ -3384,7 +3552,7 @@ export interface Bladeburner {
* @param count - Number of times to upgrade the skill. Defaults to 1 if not specified.
* @returns true if the skill is successfully upgraded, and false otherwise.
*/
- upgradeSkill(skillName: string, count?: number): boolean;
+ upgradeSkill(skillName: BladeburnerSkillName | `${BladeburnerSkillName}`, count?: number): boolean;
/**
* Get team size.
@@ -3401,7 +3569,10 @@ export interface Bladeburner {
* @param name - Name of action. Must be an exact match.
* @returns Number of Bladeburner team members that were assigned to the specified action.
*/
- getTeamSize(type?: string, name?: string): number;
+ getTeamSize(
+ type?: BladeburnerActionType | `${BladeburnerActionType}`,
+ name?: BladeburnerActionName | `${BladeburnerActionName}`,
+ ): number;
/**
* Set team size.
@@ -3417,7 +3588,11 @@ export interface Bladeburner {
* @param size - Number of team members to set. Will be converted using Math.round().
* @returns Number of Bladeburner team members you assigned to the specified action.
*/
- setTeamSize(type: string, name: string, size: number): number;
+ setTeamSize(
+ type: BladeburnerActionType | `${BladeburnerActionType}`,
+ name: BladeburnerActionName | `${BladeburnerActionName}`,
+ size: number,
+ ): number;
/**
* Get estimated population in city.
@@ -4566,11 +4741,15 @@ export interface Sleeve {
* Return a boolean indicating whether or not this action was set successfully.
*
* @param sleeveNumber - Index of the sleeve to start taking class.
- * @param university - Name of the university to attend.
- * @param className - Name of the class to follow.
+ * @param universityName - Name of the university to attend.
+ * @param courseName - Name of the course to follow.
* @returns True if this action was set successfully, false otherwise.
*/
- setToUniversityCourse(sleeveNumber: number, university: string, className: string): boolean;
+ setToUniversityCourse(
+ sleeveNumber: number,
+ universityName: UniversityLocationName | `${UniversityLocationName}`,
+ courseName: UniversityClassType | `${UniversityClassType}`,
+ ): boolean;
/**
* Set a sleeve to workout at the gym.
@@ -4584,7 +4763,11 @@ export interface Sleeve {
* @param stat - Name of the stat to train.
* @returns True if the sleeve started working out, false otherwise.
*/
- setToGymWorkout(sleeveNumber: number, gymName: string, stat: string): boolean;
+ setToGymWorkout(
+ sleeveNumber: number,
+ gymName: GymLocationName | `${GymLocationName}`,
+ stat: GymType | `${GymType}`,
+ ): boolean;
/**
* Make a sleeve travel to another city. The cost for using this function is the same as for a player.
@@ -4670,7 +4853,11 @@ export interface Sleeve {
* @param contract - Name of the contract if applicable.
* @returns True if the sleeve started the given Bladeburner action, false otherwise.
*/
- setToBladeburnerAction(sleeveNumber: number, action: string, contract?: string): boolean;
+ setToBladeburnerAction(
+ sleeveNumber: number,
+ action: BladeburnerActionTypeForSleeve | `${BladeburnerActionTypeForSleeve}`,
+ contract?: BladeburnerContractName,
+ ): boolean;
}
/**
@@ -7893,6 +8080,30 @@ declare enum LocationName {
Void = "The Void",
}
+/**
+ * Locations of university
+ *
+ * @public
+ */
+declare enum UniversityLocationName {
+ AevumSummitUniversity = LocationName.AevumSummitUniversity,
+ Sector12RothmanUniversity = LocationName.Sector12RothmanUniversity,
+ VolhavenZBInstituteOfTechnology = LocationName.VolhavenZBInstituteOfTechnology,
+}
+
+/**
+ * Locations of gym
+ *
+ * @public
+ */
+declare enum GymLocationName {
+ AevumCrushFitnessGym = LocationName.AevumCrushFitnessGym,
+ AevumSnapFitnessGym = LocationName.AevumSnapFitnessGym,
+ Sector12IronGym = LocationName.Sector12IronGym,
+ Sector12PowerhouseGym = LocationName.Sector12PowerhouseGym,
+ VolhavenMilleniumFitnessGym = LocationName.VolhavenMilleniumFitnessGym,
+}
+
/** Names of all companies
* @public */
declare enum CompanyName {
diff --git a/test/jest/Netscript/Bladeburner.test.ts b/test/jest/Netscript/Bladeburner.test.ts
index 16e8a5aa2..38dcc8784 100644
--- a/test/jest/Netscript/Bladeburner.test.ts
+++ b/test/jest/Netscript/Bladeburner.test.ts
@@ -1,12 +1,12 @@
import { currentNodeMults } from "../../../src/BitNode/BitNodeMultipliers";
import { Skill } from "../../../src/Bladeburner/Skill";
-import { BladeSkillName } from "../../../src/Enums";
+import { BladeburnerSkillName } from "../../../src/Enums";
import { PositiveInteger, isPositiveInteger, isPositiveNumber } from "../../../src/types";
import { getRandomArbitrary } from "../../../src/utils/helpers/getRandomArbitrary";
import { getRandomIntInclusive } from "../../../src/utils/helpers/getRandomIntInclusive";
const skill = new Skill({
- name: BladeSkillName.hyperdrive,
+ name: BladeburnerSkillName.Hyperdrive,
desc: "",
baseCost: 1,
costInc: 1,