diff --git a/src/Netscript/RamCostGenerator.ts b/src/Netscript/RamCostGenerator.ts index bf772b6b8..3e5f97cde 100644 --- a/src/Netscript/RamCostGenerator.ts +++ b/src/Netscript/RamCostGenerator.ts @@ -303,6 +303,8 @@ const sleeve = { getSleevePurchasableAugs: RamCostConstants.ScriptSleeveBaseRamCost, purchaseSleeveAug: RamCostConstants.ScriptSleeveBaseRamCost, setToBladeburnerAction: RamCostConstants.ScriptSleeveBaseRamCost, + getSleeveAugmentationPrice: RamCostConstants.ScriptSleeveBaseRamCost, + getSleeveAugmentationRepReq: RamCostConstants.ScriptSleeveBaseRamCost, }; // Stanek API diff --git a/src/NetscriptFunctions/Sleeve.ts b/src/NetscriptFunctions/Sleeve.ts index fb6d721f4..7c318cd59 100644 --- a/src/NetscriptFunctions/Sleeve.ts +++ b/src/NetscriptFunctions/Sleeve.ts @@ -4,6 +4,7 @@ import { findSleevePurchasableAugs } from "../PersonObjects/Sleeve/SleeveHelpers import { StaticAugmentations } from "../Augmentation/StaticAugmentations"; import { CityName } from "../Locations/data/CityNames"; import { findCrime } from "../Crime/CrimeHelpers"; +import { Augmentation } from "../Augmentation/Augmentation"; import { AugmentPair, @@ -311,6 +312,22 @@ export function NetscriptSleeve(player: IPlayer): InternalAPI { return player.sleeves[sleeveNumber].tryBuyAugmentation(player, aug); }, + getSleeveAugmentationPrice: + (ctx: NetscriptContext) => + (_augName: unknown): number => { + checkSleeveAPIAccess(ctx); + const augName = ctx.helper.string("augName", _augName); + const aug: Augmentation = StaticAugmentations[augName]; + return aug.baseCost; + }, + getSleeveAugmentationRepReq: + (ctx: NetscriptContext) => + (_augName: unknown, _basePrice = false): number => { + checkSleeveAPIAccess(ctx); + const augName = ctx.helper.string("augName", _augName); + const aug: Augmentation = StaticAugmentations[augName]; + return aug.getCost(player).repCost; + }, setToBladeburnerAction: (ctx: NetscriptContext) => (_sleeveNumber: unknown, _action: unknown, _contract?: unknown): boolean => { diff --git a/src/ScriptEditor/NetscriptDefinitions.d.ts b/src/ScriptEditor/NetscriptDefinitions.d.ts index c7316daa0..9bf3744b9 100644 --- a/src/ScriptEditor/NetscriptDefinitions.d.ts +++ b/src/ScriptEditor/NetscriptDefinitions.d.ts @@ -3779,6 +3779,28 @@ export interface Sleeve { */ getSleeveAugmentations(sleeveNumber: number): string[]; + /** + * Get price of an augmentation. + * @remarks + * RAM cost: 4 GB + * + * + * @param augName - Name of Augmentation. + * @returns Price of the augmentation. + */ + getSleeveAugmentationPrice(augName: string): number; + + /** + * Get reputation requirement of an augmentation. + * @remarks + * RAM cost: 4 GB + * + * + * @param augName - Name of Augmentation. + * @returns Reputation requirement of the augmentation. + */ + getSleeveAugmentationRepReq(augName: string): number; + /** * List purchasable augs for a sleeve. * @remarks