mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-22 23:53:48 +01:00
Merge pull request #156 from danielyxie/dev
Replaced strict equality comparisons for null with loose eq comparisons
This commit is contained in:
commit
5cb8c36d22
76
dist/bundle.js
vendored
76
dist/bundle.js
vendored
@ -21805,7 +21805,7 @@ function NetscriptFunctions(workerScript) {
|
|||||||
workerScript.scriptRef.log(args.toString());
|
workerScript.scriptRef.log(args.toString());
|
||||||
},
|
},
|
||||||
tprint : function(args) {
|
tprint : function(args) {
|
||||||
if (args === undefined || args === null) {
|
if (args === undefined || args == null) {
|
||||||
throw Object(__WEBPACK_IMPORTED_MODULE_22__NetscriptEvaluator_js__["c" /* makeRuntimeRejectMsg */])(workerScript, "tprint() call has incorrect number of arguments. Takes 1 argument");
|
throw Object(__WEBPACK_IMPORTED_MODULE_22__NetscriptEvaluator_js__["c" /* makeRuntimeRejectMsg */])(workerScript, "tprint() call has incorrect number of arguments. Takes 1 argument");
|
||||||
}
|
}
|
||||||
var x = args.toString();
|
var x = args.toString();
|
||||||
@ -22140,7 +22140,7 @@ function NetscriptFunctions(workerScript) {
|
|||||||
throw Object(__WEBPACK_IMPORTED_MODULE_22__NetscriptEvaluator_js__["c" /* makeRuntimeRejectMsg */])(workerScript, "ls() failed because of invalid arguments. Usage: ls(ip/hostname, [grep filter])");
|
throw Object(__WEBPACK_IMPORTED_MODULE_22__NetscriptEvaluator_js__["c" /* makeRuntimeRejectMsg */])(workerScript, "ls() failed because of invalid arguments. Usage: ls(ip/hostname, [grep filter])");
|
||||||
}
|
}
|
||||||
var server = Object(__WEBPACK_IMPORTED_MODULE_15__Server_js__["e" /* getServer */])(ip);
|
var server = Object(__WEBPACK_IMPORTED_MODULE_15__Server_js__["e" /* getServer */])(ip);
|
||||||
if (server === null) {
|
if (server == null) {
|
||||||
workerScript.scriptRef.log("ls() failed. Invalid IP or hostname passed in: " + ip);
|
workerScript.scriptRef.log("ls() failed. Invalid IP or hostname passed in: " + ip);
|
||||||
throw Object(__WEBPACK_IMPORTED_MODULE_22__NetscriptEvaluator_js__["c" /* makeRuntimeRejectMsg */])(workerScript, "ls() failed. Invalid IP or hostname passed in: " + ip);
|
throw Object(__WEBPACK_IMPORTED_MODULE_22__NetscriptEvaluator_js__["c" /* makeRuntimeRejectMsg */])(workerScript, "ls() failed. Invalid IP or hostname passed in: " + ip);
|
||||||
}
|
}
|
||||||
@ -22714,11 +22714,11 @@ function NetscriptFunctions(workerScript) {
|
|||||||
} else if (Object(__WEBPACK_IMPORTED_MODULE_28__utils_StringHelperFunctions_js__["f" /* isString */])(port)) { //Write to text file
|
} else if (Object(__WEBPACK_IMPORTED_MODULE_28__utils_StringHelperFunctions_js__["f" /* isString */])(port)) { //Write to text file
|
||||||
var fn = port;
|
var fn = port;
|
||||||
var server = Object(__WEBPACK_IMPORTED_MODULE_15__Server_js__["e" /* getServer */])(workerScript.serverIp);
|
var server = Object(__WEBPACK_IMPORTED_MODULE_15__Server_js__["e" /* getServer */])(workerScript.serverIp);
|
||||||
if (server === null) {
|
if (server == null) {
|
||||||
throw Object(__WEBPACK_IMPORTED_MODULE_22__NetscriptEvaluator_js__["c" /* makeRuntimeRejectMsg */])(workerScript, "Error getting Server for this script in write(). This is a bug please contact game dev");
|
throw Object(__WEBPACK_IMPORTED_MODULE_22__NetscriptEvaluator_js__["c" /* makeRuntimeRejectMsg */])(workerScript, "Error getting Server for this script in write(). This is a bug please contact game dev");
|
||||||
}
|
}
|
||||||
var txtFile = Object(__WEBPACK_IMPORTED_MODULE_20__TextFile_js__["b" /* getTextFile */])(fn, server);
|
var txtFile = Object(__WEBPACK_IMPORTED_MODULE_20__TextFile_js__["b" /* getTextFile */])(fn, server);
|
||||||
if (txtFile === null) {
|
if (txtFile == null) {
|
||||||
txtFile = Object(__WEBPACK_IMPORTED_MODULE_20__TextFile_js__["a" /* createTextFile */])(fn, data, server);
|
txtFile = Object(__WEBPACK_IMPORTED_MODULE_20__TextFile_js__["a" /* createTextFile */])(fn, data, server);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -22751,7 +22751,7 @@ function NetscriptFunctions(workerScript) {
|
|||||||
} else if (Object(__WEBPACK_IMPORTED_MODULE_28__utils_StringHelperFunctions_js__["f" /* isString */])(port)) { //Read from text file
|
} else if (Object(__WEBPACK_IMPORTED_MODULE_28__utils_StringHelperFunctions_js__["f" /* isString */])(port)) { //Read from text file
|
||||||
var fn = port;
|
var fn = port;
|
||||||
var server = Object(__WEBPACK_IMPORTED_MODULE_15__Server_js__["e" /* getServer */])(workerScript.serverIp);
|
var server = Object(__WEBPACK_IMPORTED_MODULE_15__Server_js__["e" /* getServer */])(workerScript.serverIp);
|
||||||
if (server === null) {
|
if (server == null) {
|
||||||
throw Object(__WEBPACK_IMPORTED_MODULE_22__NetscriptEvaluator_js__["c" /* makeRuntimeRejectMsg */])(workerScript, "Error getting Server for this script in read(). This is a bug please contact game dev");
|
throw Object(__WEBPACK_IMPORTED_MODULE_22__NetscriptEvaluator_js__["c" /* makeRuntimeRejectMsg */])(workerScript, "Error getting Server for this script in read(). This is a bug please contact game dev");
|
||||||
}
|
}
|
||||||
var txtFile = Object(__WEBPACK_IMPORTED_MODULE_20__TextFile_js__["b" /* getTextFile */])(fn, server);
|
var txtFile = Object(__WEBPACK_IMPORTED_MODULE_20__TextFile_js__["b" /* getTextFile */])(fn, server);
|
||||||
@ -22839,7 +22839,7 @@ function NetscriptFunctions(workerScript) {
|
|||||||
} else {
|
} else {
|
||||||
//Get income for a particular script
|
//Get income for a particular script
|
||||||
var server = Object(__WEBPACK_IMPORTED_MODULE_15__Server_js__["e" /* getServer */])(ip);
|
var server = Object(__WEBPACK_IMPORTED_MODULE_15__Server_js__["e" /* getServer */])(ip);
|
||||||
if (server === null) {
|
if (server == null) {
|
||||||
workerScript.scriptRef.log("getScriptIncome() failed. Invalid IP or hostnamed passed in: " + ip);
|
workerScript.scriptRef.log("getScriptIncome() failed. Invalid IP or hostnamed passed in: " + ip);
|
||||||
throw Object(__WEBPACK_IMPORTED_MODULE_22__NetscriptEvaluator_js__["c" /* makeRuntimeRejectMsg */])(workerScript, "getScriptIncome() failed. Invalid IP or hostnamed passed in: " + ip);
|
throw Object(__WEBPACK_IMPORTED_MODULE_22__NetscriptEvaluator_js__["c" /* makeRuntimeRejectMsg */])(workerScript, "getScriptIncome() failed. Invalid IP or hostnamed passed in: " + ip);
|
||||||
}
|
}
|
||||||
@ -22865,7 +22865,7 @@ function NetscriptFunctions(workerScript) {
|
|||||||
} else {
|
} else {
|
||||||
//Get income for a particular script
|
//Get income for a particular script
|
||||||
var server = Object(__WEBPACK_IMPORTED_MODULE_15__Server_js__["e" /* getServer */])(ip);
|
var server = Object(__WEBPACK_IMPORTED_MODULE_15__Server_js__["e" /* getServer */])(ip);
|
||||||
if (server === null) {
|
if (server == null) {
|
||||||
workerScript.scriptRef.log("getScriptExpGain() failed. Invalid IP or hostnamed passed in: " + ip);
|
workerScript.scriptRef.log("getScriptExpGain() failed. Invalid IP or hostnamed passed in: " + ip);
|
||||||
throw Object(__WEBPACK_IMPORTED_MODULE_22__NetscriptEvaluator_js__["c" /* makeRuntimeRejectMsg */])(workerScript, "getScriptExpGain() failed. Invalid IP or hostnamed passed in: " + ip);
|
throw Object(__WEBPACK_IMPORTED_MODULE_22__NetscriptEvaluator_js__["c" /* makeRuntimeRejectMsg */])(workerScript, "getScriptExpGain() failed. Invalid IP or hostnamed passed in: " + ip);
|
||||||
}
|
}
|
||||||
@ -23393,7 +23393,7 @@ function NetscriptFunctions(workerScript) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var company = __WEBPACK_IMPORTED_MODULE_4__Company_js__["a" /* Companies */][companyName];
|
var company = __WEBPACK_IMPORTED_MODULE_4__Company_js__["a" /* Companies */][companyName];
|
||||||
if (company === null || !(company instanceof __WEBPACK_IMPORTED_MODULE_4__Company_js__["b" /* Company */])) {
|
if (company == null || !(company instanceof __WEBPACK_IMPORTED_MODULE_4__Company_js__["b" /* Company */])) {
|
||||||
workerScript.scriptRef.log("ERROR: Invalid companyName passed into getCompanyRep(): " + companyName);
|
workerScript.scriptRef.log("ERROR: Invalid companyName passed into getCompanyRep(): " + companyName);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -23801,7 +23801,7 @@ function NetscriptFunctions(workerScript) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var fac = __WEBPACK_IMPORTED_MODULE_9__Faction_js__["b" /* Factions */][faction];
|
var fac = __WEBPACK_IMPORTED_MODULE_9__Faction_js__["b" /* Factions */][faction];
|
||||||
if (fac === null || !(fac instanceof __WEBPACK_IMPORTED_MODULE_9__Faction_js__["a" /* Faction */])) {
|
if (fac == null || !(fac instanceof __WEBPACK_IMPORTED_MODULE_9__Faction_js__["a" /* Faction */])) {
|
||||||
workerScript.scriptRef.log("ERROR: purchaseAugmentation() failed because of invalid faction name: " + faction);
|
workerScript.scriptRef.log("ERROR: purchaseAugmentation() failed because of invalid faction name: " + faction);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -23812,7 +23812,7 @@ function NetscriptFunctions(workerScript) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var aug = __WEBPACK_IMPORTED_MODULE_1__Augmentations_js__["c" /* Augmentations */][name];
|
var aug = __WEBPACK_IMPORTED_MODULE_1__Augmentations_js__["c" /* Augmentations */][name];
|
||||||
if (aug === null || !(aug instanceof __WEBPACK_IMPORTED_MODULE_1__Augmentations_js__["a" /* Augmentation */])) {
|
if (aug == null || !(aug instanceof __WEBPACK_IMPORTED_MODULE_1__Augmentations_js__["a" /* Augmentation */])) {
|
||||||
workerScript.scriptRef.log("ERROR: purchaseAugmentation() failed because of invalid augmentation name: " + name);
|
workerScript.scriptRef.log("ERROR: purchaseAugmentation() failed because of invalid augmentation name: " + name);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -29389,7 +29389,7 @@ function createActiveScriptsText(workerscript, item) {
|
|||||||
function updateActiveScriptsText(workerscript, item, statsEl=null) {
|
function updateActiveScriptsText(workerscript, item, statsEl=null) {
|
||||||
var itemId = item.id
|
var itemId = item.id
|
||||||
var itemTextStats = document.getElementById(itemId + "-stats");
|
var itemTextStats = document.getElementById(itemId + "-stats");
|
||||||
if (itemTextStats === null || itemTextStats === undefined) {
|
if (itemTextStats == null || itemTextStats === undefined) {
|
||||||
itemTextStats = statsEl;
|
itemTextStats = statsEl;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35020,7 +35020,7 @@ function placeOrder(stock, shares, price, type, position, workerScript=null) {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (StockMarket["Orders"] === null) {
|
if (StockMarket["Orders"] == null) {
|
||||||
var orders = {};
|
var orders = {};
|
||||||
for (var name in StockMarket) {
|
for (var name in StockMarket) {
|
||||||
if (StockMarket.hasOwnProperty(name)) {
|
if (StockMarket.hasOwnProperty(name)) {
|
||||||
@ -35041,7 +35041,7 @@ function placeOrder(stock, shares, price, type, position, workerScript=null) {
|
|||||||
//Returns true if successfully cancels an order, false otherwise
|
//Returns true if successfully cancels an order, false otherwise
|
||||||
function cancelOrder(params, workerScript=null) {
|
function cancelOrder(params, workerScript=null) {
|
||||||
var tixApi = (workerScript instanceof __WEBPACK_IMPORTED_MODULE_4__NetscriptWorker_js__["b" /* WorkerScript */]);
|
var tixApi = (workerScript instanceof __WEBPACK_IMPORTED_MODULE_4__NetscriptWorker_js__["b" /* WorkerScript */]);
|
||||||
if (StockMarket["Orders"] === null) {return false;}
|
if (StockMarket["Orders"] == null) {return false;}
|
||||||
if (params.order && params.order instanceof Order) {
|
if (params.order && params.order instanceof Order) {
|
||||||
var order = params.order;
|
var order = params.order;
|
||||||
//An 'Order' object is passed in
|
//An 'Order' object is passed in
|
||||||
@ -35424,7 +35424,7 @@ function sellStock(stock, shares) {
|
|||||||
//Returns true if successful and false otherwise
|
//Returns true if successful and false otherwise
|
||||||
function shortStock(stock, shares, workerScript=null) {
|
function shortStock(stock, shares, workerScript=null) {
|
||||||
var tixApi = (workerScript instanceof __WEBPACK_IMPORTED_MODULE_4__NetscriptWorker_js__["b" /* WorkerScript */]);
|
var tixApi = (workerScript instanceof __WEBPACK_IMPORTED_MODULE_4__NetscriptWorker_js__["b" /* WorkerScript */]);
|
||||||
if (stock === null || isNaN(shares) || shares < 0) {
|
if (stock == null || isNaN(shares) || shares < 0) {
|
||||||
if (tixApi) {
|
if (tixApi) {
|
||||||
workerScript.scriptRef.log("ERROR: shortStock() failed because of invalid arguments.");
|
workerScript.scriptRef.log("ERROR: shortStock() failed because of invalid arguments.");
|
||||||
} else {
|
} else {
|
||||||
@ -35473,7 +35473,7 @@ function shortStock(stock, shares, workerScript=null) {
|
|||||||
//Returns true if successful and false otherwise
|
//Returns true if successful and false otherwise
|
||||||
function sellShort(stock, shares, workerScript=null) {
|
function sellShort(stock, shares, workerScript=null) {
|
||||||
var tixApi = (workerScript instanceof __WEBPACK_IMPORTED_MODULE_4__NetscriptWorker_js__["b" /* WorkerScript */]);
|
var tixApi = (workerScript instanceof __WEBPACK_IMPORTED_MODULE_4__NetscriptWorker_js__["b" /* WorkerScript */]);
|
||||||
if (stock === null || isNaN(shares) || shares < 0) {
|
if (stock == null || isNaN(shares) || shares < 0) {
|
||||||
if (tixApi) {
|
if (tixApi) {
|
||||||
workerScript.scriptRef.log("ERROR: sellShort() failed because of invalid arguments.");
|
workerScript.scriptRef.log("ERROR: sellShort() failed because of invalid arguments.");
|
||||||
} else {
|
} else {
|
||||||
@ -35575,7 +35575,7 @@ function updateStockPrices() {
|
|||||||
//Checks and triggers any orders for the specified stock
|
//Checks and triggers any orders for the specified stock
|
||||||
function processOrders(stock, orderType, posType) {
|
function processOrders(stock, orderType, posType) {
|
||||||
var orderBook = StockMarket["Orders"];
|
var orderBook = StockMarket["Orders"];
|
||||||
if (orderBook === null) {
|
if (orderBook == null) {
|
||||||
var orders = {};
|
var orders = {};
|
||||||
for (var name in StockMarket) {
|
for (var name in StockMarket) {
|
||||||
if (StockMarket.hasOwnProperty(name)) {
|
if (StockMarket.hasOwnProperty(name)) {
|
||||||
@ -35588,7 +35588,7 @@ function processOrders(stock, orderType, posType) {
|
|||||||
return; //Newly created, so no orders to process
|
return; //Newly created, so no orders to process
|
||||||
}
|
}
|
||||||
var stockOrders = orderBook[stock.symbol];
|
var stockOrders = orderBook[stock.symbol];
|
||||||
if (stockOrders === null || !(stockOrders.constructor === Array)) {
|
if (stockOrders == null || !(stockOrders.constructor === Array)) {
|
||||||
console.log("ERROR: Invalid Order book for " + stock.symbol + " in processOrders()");
|
console.log("ERROR: Invalid Order book for " + stock.symbol + " in processOrders()");
|
||||||
stockOrders = [];
|
stockOrders = [];
|
||||||
return;
|
return;
|
||||||
@ -35931,7 +35931,7 @@ function createStockTicker(stock) {
|
|||||||
function setStockTickerClickHandlers() {
|
function setStockTickerClickHandlers() {
|
||||||
var stockList = document.getElementById("stock-market-list");
|
var stockList = document.getElementById("stock-market-list");
|
||||||
var tickerHdrs = stockList.getElementsByClassName("accordion-header");
|
var tickerHdrs = stockList.getElementsByClassName("accordion-header");
|
||||||
if (tickerHdrs === null) {
|
if (tickerHdrs == null) {
|
||||||
console.log("ERROR: Could not find header elements for stock tickers");
|
console.log("ERROR: Could not find header elements for stock tickers");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -35960,7 +35960,7 @@ function updateStockTicker(stock, increase) {
|
|||||||
var tickerId = "stock-market-ticker-" + stock.symbol;
|
var tickerId = "stock-market-ticker-" + stock.symbol;
|
||||||
var hdr = document.getElementById(tickerId + "-hdr");
|
var hdr = document.getElementById(tickerId + "-hdr");
|
||||||
|
|
||||||
if (hdr === null) {
|
if (hdr == null) {
|
||||||
console.log("ERROR: Couldn't find ticker element for stock: " + stock.symbol);
|
console.log("ERROR: Couldn't find ticker element for stock: " + stock.symbol);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -35985,7 +35985,7 @@ function updateStockPlayerPosition(stock) {
|
|||||||
if (!(stock.posTxtEl instanceof Element)) {
|
if (!(stock.posTxtEl instanceof Element)) {
|
||||||
stock.posTxtEl = document.getElementById(tickerId + "-position-text");
|
stock.posTxtEl = document.getElementById(tickerId + "-position-text");
|
||||||
}
|
}
|
||||||
if (stock.posTxtEl === null) {
|
if (stock.posTxtEl == null) {
|
||||||
console.log("ERROR: Could not find stock position element for: " + stock.symbol);
|
console.log("ERROR: Could not find stock position element for: " + stock.symbol);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -37321,7 +37321,7 @@ HackingMission.prototype.createNodeDomElement = function(nodeObj) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
HackingMission.prototype.updateNodeDomElement = function(nodeObj) {
|
HackingMission.prototype.updateNodeDomElement = function(nodeObj) {
|
||||||
if (nodeObj.el === null) {
|
if (nodeObj.el == null) {
|
||||||
console.log("ERR: Calling updateNodeDomElement on a Node without an element");
|
console.log("ERR: Calling updateNodeDomElement on a Node without an element");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -37393,7 +37393,7 @@ HackingMission.prototype.getNodeFromElement = function(el) {
|
|||||||
|
|
||||||
function selectNode(hackMissionInst, el) {
|
function selectNode(hackMissionInst, el) {
|
||||||
var nodeObj = hackMissionInst.getNodeFromElement(el);
|
var nodeObj = hackMissionInst.getNodeFromElement(el);
|
||||||
if (nodeObj === null) {console.log("Error getting Node object");}
|
if (nodeObj == null) {console.log("Error getting Node object");}
|
||||||
if (!nodeObj.plyrCtrl) {return;}
|
if (!nodeObj.plyrCtrl) {return;}
|
||||||
|
|
||||||
if (hackMissionInst.selectedNode instanceof Node) {
|
if (hackMissionInst.selectedNode instanceof Node) {
|
||||||
@ -37409,7 +37409,7 @@ function selectNode(hackMissionInst, el) {
|
|||||||
//Note: Does NOT change its css class. This is handled by Node.setControlledBy...
|
//Note: Does NOT change its css class. This is handled by Node.setControlledBy...
|
||||||
HackingMission.prototype.configurePlayerNodeElement = function(el) {
|
HackingMission.prototype.configurePlayerNodeElement = function(el) {
|
||||||
var nodeObj = this.getNodeFromElement(el);
|
var nodeObj = this.getNodeFromElement(el);
|
||||||
if (nodeObj === null) {console.log("Error getting Node object");}
|
if (nodeObj == null) {console.log("Error getting Node object");}
|
||||||
|
|
||||||
//Add event listener
|
//Add event listener
|
||||||
var self = this;
|
var self = this;
|
||||||
@ -37445,7 +37445,7 @@ HackingMission.prototype.nodeReachable = function(node) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
HackingMission.prototype.nodeReachableByEnemy = function(node) {
|
HackingMission.prototype.nodeReachableByEnemy = function(node) {
|
||||||
if (node === null) {return false;}
|
if (node == null) {return false;}
|
||||||
var x = node.pos[0], y = node.pos[1];
|
var x = node.pos[0], y = node.pos[1];
|
||||||
if (x > 0 && this.map[x-1][y].enmyCtrl) {return true;}
|
if (x > 0 && this.map[x-1][y].enmyCtrl) {return true;}
|
||||||
if (x < 7 && this.map[x+1][y].enmyCtrl) {return true;}
|
if (x < 7 && this.map[x+1][y].enmyCtrl) {return true;}
|
||||||
@ -37650,7 +37650,7 @@ HackingMission.prototype.process = function(numCycles=1) {
|
|||||||
|
|
||||||
//Returns a bool representing whether defenses need to be re-calculated
|
//Returns a bool representing whether defenses need to be re-calculated
|
||||||
HackingMission.prototype.processNode = function(nodeObj, numCycles=1) {
|
HackingMission.prototype.processNode = function(nodeObj, numCycles=1) {
|
||||||
if (nodeObj.action === null) {
|
if (nodeObj.action == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37680,18 +37680,18 @@ HackingMission.prototype.processNode = function(nodeObj, numCycles=1) {
|
|||||||
var enmyHacking = this.difficulty * __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].HackingMissionDifficultyToHacking;
|
var enmyHacking = this.difficulty * __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].HackingMissionDifficultyToHacking;
|
||||||
switch(nodeObj.action) {
|
switch(nodeObj.action) {
|
||||||
case NodeActions.Attack:
|
case NodeActions.Attack:
|
||||||
if (nodeObj.conn === null) {break;}
|
if (nodeObj.conn == null) {break;}
|
||||||
var dmg = this.calculateAttackDamage(atk, def, plyr ? __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].hacking_skill : enmyHacking);
|
var dmg = this.calculateAttackDamage(atk, def, plyr ? __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].hacking_skill : enmyHacking);
|
||||||
targetNode.hp -= (dmg/5 * numCycles);
|
targetNode.hp -= (dmg/5 * numCycles);
|
||||||
break;
|
break;
|
||||||
case NodeActions.Scan:
|
case NodeActions.Scan:
|
||||||
if (nodeObj.conn === null) {break;}
|
if (nodeObj.conn == null) {break;}
|
||||||
var eff = this.calculateScanEffect(atk, def, plyr ? __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].hacking_skill : enmyHacking);
|
var eff = this.calculateScanEffect(atk, def, plyr ? __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].hacking_skill : enmyHacking);
|
||||||
targetNode.def -= (eff/5 * numCycles);
|
targetNode.def -= (eff/5 * numCycles);
|
||||||
calcStats = true;
|
calcStats = true;
|
||||||
break;
|
break;
|
||||||
case NodeActions.Weaken:
|
case NodeActions.Weaken:
|
||||||
if (nodeObj.conn === null) {break;}
|
if (nodeObj.conn == null) {break;}
|
||||||
var eff = this.calculateWeakenEffect(atk, def, plyr ? __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].hacking_skill : enmyHacking);
|
var eff = this.calculateWeakenEffect(atk, def, plyr ? __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].hacking_skill : enmyHacking);
|
||||||
targetNode.atk -= (eff/5 * numCycles);
|
targetNode.atk -= (eff/5 * numCycles);
|
||||||
calcStats = true;
|
calcStats = true;
|
||||||
@ -37852,13 +37852,13 @@ HackingMission.prototype.processNode = function(nodeObj, numCycles=1) {
|
|||||||
|
|
||||||
//Enemy "AI" for CPU Core and Transfer Nodes
|
//Enemy "AI" for CPU Core and Transfer Nodes
|
||||||
HackingMission.prototype.enemyAISelectAction = function(nodeObj) {
|
HackingMission.prototype.enemyAISelectAction = function(nodeObj) {
|
||||||
if (nodeObj === null) {return;}
|
if (nodeObj == null) {return;}
|
||||||
switch(nodeObj.type) {
|
switch(nodeObj.type) {
|
||||||
case NodeTypes.Core:
|
case NodeTypes.Core:
|
||||||
//Select a single RANDOM target from miscNodes and player's Nodes
|
//Select a single RANDOM target from miscNodes and player's Nodes
|
||||||
//If it is reachable, it will target it. If not, no target will
|
//If it is reachable, it will target it. If not, no target will
|
||||||
//be selected for now, and the next time process() gets called this will repeat
|
//be selected for now, and the next time process() gets called this will repeat
|
||||||
if (nodeObj.conn === null) {
|
if (nodeObj.conn == null) {
|
||||||
if (this.miscNodes.length === 0) {
|
if (this.miscNodes.length === 0) {
|
||||||
//Randomly pick a player node and attack it if its reachable
|
//Randomly pick a player node and attack it if its reachable
|
||||||
var rand = Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["d" /* getRandomInt */])(0, this.playerNodes.length-1);
|
var rand = Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["d" /* getRandomInt */])(0, this.playerNodes.length-1);
|
||||||
@ -37916,7 +37916,7 @@ HackingMission.prototype.enemyAISelectAction = function(nodeObj) {
|
|||||||
} else {
|
} else {
|
||||||
targetNode = this.getNodeFromElement(nodeObj.conn.targetId);
|
targetNode = this.getNodeFromElement(nodeObj.conn.targetId);
|
||||||
}
|
}
|
||||||
if (targetNode === null) {
|
if (targetNode == null) {
|
||||||
console.log("Error getting Target node Object in enemyAISelectAction()");
|
console.log("Error getting Target node Object in enemyAISelectAction()");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38386,7 +38386,7 @@ GangMember.prototype.assignToTask = function(taskName) {
|
|||||||
//Gains are per cycle
|
//Gains are per cycle
|
||||||
GangMember.prototype.calculateRespectGain = function() {
|
GangMember.prototype.calculateRespectGain = function() {
|
||||||
var task = this.task;
|
var task = this.task;
|
||||||
if (task === null || !(task instanceof GangMemberTask) || task.baseRespect === 0) {return 0;}
|
if (task == null || !(task instanceof GangMemberTask) || task.baseRespect === 0) {return 0;}
|
||||||
var statWeight = (task.hackWeight/100) * this.hack +
|
var statWeight = (task.hackWeight/100) * this.hack +
|
||||||
(task.strWeight/100) * this.str +
|
(task.strWeight/100) * this.str +
|
||||||
(task.defWeight/100) * this.def +
|
(task.defWeight/100) * this.def +
|
||||||
@ -38403,7 +38403,7 @@ GangMember.prototype.calculateRespectGain = function() {
|
|||||||
|
|
||||||
GangMember.prototype.calculateWantedLevelGain = function() {
|
GangMember.prototype.calculateWantedLevelGain = function() {
|
||||||
var task = this.task;
|
var task = this.task;
|
||||||
if (task === null || !(task instanceof GangMemberTask) || task.baseWanted === 0) {return 0;}
|
if (task == null || !(task instanceof GangMemberTask) || task.baseWanted === 0) {return 0;}
|
||||||
var statWeight = (task.hackWeight/100) * this.hack +
|
var statWeight = (task.hackWeight/100) * this.hack +
|
||||||
(task.strWeight/100) * this.str +
|
(task.strWeight/100) * this.str +
|
||||||
(task.defWeight/100) * this.def +
|
(task.defWeight/100) * this.def +
|
||||||
@ -38423,7 +38423,7 @@ GangMember.prototype.calculateWantedLevelGain = function() {
|
|||||||
|
|
||||||
GangMember.prototype.calculateMoneyGain = function() {
|
GangMember.prototype.calculateMoneyGain = function() {
|
||||||
var task = this.task;
|
var task = this.task;
|
||||||
if (task === null || !(task instanceof GangMemberTask) || task.baseMoney === 0) {return 0;}
|
if (task == null || !(task instanceof GangMemberTask) || task.baseMoney === 0) {return 0;}
|
||||||
var statWeight = (task.hackWeight/100) * this.hack +
|
var statWeight = (task.hackWeight/100) * this.hack +
|
||||||
(task.strWeight/100) * this.str +
|
(task.strWeight/100) * this.str +
|
||||||
(task.defWeight/100) * this.def +
|
(task.defWeight/100) * this.def +
|
||||||
@ -38440,7 +38440,7 @@ GangMember.prototype.calculateMoneyGain = function() {
|
|||||||
|
|
||||||
GangMember.prototype.gainExperience = function(numCycles=1) {
|
GangMember.prototype.gainExperience = function(numCycles=1) {
|
||||||
var task = this.task;
|
var task = this.task;
|
||||||
if (task === null || !(task instanceof GangMemberTask)) {return;}
|
if (task == null || !(task instanceof GangMemberTask)) {return;}
|
||||||
this.hack_exp += (task.hackWeight / 1500) * task.difficulty * numCycles;
|
this.hack_exp += (task.hackWeight / 1500) * task.difficulty * numCycles;
|
||||||
this.str_exp += (task.strWeight / 1500) * task.difficulty * numCycles;
|
this.str_exp += (task.strWeight / 1500) * task.difficulty * numCycles;
|
||||||
this.def_exp += (task.defWeight / 1500) * task.difficulty * numCycles;
|
this.def_exp += (task.defWeight / 1500) * task.difficulty * numCycles;
|
||||||
@ -39140,7 +39140,7 @@ function updateGangContent() {
|
|||||||
var repCost = Math.pow(__WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].GangRecruitCostMultiplier, numMembers);
|
var repCost = Math.pow(__WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].GangRecruitCostMultiplier, numMembers);
|
||||||
}
|
}
|
||||||
var faction = __WEBPACK_IMPORTED_MODULE_2__Faction_js__["b" /* Factions */][__WEBPACK_IMPORTED_MODULE_4__Player_js__["a" /* Player */].gang.facName];
|
var faction = __WEBPACK_IMPORTED_MODULE_2__Faction_js__["b" /* Factions */][__WEBPACK_IMPORTED_MODULE_4__Player_js__["a" /* Player */].gang.facName];
|
||||||
if (faction === null) {
|
if (faction == null) {
|
||||||
Object(__WEBPACK_IMPORTED_MODULE_5__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Could not find your gang's faction. This is probably a bug please report to dev");
|
Object(__WEBPACK_IMPORTED_MODULE_5__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Could not find your gang's faction. This is probably a bug please report to dev");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -92806,7 +92806,7 @@ BitburnerSaveObject.prototype.saveGame = function(db) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function loadGame(saveString) {
|
function loadGame(saveString) {
|
||||||
if (saveString === "" || saveString === null || saveString === undefined) {
|
if (saveString === "" || saveString == null || saveString === undefined) {
|
||||||
if (!window.localStorage.getItem("bitburnerSave")) {
|
if (!window.localStorage.getItem("bitburnerSave")) {
|
||||||
console.log("No save file to load");
|
console.log("No save file to load");
|
||||||
return false;
|
return false;
|
||||||
@ -92875,7 +92875,7 @@ function loadGame(saveString) {
|
|||||||
if (saveObj.hasOwnProperty("VersionSave")) {
|
if (saveObj.hasOwnProperty("VersionSave")) {
|
||||||
try {
|
try {
|
||||||
var ver = JSON.parse(saveObj.VersionSave, __WEBPACK_IMPORTED_MODULE_17__utils_JSONReviver_js__["c" /* Reviver */]);
|
var ver = JSON.parse(saveObj.VersionSave, __WEBPACK_IMPORTED_MODULE_17__utils_JSONReviver_js__["c" /* Reviver */]);
|
||||||
if (__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].bitNodeN === null || __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].bitNodeN === 0) {
|
if (__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].bitNodeN == null || __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].bitNodeN === 0) {
|
||||||
__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].setBitNodeNumber(1);
|
__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].setBitNodeNumber(1);
|
||||||
}
|
}
|
||||||
if (ver.startsWith("0.27.") || ver.startsWith("0.28.")) {
|
if (ver.startsWith("0.27.") || ver.startsWith("0.28.")) {
|
||||||
|
@ -251,7 +251,7 @@ function createActiveScriptsText(workerscript, item) {
|
|||||||
function updateActiveScriptsText(workerscript, item, statsEl=null) {
|
function updateActiveScriptsText(workerscript, item, statsEl=null) {
|
||||||
var itemId = item.id
|
var itemId = item.id
|
||||||
var itemTextStats = document.getElementById(itemId + "-stats");
|
var itemTextStats = document.getElementById(itemId + "-stats");
|
||||||
if (itemTextStats === null || itemTextStats === undefined) {
|
if (itemTextStats == null || itemTextStats === undefined) {
|
||||||
itemTextStats = statsEl;
|
itemTextStats = statsEl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,12 +140,17 @@ Industries:
|
|||||||
|
|
||||||
Employees:
|
Employees:
|
||||||
Has morale, happiness, and energy that must be managed to maintain productivity
|
Has morale, happiness, and energy that must be managed to maintain productivity
|
||||||
|
Has a city property
|
||||||
Stats:
|
Stats:
|
||||||
Age, Intelligence, Charisma, Experience, Creativity, Efficiency
|
Age, Intelligence, Charisma, Experience, Creativity, Efficiency
|
||||||
|
|
||||||
Assigned to different positions. The productivity at each position is determined by
|
Assigned to different positions. The productivity at each position is determined by
|
||||||
stats. I.e. each employe should be assigned to positions based on stats to optimize production
|
stats. I.e. each employe should be assigned to positions based on stats to optimize production
|
||||||
|
|
||||||
|
Hiring Employees:
|
||||||
|
When you choose to hire employees you are given a randomly generated list of employees to hire
|
||||||
|
They will demand a certain salary and maybe stock shares
|
||||||
|
|
||||||
Employee Position
|
Employee Position
|
||||||
Operations -
|
Operations -
|
||||||
Engineer -
|
Engineer -
|
||||||
@ -166,12 +171,36 @@ Industries:
|
|||||||
Earnings Per Share(EPS): Net Income (Profit) / Number of Oustanding Shares
|
Earnings Per Share(EPS): Net Income (Profit) / Number of Oustanding Shares
|
||||||
Price to Earnings: P/E Ratio = Price per Share / EPS
|
Price to Earnings: P/E Ratio = Price per Share / EPS
|
||||||
|
|
||||||
Awareness:
|
Awareness: A number indicating how many people are aware of your company
|
||||||
|
Popularity: A number indicating how many people like your company
|
||||||
Warehouse Space: How many materials it can stock
|
Warehouse Space: How many materials it can stock
|
||||||
|
Office Space:
|
||||||
|
Costs $/s in upkeep
|
||||||
|
You can open one office space in each city
|
||||||
|
Size - increased by upgrades, increases max # employees in the city
|
||||||
|
However if your # employees is near the max this affects employee happiness
|
||||||
|
Comfort - Increased by upgrades, affects employees in that office
|
||||||
|
Beauty - Increased by upgrades, affects employees in that office
|
||||||
|
Tiers of Office Space:
|
||||||
|
Basic
|
||||||
|
Enhanced
|
||||||
|
Luxurious
|
||||||
|
Extravagant
|
||||||
|
Upgrades
|
||||||
|
Things that increase comfort/beauty. Some may cost upkeep and some might not
|
||||||
|
|
||||||
Office Space - Increases max employees
|
Company Upgrades:
|
||||||
- However if # employees is near the max, then employee happiness decreases
|
Can upgrade Warehouse Space and Office Space
|
||||||
|
Can throw 'events' (company picnic, outing, party, etc.) for one time expenses and temporary boosts
|
||||||
|
Advertising, Increases Company Awareness and Popularity
|
||||||
|
|
||||||
Investors
|
Investors
|
||||||
|
When you start a company you have 1 billion shares (subject to change)
|
||||||
|
Four rounds of investing: Seed, Series A, Series B, Series C
|
||||||
|
In each round, you can give up certain shares to receive money
|
||||||
|
These are optional
|
||||||
|
|
||||||
|
You can choose to go public at any time, at which point your stock price
|
||||||
|
will fluctuate based on company performance. Then you can sell whatever
|
||||||
|
shares you have left on the stock market.
|
||||||
*/
|
*/
|
||||||
|
10
src/Gang.js
10
src/Gang.js
@ -347,7 +347,7 @@ GangMember.prototype.assignToTask = function(taskName) {
|
|||||||
//Gains are per cycle
|
//Gains are per cycle
|
||||||
GangMember.prototype.calculateRespectGain = function() {
|
GangMember.prototype.calculateRespectGain = function() {
|
||||||
var task = this.task;
|
var task = this.task;
|
||||||
if (task === null || !(task instanceof GangMemberTask) || task.baseRespect === 0) {return 0;}
|
if (task == null || !(task instanceof GangMemberTask) || task.baseRespect === 0) {return 0;}
|
||||||
var statWeight = (task.hackWeight/100) * this.hack +
|
var statWeight = (task.hackWeight/100) * this.hack +
|
||||||
(task.strWeight/100) * this.str +
|
(task.strWeight/100) * this.str +
|
||||||
(task.defWeight/100) * this.def +
|
(task.defWeight/100) * this.def +
|
||||||
@ -364,7 +364,7 @@ GangMember.prototype.calculateRespectGain = function() {
|
|||||||
|
|
||||||
GangMember.prototype.calculateWantedLevelGain = function() {
|
GangMember.prototype.calculateWantedLevelGain = function() {
|
||||||
var task = this.task;
|
var task = this.task;
|
||||||
if (task === null || !(task instanceof GangMemberTask) || task.baseWanted === 0) {return 0;}
|
if (task == null || !(task instanceof GangMemberTask) || task.baseWanted === 0) {return 0;}
|
||||||
var statWeight = (task.hackWeight/100) * this.hack +
|
var statWeight = (task.hackWeight/100) * this.hack +
|
||||||
(task.strWeight/100) * this.str +
|
(task.strWeight/100) * this.str +
|
||||||
(task.defWeight/100) * this.def +
|
(task.defWeight/100) * this.def +
|
||||||
@ -384,7 +384,7 @@ GangMember.prototype.calculateWantedLevelGain = function() {
|
|||||||
|
|
||||||
GangMember.prototype.calculateMoneyGain = function() {
|
GangMember.prototype.calculateMoneyGain = function() {
|
||||||
var task = this.task;
|
var task = this.task;
|
||||||
if (task === null || !(task instanceof GangMemberTask) || task.baseMoney === 0) {return 0;}
|
if (task == null || !(task instanceof GangMemberTask) || task.baseMoney === 0) {return 0;}
|
||||||
var statWeight = (task.hackWeight/100) * this.hack +
|
var statWeight = (task.hackWeight/100) * this.hack +
|
||||||
(task.strWeight/100) * this.str +
|
(task.strWeight/100) * this.str +
|
||||||
(task.defWeight/100) * this.def +
|
(task.defWeight/100) * this.def +
|
||||||
@ -401,7 +401,7 @@ GangMember.prototype.calculateMoneyGain = function() {
|
|||||||
|
|
||||||
GangMember.prototype.gainExperience = function(numCycles=1) {
|
GangMember.prototype.gainExperience = function(numCycles=1) {
|
||||||
var task = this.task;
|
var task = this.task;
|
||||||
if (task === null || !(task instanceof GangMemberTask)) {return;}
|
if (task == null || !(task instanceof GangMemberTask)) {return;}
|
||||||
this.hack_exp += (task.hackWeight / 1500) * task.difficulty * numCycles;
|
this.hack_exp += (task.hackWeight / 1500) * task.difficulty * numCycles;
|
||||||
this.str_exp += (task.strWeight / 1500) * task.difficulty * numCycles;
|
this.str_exp += (task.strWeight / 1500) * task.difficulty * numCycles;
|
||||||
this.def_exp += (task.defWeight / 1500) * task.difficulty * numCycles;
|
this.def_exp += (task.defWeight / 1500) * task.difficulty * numCycles;
|
||||||
@ -1101,7 +1101,7 @@ function updateGangContent() {
|
|||||||
var repCost = Math.pow(CONSTANTS.GangRecruitCostMultiplier, numMembers);
|
var repCost = Math.pow(CONSTANTS.GangRecruitCostMultiplier, numMembers);
|
||||||
}
|
}
|
||||||
var faction = Factions[Player.gang.facName];
|
var faction = Factions[Player.gang.facName];
|
||||||
if (faction === null) {
|
if (faction == null) {
|
||||||
dialogBoxCreate("Could not find your gang's faction. This is probably a bug please report to dev");
|
dialogBoxCreate("Could not find your gang's faction. This is probably a bug please report to dev");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -736,7 +736,7 @@ HackingMission.prototype.createNodeDomElement = function(nodeObj) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
HackingMission.prototype.updateNodeDomElement = function(nodeObj) {
|
HackingMission.prototype.updateNodeDomElement = function(nodeObj) {
|
||||||
if (nodeObj.el === null) {
|
if (nodeObj.el == null) {
|
||||||
console.log("ERR: Calling updateNodeDomElement on a Node without an element");
|
console.log("ERR: Calling updateNodeDomElement on a Node without an element");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -808,7 +808,7 @@ HackingMission.prototype.getNodeFromElement = function(el) {
|
|||||||
|
|
||||||
function selectNode(hackMissionInst, el) {
|
function selectNode(hackMissionInst, el) {
|
||||||
var nodeObj = hackMissionInst.getNodeFromElement(el);
|
var nodeObj = hackMissionInst.getNodeFromElement(el);
|
||||||
if (nodeObj === null) {console.log("Error getting Node object");}
|
if (nodeObj == null) {console.log("Error getting Node object");}
|
||||||
if (!nodeObj.plyrCtrl) {return;}
|
if (!nodeObj.plyrCtrl) {return;}
|
||||||
|
|
||||||
if (hackMissionInst.selectedNode instanceof Node) {
|
if (hackMissionInst.selectedNode instanceof Node) {
|
||||||
@ -824,7 +824,7 @@ function selectNode(hackMissionInst, el) {
|
|||||||
//Note: Does NOT change its css class. This is handled by Node.setControlledBy...
|
//Note: Does NOT change its css class. This is handled by Node.setControlledBy...
|
||||||
HackingMission.prototype.configurePlayerNodeElement = function(el) {
|
HackingMission.prototype.configurePlayerNodeElement = function(el) {
|
||||||
var nodeObj = this.getNodeFromElement(el);
|
var nodeObj = this.getNodeFromElement(el);
|
||||||
if (nodeObj === null) {console.log("Error getting Node object");}
|
if (nodeObj == null) {console.log("Error getting Node object");}
|
||||||
|
|
||||||
//Add event listener
|
//Add event listener
|
||||||
var self = this;
|
var self = this;
|
||||||
@ -860,7 +860,7 @@ HackingMission.prototype.nodeReachable = function(node) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
HackingMission.prototype.nodeReachableByEnemy = function(node) {
|
HackingMission.prototype.nodeReachableByEnemy = function(node) {
|
||||||
if (node === null) {return false;}
|
if (node == null) {return false;}
|
||||||
var x = node.pos[0], y = node.pos[1];
|
var x = node.pos[0], y = node.pos[1];
|
||||||
if (x > 0 && this.map[x-1][y].enmyCtrl) {return true;}
|
if (x > 0 && this.map[x-1][y].enmyCtrl) {return true;}
|
||||||
if (x < 7 && this.map[x+1][y].enmyCtrl) {return true;}
|
if (x < 7 && this.map[x+1][y].enmyCtrl) {return true;}
|
||||||
@ -1065,7 +1065,7 @@ HackingMission.prototype.process = function(numCycles=1) {
|
|||||||
|
|
||||||
//Returns a bool representing whether defenses need to be re-calculated
|
//Returns a bool representing whether defenses need to be re-calculated
|
||||||
HackingMission.prototype.processNode = function(nodeObj, numCycles=1) {
|
HackingMission.prototype.processNode = function(nodeObj, numCycles=1) {
|
||||||
if (nodeObj.action === null) {
|
if (nodeObj.action == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1095,18 +1095,18 @@ HackingMission.prototype.processNode = function(nodeObj, numCycles=1) {
|
|||||||
var enmyHacking = this.difficulty * CONSTANTS.HackingMissionDifficultyToHacking;
|
var enmyHacking = this.difficulty * CONSTANTS.HackingMissionDifficultyToHacking;
|
||||||
switch(nodeObj.action) {
|
switch(nodeObj.action) {
|
||||||
case NodeActions.Attack:
|
case NodeActions.Attack:
|
||||||
if (nodeObj.conn === null) {break;}
|
if (nodeObj.conn == null) {break;}
|
||||||
var dmg = this.calculateAttackDamage(atk, def, plyr ? Player.hacking_skill : enmyHacking);
|
var dmg = this.calculateAttackDamage(atk, def, plyr ? Player.hacking_skill : enmyHacking);
|
||||||
targetNode.hp -= (dmg/5 * numCycles);
|
targetNode.hp -= (dmg/5 * numCycles);
|
||||||
break;
|
break;
|
||||||
case NodeActions.Scan:
|
case NodeActions.Scan:
|
||||||
if (nodeObj.conn === null) {break;}
|
if (nodeObj.conn == null) {break;}
|
||||||
var eff = this.calculateScanEffect(atk, def, plyr ? Player.hacking_skill : enmyHacking);
|
var eff = this.calculateScanEffect(atk, def, plyr ? Player.hacking_skill : enmyHacking);
|
||||||
targetNode.def -= (eff/5 * numCycles);
|
targetNode.def -= (eff/5 * numCycles);
|
||||||
calcStats = true;
|
calcStats = true;
|
||||||
break;
|
break;
|
||||||
case NodeActions.Weaken:
|
case NodeActions.Weaken:
|
||||||
if (nodeObj.conn === null) {break;}
|
if (nodeObj.conn == null) {break;}
|
||||||
var eff = this.calculateWeakenEffect(atk, def, plyr ? Player.hacking_skill : enmyHacking);
|
var eff = this.calculateWeakenEffect(atk, def, plyr ? Player.hacking_skill : enmyHacking);
|
||||||
targetNode.atk -= (eff/5 * numCycles);
|
targetNode.atk -= (eff/5 * numCycles);
|
||||||
calcStats = true;
|
calcStats = true;
|
||||||
@ -1267,13 +1267,13 @@ HackingMission.prototype.processNode = function(nodeObj, numCycles=1) {
|
|||||||
|
|
||||||
//Enemy "AI" for CPU Core and Transfer Nodes
|
//Enemy "AI" for CPU Core and Transfer Nodes
|
||||||
HackingMission.prototype.enemyAISelectAction = function(nodeObj) {
|
HackingMission.prototype.enemyAISelectAction = function(nodeObj) {
|
||||||
if (nodeObj === null) {return;}
|
if (nodeObj == null) {return;}
|
||||||
switch(nodeObj.type) {
|
switch(nodeObj.type) {
|
||||||
case NodeTypes.Core:
|
case NodeTypes.Core:
|
||||||
//Select a single RANDOM target from miscNodes and player's Nodes
|
//Select a single RANDOM target from miscNodes and player's Nodes
|
||||||
//If it is reachable, it will target it. If not, no target will
|
//If it is reachable, it will target it. If not, no target will
|
||||||
//be selected for now, and the next time process() gets called this will repeat
|
//be selected for now, and the next time process() gets called this will repeat
|
||||||
if (nodeObj.conn === null) {
|
if (nodeObj.conn == null) {
|
||||||
if (this.miscNodes.length === 0) {
|
if (this.miscNodes.length === 0) {
|
||||||
//Randomly pick a player node and attack it if its reachable
|
//Randomly pick a player node and attack it if its reachable
|
||||||
var rand = getRandomInt(0, this.playerNodes.length-1);
|
var rand = getRandomInt(0, this.playerNodes.length-1);
|
||||||
@ -1331,7 +1331,7 @@ HackingMission.prototype.enemyAISelectAction = function(nodeObj) {
|
|||||||
} else {
|
} else {
|
||||||
targetNode = this.getNodeFromElement(nodeObj.conn.targetId);
|
targetNode = this.getNodeFromElement(nodeObj.conn.targetId);
|
||||||
}
|
}
|
||||||
if (targetNode === null) {
|
if (targetNode == null) {
|
||||||
console.log("Error getting Target node Object in enemyAISelectAction()");
|
console.log("Error getting Target node Object in enemyAISelectAction()");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -267,7 +267,7 @@ function NetscriptFunctions(workerScript) {
|
|||||||
workerScript.scriptRef.log(args.toString());
|
workerScript.scriptRef.log(args.toString());
|
||||||
},
|
},
|
||||||
tprint : function(args) {
|
tprint : function(args) {
|
||||||
if (args === undefined || args === null) {
|
if (args === undefined || args == null) {
|
||||||
throw makeRuntimeRejectMsg(workerScript, "tprint() call has incorrect number of arguments. Takes 1 argument");
|
throw makeRuntimeRejectMsg(workerScript, "tprint() call has incorrect number of arguments. Takes 1 argument");
|
||||||
}
|
}
|
||||||
var x = args.toString();
|
var x = args.toString();
|
||||||
@ -602,7 +602,7 @@ function NetscriptFunctions(workerScript) {
|
|||||||
throw makeRuntimeRejectMsg(workerScript, "ls() failed because of invalid arguments. Usage: ls(ip/hostname, [grep filter])");
|
throw makeRuntimeRejectMsg(workerScript, "ls() failed because of invalid arguments. Usage: ls(ip/hostname, [grep filter])");
|
||||||
}
|
}
|
||||||
var server = getServer(ip);
|
var server = getServer(ip);
|
||||||
if (server === null) {
|
if (server == null) {
|
||||||
workerScript.scriptRef.log("ls() failed. Invalid IP or hostname passed in: " + ip);
|
workerScript.scriptRef.log("ls() failed. Invalid IP or hostname passed in: " + ip);
|
||||||
throw makeRuntimeRejectMsg(workerScript, "ls() failed. Invalid IP or hostname passed in: " + ip);
|
throw makeRuntimeRejectMsg(workerScript, "ls() failed. Invalid IP or hostname passed in: " + ip);
|
||||||
}
|
}
|
||||||
@ -1176,11 +1176,11 @@ function NetscriptFunctions(workerScript) {
|
|||||||
} else if (isString(port)) { //Write to text file
|
} else if (isString(port)) { //Write to text file
|
||||||
var fn = port;
|
var fn = port;
|
||||||
var server = getServer(workerScript.serverIp);
|
var server = getServer(workerScript.serverIp);
|
||||||
if (server === null) {
|
if (server == null) {
|
||||||
throw makeRuntimeRejectMsg(workerScript, "Error getting Server for this script in write(). This is a bug please contact game dev");
|
throw makeRuntimeRejectMsg(workerScript, "Error getting Server for this script in write(). This is a bug please contact game dev");
|
||||||
}
|
}
|
||||||
var txtFile = getTextFile(fn, server);
|
var txtFile = getTextFile(fn, server);
|
||||||
if (txtFile === null) {
|
if (txtFile == null) {
|
||||||
txtFile = createTextFile(fn, data, server);
|
txtFile = createTextFile(fn, data, server);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1213,7 +1213,7 @@ function NetscriptFunctions(workerScript) {
|
|||||||
} else if (isString(port)) { //Read from text file
|
} else if (isString(port)) { //Read from text file
|
||||||
var fn = port;
|
var fn = port;
|
||||||
var server = getServer(workerScript.serverIp);
|
var server = getServer(workerScript.serverIp);
|
||||||
if (server === null) {
|
if (server == null) {
|
||||||
throw makeRuntimeRejectMsg(workerScript, "Error getting Server for this script in read(). This is a bug please contact game dev");
|
throw makeRuntimeRejectMsg(workerScript, "Error getting Server for this script in read(). This is a bug please contact game dev");
|
||||||
}
|
}
|
||||||
var txtFile = getTextFile(fn, server);
|
var txtFile = getTextFile(fn, server);
|
||||||
@ -1301,7 +1301,7 @@ function NetscriptFunctions(workerScript) {
|
|||||||
} else {
|
} else {
|
||||||
//Get income for a particular script
|
//Get income for a particular script
|
||||||
var server = getServer(ip);
|
var server = getServer(ip);
|
||||||
if (server === null) {
|
if (server == null) {
|
||||||
workerScript.scriptRef.log("getScriptIncome() failed. Invalid IP or hostnamed passed in: " + ip);
|
workerScript.scriptRef.log("getScriptIncome() failed. Invalid IP or hostnamed passed in: " + ip);
|
||||||
throw makeRuntimeRejectMsg(workerScript, "getScriptIncome() failed. Invalid IP or hostnamed passed in: " + ip);
|
throw makeRuntimeRejectMsg(workerScript, "getScriptIncome() failed. Invalid IP or hostnamed passed in: " + ip);
|
||||||
}
|
}
|
||||||
@ -1327,7 +1327,7 @@ function NetscriptFunctions(workerScript) {
|
|||||||
} else {
|
} else {
|
||||||
//Get income for a particular script
|
//Get income for a particular script
|
||||||
var server = getServer(ip);
|
var server = getServer(ip);
|
||||||
if (server === null) {
|
if (server == null) {
|
||||||
workerScript.scriptRef.log("getScriptExpGain() failed. Invalid IP or hostnamed passed in: " + ip);
|
workerScript.scriptRef.log("getScriptExpGain() failed. Invalid IP or hostnamed passed in: " + ip);
|
||||||
throw makeRuntimeRejectMsg(workerScript, "getScriptExpGain() failed. Invalid IP or hostnamed passed in: " + ip);
|
throw makeRuntimeRejectMsg(workerScript, "getScriptExpGain() failed. Invalid IP or hostnamed passed in: " + ip);
|
||||||
}
|
}
|
||||||
@ -1855,7 +1855,7 @@ function NetscriptFunctions(workerScript) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var company = Companies[companyName];
|
var company = Companies[companyName];
|
||||||
if (company === null || !(company instanceof Company)) {
|
if (company == null || !(company instanceof Company)) {
|
||||||
workerScript.scriptRef.log("ERROR: Invalid companyName passed into getCompanyRep(): " + companyName);
|
workerScript.scriptRef.log("ERROR: Invalid companyName passed into getCompanyRep(): " + companyName);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -2263,7 +2263,7 @@ function NetscriptFunctions(workerScript) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var fac = Factions[faction];
|
var fac = Factions[faction];
|
||||||
if (fac === null || !(fac instanceof Faction)) {
|
if (fac == null || !(fac instanceof Faction)) {
|
||||||
workerScript.scriptRef.log("ERROR: purchaseAugmentation() failed because of invalid faction name: " + faction);
|
workerScript.scriptRef.log("ERROR: purchaseAugmentation() failed because of invalid faction name: " + faction);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -2274,7 +2274,7 @@ function NetscriptFunctions(workerScript) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var aug = Augmentations[name];
|
var aug = Augmentations[name];
|
||||||
if (aug === null || !(aug instanceof Augmentation)) {
|
if (aug == null || !(aug instanceof Augmentation)) {
|
||||||
workerScript.scriptRef.log("ERROR: purchaseAugmentation() failed because of invalid augmentation name: " + name);
|
workerScript.scriptRef.log("ERROR: purchaseAugmentation() failed because of invalid augmentation name: " + name);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -103,7 +103,7 @@ BitburnerSaveObject.prototype.saveGame = function(db) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function loadGame(saveString) {
|
function loadGame(saveString) {
|
||||||
if (saveString === "" || saveString === null || saveString === undefined) {
|
if (saveString === "" || saveString == null || saveString === undefined) {
|
||||||
if (!window.localStorage.getItem("bitburnerSave")) {
|
if (!window.localStorage.getItem("bitburnerSave")) {
|
||||||
console.log("No save file to load");
|
console.log("No save file to load");
|
||||||
return false;
|
return false;
|
||||||
@ -172,7 +172,7 @@ function loadGame(saveString) {
|
|||||||
if (saveObj.hasOwnProperty("VersionSave")) {
|
if (saveObj.hasOwnProperty("VersionSave")) {
|
||||||
try {
|
try {
|
||||||
var ver = JSON.parse(saveObj.VersionSave, Reviver);
|
var ver = JSON.parse(saveObj.VersionSave, Reviver);
|
||||||
if (Player.bitNodeN === null || Player.bitNodeN === 0) {
|
if (Player.bitNodeN == null || Player.bitNodeN === 0) {
|
||||||
Player.setBitNodeNumber(1);
|
Player.setBitNodeNumber(1);
|
||||||
}
|
}
|
||||||
if (ver.startsWith("0.27.") || ver.startsWith("0.28.")) {
|
if (ver.startsWith("0.27.") || ver.startsWith("0.28.")) {
|
||||||
|
@ -67,7 +67,7 @@ function placeOrder(stock, shares, price, type, position, workerScript=null) {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (StockMarket["Orders"] === null) {
|
if (StockMarket["Orders"] == null) {
|
||||||
var orders = {};
|
var orders = {};
|
||||||
for (var name in StockMarket) {
|
for (var name in StockMarket) {
|
||||||
if (StockMarket.hasOwnProperty(name)) {
|
if (StockMarket.hasOwnProperty(name)) {
|
||||||
@ -88,7 +88,7 @@ function placeOrder(stock, shares, price, type, position, workerScript=null) {
|
|||||||
//Returns true if successfully cancels an order, false otherwise
|
//Returns true if successfully cancels an order, false otherwise
|
||||||
function cancelOrder(params, workerScript=null) {
|
function cancelOrder(params, workerScript=null) {
|
||||||
var tixApi = (workerScript instanceof WorkerScript);
|
var tixApi = (workerScript instanceof WorkerScript);
|
||||||
if (StockMarket["Orders"] === null) {return false;}
|
if (StockMarket["Orders"] == null) {return false;}
|
||||||
if (params.order && params.order instanceof Order) {
|
if (params.order && params.order instanceof Order) {
|
||||||
var order = params.order;
|
var order = params.order;
|
||||||
//An 'Order' object is passed in
|
//An 'Order' object is passed in
|
||||||
@ -471,7 +471,7 @@ function sellStock(stock, shares) {
|
|||||||
//Returns true if successful and false otherwise
|
//Returns true if successful and false otherwise
|
||||||
function shortStock(stock, shares, workerScript=null) {
|
function shortStock(stock, shares, workerScript=null) {
|
||||||
var tixApi = (workerScript instanceof WorkerScript);
|
var tixApi = (workerScript instanceof WorkerScript);
|
||||||
if (stock === null || isNaN(shares) || shares < 0) {
|
if (stock == null || isNaN(shares) || shares < 0) {
|
||||||
if (tixApi) {
|
if (tixApi) {
|
||||||
workerScript.scriptRef.log("ERROR: shortStock() failed because of invalid arguments.");
|
workerScript.scriptRef.log("ERROR: shortStock() failed because of invalid arguments.");
|
||||||
} else {
|
} else {
|
||||||
@ -520,7 +520,7 @@ function shortStock(stock, shares, workerScript=null) {
|
|||||||
//Returns true if successful and false otherwise
|
//Returns true if successful and false otherwise
|
||||||
function sellShort(stock, shares, workerScript=null) {
|
function sellShort(stock, shares, workerScript=null) {
|
||||||
var tixApi = (workerScript instanceof WorkerScript);
|
var tixApi = (workerScript instanceof WorkerScript);
|
||||||
if (stock === null || isNaN(shares) || shares < 0) {
|
if (stock == null || isNaN(shares) || shares < 0) {
|
||||||
if (tixApi) {
|
if (tixApi) {
|
||||||
workerScript.scriptRef.log("ERROR: sellShort() failed because of invalid arguments.");
|
workerScript.scriptRef.log("ERROR: sellShort() failed because of invalid arguments.");
|
||||||
} else {
|
} else {
|
||||||
@ -622,7 +622,7 @@ function updateStockPrices() {
|
|||||||
//Checks and triggers any orders for the specified stock
|
//Checks and triggers any orders for the specified stock
|
||||||
function processOrders(stock, orderType, posType) {
|
function processOrders(stock, orderType, posType) {
|
||||||
var orderBook = StockMarket["Orders"];
|
var orderBook = StockMarket["Orders"];
|
||||||
if (orderBook === null) {
|
if (orderBook == null) {
|
||||||
var orders = {};
|
var orders = {};
|
||||||
for (var name in StockMarket) {
|
for (var name in StockMarket) {
|
||||||
if (StockMarket.hasOwnProperty(name)) {
|
if (StockMarket.hasOwnProperty(name)) {
|
||||||
@ -635,7 +635,7 @@ function processOrders(stock, orderType, posType) {
|
|||||||
return; //Newly created, so no orders to process
|
return; //Newly created, so no orders to process
|
||||||
}
|
}
|
||||||
var stockOrders = orderBook[stock.symbol];
|
var stockOrders = orderBook[stock.symbol];
|
||||||
if (stockOrders === null || !(stockOrders.constructor === Array)) {
|
if (stockOrders == null || !(stockOrders.constructor === Array)) {
|
||||||
console.log("ERROR: Invalid Order book for " + stock.symbol + " in processOrders()");
|
console.log("ERROR: Invalid Order book for " + stock.symbol + " in processOrders()");
|
||||||
stockOrders = [];
|
stockOrders = [];
|
||||||
return;
|
return;
|
||||||
@ -978,7 +978,7 @@ function createStockTicker(stock) {
|
|||||||
function setStockTickerClickHandlers() {
|
function setStockTickerClickHandlers() {
|
||||||
var stockList = document.getElementById("stock-market-list");
|
var stockList = document.getElementById("stock-market-list");
|
||||||
var tickerHdrs = stockList.getElementsByClassName("accordion-header");
|
var tickerHdrs = stockList.getElementsByClassName("accordion-header");
|
||||||
if (tickerHdrs === null) {
|
if (tickerHdrs == null) {
|
||||||
console.log("ERROR: Could not find header elements for stock tickers");
|
console.log("ERROR: Could not find header elements for stock tickers");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1007,7 +1007,7 @@ function updateStockTicker(stock, increase) {
|
|||||||
var tickerId = "stock-market-ticker-" + stock.symbol;
|
var tickerId = "stock-market-ticker-" + stock.symbol;
|
||||||
var hdr = document.getElementById(tickerId + "-hdr");
|
var hdr = document.getElementById(tickerId + "-hdr");
|
||||||
|
|
||||||
if (hdr === null) {
|
if (hdr == null) {
|
||||||
console.log("ERROR: Couldn't find ticker element for stock: " + stock.symbol);
|
console.log("ERROR: Couldn't find ticker element for stock: " + stock.symbol);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1032,7 +1032,7 @@ function updateStockPlayerPosition(stock) {
|
|||||||
if (!(stock.posTxtEl instanceof Element)) {
|
if (!(stock.posTxtEl instanceof Element)) {
|
||||||
stock.posTxtEl = document.getElementById(tickerId + "-position-text");
|
stock.posTxtEl = document.getElementById(tickerId + "-position-text");
|
||||||
}
|
}
|
||||||
if (stock.posTxtEl === null) {
|
if (stock.posTxtEl == null) {
|
||||||
console.log("ERROR: Could not find stock position element for: " + stock.symbol);
|
console.log("ERROR: Could not find stock position element for: " + stock.symbol);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user