diff --git a/doc/source/netscriptsingularityfunctions.rst b/doc/source/netscriptsingularityfunctions.rst index 9d687b230..f69426158 100644 --- a/doc/source/netscriptsingularityfunctions.rst +++ b/doc/source/netscriptsingularityfunctions.rst @@ -481,6 +481,17 @@ getOwnedAugmentations This function returns an array containing the names (as strings) of all Augmentations you have. +getOwnedSourceFiles +------------------- + +..js:function:: getOwnedSourceFiles() + + If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function. + + Returns an array of source files + [{n: 1, lvl: 3}, {n: 4, lvl: 3}] + + getAugmentationsFromFaction --------------------------- diff --git a/netscript.js b/netscript.js index 6b2a336c0..b0c991af0 100644 --- a/netscript.js +++ b/netscript.js @@ -82,9 +82,9 @@ let NetscriptFunctions = "getCompanyFavor|stopAction|getFactionFavor|" + "checkFactionInvitations|joinFaction|workForFaction|getFactionRep|" + "createProgram|commitCrime|getCrimeChance|getOwnedAugmentations|" + - "getAugmentationsFromFaction|" + + "getOwnedSourceFiles|getAugmentationsFromFaction|" + "getAugmentationCost|purchaseAugmentation|" + - "installAugmentations|" + + "installAugmentations|" + "getStockPrice|getStockPosition|buyStock|sellStock|shortStock|sellShort|" + "placeOrder|cancelOrder|" + //Hacknet Node API diff --git a/src/NetscriptFunctions.js b/src/NetscriptFunctions.js index 4e23fdba2..873bd9812 100644 --- a/src/NetscriptFunctions.js +++ b/src/NetscriptFunctions.js @@ -3094,6 +3094,25 @@ function NetscriptFunctions(workerScript) { } return res; }, + getOwnedSourceFiles : function() { + let ramCost = CONSTANTS.ScriptSingularityFn3RamCost; + if (Player.bitNodeN !== 4) {ramCost *= 8;} + if (workerScript.checkingRam) { + return updateStaticRam("getOwnedSourceFiles", ramCost); + } + updateDynamicRam("getOwnedSourceFiles", ramCost); + if (Player.bitNodeN != 4) { + if (!(hasSingularitySF && singularitySFLvl >= 3)) { + throw makeRuntimeRejectMsg(workerScript, "Cannot run getOwnedSourceFiles(). It is a Singularity Function and requires SourceFile-4 (level 3) to run."); + return []; + } + } + let res = []; + for (let i = 0; i < Player.sourceFiles.length; ++i) { + res.push({n: Player.sourceFiles[i].n, lvl: Player.sourceFiles[i].lvl}); + } + return res; + }, getAugmentationsFromFaction : function(facname) { var ramCost = CONSTANTS.ScriptSingularityFn3RamCost; if (Player.bitNodeN !== 4) {ramCost *= 8;}