diff --git a/markdown/bitburner.singularity.getaugmentationbaseprice.md b/markdown/bitburner.singularity.getaugmentationbaseprice.md index 4888bd3bb..6f2a94cfa 100644 --- a/markdown/bitburner.singularity.getaugmentationbaseprice.md +++ b/markdown/bitburner.singularity.getaugmentationbaseprice.md @@ -52,9 +52,11 @@ Name of Augmentation. number -Base price of the augmentation, before price multiplier. +Base price of the augmentation, before the player's price multiplier. ## Remarks RAM cost: 2.5 GB \* 16/4/1 +This excludes the player's price multiplier, but does include the relevant BitNode multiplier (for all augs that aren't part of Shadows of Anarchy, which doesn't use BitNode multipliers). + diff --git a/src/Augmentation/AugmentationHelpers.ts b/src/Augmentation/AugmentationHelpers.ts index eb867088e..affede475 100644 --- a/src/Augmentation/AugmentationHelpers.ts +++ b/src/Augmentation/AugmentationHelpers.ts @@ -14,7 +14,7 @@ import { mergeMultipliers } from "../PersonObjects/Multipliers"; import { currentNodeMults } from "../BitNode/BitNodeMultipliers"; import { prestigeWorkerScripts } from "../NetscriptWorker"; -const soaAugmentationNames = [ +export const soaAugmentationNames = [ AugmentationName.BeautyOfAphrodite, AugmentationName.ChaosOfDionysus, AugmentationName.FloodOfPoseidon, diff --git a/src/NetscriptFunctions/Singularity.ts b/src/NetscriptFunctions/Singularity.ts index 4fe090f5b..3967cb8f2 100644 --- a/src/NetscriptFunctions/Singularity.ts +++ b/src/NetscriptFunctions/Singularity.ts @@ -5,7 +5,7 @@ import { CityName, CompletedProgramName, FactionWorkType, LocationName } from "@ import { purchaseAugmentation, joinFaction, getFactionAugmentationsFiltered } from "../Faction/FactionHelpers"; import { startWorkerScript } from "../NetscriptWorker"; import { Augmentations } from "../Augmentation/Augmentations"; -import { getAugCost, installAugmentations } from "../Augmentation/AugmentationHelpers"; +import { getAugCost, installAugmentations, soaAugmentationNames } from "../Augmentation/AugmentationHelpers"; import { CONSTANTS } from "../Constants"; import { RunningScript } from "../Script/RunningScript"; import { calculateAchievements } from "../Achievements/Achievements"; @@ -141,6 +141,11 @@ export function NetscriptSingularity(): InternalAPI { helpers.checkSingularityAccess(ctx); const augName = getEnumHelper("AugmentationName").nsGetMember(ctx, _augName); const aug = Augmentations[augName]; + // SoA augmentations don't use the bitnode AugmentationMoneyCost multiplier; + // their cost only scales with the number of SoA augs already owned. + if (soaAugmentationNames.includes(augName)) { + return aug.baseCost; + } return aug.baseCost * currentNodeMults.AugmentationMoneyCost; }, getAugmentationPrice: (ctx) => (_augName) => { diff --git a/src/ScriptEditor/NetscriptDefinitions.d.ts b/src/ScriptEditor/NetscriptDefinitions.d.ts index 0b9c064a7..7311a5ac1 100644 --- a/src/ScriptEditor/NetscriptDefinitions.d.ts +++ b/src/ScriptEditor/NetscriptDefinitions.d.ts @@ -2655,9 +2655,10 @@ export interface Singularity { * @remarks * RAM cost: 2.5 GB * 16/4/1 * + * This excludes the player's price multiplier, but does include the relevant BitNode multiplier (for all augs that aren't part of Shadows of Anarchy, which doesn't use BitNode multipliers). * * @param augName - Name of Augmentation. - * @returns Base price of the augmentation, before price multiplier. + * @returns Base price of the augmentation, before the player's price multiplier. */ getAugmentationBasePrice(augName: string): number;