mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-23 01:32:55 +02:00
v0.51.6 (#905)
* Make command `cd` without arguments an alias for `cd /` (#853) In most shells `cd` without arguments takes you to the home directory of the current user. I keep trying to do this due to muscle memory from working in terminals, so I figured I'd make it do something useful. There is no home directory in the game, but going to / is the closest thing we have, since that is the starting point for the user in the game. * Add new `backdoor` terminal command (#852) * Add the backdoor command to the terminal This command will perform a manual hack without rewarding money. It will be used for the story, mainly for faction hacking tests * Add tab completion for backdoor command * Add help text for backdoor command * Change condition syntax to be more consistent with others * Extract reused code block so it is always called after actions * Update documentation for new backdoor command Modified references to manual hack as it isn't for factions anymore * Remove extra parenthesis * Rename manuallyHacked to backdoorInstalled * Fix typo * Change faction test messages to use backdoor instad of hack * Rename more instances of manuallyHacked * fixed typo in helptext of darkweb buy (#858) * Fix typos and unify descriptions of augmentations (#859) Made an attempt to... - give all "+rep% company/faction" the same text - make all augmentations with a single effect use a single line to describe the effect - make all effects end with a period * Made Cashroot starter kit display its tooltip with the money formatted properly and in gold * fix typo in docs (#860) * Initial code for Casino Card Deck implementation * Casino Blackjack Implementation * Update some tools (eslint, typescript) * Blackjack code cleanup * Update README_contribution * Update ScriptHelpers.js (#861) expand error message * More augmentation typo fixes (#862) * Add Netscript function getCurrentScript (#856) Add netscript function that returns the current script. * Added milestones menu to guide new players. (#865) Milestone menu * fix typos in milestones (#866) Co-authored-by: sschmidTU <s.schmid@phonicscore.com> * Corrupt location title when backdoor is installed (#864) * Add corruptableText component * Corrupt location title if backdoor is installed * Formatting * Add helper to check value of backdoorInstalled Helper could be oneline but it would make it less readable * Fix some formatting * Add settings option to disable text effects * Import useState * getRunningScript (#867) * Replaced getCurrentScript with getRunningScript * Bunch of smaller fixes (#904) Fix #884 Fix #879 Fix #878 Fix #876 Fix #874 Fix #873 Fix #887 Fix #891 Fix #895 * rework the early servers to be more noob friendly (#903) * v0.51.6 Co-authored-by: Andreas Eriksson <2691182+AndreasTPC@users.noreply.github.com> Co-authored-by: Jack <jackdewinter1@gmail.com> Co-authored-by: Teun Pronk <5228255+Crownie88@users.noreply.github.com> Co-authored-by: Pimvgd <Pimvgd@gmail.com> Co-authored-by: Daniel Xie <daniel.xie@flockfreight.com> Co-authored-by: Simon <33069673+sschmidTU@users.noreply.github.com> Co-authored-by: sschmidTU <s.schmid@phonicscore.com>
This commit is contained in:
@@ -266,6 +266,7 @@ const defaultInterpreter = new Interpreter('', function(){});
|
||||
// the acorn interpreter has a bug where it doesn't convert arrays correctly.
|
||||
// so we have to more or less copy it here.
|
||||
function toNative(pseudoObj) {
|
||||
if(pseudoObj == null) return null;
|
||||
if(!pseudoObj.hasOwnProperty('properties') ||
|
||||
!pseudoObj.hasOwnProperty('getter') ||
|
||||
!pseudoObj.hasOwnProperty('setter') ||
|
||||
@@ -366,13 +367,17 @@ function NetscriptFunctions(workerScript) {
|
||||
return workerScript.scriptRef;
|
||||
}
|
||||
|
||||
const getRunningScriptByPid = function(pid, ip, callingFnName) {
|
||||
const getRunningScriptByPid = function(pid, callingFnName) {
|
||||
if (typeof callingFnName !== "string" || callingFnName === "") {
|
||||
callingFnName = "getRunningScriptgetRunningScriptByPid";
|
||||
}
|
||||
const server = safeGetServer(ip, callingFnName);
|
||||
|
||||
return findRunningScriptByPid(pid, server);
|
||||
|
||||
for(const name of Object.keys(AllServers)) {
|
||||
const server = AllServers[name];
|
||||
const runningScript = findRunningScriptByPid(pid, server);
|
||||
if (runningScript) return runningScript;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -718,7 +723,7 @@ function NetscriptFunctions(workerScript) {
|
||||
influenceStockThroughServerHack(server, moneyGained);
|
||||
}
|
||||
if(manual) {
|
||||
server.manuallyHacked = true;
|
||||
server.backdoorInstalled = true;
|
||||
}
|
||||
return Promise.resolve(moneyGained);
|
||||
} else {
|
||||
@@ -1052,8 +1057,10 @@ function NetscriptFunctions(workerScript) {
|
||||
},
|
||||
tail: function(fn, ip=workerScript.serverIp, ...scriptArgs) {
|
||||
let runningScriptObj;
|
||||
if(typeof fn === 'number') {
|
||||
runningScriptObj = getRunningScriptByPid(fn, ip, 'tail');
|
||||
if(arguments.length === 0) {
|
||||
runningScriptObj = workerScript.scriptRef;
|
||||
} else if(typeof fn === 'number') {
|
||||
runningScriptObj = getRunningScriptByPid(fn, 'tail');
|
||||
} else {
|
||||
runningScriptObj = getRunningScript(fn, ip, "tail", scriptArgs);
|
||||
}
|
||||
@@ -1754,7 +1761,7 @@ function NetscriptFunctions(workerScript) {
|
||||
throw makeRuntimeErrorMsg("isRunning", "Usage: isRunning(scriptname, server, [arg1], [arg2]...)");
|
||||
}
|
||||
if(typeof fn === 'number') {
|
||||
return getRunningScriptByPid(fn, ip, 'isRunning') != null;
|
||||
return getRunningScriptByPid(fn, 'isRunning') != null;
|
||||
} else {
|
||||
return getRunningScript(fn, ip, "isRunning", scriptArgs) != null;
|
||||
}
|
||||
@@ -2429,6 +2436,38 @@ function NetscriptFunctions(workerScript) {
|
||||
}
|
||||
return 0;
|
||||
},
|
||||
getRunningScript: function(fn, ip) {
|
||||
updateDynamicRam("getRunningScript", getRamCost("getRunningScript"));
|
||||
|
||||
let runningScript;
|
||||
if(arguments.length === 0) {
|
||||
runningScript = workerScript.scriptRef;
|
||||
} else if(typeof fn === 'number') {
|
||||
runningScript = getRunningScriptByPid(fn, 'getRunningScript');
|
||||
} else {
|
||||
const scriptArgs = [];
|
||||
for (var i = 2; i < arguments.length; ++i) {
|
||||
scriptArgs.push(arguments[i]);
|
||||
}
|
||||
runningScript = getRunningScript(fn, ip, 'getRunningScript', scriptArgs);
|
||||
}
|
||||
if (runningScript === null) return null;
|
||||
return {
|
||||
args: runningScript.args.slice(),
|
||||
filename: runningScript.filename,
|
||||
logs: runningScript.logs.slice(),
|
||||
offlineExpGained: runningScript.offlineExpGained,
|
||||
offlineMoneyMade: runningScript.offlineMoneyMade,
|
||||
offlineRunningTime: runningScript.offlineRunningTime,
|
||||
onlineExpGained: runningScript.onlineExpGained,
|
||||
onlineMoneyMade: runningScript.onlineMoneyMade,
|
||||
onlineRunningTime: runningScript.onlineRunningTime,
|
||||
pid: runningScript.pid,
|
||||
ramUsage: runningScript.ramUsage,
|
||||
server: runningScript.server,
|
||||
threads: runningScript.threads,
|
||||
};
|
||||
},
|
||||
getHackTime: function(ip, hack, int) {
|
||||
updateDynamicRam("getHackTime", getRamCost("getHackTime"));
|
||||
const server = safeGetServer(ip, "getHackTime");
|
||||
@@ -2524,7 +2563,7 @@ function NetscriptFunctions(workerScript) {
|
||||
return Player.playtimeSinceLastAug;
|
||||
},
|
||||
prompt : function(txt) {
|
||||
if (!isString(txt)) {txt = String(txt);}
|
||||
if (!isString(txt)) {txt = JSON.stringify(txt);}
|
||||
|
||||
// The id for this popup will consist of the first 20 characters of the prompt string..
|
||||
// Thats hopefully good enough to be unique
|
||||
|
||||
Reference in New Issue
Block a user