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,