Began implementing 'hacknet nodes'

This commit is contained in:
Daniel Xie 2017-04-26 16:51:00 -05:00
parent 0a94026d02
commit 14fb303504
3 changed files with 51 additions and 0 deletions

@ -48,6 +48,7 @@
<script src="src/CreateProgram.js"></script> <script src="src/CreateProgram.js"></script>
<script src="src/Augmentations.js"></script> <script src="src/Augmentations.js"></script>
<script src="src/Perk.js"></script> <script src="src/Perk.js"></script>
<script src="src/HacknetNode.js"></script>
<script src="src/engine.js"></script> <script src="src/engine.js"></script>
@ -137,6 +138,11 @@
</ul> </ul>
</div> </div>
<!-- Hacknet Nodes -->
<div id="hacknet-nodes-container">
</div>
<!-- World --> <!-- World -->
<div id="world-container" class="world-container"> <div id="world-container" class="world-container">
<ul id="aevum-locations-list"> <ul id="aevum-locations-list">

44
src/HacknetNode.js Normal file

@ -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() {
}

@ -22,6 +22,7 @@ function Server() {
this.scripts = []; this.scripts = [];
this.runningScripts = []; //Names (and only names) of scripts being run this.runningScripts = []; //Names (and only names) of scripts being run
this.programs = []; this.programs = [];
this.hacknetNodes = [];
/* Hacking information (only valid for "foreign" aka non-purchased servers) */ /* Hacking information (only valid for "foreign" aka non-purchased servers) */