diff --git a/doc/source/netscript/formulasapi/hacknetServers/hashGainRate.rst b/doc/source/netscript/formulasapi/hacknetServers/hashGainRate.rst
index 4258cad10..b6a530e52 100644
--- a/doc/source/netscript/formulasapi/hacknetServers/hashGainRate.rst
+++ b/doc/source/netscript/formulasapi/hacknetServers/hashGainRate.rst
@@ -1,11 +1,12 @@
hashGainRate() Netscript Function
==========================================
-.. js:function:: hashGainRate(level, ram, core[, mult])
+.. js:function:: hashGainRate(level, ramUsed, maxRam, core[, mult])
:RAM cost: 0 GB
:param number level: level of the server.
- :param number ram: ram of the server.
+ :param number ramUsed: ram used on the server.
+ :param number maxRam: max ram of the server.
:param number core: cores of the server.
:returns: Money per second that a server with those stats would gain per second.
@@ -18,7 +19,7 @@ hashGainRate() Netscript Function
.. code-block:: javascript
server = hacknet.getNodeStats(1);
- currentRate = formulas.hacknetNodes.hashGainRate(server.level, server.ram, server.cores);
- levelRate = formulas.hacknetNodes.hashGainRate(server.level+1, server.ram, server.cores);
- ramRate = formulas.hacknetNodes.hashGainRate(server.level, server.ram*2, server.cores);
- coresRate = formulas.hacknetNodes.hashGainRate(server.level, server.ram, server.cores+1);
\ No newline at end of file
+ currentRate = formulas.hacknetNodes.hashGainRate(server.level, 0, server.ram, server.cores);
+ levelRate = formulas.hacknetNodes.hashGainRate(server.level+1, 0, server.ram, server.cores);
+ ramRate = formulas.hacknetNodes.hashGainRate(server.level, 0, server.ram*2, server.cores);
+ coresRate = formulas.hacknetNodes.hashGainRate(server.level, 0, server.ram, server.cores+1);
\ No newline at end of file
diff --git a/src/NetscriptFunctions.js b/src/NetscriptFunctions.js
index 60d2e37fb..10e921009 100644
--- a/src/NetscriptFunctions.js
+++ b/src/NetscriptFunctions.js
@@ -4447,9 +4447,9 @@ function NetscriptFunctions(workerScript) {
},
},
hacknetServers: {
- hashGainRate: function(level, ram, cores, mult=1) {
+ hashGainRate: function(level, ramUsed, maxRam, cores, mult=1) {
checkFormulasAccess("hacknetServers.hashGainRate", 9);
- return HScalculateHashGainRate(level, ram, cores, mult);
+ return HScalculateHashGainRate(level, ramUsed, maxRam, cores, mult=1);
},
levelUpgradeCost: function(startingLevel, extraLevels=1, costMult=1) {
checkFormulasAccess("hacknetServers.levelUpgradeCost", 9);
diff --git a/src/Terminal.jsx b/src/Terminal.jsx
index 1d8000331..1d52f8482 100644
--- a/src/Terminal.jsx
+++ b/src/Terminal.jsx
@@ -586,7 +586,8 @@ let Terminal = {
const org = currServ.organizationName
post("Organization name: " + (!isHacknet ? org : "Player"));
const admin = currServ.hasAdminRights;
- post("Root Access: " + (!isHacknet ? "YES" : "NO"));
+ let hasAdminRights = !isHacknet && currServ.hasAdminRights || isHacknet;
+ post("Root Access: " + (hasAdminRights ? "YES" : "NO"));
const hackingSkill = currServ.requiredHackingSkill
post("Required hacking skill: " + (!isHacknet ? hackingSkill : "N/A"));
const security = currServ.hackDifficulty;
@@ -965,7 +966,8 @@ let Terminal = {
}
const server = Player.getCurrentServer();
- if(!server.scripts.some(script => script.filename.startsWith(evaledDir))) {
+ if(!server.scripts.some(script => script.filename.startsWith(evaledDir)) &&
+ !server.textFiles.some(file => file.fn.startsWith(evaledDir))) {
postError("Invalid path. Failed to change directories");
return;
}
diff --git a/src/data/codingcontracttypes.ts b/src/data/codingcontracttypes.ts
index 36a620dbc..f767e2c0f 100644
--- a/src/data/codingcontracttypes.ts
+++ b/src/data/codingcontracttypes.ts
@@ -107,10 +107,10 @@ export const codingContractTypesMetadata: ICodingContractTypeMetadata[] = [
{
desc: (n: number): string => {
return ["It is possible write four as a sum in exactly four different ways:\n\n",
- " 3 + 1\n",
- " 2 + 2\n",
- " 2 + 1 + 1\n",
- " 1 + 1 + 1 + 1\n\n",
+ " 3 + 1\n",
+ " 2 + 2\n",
+ " 2 + 1 + 1\n",
+ " 1 + 1 + 1 + 1\n\n",
`How many different ways can the number ${n} be written as a sum of at least`,
"two positive integers?"].join(" ");
},
@@ -142,17 +142,17 @@ export const codingContractTypesMetadata: ICodingContractTypeMetadata[] = [
}
d += ["\nHere is an example of what spiral order should be:",
"\nExample:",
- " [\n",
- " [1, 2, 3],\n",
- " [4, 5, 6],\n",
- " [7, 8, 9]\n",
- " ] should result in [1, 2, 3, 6, 9, 8 ,7, 4, 5]\n\n",
+ " [\n",
+ " [1, 2, 3],\n",
+ " [4, 5, 6],\n",
+ " [7, 8, 9]\n",
+ " ] should result in [1, 2, 3, 6, 9, 8 ,7, 4, 5]\n\n",
"Note that the matrix will not always be square:\n",
- " [\n",
- " [1, 2, 3, 4]\n",
- " [5, 6, 7, 8]\n",
- " [9, 10, 11, 12]\n",
- " ] should result in [1, 2, 3, 4, 8, 12, 11, 10, 9, 5, 6, 7"].join(" ");
+ " [\n",
+ " [1, 2, 3, 4]\n",
+ " [5, 6, 7, 8]\n",
+ " [9, 10, 11, 12]\n",
+ " ] should result in [1, 2, 3, 4, 8, 12, 11, 10, 9, 5, 6, 7"].join(" ");
return d;
},
diff --git a/src/engine.jsx b/src/engine.jsx
index 5e7dae147..c64141f2c 100644
--- a/src/engine.jsx
+++ b/src/engine.jsx
@@ -63,7 +63,7 @@ import {
scriptEditorInit,
updateScriptEditorContent,
} from "./Script/ScriptHelpers";
-import { initForeignServers } from "./Server/AllServers";
+import { initForeignServers, AllServers } from "./Server/AllServers";
import { Settings } from "./Settings/Settings";
import { updateSourceFileFlags } from "./SourceFile/SourceFileFlags";
import { initSpecialServerIps } from "./Server/SpecialServerIps";
@@ -1542,8 +1542,10 @@ const Engine = {
// DEBUG Delete active Scripts on home
document.getElementById("debug-delete-scripts-link").addEventListener("click", function() {
- Player.getHomeComputer().runningScripts = [];
- dialogBoxCreate("Forcefully deleted all running scripts on home computer. Please save and refresh page");
+ for(const hostname of Object.keys(AllServers)) {
+ AllServers[hostname].runningScripts = [];
+ }
+ dialogBoxCreate("Forcefully deleted all running scripts. Please save and refresh page.");
gameOptionsBoxClose();
return false;
});
diff --git a/src/index.html b/src/index.html
index 87f0044e1..c39ae82a0 100644
--- a/src/index.html
+++ b/src/index.html
@@ -600,14 +600,14 @@ if (htmlWebpackPlugin.options.googleAnalytics.trackingId) { %>
Copy Save data to Clipboard