From 14fb3035040bc40d9697c6069e1ead58454d987c Mon Sep 17 00:00:00 2001 From: Daniel Xie Date: Wed, 26 Apr 2017 16:51:00 -0500 Subject: [PATCH] Began implementing 'hacknet nodes' --- index.html | 6 ++++++ src/HacknetNode.js | 44 ++++++++++++++++++++++++++++++++++++++++++++ src/Server.js | 1 + 3 files changed, 51 insertions(+) create mode 100644 src/HacknetNode.js diff --git a/index.html b/index.html index 3478e2e04..0b0a33296 100644 --- a/index.html +++ b/index.html @@ -48,6 +48,7 @@ + @@ -136,6 +137,11 @@ + + +
+ +
diff --git a/src/HacknetNode.js b/src/HacknetNode.js new file mode 100644 index 000000000..ddb332d26 --- /dev/null +++ b/src/HacknetNode.js @@ -0,0 +1,44 @@ +/* HacknetNode.js */ +function HacknetNode(name) { + this.level = 1; + this.ram = 0; //GB + this.numCores = 1; + + this.name = name; + + this.totalMoneyGenerated = 0; + this.onlineTimeSeconds = 0; + + this.moneyGainRatePerSecond = 0; +} + +HacknetNode.prototype.updateMoneyGainRate = function() { + //How much extra $/s is gained per level + var gainPerLevel = 0.25; + + //Each CPU core doubles the speed. Every 1GB of ram adds 10% increase + this.moneyGainRatePerSecond = (this.level * gainPerLevel) * Math.pow(1.1, ram) * this.numCores; +} + +HacknetNode.prototype.calculateLevelUpgradeCost = function() { + //Upgrade cost = Base cost * multiplier ^ level + var baseCost = 10000; + var mult = 1.08; + return baseCost * Math.pow(mult, this.level); +} + +/* Saving and loading HackNets */ +HacknetNode.prototype.toJSON = function() { + return Generic_toJSON("HacknetNode", this); +} + +HacknetNode.fromJSON = function(value) { + return Generic_fromJSON(HacknetNode, value.data); +} + +Reviver.constructors.HacknetNode = HacknetNode; + + +purchaseHacknet = function() { + +} \ No newline at end of file diff --git a/src/Server.js b/src/Server.js index 22533721d..62def2c6b 100644 --- a/src/Server.js +++ b/src/Server.js @@ -22,6 +22,7 @@ function Server() { this.scripts = []; this.runningScripts = []; //Names (and only names) of scripts being run this.programs = []; + this.hacknetNodes = []; /* Hacking information (only valid for "foreign" aka non-purchased servers) */