mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-23 01:32:55 +02:00
All 0.28.0 Changes - Bitnodes 4 and 11 and webpack migration
This commit is contained in:
@@ -1,3 +1,17 @@
|
||||
import {BitNodeMultipliers} from "./BitNode.js";
|
||||
import {CONSTANTS} from "./Constants.js";
|
||||
import {Player} from "./Player.js";
|
||||
import {Environment} from "./NetscriptEnvironment.js";
|
||||
import {WorkerScript, addWorkerScript} from "./NetscriptWorker.js";
|
||||
import {Server} from "./Server.js";
|
||||
import {Settings} from "./Settings.js";
|
||||
import {Script, findRunningScript,
|
||||
RunningScript} from "./Script.js";
|
||||
|
||||
import {printArray} from "../utils/HelperFunctions.js";
|
||||
import {isValidIPAddress} from "../utils/IPAddress.js";
|
||||
import {isString} from "../utils/StringHelperFunctions.js";
|
||||
|
||||
/* Evaluator
|
||||
* Evaluates the Abstract Syntax Tree for Netscript
|
||||
* generated by the Parser class
|
||||
@@ -20,7 +34,7 @@ function evaluate(exp, workerScript) {
|
||||
evaluateProgPromise.then(function(w) {
|
||||
resolve(workerScript);
|
||||
}, function(e) {
|
||||
if (typeof e === 'string' || e instanceof String) {
|
||||
if (isString(e)) {
|
||||
workerScript.errorMessage = e;
|
||||
reject(workerScript);
|
||||
} else if (e instanceof WorkerScript) {
|
||||
@@ -35,7 +49,7 @@ function evaluate(exp, workerScript) {
|
||||
break;
|
||||
case "Identifier":
|
||||
if (!(exp.name in env.vars)){
|
||||
reject(makeRuntimeRejectMsg(workerScript, "variable " + exp.name + " not definied"));
|
||||
reject(makeRuntimeRejectMsg(workerScript, "variable " + exp.name + " not defined"));
|
||||
}
|
||||
resolve(env.get(exp.name))
|
||||
break;
|
||||
@@ -172,7 +186,7 @@ function evaluate(exp, workerScript) {
|
||||
}
|
||||
resolve(env.get(exp.argument.name))
|
||||
} else {
|
||||
reject(makeRuntimeRejectMsg(workerScript, "variable " + exp.argument.name + " not definied"));
|
||||
reject(makeRuntimeRejectMsg(workerScript, "variable " + exp.argument.name + " not defined"));
|
||||
}
|
||||
} else {
|
||||
reject(makeRuntimeRejectMsg(workerScript, "argument must be an identifier"));
|
||||
@@ -336,7 +350,7 @@ function evalAssignment(exp, workerScript) {
|
||||
}
|
||||
|
||||
if (exp.operator !== "=" && !(exp.left.name in env.vars)){
|
||||
return reject(makeRuntimeRejectMsg(workerScript, "variable " + exp.left.name + " not definied"));
|
||||
return reject(makeRuntimeRejectMsg(workerScript, "variable " + exp.left.name + " not defined"));
|
||||
}
|
||||
|
||||
var expRightPromise = evaluate(exp.right, workerScript);
|
||||
@@ -347,7 +361,7 @@ function evalAssignment(exp, workerScript) {
|
||||
//Index designated by exp.left.property
|
||||
var name = exp.left.object.name;
|
||||
if (!(name in env.vars)){
|
||||
reject(makeRuntimeRejectMsg(workerScript, "variable " + name + " not definied"));
|
||||
reject(makeRuntimeRejectMsg(workerScript, "variable " + name + " not defined"));
|
||||
}
|
||||
var arr = env.get(name);
|
||||
if (arr.constructor === Array || arr instanceof Array) {
|
||||
@@ -631,7 +645,8 @@ function runScriptFromScript(server, scriptname, args, workerScript, threads=1)
|
||||
}
|
||||
|
||||
function isScriptErrorMessage(msg) {
|
||||
splitMsg = msg.split("|");
|
||||
if (!isString(msg)) {return false;}
|
||||
let splitMsg = msg.split("|");
|
||||
if (splitMsg.length != 4){
|
||||
return false;
|
||||
}
|
||||
@@ -666,7 +681,7 @@ function scriptCalculateExpGain(server) {
|
||||
if (server.baseDifficulty == null) {
|
||||
server.baseDifficulty = server.hackDifficulty;
|
||||
}
|
||||
return (server.baseDifficulty * Player.hacking_exp_mult * 0.3 + 3);
|
||||
return (server.baseDifficulty * Player.hacking_exp_mult * 0.3 + 3) * BitNodeMultipliers.HackExpGain;
|
||||
}
|
||||
|
||||
//The same as Player's calculatePercentMoneyHacked() function but takes in the server as an argument
|
||||
@@ -676,7 +691,7 @@ function scriptCalculatePercentMoneyHacked(server) {
|
||||
var percentMoneyHacked = difficultyMult * skillMult * Player.hacking_money_mult / 240;
|
||||
if (percentMoneyHacked < 0) {return 0;}
|
||||
if (percentMoneyHacked > 1) {return 1;}
|
||||
return percentMoneyHacked;
|
||||
return percentMoneyHacked * BitNodeMultipliers.ScriptHackMoney;
|
||||
}
|
||||
|
||||
//Amount of time to execute grow() in milliseconds
|
||||
@@ -694,3 +709,9 @@ function scriptCalculateWeakenTime(server) {
|
||||
var weakenTime = 20 * skillFactor / Player.hacking_speed_mult; //This is in seconds
|
||||
return weakenTime * 1000;
|
||||
}
|
||||
|
||||
export {makeRuntimeRejectMsg, netscriptDelay, runScriptFromScript,
|
||||
scriptCalculateHackingChance, scriptCalculateHackingTime,
|
||||
scriptCalculateExpGain, scriptCalculatePercentMoneyHacked,
|
||||
scriptCalculateGrowTime, scriptCalculateWeakenTime, evaluate,
|
||||
isScriptErrorMessage};
|
||||
|
||||
Reference in New Issue
Block a user